| 1 |
var damage = (global.enemy_attack_stat - global.player_armor_defense - global.player_armor_modifier_defense - global.player_defense) + 10; |
| 2 |
if (damage < 1) |
| 3 |
damage = 1; |
| 4 |
script_execute(scr_controls_battle_heart_blue_up); |
| 5 |
move_x = key_left + key_right; |
| 6 |
hsp = move_x * walk_speed; |
| 7 |
if (key_revert) |
| 8 |
hsp = round(hsp / 2); |
| 9 |
if (vsp > -20 && floating == false) |
| 10 |
vsp -= grav; |
| 11 |
if (key_down_release && vsp < 0) |
| 12 |
{ |
| 13 |
vsp = 0; |
| 14 |
floating = true; |
| 15 |
alarm[1] = 3; |
| 16 |
} |
| 17 |
if ((bbox_top - 1) <= (obj_dialogue_box_battle_transformation_any.bbox_top + 4)) |
| 18 |
{ |
| 19 |
floating = false; |
| 20 |
alarm[1] = 0; |
| 21 |
vsp = key_down * -jumpspeed; |
| 22 |
} |
| 23 |
else if (place_meeting(x, y - 1, obj_battle_enemy_attack_platform_parent) && !box_collision(x, y, 3150)) |
| 24 |
{ |
| 25 |
floating = false; |
| 26 |
alarm[1] = 0; |
| 27 |
vsp = key_down * -jumpspeed; |
| 28 |
} |
| 29 |
if (!place_meeting(x, y - 1, obj_battle_enemy_attack_platform_parent) || box_collision(x, y, 3150)) |
| 30 |
hsp_carry = 0; |
| 31 |
if (sign(hsp) == -1 && (bbox_left + hsp) <= (obj_dialogue_box_battle_transformation_any.bbox_left + 4)) |
| 32 |
{ |
| 33 |
while ((bbox_left + sign(hsp)) > (obj_dialogue_box_battle_transformation_any.bbox_left + 4)) |
| 34 |
x += sign(hsp); |
| 35 |
hsp = 0; |
| 36 |
} |
| 37 |
else if (sign(hsp) == 1 && (bbox_right + hsp) >= (obj_dialogue_box_battle_transformation_any.bbox_right - 4)) |
| 38 |
{ |
| 39 |
while ((bbox_right + sign(hsp)) < (obj_dialogue_box_battle_transformation_any.bbox_right - 4)) |
| 40 |
x += sign(hsp); |
| 41 |
hsp = 0; |
| 42 |
} |
| 43 |
x += (hsp + hsp_carry); |
| 44 |
if (sign(vsp) == -1 && (bbox_top + vsp) <= (obj_dialogue_box_battle_transformation_any.bbox_top + 4)) |
| 45 |
{ |
| 46 |
while ((bbox_top + sign(vsp)) > (obj_dialogue_box_battle_transformation_any.bbox_top + 4)) |
| 47 |
y += sign(vsp); |
| 48 |
vsp = 0; |
| 49 |
} |
| 50 |
else if (sign(vsp) == 1 && (bbox_bottom + vsp) >= (obj_dialogue_box_battle_transformation_any.bbox_bottom - 4)) |
| 51 |
{ |
| 52 |
while ((bbox_bottom + sign(vsp)) < (obj_dialogue_box_battle_transformation_any.bbox_bottom - 4)) |
| 53 |
y += sign(vsp); |
| 54 |
vsp = 0; |
| 55 |
} |
| 56 |
else if (instance_exists(obj_battle_enemy_attack_platform_parent)) |
| 57 |
{ |
| 58 |
if (!box_collision(x, y, 3150)) |
| 59 |
{ |
| 60 |
if (place_meeting(x, y_position + vsp, obj_battle_enemy_attack_platform_parent) && vsp <= 0) |
| 61 |
{ |
| 62 |
while (!place_meeting(x, y_position + sign(vsp), obj_battle_enemy_attack_platform_parent)) |
| 63 |
{ |
| 64 |
y_position += (sign(vsp) / 2); |
| 65 |
y = ceil(y_position - 0.5); |
| 66 |
} |
| 67 |
vsp = 0; |
| 68 |
} |
| 69 |
} |
| 70 |
} |
| 71 |
y_position += vsp; |
| 72 |
y = ceil(y_position - 0.5); |
| 73 |
if (vulnerable == true) |
| 74 |
{ |
| 75 |
if (place_meeting(x, y, obj_battle_enemy_attack_parent)) |
| 76 |
{ |
| 77 |
vulnerable = false; |
| 78 |
global.hit_self = true; |
| 79 |
global.current_hp_self -= damage; |
| 80 |
audio_play_sound(snd_hurt, 20, false); |
| 81 |
alarm[0] = global.invulnerability_self; |
| 82 |
} |
| 83 |
if (place_meeting(x, y, obj_battle_enemy_attack_orange_parent) && hsp == 0 && vsp == 0) |
| 84 |
{ |
| 85 |
vulnerable = false; |
| 86 |
global.hit_self = true; |
| 87 |
global.current_hp_self -= damage; |
| 88 |
audio_play_sound(snd_hurt, 20, false); |
| 89 |
alarm[0] = global.invulnerability_self; |
| 90 |
} |
| 91 |
if (place_meeting(x, y, obj_battle_enemy_attack_blue_parent) && (hsp != 0 || vsp != 0)) |
| 92 |
{ |
| 93 |
vulnerable = false; |
| 94 |
global.hit_self = true; |
| 95 |
global.current_hp_self -= damage; |
| 96 |
audio_play_sound(snd_hurt, 20, false); |
| 97 |
alarm[0] = global.invulnerability_self; |
| 98 |
} |
| 99 |
} |
| 100 |
if (vulnerable == false) |
| 101 |
{ |
| 102 |
image_speed = 1; |
| 103 |
} |
| 104 |
else |
| 105 |
{ |
| 106 |
image_speed = 0; |
| 107 |
image_index = 0; |
| 108 |
} |
| 109 |
if (global.current_hp_self < 0) |
| 110 |
global.current_hp_self = 0; |
| 111 |
if (global.current_hp_self == 0) |
| 112 |
{ |
| 113 |
global.heart_battle_fighting_color = "red"; |
| 114 |
global.heart_battle_fighting_x = x; |
| 115 |
global.heart_battle_fighting_y = y; |
| 116 |
with (obj_battle_generator) |
| 117 |
audio_extend = false; |
| 118 |
audio_stop_all(); |
| 119 |
room_goto(rm_death_screen Death screen); |
| 120 |
} |