1 |
if (chaincon == 0) |
2 |
{ |
3 |
if (chain_noise == 0) |
4 |
{ |
5 |
chain_noise = 1; |
6 |
chainsnd = snd_loop(snd_chain_extend); |
7 |
} |
8 |
sons += 1; |
9 |
son[sons] = instance_create(x, y, obj_chainpiece); |
10 |
if (x <= obj_nonsolid_growtangle.x) |
11 |
{ |
12 |
snd_stop(chainsnd); |
13 |
snd_play(snd_locker); |
14 |
snd_play(snd_screenshake); |
15 |
speed = 0; |
16 |
chaincon = 1; |
17 |
shakeamt = 12; |
18 |
remx = obj_heart.x; |
19 |
remy = obj_heart.y; |
20 |
remx_box = obj_nonsolid_growtangle.x; |
21 |
remy_box = obj_nonsolid_growtangle.y; |
22 |
chaincon = 2.1; |
23 |
with (obj_growtangle) |
24 |
megakeep = 1; |
25 |
} |
26 |
} |
27 |
if (chaincon == 2.1) |
28 |
{ |
29 |
obj_heart.x = remx; |
30 |
obj_heart.y = remy; |
31 |
obj_nonsolid_growtangle.x = remx_box; |
32 |
obj_nonsolid_growtangle.y = remy_box; |
33 |
shakedir = random(360); |
34 |
xshake = lengthdir_x(shakeamt, shakedir); |
35 |
yshake = lengthdir_y(shakeamt, shakedir); |
36 |
obj_heart.x += xshake; |
37 |
obj_heart.y += yshake; |
38 |
obj_nonsolid_growtangle.x += xshake; |
39 |
obj_nonsolid_growtangle.y += yshake; |
40 |
shakeamt -= 2; |
41 |
if (shakeamt < 0) |
42 |
chaincon = 3; |
43 |
} |
44 |
if (chaincon == 3) |
45 |
{ |
46 |
if (chain_noise == 1) |
47 |
{ |
48 |
chain_noise = 2; |
49 |
wavenoise = snd_loop(snd_chain_wave); |
50 |
} |
51 |
if (type == 0) |
52 |
{ |
53 |
siner += 1; |
54 |
obj_chainking.y = initkingy + (sin(siner / 12) * 80); |
55 |
btimer += 1; |
56 |
if (btimer >= 20) |
57 |
{ |
58 |
regbul = instance_create(__view_get(e__VW.XView, 0) - 20, initboxy, obj_regularbullet); |
59 |
regbul.sprite_index = spr_spadebullet; |
60 |
regbul.hspeed = 4; |
61 |
scr_bullet_inheritscr_bullet_inheritfunction scr_bullet_inherit(arg0)
{
if (instance_exists(arg0))
{
arg0.damage = damage;
arg0.grazepoints = grazepoints;
arg0.timepoints = timepoints;
arg0.inv = inv;
arg0.target = target;
arg0.grazed = 0;
arg0.grazetimer = 0;
}
} (regbul); |
62 |
btimer = 0; |
63 |
} |
64 |
if (chain_noise == 2) |
65 |
snd_pitch(wavenoise, 0.8 - (sin(siner / 12) / 2)); |
66 |
} |
67 |
if (type == 1) |
68 |
{ |
69 |
siner += 1; |
70 |
obj_chainking.y = initkingy + (sin(siner / 10) * 80); |
71 |
btimer += 1; |
72 |
if (btimer >= 18) |
73 |
{ |
74 |
regbul = instance_create(__view_get(e__VW.XView, 0) - 20, initboxy, obj_regularbullet); |
75 |
regbul.sprite_index = spr_spadebullet; |
76 |
regbul.hspeed = 4; |
77 |
scr_bullet_inheritscr_bullet_inheritfunction scr_bullet_inherit(arg0)
{
if (instance_exists(arg0))
{
arg0.damage = damage;
arg0.grazepoints = grazepoints;
arg0.timepoints = timepoints;
arg0.inv = inv;
arg0.target = target;
arg0.grazed = 0;
arg0.grazetimer = 0;
}
} (regbul); |
78 |
btimer = 0; |
79 |
} |
80 |
if (chain_noise == 2) |
81 |
snd_pitch(wavenoise, 0.9 - (sin(siner / 10) / 2)); |
82 |
} |
83 |
if (type == 2) |
84 |
{ |
85 |
siner += 1; |
86 |
obj_chainking.y = initkingy + (sin(siner / 9) * 80); |
87 |
btimer += 1; |
88 |
if (btimer >= 16) |
89 |
{ |
90 |
regbul = instance_create(__view_get(e__VW.XView, 0) - 20, initboxy, obj_regularbullet); |
91 |
regbul.sprite_index = spr_spadebullet; |
92 |
regbul.hspeed = 4; |
93 |
scr_bullet_inheritscr_bullet_inheritfunction scr_bullet_inherit(arg0)
{
if (instance_exists(arg0))
{
arg0.damage = damage;
arg0.grazepoints = grazepoints;
arg0.timepoints = timepoints;
arg0.inv = inv;
arg0.target = target;
arg0.grazed = 0;
arg0.grazetimer = 0;
}
} (regbul); |
94 |
btimer = 0; |
95 |
} |
96 |
if (chain_noise == 2) |
97 |
snd_pitch(wavenoise, 1 - (sin(siner / 9) / 2)); |
98 |
} |
99 |
if (type == 3) |
100 |
{ |
101 |
siner += 1; |
102 |
obj_chainking.y = initkingy + (sin(siner / 7) * 80 * wavefactor); |
103 |
btimer += 1; |
104 |
if (btimer >= 14) |
105 |
{ |
106 |
regbul = instance_create(__view_get(e__VW.XView, 0) - 20, initboxy, obj_regularbullet); |
107 |
regbul.sprite_index = spr_spadebullet; |
108 |
regbul.hspeed = 4; |
109 |
scr_bullet_inheritscr_bullet_inheritfunction scr_bullet_inherit(arg0)
{
if (instance_exists(arg0))
{
arg0.damage = damage;
arg0.grazepoints = grazepoints;
arg0.timepoints = timepoints;
arg0.inv = inv;
arg0.target = target;
arg0.grazed = 0;
arg0.grazetimer = 0;
}
} (regbul); |
110 |
btimer = 0; |
111 |
} |
112 |
if (chain_noise == 2) |
113 |
snd_pitch(wavenoise, 1 - (sin(siner / 7) / 2)); |
114 |
} |
115 |
} |
116 |
if (instance_exists(obj_chainking)) |
117 |
{ |
118 |
kingx[0] = obj_chainking.x - initkingx; |
119 |
kingy[0] = obj_chainking.y - initkingy; |
120 |
for (i = 40; i > 0; i -= 1) |
121 |
{ |
122 |
kingx[i] = kingx[i - 1]; |
123 |
kingy[i] = kingy[i - 1]; |
124 |
} |
125 |
for (i = 0; i <= sons; i += 1) |
126 |
{ |
127 |
son[i].x = kingx[i] + son[i].xstart; |
128 |
son[i].y = kingy[i] + son[i].ystart; |
129 |
} |
130 |
if (chaincon >= 3) |
131 |
{ |
132 |
x = son[sons].x; |
133 |
y = son[sons].y; |
134 |
obj_nonsolid_growtangle.x = kingx[sons] + initboxx; |
135 |
obj_nonsolid_growtangle.y = kingy[sons] + initboxy; |
136 |
} |
137 |
} |
138 |
t += 1; |
139 |
if (t >= (tmax - 10)) |
140 |
{ |
141 |
wavefactor *= 0.8; |
142 |
with (obj_chainpiece) |
143 |
image_alpha -= 0.1; |
144 |
with (obj_regularbullet) |
145 |
{ |
146 |
active = 0; |
147 |
image_alpha -= 0.1; |
148 |
} |
149 |
} |
150 |
if (t >= tmax) |
151 |
{ |
152 |
if (chain_noise == 2) |
153 |
{ |
154 |
chain_noise = 3; |
155 |
snd_stop(wavenoise); |
156 |
} |
157 |
global.turntimer = 3; |
158 |
with (obj_regularbullet) |
159 |
instance_destroy(); |
160 |
with (obj_chainking) |
161 |
sprite_index = spr_chainking_receive; |
162 |
with (obj_chainking) |
163 |
instance_destroy(); |
164 |
instance_destroy(); |
165 |
} |
166 |
|
167 |
enum e__VW |
168 |
{ |
169 |
XView, |
170 |
YView, |
171 |
WView, |
172 |
HView, |
173 |
Angle, |
174 |
HBorder, |
175 |
VBorder, |
176 |
HSpeed, |
177 |
VSpeed, |
178 |
Object, |
179 |
Visible, |
180 |
XPort, |
181 |
YPort, |
182 |
WPort, |
183 |
HPort, |
184 |
Camera, |
185 |
SurfaceID |
186 |
} |