Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_battle_enemy_attack_axis_energy_ball_boss_red_Step_0

(view raw script w/o annotations or w/e)
1
if (live_call())
2
    return global.live_result;
3
var battle_box = 3154;
4
var destroy_check = false;
5
switch (scene)
6
{
7
    case 0:
8
        image_xscale = lerp(image_xscale, 2, 0.05);
9
        image_yscale = lerp(image_yscale, 2, 0.05);
10
        if (image_xscale > 1.99)
11
        {
12
            image_xscale = 2;
13
            image_yscale = 2;
14
            scene++;
15
        }
16
        break;
17
    case 1:
18
        instance_create_depth(x, y, depth - 1, obj_battle_enemy_attack_axis_red_warning);
19
        image_xscale = 2.5;
20
        image_yscale = 2.5;
21
        scene++;
22
        break;
23
    case 2:
24
        image_xscale = lerp(image_xscale, 2, 0.15);
25
        image_yscale = lerp(image_yscale, 2, 0.15);
26
        cutscene_wait(throw_delay);
27
        break;
28
    case 3:
29
        obj_axis_body.sprite_index = spr_axis_body_charge_release;
30
        obj_axis_body.image_index = 0;
31
        direction = point_direction(x, y, obj_heart_battle_fighting_parent.x, obj_heart_battle_fighting_parent.y);
32
        speed = launch_speed;
33
        is_active = true;
34
        scene++;
35
        break;
36
    case 4:
37
        break;
38
}
39
if (!is_active)
40
    exit;
41
if (place_meeting(x, y, obj_battle_enemy_attack_axis_shield) && deflect_noloop == false)
42
{
43
    obj_battle_enemy_attack_axis_shield.shield_hit = true;
44
    var dir_add = point_direction(obj_battle_enemy_attack_axis_shield.x, obj_battle_enemy_attack_axis_shield.y + 10, x, y);
45
    var dir_base = obj_battle_enemy_attack_axis_shield.direction;
46
    direction = dir_add;
47
    speed *= 1.2;
48
    deflect_noloop = true;
49
    is_deflected = true;
50
}
51
if (place_meeting(x, y, obj_axis_body) && is_deflected == true)
52
{
53
    if (!obj_battlebox_controller_axis.shield_enabled)
54
    {
55
        instance_destroy();
56
        audio_play_sound(snd_monster_damage_hit, 1, 0);
57
        obj_axis_body.axis_damaged_act = true;
58
        obj_battlebox_controller_axis.axis_trash_meter = 0;
59
        obj_battlebox_controller_axis.axis_hit_count_current -= 1;
60
        global.special_action_count += 1;
61
        global.enemy_mode += 1;
62
        global.attack_repeat = 0;
63
        with (obj_axis_attack_controller_parent)
64
            instance_destroy();
65
    }
66
    else
67
    {
68
        instance_destroy();
69
        audio_play_sound(snd_pickaxe_ding, 1, 0);
70
    }
71
}
72
var col_generator = instance_place(x, y, obj_battle_enemy_axis_generator);
73
if (col_generator != -4 && is_deflected == true)
74
{
75
    instance_destroy();
76
    instance_destroy(col_generator);
77
    obj_battlebox_controller_axis.axis_trash_meter = 0;
78
    obj_battlebox_controller_axis.axis_hit_count_current -= 1;
79
    audio_play_sound(snd_monster_damage_hit, 1, 0);
80
    obj_axis_body.axis_damaged_act = true;
81
    global.special_action_count += 1;
82
    global.enemy_mode += 1;
83
    global.attack_repeat = 0;
84
    with (obj_axis_attack_controller_parent)
85
        instance_destroy();
86
}
87
var hurt_player = false;
88
if (obj_heart_battle_fighting_axis.movement_mode == 1)
89
{
90
    if (bbox_bottom >= battle_box.bbox_bottom)
91
        hurt_player = true;
92
}
93
else if (collision_rectangle(battle_box.x - 5, battle_box.y - 5, battle_box.x + 5, battle_box.y + 5, id, false, false))
94
{
95
    hurt_player = true;
96
}
97
if (hurt_player)
98
{
99
    instance_destroy(self, false);
100
    instance_create_depth(320, 320, -100, obj_battle_enemy_attack_axis_energy_ball_explosion);
101
}