1 |
shieldsiner++; |
2 |
y += (sin(shieldsiner / 6) * 0.5); |
3 |
if ((obj_queen_enemy.shieldhp / obj_queen_enemy.shieldmaxhp) <= (obj_queen_enemy.shieldacthp / obj_queen_enemy.shieldactmaxhp)) |
4 |
{ |
5 |
var a = obj_queen_enemy.shieldhp / obj_queen_enemy.shieldmaxhp; |
6 |
if (shieldsize == 5) |
7 |
{ |
8 |
if (a < 0.8) |
9 |
shieldpiece_alpha[0] = spr_queenshield_pieces_hurt; |
10 |
else |
11 |
shieldpiece_alpha[0] = spr_queenshield_pieces; |
12 |
if (a < 0.6) |
13 |
shieldpiece_alpha[1] = spr_queenshield_pieces_hurt; |
14 |
else |
15 |
shieldpiece_alpha[1] = spr_queenshield_pieces; |
16 |
if (a < 0.4) |
17 |
shieldpiece_alpha[2] = spr_queenshield_pieces_hurt; |
18 |
else |
19 |
shieldpiece_alpha[2] = spr_queenshield_pieces; |
20 |
if (a < 0.2) |
21 |
shieldpiece_alpha[3] = spr_queenshield_pieces_hurt; |
22 |
else |
23 |
shieldpiece_alpha[3] = spr_queenshield_pieces; |
24 |
} |
25 |
if (shieldsize == 10) |
26 |
{ |
27 |
if (a < 0.9) |
28 |
shieldpiece_alpha[0] = spr_queenshield_pieces_hurt; |
29 |
else |
30 |
shieldpiece_alpha[0] = spr_queenshield_pieces; |
31 |
if (a < 0.8) |
32 |
shieldpiece_alpha[1] = spr_queenshield_pieces_hurt; |
33 |
else |
34 |
shieldpiece_alpha[1] = spr_queenshield_pieces; |
35 |
if (a < 0.7) |
36 |
shieldpiece_alpha[2] = spr_queenshield_pieces_hurt; |
37 |
else |
38 |
shieldpiece_alpha[2] = spr_queenshield_pieces; |
39 |
if (a < 0.6) |
40 |
shieldpiece_alpha[3] = spr_queenshield_pieces_hurt; |
41 |
else |
42 |
shieldpiece_alpha[3] = spr_queenshield_pieces; |
43 |
if (a < 0.5) |
44 |
shieldpiece_alpha[4] = spr_queenshield_pieces_hurt; |
45 |
else |
46 |
shieldpiece_alpha[4] = spr_queenshield_pieces; |
47 |
if (a < 0.4) |
48 |
shieldpiece_alpha[5] = spr_queenshield_pieces_hurt; |
49 |
else |
50 |
shieldpiece_alpha[5] = spr_queenshield_pieces; |
51 |
if (a < 0.3) |
52 |
shieldpiece_alpha[6] = spr_queenshield_pieces_hurt; |
53 |
else |
54 |
shieldpiece_alpha[6] = spr_queenshield_pieces; |
55 |
if (a < 0.2) |
56 |
shieldpiece_alpha[7] = spr_queenshield_pieces_hurt; |
57 |
else |
58 |
shieldpiece_alpha[7] = spr_queenshield_pieces; |
59 |
if (a < 0.1) |
60 |
shieldpiece_alpha[8] = spr_queenshield_pieces_hurt; |
61 |
else |
62 |
shieldpiece_alpha[8] = spr_queenshield_pieces; |
63 |
} |
64 |
if (shieldsize == 15) |
65 |
{ |
66 |
if (a < 0.9333333333333333) |
67 |
shieldpiece_alpha[0] = spr_queenshield_pieces_hurt; |
68 |
else |
69 |
shieldpiece_alpha[0] = spr_queenshield_pieces; |
70 |
if (a < 0.8666666666666667) |
71 |
shieldpiece_alpha[1] = spr_queenshield_pieces_hurt; |
72 |
else |
73 |
shieldpiece_alpha[1] = spr_queenshield_pieces; |
74 |
if (a < 0.8) |
75 |
shieldpiece_alpha[2] = spr_queenshield_pieces_hurt; |
76 |
else |
77 |
shieldpiece_alpha[2] = spr_queenshield_pieces; |
78 |
if (a < 0.7333333333333333) |
79 |
shieldpiece_alpha[3] = spr_queenshield_pieces_hurt; |
80 |
else |
81 |
shieldpiece_alpha[3] = spr_queenshield_pieces; |
82 |
if (a < (2/3)) |
83 |
shieldpiece_alpha[4] = spr_queenshield_pieces_hurt; |
84 |
else |
85 |
shieldpiece_alpha[4] = spr_queenshield_pieces; |
86 |
if (a < 0.6) |
87 |
shieldpiece_alpha[5] = spr_queenshield_pieces_hurt; |
88 |
else |
89 |
shieldpiece_alpha[5] = spr_queenshield_pieces; |
90 |
if (a < 0.5333333333333333) |
91 |
shieldpiece_alpha[6] = spr_queenshield_pieces_hurt; |
92 |
else |
93 |
shieldpiece_alpha[6] = spr_queenshield_pieces; |
94 |
if (a < 0.4666666666666667) |
95 |
shieldpiece_alpha[7] = spr_queenshield_pieces_hurt; |
96 |
else |
97 |
shieldpiece_alpha[7] = spr_queenshield_pieces; |
98 |
if (a < 0.4) |
99 |
shieldpiece_alpha[8] = spr_queenshield_pieces_hurt; |
100 |
else |
101 |
shieldpiece_alpha[8] = spr_queenshield_pieces; |
102 |
if (a < (1/3)) |
103 |
shieldpiece_alpha[9] = spr_queenshield_pieces_hurt; |
104 |
else |
105 |
shieldpiece_alpha[9] = spr_queenshield_pieces; |
106 |
if (a < 0.26666666666666666) |
107 |
shieldpiece_alpha[10] = spr_queenshield_pieces_hurt; |
108 |
else |
109 |
shieldpiece_alpha[10] = spr_queenshield_pieces; |
110 |
if (a < 0.2) |
111 |
shieldpiece_alpha[11] = spr_queenshield_pieces_hurt; |
112 |
else |
113 |
shieldpiece_alpha[11] = spr_queenshield_pieces; |
114 |
if (a < 0.13333333333333333) |
115 |
shieldpiece_alpha[12] = spr_queenshield_pieces_hurt; |
116 |
else |
117 |
shieldpiece_alpha[12] = spr_queenshield_pieces; |
118 |
if (a < (1/15)) |
119 |
shieldpiece_alpha[13] = spr_queenshield_pieces_hurt; |
120 |
else |
121 |
shieldpiece_alpha[13] = spr_queenshield_pieces; |
122 |
} |
123 |
} |
124 |
else |
125 |
{ |
126 |
var a = obj_queen_enemy.shieldacthp / obj_queen_enemy.shieldactmaxhp; |
127 |
if (shieldsize == 5) |
128 |
{ |
129 |
if (a < 0.8) |
130 |
shieldpiece_alpha[0] = spr_queenshield_pieces_hurt; |
131 |
else |
132 |
shieldpiece_alpha[0] = spr_queenshield_pieces; |
133 |
if (a < 0.6) |
134 |
shieldpiece_alpha[1] = spr_queenshield_pieces_hurt; |
135 |
else |
136 |
shieldpiece_alpha[1] = spr_queenshield_pieces; |
137 |
if (a < 0.4) |
138 |
shieldpiece_alpha[2] = spr_queenshield_pieces_hurt; |
139 |
else |
140 |
shieldpiece_alpha[2] = spr_queenshield_pieces; |
141 |
if (a < 0.2) |
142 |
shieldpiece_alpha[3] = spr_queenshield_pieces_hurt; |
143 |
else |
144 |
shieldpiece_alpha[3] = spr_queenshield_pieces; |
145 |
} |
146 |
if (shieldsize == 10) |
147 |
{ |
148 |
if (a < 0.9) |
149 |
shieldpiece_alpha[0] = spr_queenshield_pieces_hurt; |
150 |
else |
151 |
shieldpiece_alpha[0] = spr_queenshield_pieces; |
152 |
if (a < 0.8) |
153 |
shieldpiece_alpha[1] = spr_queenshield_pieces_hurt; |
154 |
else |
155 |
shieldpiece_alpha[1] = spr_queenshield_pieces; |
156 |
if (a < 0.7) |
157 |
shieldpiece_alpha[2] = spr_queenshield_pieces_hurt; |
158 |
else |
159 |
shieldpiece_alpha[2] = spr_queenshield_pieces; |
160 |
if (a < 0.6) |
161 |
shieldpiece_alpha[3] = spr_queenshield_pieces_hurt; |
162 |
else |
163 |
shieldpiece_alpha[3] = spr_queenshield_pieces; |
164 |
if (a < 0.5) |
165 |
shieldpiece_alpha[4] = spr_queenshield_pieces_hurt; |
166 |
else |
167 |
shieldpiece_alpha[4] = spr_queenshield_pieces; |
168 |
if (a < 0.4) |
169 |
shieldpiece_alpha[5] = spr_queenshield_pieces_hurt; |
170 |
else |
171 |
shieldpiece_alpha[5] = spr_queenshield_pieces; |
172 |
if (a < 0.3) |
173 |
shieldpiece_alpha[6] = spr_queenshield_pieces_hurt; |
174 |
else |
175 |
shieldpiece_alpha[6] = spr_queenshield_pieces; |
176 |
if (a < 0.2) |
177 |
shieldpiece_alpha[7] = spr_queenshield_pieces_hurt; |
178 |
else |
179 |
shieldpiece_alpha[7] = spr_queenshield_pieces; |
180 |
if (a < 0.1) |
181 |
shieldpiece_alpha[8] = spr_queenshield_pieces_hurt; |
182 |
else |
183 |
shieldpiece_alpha[8] = spr_queenshield_pieces; |
184 |
} |
185 |
if (shieldsize == 15) |
186 |
{ |
187 |
if (a < 0.9333333333333333) |
188 |
shieldpiece_alpha[0] = spr_queenshield_pieces_hurt; |
189 |
else |
190 |
shieldpiece_alpha[0] = spr_queenshield_pieces; |
191 |
if (a < 0.8666666666666667) |
192 |
shieldpiece_alpha[1] = spr_queenshield_pieces_hurt; |
193 |
else |
194 |
shieldpiece_alpha[1] = spr_queenshield_pieces; |
195 |
if (a < 0.8) |
196 |
shieldpiece_alpha[2] = spr_queenshield_pieces_hurt; |
197 |
else |
198 |
shieldpiece_alpha[2] = spr_queenshield_pieces; |
199 |
if (a < 0.7333333333333333) |
200 |
shieldpiece_alpha[3] = spr_queenshield_pieces_hurt; |
201 |
else |
202 |
shieldpiece_alpha[3] = spr_queenshield_pieces; |
203 |
if (a < (2/3)) |
204 |
shieldpiece_alpha[4] = spr_queenshield_pieces_hurt; |
205 |
else |
206 |
shieldpiece_alpha[4] = spr_queenshield_pieces; |
207 |
if (a < 0.6) |
208 |
shieldpiece_alpha[5] = spr_queenshield_pieces_hurt; |
209 |
else |
210 |
shieldpiece_alpha[5] = spr_queenshield_pieces; |
211 |
if (a < 0.5333333333333333) |
212 |
shieldpiece_alpha[6] = spr_queenshield_pieces_hurt; |
213 |
else |
214 |
shieldpiece_alpha[6] = spr_queenshield_pieces; |
215 |
if (a < 0.4666666666666667) |
216 |
shieldpiece_alpha[7] = spr_queenshield_pieces_hurt; |
217 |
else |
218 |
shieldpiece_alpha[7] = spr_queenshield_pieces; |
219 |
if (a < 0.4) |
220 |
shieldpiece_alpha[8] = spr_queenshield_pieces_hurt; |
221 |
else |
222 |
shieldpiece_alpha[8] = spr_queenshield_pieces; |
223 |
if (a < (1/3)) |
224 |
shieldpiece_alpha[9] = spr_queenshield_pieces_hurt; |
225 |
else |
226 |
shieldpiece_alpha[9] = spr_queenshield_pieces; |
227 |
if (a < 0.26666666666666666) |
228 |
shieldpiece_alpha[10] = spr_queenshield_pieces_hurt; |
229 |
else |
230 |
shieldpiece_alpha[10] = spr_queenshield_pieces; |
231 |
if (a < 0.2) |
232 |
shieldpiece_alpha[11] = spr_queenshield_pieces_hurt; |
233 |
else |
234 |
shieldpiece_alpha[11] = spr_queenshield_pieces; |
235 |
if (a < 0.13333333333333333) |
236 |
shieldpiece_alpha[12] = spr_queenshield_pieces_hurt; |
237 |
else |
238 |
shieldpiece_alpha[12] = spr_queenshield_pieces; |
239 |
if (a < (1/15)) |
240 |
shieldpiece_alpha[13] = spr_queenshield_pieces_hurt; |
241 |
else |
242 |
shieldpiece_alpha[13] = spr_queenshield_pieces; |
243 |
} |
244 |
} |
245 |
draw_set_alpha(shieldalpha * 0.8); |
246 |
draw_set_color(c_lime); |
247 |
draw_triangle(queenhandx, queenhandy, x + 81, shieldpiece_y[0] + 2, x + 81, shieldpiece_y[shieldsize - 1] + y + 33, true); |
248 |
draw_triangle_colour(queenhandx, queenhandy, x + 81, shieldpiece_y[0] + 2, x + 81, shieldpiece_y[shieldsize - 1] + y + 33, 0, 65280, 65280, false); |
249 |
for (i = 0; i < 10; i++) |
250 |
{ |
251 |
shieldpiece_x[i] = x + 40; |
252 |
draw_sprite_ext(spr_queenshield_pieces, shieldpiece_image_index[i], shieldpiece_x[i], shieldpiece_y[i], shieldpiece_xscale[i], shieldpiece_yscale[i] + y, 0, c_white, shieldpiece_alpha[i]); |
253 |
repeat (5) |
254 |
{ |
255 |
if (shieldpiece_y[i] < shieldpiece_y_origin[i]) |
256 |
shieldpiece_y[i]++; |
257 |
if (shieldpiece_y[i] > shieldpiece_y_origin[i]) |
258 |
shieldpiece_y[i]--; |
259 |
} |
260 |
if (obj_queen_enemy.shieldhp <= 5 || obj_queen_enemy.shieldacthp < 1) |
261 |
{ |
262 |
imabouttobreak_siner += 0.5; |
263 |
imabouttobreak_alpha = 0.1 + (sin(imabouttobreak_siner) / 6); |
264 |
d3d_set_fog(true, c_white, 0, 1); |
265 |
draw_sprite_ext(spr_queenshield_pieces, shieldpiece_image_index[i], shieldpiece_x[i], shieldpiece_y[i], shieldpiece_xscale[i], shieldpiece_yscale[i] + y, 0, c_white, shieldpiece_alpha[i]); |
266 |
d3d_set_fog(false, c_black, 0, 0); |
267 |
} |
268 |
} |
269 |
if (appearcon == 1) |
270 |
{ |
271 |
if (shieldsize == 5) |
272 |
{ |
273 |
shieldpiece_y_origin[0] = 95; |
274 |
shieldpiece_y_origin[1] = 115; |
275 |
shieldpiece_y_origin[2] = 135; |
276 |
shieldpiece_y_origin[3] = 155; |
277 |
shieldpiece_y_origin[4] = 175; |
278 |
} |
279 |
if (shieldsize == 10) |
280 |
{ |
281 |
shieldpiece_y_origin[0] = 50; |
282 |
shieldpiece_y_origin[1] = 75; |
283 |
shieldpiece_y_origin[2] = 95; |
284 |
shieldpiece_y_origin[3] = 115; |
285 |
shieldpiece_y_origin[4] = 135; |
286 |
shieldpiece_y_origin[5] = 155; |
287 |
shieldpiece_y_origin[6] = 175; |
288 |
shieldpiece_y_origin[7] = 195; |
289 |
shieldpiece_y_origin[8] = 215; |
290 |
shieldpiece_y_origin[9] = 240; |
291 |
} |
292 |
if (shieldsize == 15) |
293 |
{ |
294 |
shieldpiece_y_origin[0] = 10; |
295 |
shieldpiece_y_origin[1] = 35; |
296 |
shieldpiece_y_origin[2] = 55; |
297 |
shieldpiece_y_origin[3] = 75; |
298 |
shieldpiece_y_origin[4] = 95; |
299 |
shieldpiece_y_origin[5] = 115; |
300 |
shieldpiece_y_origin[6] = 135; |
301 |
shieldpiece_y_origin[7] = 155; |
302 |
shieldpiece_y_origin[8] = 175; |
303 |
shieldpiece_y_origin[9] = 195; |
304 |
shieldpiece_y_origin[10] = 215; |
305 |
shieldpiece_y_origin[11] = 235; |
306 |
shieldpiece_y_origin[12] = 255; |
307 |
shieldpiece_y_origin[13] = 275; |
308 |
shieldpiece_y_origin[14] = 300; |
309 |
} |
310 |
appearcon = 0; |
311 |
} |
312 |
if (appearcon == 2) |
313 |
{ |
314 |
for (i = 0; i < 14; i++) |
315 |
shieldpiece_y[i] = y + 145; |
316 |
appearcon = 0; |
317 |
} |
318 |
if (shieldhurt != 2) |
319 |
shieldalpha = 0.7 + (sin(shieldsiner / 7) * 0.05); |
320 |
if (shieldsize == 5) |
321 |
{ |
322 |
shieldpiece_image_index[0] = 0; |
323 |
shieldpiece_image_index[1] = 1; |
324 |
shieldpiece_image_index[2] = 1; |
325 |
shieldpiece_image_index[3] = 1; |
326 |
shieldpiece_image_index[4] = 2; |
327 |
} |
328 |
if (shieldsize == 10) |
329 |
{ |
330 |
shieldpiece_image_index[0] = 0; |
331 |
shieldpiece_image_index[1] = 1; |
332 |
shieldpiece_image_index[2] = 1; |
333 |
shieldpiece_image_index[3] = 1; |
334 |
shieldpiece_image_index[4] = 1; |
335 |
shieldpiece_image_index[5] = 1; |
336 |
shieldpiece_image_index[6] = 1; |
337 |
shieldpiece_image_index[7] = 1; |
338 |
shieldpiece_image_index[8] = 1; |
339 |
shieldpiece_image_index[9] = 2; |
340 |
} |
341 |
if (shieldsize == 15) |
342 |
{ |
343 |
shieldpiece_image_index[0] = 0; |
344 |
shieldpiece_image_index[1] = 1; |
345 |
shieldpiece_image_index[2] = 1; |
346 |
shieldpiece_image_index[3] = 1; |
347 |
shieldpiece_image_index[4] = 1; |
348 |
shieldpiece_image_index[5] = 1; |
349 |
shieldpiece_image_index[6] = 1; |
350 |
shieldpiece_image_index[7] = 1; |
351 |
shieldpiece_image_index[8] = 1; |
352 |
shieldpiece_image_index[9] = 1; |
353 |
shieldpiece_image_index[10] = 1; |
354 |
shieldpiece_image_index[11] = 1; |
355 |
shieldpiece_image_index[12] = 1; |
356 |
shieldpiece_image_index[13] = 1; |
357 |
shieldpiece_image_index[14] = 2; |
358 |
} |
359 |
var shieldindex = 0; |
360 |
var hptype = 0; |
361 |
var wineheight; |
362 |
if ((obj_queen_enemy.shieldhp / obj_queen_enemy.shieldmaxhp) <= (obj_queen_enemy.shieldacthp / obj_queen_enemy.shieldactmaxhp)) |
363 |
{ |
364 |
hptype = 0; |
365 |
repeat (10) |
366 |
{ |
367 |
if (obj_queen_enemy.shieldhp < shieldhpgradual) |
368 |
shieldhpgradual -= 1; |
369 |
} |
370 |
repeat (obj_queen_enemy.phase - 1) |
371 |
{ |
372 |
repeat (10) |
373 |
{ |
374 |
if (obj_queen_enemy.shieldhp > shieldhpgradual) |
375 |
shieldhpgradual += 1; |
376 |
} |
377 |
} |
378 |
wineheight = lerp(shieldheight, 0, shieldhpgradual / obj_queen_enemy.shieldmaxhp); |
379 |
} |
380 |
else |
381 |
{ |
382 |
hptype = 1; |
383 |
if (shieldhpgradual > obj_queen_enemy.shieldactmaxhp) |
384 |
shieldhpgradual = obj_queen_enemy.shieldactmaxhp; |
385 |
repeat (10) |
386 |
{ |
387 |
if (obj_queen_enemy.shieldacthp < shieldhpgradual) |
388 |
shieldhpgradual -= 0.01; |
389 |
} |
390 |
repeat (obj_queen_enemy.phase - 1) |
391 |
{ |
392 |
repeat (10) |
393 |
{ |
394 |
if (obj_queen_enemy.shieldacthp > shieldhpgradual) |
395 |
shieldhpgradual += 0.01; |
396 |
} |
397 |
} |
398 |
wineheight = lerp(shieldheight, 0, shieldhpgradual / obj_queen_enemy.shieldactmaxhp); |
399 |
} |
400 |
if (shaketimer > 0) |
401 |
{ |
402 |
x = (xstart - shaketimer) + (shaketimer * 2); |
403 |
y = (ystart - shaketimer) + (shaketimer * 2); |
404 |
shaketimer--; |
405 |
} |
406 |
if (shieldhurt == 1) |
407 |
{ |
408 |
shieldindex = 2; |
409 |
shieldx = (random(shieldhurttimer) - random(shieldhurttimer)) * 2; |
410 |
shieldhurttimer--; |
411 |
if (shieldhurttimer <= 0) |
412 |
shieldhurt = 0; |
413 |
} |
414 |
if (shieldhurt == 2) |
415 |
{ |
416 |
event_user(1); |
417 |
instance_destroy(); |
418 |
} |
419 |
if (appearcon != 0) |
420 |
{ |
421 |
draw_sprite_ext(sprite_index, 1, x + 7, y + 3, image_xscale, image_yscale, 0, c_white, shieldalpha); |
422 |
} |
423 |
else |
424 |
{ |
425 |
draw_sprite_part_ext(sprite_index, shieldindex, 0, wineheight, sprite_width, shieldheight - wineheight, x + shieldx, y + (wineheight * image_yscale), image_xscale, image_yscale, c_white, shieldalpha); |
426 |
draw_sprite_part_ext(sprite_index, shieldindex + 1, 0, 0, sprite_width, wineheight, x + shieldx, y, image_xscale, image_yscale, c_white, shieldalpha); |
427 |
if ((shieldhpgradual <= 5 && hptype == 0) || (shieldhpgradual < 1 && hptype == 1)) |
428 |
{ |
429 |
imabouttobreak_siner += 0.5; |
430 |
imabouttobreak_alpha = 0.1 + (sin(imabouttobreak_siner) / 6); |
431 |
d3d_set_fog(true, c_white, 0, 1); |
432 |
draw_sprite_part_ext(sprite_index, shieldindex, 0, wineheight, sprite_width, shieldheight - wineheight, x + shieldx, y + (wineheight * image_yscale), image_xscale, image_yscale, c_white, imabouttobreak_alpha); |
433 |
draw_sprite_part_ext(sprite_index, shieldindex + 1, 0, 0, sprite_width, wineheight, x + shieldx, y, image_xscale, image_yscale, c_white, imabouttobreak_alpha); |
434 |
d3d_set_fog(false, c_black, 0, 0); |
435 |
} |
436 |
} |