1 |
function scr_damagescr_damagefunction scr_damage()
{
if (global.inv < 0)
{
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]));
debug_message("The element is: " + string(__element));
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)
... () |
2 |
{ |
3 |
if (global.inv < 0) |
4 |
{ |
5 |
var __element = 0; |
6 |
if (variable_instance_exists(id, "element")) |
7 |
{ |
8 |
if (is_real(element)) |
9 |
__element = element; |
10 |
} |
11 |
if (target < 3) |
12 |
{ |
13 |
if (global.hp[global.char[target]] <= 0) |
14 |
{ |
15 |
scr_randomtarget_oldscr_randomtarget_oldfunction scr_randomtarget_old()
{
abletotarget = 1;
if (global.charcantarget[0] == 0 && global.charcantarget[1] == 0 && global.charcantarget[2] == 0)
abletotarget = 0;
mytarget = choose(0, 1, 2);
if (abletotarget == 1)
{
while (global.charcantarget[mytarget] == 0)
mytarget = choose(0, 1, 2);
}
else
{
mytarget = 3;
}
global.targeted[mytarget] = 1;
} (); |
16 |
target = mytarget; |
17 |
with (global.charinstance[target]) |
18 |
{ |
19 |
image_blend = c_white; |
20 |
darkify = 0; |
21 |
} |
22 |
} |
23 |
} |
24 |
var __remtarget = -1; |
25 |
if (target == 4) |
26 |
{ |
27 |
__remtarget = 4; |
28 |
scr_randomtarget_oldscr_randomtarget_oldfunction scr_randomtarget_old()
{
abletotarget = 1;
if (global.charcantarget[0] == 0 && global.charcantarget[1] == 0 && global.charcantarget[2] == 0)
abletotarget = 0;
mytarget = choose(0, 1, 2);
if (abletotarget == 1)
{
while (global.charcantarget[mytarget] == 0)
mytarget = choose(0, 1, 2);
}
else
{
mytarget = 3;
}
global.targeted[mytarget] = 1;
} (); |
29 |
target = mytarget; |
30 |
if ((global.hp[global.char[target]] / global.maxhp[global.char[target]]) < (scr_party_hpaveragescr_party_hpaveragefunction scr_party_hpaverage()
{
var _totalhp = 0;
var _totalmaxhp = 0;
var _members = 0;
for (var _hpi = 0; _hpi < 3; _hpi++)
{
if (global.char[_hpi] > 0)
{
_members++;
_totalhp += global.hp[global.char[_hpi]];
_totalmaxhp += global.maxhp[global.char[_hpi]];
}
}
if (_totalhp > 0)
return floor(_totalhp / _totalmaxhp);
else
return 0;
} () / 2)) |
31 |
{ |
32 |
scr_randomtarget_oldscr_randomtarget_oldfunction scr_randomtarget_old()
{
abletotarget = 1;
if (global.charcantarget[0] == 0 && global.charcantarget[1] == 0 && global.charcantarget[2] == 0)
abletotarget = 0;
mytarget = choose(0, 1, 2);
if (abletotarget == 1)
{
while (global.charcantarget[mytarget] == 0)
mytarget = choose(0, 1, 2);
}
else
{
mytarget = 3;
}
global.targeted[mytarget] = 1;
} (); |
33 |
target = mytarget; |
34 |
} |
35 |
if ((global.hp[global.char[target]] / global.maxhp[global.char[target]]) < (scr_party_hpaveragescr_party_hpaveragefunction scr_party_hpaverage()
{
var _totalhp = 0;
var _totalmaxhp = 0;
var _members = 0;
for (var _hpi = 0; _hpi < 3; _hpi++)
{
if (global.char[_hpi] > 0)
{
_members++;
_totalhp += global.hp[global.char[_hpi]];
_totalmaxhp += global.maxhp[global.char[_hpi]];
}
}
if (_totalhp > 0)
return floor(_totalhp / _totalmaxhp);
else
return 0;
} () / 2)) |
36 |
{ |
37 |
scr_randomtarget_oldscr_randomtarget_oldfunction scr_randomtarget_old()
{
abletotarget = 1;
if (global.charcantarget[0] == 0 && global.charcantarget[1] == 0 && global.charcantarget[2] == 0)
abletotarget = 0;
mytarget = choose(0, 1, 2);
if (abletotarget == 1)
{
while (global.charcantarget[mytarget] == 0)
mytarget = choose(0, 1, 2);
}
else
{
mytarget = 3;
}
global.targeted[mytarget] = 1;
} (); |
38 |
target = mytarget; |
39 |
} |
40 |
if (target == 0 && (global.hp[global.char[target]] / global.maxhp[global.char[target]]) < 0.35) |
41 |
{ |
42 |
scr_randomtarget_oldscr_randomtarget_oldfunction scr_randomtarget_old()
{
abletotarget = 1;
if (global.charcantarget[0] == 0 && global.charcantarget[1] == 0 && global.charcantarget[2] == 0)
abletotarget = 0;
mytarget = choose(0, 1, 2);
if (abletotarget == 1)
{
while (global.charcantarget[mytarget] == 0)
mytarget = choose(0, 1, 2);
}
else
{
mytarget = 3;
}
global.targeted[mytarget] = 1;
} (); |
43 |
target = mytarget; |
44 |
} |
45 |
with (global.charinstance[target]) |
46 |
{ |
47 |
image_blend = c_white; |
48 |
darkify = 0; |
49 |
} |
50 |
} |
51 |
chartarget = 3; |
52 |
tdamage = damage; |
53 |
var oldcalculation = 0; |
54 |
if (target < 3) |
55 |
{ |
56 |
if (oldcalculation) |
57 |
tdamage = ceil(tdamage - (global.battledf[target] * 3)); |
58 |
else |
59 |
tdamage = scr_damage_calculationscr_damage_calculationfunction scr_damage_calculation(arg0, arg1)
{
var _tdamage = arg0;
var _tdef = global.battledf[arg1];
var _tmaxhp = global.maxhp[global.char[arg1]];
var _finaldamage = 1;
var _hpthresholda = _tmaxhp / 5;
var _hpthresholdb = _tmaxhp / 8;
for (var _di = 0; _di < _tdef; _di++)
{
if (_tdamage > _hpthresholda)
_tdamage -= 3;
else if (_tdamage > _hpthresholdb)
_tdamage -= 2;
else
_tdamage -= 1;
}
return max(_tdamage, _finaldamage);
} (tdamage, target); |
60 |
chartarget = global.char[target]; |
61 |
if (global.charaction[target] == 10) |
62 |
tdamage = ceil((2 * tdamage) / 3); |
63 |
tdamage = ceil(tdamage * scr_element_damage_reductionscr_element_damage_reductionfunction scr_element_damage_reduction(arg0, arg1)
{
var ___element = arg0;
var ___char = arg1;
var ___reduction = 1;
if (___element != 0)
{
for (var ___itemi = 0; ___itemi < 2; ___itemi++)
{
if (global.itemelement[___char][___itemi + 1] != 0)
{
if (global.itemelement[___char][___itemi + 1] == ___element)
___reduction -= global.itemelementamount[___char][___itemi + 1];
if (global.itemelement[___char][___itemi + 1] == 9)
{
if (___element == 2 || ___element == 8)
___reduction -= global.itemelementamount[___char][___itemi + 1];
}
if (global.itemelement[___char][___itemi + 1] == 10)
___reduction -= global.itemelementamount[___char][___itemi + 1];
}
}
}
if (___reduction < 0.25)
___reduction = 0.25;
return ___reduction;
} (__element, global.char[target])); |
64 |
debug_message("The element is: " + string(__element)); |
65 |
if (tdamage < 1) |
66 |
tdamage = 1; |
67 |
} |
68 |
if (!instance_exists(obj_shake)) |
69 |
instance_create(0, 0, obj_shake); |
70 |
with (global.charinstance[target]) |
71 |
{ |
72 |
hurt = 1; |
73 |
hurttimer = 0; |
74 |
} |
75 |
hpdiff = tdamage; |
76 |
with (obj_dmgwriter) |
77 |
{ |
78 |
if (delaytimer >= 1) |
79 |
killactive = 1; |
80 |
} |
81 |
doomtype = -1; |
82 |
with (obj_heart) |
83 |
dmgnoise = 1; |
84 |
if (target < 3) |
85 |
{ |
86 |
if (global.hp[chartarget] <= 0) |
87 |
{ |
88 |
doomtype = 4; |
89 |
global.hp[chartarget] -= round(tdamage / 4); |
90 |
hpdiff = round(tdamage / 4); |
91 |
} |
92 |
else |
93 |
{ |
94 |
global.hp[chartarget] -= tdamage; |
95 |
if (global.chapter == 2 && instance_exists(obj_gigaqueen_enemy) && global.hp[chartarget] <= 0) |
96 |
{ |
97 |
global.hp[chartarget] = 1; |
98 |
with (o_boxingcontroller) |
99 |
event_user(3); |
100 |
} |
101 |
if (global.hp[chartarget] <= 0) |
102 |
{ |
103 |
hpdiff = abs(global.hp[chartarget] - (global.maxhp[chartarget] / 2)); |
104 |
doomtype = 4; |
105 |
global.hp[chartarget] = round(-global.maxhp[chartarget] / 2); |
106 |
scr_deadscr_deadfunction scr_dead(arg0)
{
global.charmove[arg0] = 0;
global.charcantarget[arg0] = 0;
global.chardead[arg0] = 1;
global.charaction[arg0] = 0;
global.charspecial[arg0] = 0;
} (target); |
107 |
} |
108 |
} |
109 |
dmgwriter = instance_create(global.charinstance[target].x, (global.charinstance[target].y + global.charinstance[target].myheight) - 24, obj_dmgwriter); |
110 |
dmgwriter.damage = hpdiff; |
111 |
dmgwriter.type = doomtype; |
112 |
} |
113 |
if (target == 3) |
114 |
{ |
115 |
for (hpi = 0; hpi < 3; hpi += 1) |
116 |
{ |
117 |
chartarget = global.char[hpi]; |
118 |
if (global.hp[chartarget] >= 0) |
119 |
{ |
120 |
if (oldcalculation) |
121 |
tdamage = ceil(tdamage - (global.battledf[hpi] * 3)); |
122 |
else |
123 |
tdamage = scr_damage_calculationscr_damage_calculationfunction scr_damage_calculation(arg0, arg1)
{
var _tdamage = arg0;
var _tdef = global.battledf[arg1];
var _tmaxhp = global.maxhp[global.char[arg1]];
var _finaldamage = 1;
var _hpthresholda = _tmaxhp / 5;
var _hpthresholdb = _tmaxhp / 8;
for (var _di = 0; _di < _tdef; _di++)
{
if (_tdamage > _hpthresholda)
_tdamage -= 3;
else if (_tdamage > _hpthresholdb)
_tdamage -= 2;
else
_tdamage -= 1;
}
return max(_tdamage, _finaldamage);
} (tdamage, hpi); |
124 |
tdamage = ceil(tdamage * scr_element_damage_reductionscr_element_damage_reductionfunction scr_element_damage_reduction(arg0, arg1)
{
var ___element = arg0;
var ___char = arg1;
var ___reduction = 1;
if (___element != 0)
{
for (var ___itemi = 0; ___itemi < 2; ___itemi++)
{
if (global.itemelement[___char][___itemi + 1] != 0)
{
if (global.itemelement[___char][___itemi + 1] == ___element)
___reduction -= global.itemelementamount[___char][___itemi + 1];
if (global.itemelement[___char][___itemi + 1] == 9)
{
if (___element == 2 || ___element == 8)
___reduction -= global.itemelementamount[___char][___itemi + 1];
}
if (global.itemelement[___char][___itemi + 1] == 10)
___reduction -= global.itemelementamount[___char][___itemi + 1];
}
}
}
if (___reduction < 0.25)
___reduction = 0.25;
return ___reduction;
} (__element, chartarget)); |
125 |
if (global.charaction[hpi] == 10) |
126 |
global.hp[chartarget] -= ceil((3 * tdamage) / 4); |
127 |
else |
128 |
global.hp[chartarget] -= tdamage; |
129 |
if (global.hp[chartarget] <= 0) |
130 |
global.hp[chartarget] = round(-global.maxhp[0] / 2); |
131 |
} |
132 |
} |
133 |
} |
134 |
global.inv = global.invc * 40; |
135 |
gameover = 1; |
136 |
if (global.char[0] != 0 && global.hp[global.char[0]] > 0) |
137 |
gameover = 0; |
138 |
if (global.char[1] != 0 && global.hp[global.char[1]] > 0) |
139 |
gameover = 0; |
140 |
if (global.char[2] != 0 && global.hp[global.char[2]] > 0) |
141 |
gameover = 0; |
142 |
if (gameover == 1) |
143 |
scr_gameoverscr_gameoverfunction scr_gameover()
{
if (global.chapter == 2)
{
if (room == room_dw_mansion_b_west_2f)
global.tempflag[33]++;
if (room == room_dw_mansion_east_4f_d && i_ex(obj_queen_enemy))
{
global.hp[1] = global.maxhp[1];
global.hp[2] = global.maxhp[2];
global.hp[3] = global.maxhp[3];
scr_tempsave();
}
if (i_ex(obj_spamton_neo_enemy))
global.tempflag[37]++;
}
if ( global.flag[35 gameover_mode] == 0)
{
audio_stop_all();
snd_play(snd_hurt1);
global.screenshot = sprite_create_from_surface(application_surface, 0, 0, __view_get(e__VW.WView, 0), __view_get(e__VW.HView, 0), 0, 0, 0, 0);
snd_free_all();
room_goto( room_gameover );
}
if ( global.flag[35 gameover_mode] == 1)
{
global.turntimer = -1;
global.flag[36 dojo_failure] = 1;
global.flag[39 dojo_abort?] = 1;
}
if ( global.flag[35 gameover_mode] == 2)
{
audio_stop_all();
snd_play(snd_hurt1);
snd_free_all();
global.entrance = 0;
global.tempflag[9] = 1;
global.fighting = 0;
global.interact = 0;
global.hp[0] = 1;
global.hp[1] = 1;
global.hp[2] = 1;
global.hp[3] = 1;
__room = room;
if (global.chapter == 2)
{
with (instance_create(0, 0, obj_persistentfadein))
image_alpha = 1.2;
}
room_goto(__room);
}
}
enum e__VW
{
XView,
YView,
WView,
HView,
Angle,
HBorder,
VBorder,
HSpeed,
VSpeed,
Object,
Visible,
XPort,
YPort,
WPort,
HPort,
Camera,
SurfaceID
} (); |
144 |
if (__remtarget != -1) |
145 |
target = __remtarget; |
146 |
} |
147 |
} |