1 |
if (playercrush == 1) |
2 |
exit; |
3 |
if (init == 0) |
4 |
{ |
5 |
depth = obj_growtangle.depth; |
6 |
obj_growtangle.image_alpha = 0; |
7 |
obj_battlesolid.image_xscale = 3; |
8 |
obj_battlesolid.image_yscale = 3; |
9 |
init = 1; |
10 |
} |
11 |
if (global.turntimer <= 30 && (global.turntimer % 2) >= 1 && instance_exists(obj_sneo_splitbouncer)) |
12 |
{ |
13 |
destroytimer--; |
14 |
if (destroytimer <= 0) |
15 |
{ |
16 |
var spouncer = instance_find(obj_sneo_splitbouncer, 0); |
17 |
d = instance_create(spouncer.x, spouncer.y, obj_animation_dx); |
18 |
d.sprite_index = spr_thrash_missile_explosion; |
19 |
d.image_xscale = spouncer.size; |
20 |
d.image_yscale = spouncer.size; |
21 |
destroytimer = spouncer.size; |
22 |
instance_destroy(spouncer); |
23 |
} |
24 |
} |
25 |
if (sizeup > 0) |
26 |
{ |
27 |
top -= 2; |
28 |
if (top < maxtop) |
29 |
top = maxtop; |
30 |
bottom += 2; |
31 |
if (bottom > maxbottom) |
32 |
bottom = maxbottom; |
33 |
left -= 2; |
34 |
if (left < maxleft) |
35 |
left = maxleft; |
36 |
right += 2; |
37 |
if (right > maxright) |
38 |
right = maxright; |
39 |
sizeup -= 2; |
40 |
} |
41 |
if ((bottom - top) < 10 || (right - left) < 10) |
42 |
{ |
43 |
if ((bottom - top) < 10) |
44 |
{ |
45 |
var centerpoint = (top + bottom) / 2; |
46 |
top = centerpoint - 2; |
47 |
bottom = centerpoint + 2; |
48 |
obj_heart.y = centerpoint - 4; |
49 |
} |
50 |
else |
51 |
{ |
52 |
var centerpoint = (left + right) / 2; |
53 |
left = centerpoint - 2; |
54 |
right = centerpoint + 2; |
55 |
obj_heart.x = centerpoint - 4; |
56 |
} |
57 |
playercrush = 1; |
58 |
damage = 0; |
59 |
for (i = 0; i < instance_number(obj_sneo_splitbouncer); i++) |
60 |
{ |
61 |
d = instance_find(obj_sneo_splitbouncer, i); |
62 |
damage += power(d.size, 3); |
63 |
dm = instance_create(d.x, d.y, obj_animation_dx); |
64 |
dm.sprite_index = spr_realisticexplosion; |
65 |
dm.image_xscale = d.size / 3; |
66 |
dm.image_yscale = d.size / 3; |
67 |
} |
68 |
if (target != 3) |
69 |
{ |
70 |
scr_damagescr_damagefunction scr_damage()
{
if (global.inv < 0)
{
scr_damage_cache();
var __element = 0;
if (variable_instance_exists(id, "element"))
{
if (is_real(element))
__element = element;
}
if (target < 3)
{
if (global.hp[global.char[target]] <= 0)
{
scr_randomtarget_old();
target = mytarget;
with (global.charinstance[target])
{
image_blend = c_white;
darkify = 0;
}
}
}
var __remtarget = -1;
if (target == 4)
{
__remtarget = 4;
scr_randomtarget_old();
target = mytarget;
if ((global.hp[global.char[target]] / global.maxhp[global.char[target]]) < ( scr_party_hpaverage() / 2))
{
scr_randomtarget_old();
target = mytarget;
}
if ((global.hp[global.char[target]] / global.maxhp[global.char[target]]) < ( scr_party_hpaverage() / 2))
{
scr_randomtarget_old();
target = mytarget;
}
if (target == 0 && (global.hp[global.char[target]] / global.maxhp[global.char[target]]) < 0.35)
{
scr_randomtarget_old();
target = mytarget;
}
with (global.charinstance[target])
{
image_blend = c_white;
darkify = 0;
}
}
chartarget = 3;
tdamage = damage;
var oldcalculation = 0;
if (target < 3)
{
if (oldcalculation)
tdamage = ceil(tdamage - (global.battledf[target] * 3));
else
tdamage = scr_damage_calculation(tdamage, target);
chartarget = global.char[target];
if (global.charaction[target] == 10)
tdamage = ceil((2 * tdamage) / 3);
tdamage = ceil(tdamage * scr_element_damage_reduction(__element, global.char[target]));
if (tdamage < 1)
tdamage = 1;
}
if (!instance_exists(obj_shake))
instance_create(0, 0, obj_shake);
with (global.charinstance[target])
{
hurt = 1;
hurttimer = 0;
}
hpdiff = tdamage;
with (obj_dmgwriter)
{
if (delaytimer >= 1)
killactive = 1;
}
doomtype = -1;
with (obj_heart)
dmgnoise = 1;
if (target < 3)
{
if (global.hp[chartarget] <= 0)
{
doomtype = 4;
global.hp[chartarget] -= round(tdamage / 4);
hpdiff = round(tdamage / 4);
}
else
{
global.hp[chartarget] -= tdamage;
if (global.chapter == 2 && instance_exists(obj_gigaqueen_enemy) && global.hp[chartarget] <= 0)
{
global.hp[chartarget] = 1;
with (o_boxingcontroller)
event_user(3);
}
if (global.hp[chartarget] <= 0)
... (); |
71 |
} |
72 |
else if (target == 3) |
73 |
{ |
74 |
damage = ceil(damage / 3); |
75 |
scr_damage_allscr_damage_allfunction scr_damage_all()
{
if (global.inv < 0)
{
scr_damage_cache();
remdamage = damage;
_temptarget = target;
for (ti = 0; ti < 3; ti += 1)
{
global.inv = -1;
damage = remdamage;
target = ti;
if (global.hp[global.char[ti]] > 0 && global.char[ti] != 0)
scr_damage();
}
global.inv = global.invc * 40;
target = _temptarget;
scr_damage_check();
}
} (); |
76 |
} |
77 |
snd_play(snd_badexplosion); |
78 |
instance_destroy(obj_sneo_splitbouncer); |
79 |
if (global.turntimer > 30) |
80 |
global.turntimer = 30; |
81 |
} |