Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_battle_enemy_attack_guardener_arm_Step_0

(view raw script w/o annotations or w/e)
1
var box = 3154;
2
switch (scene)
3
{
4
    case 0:
5
        depth = obj_heart_battle_fighting_parent.depth - 1;
6
        switch (launch_dir)
7
        {
8
            case "down":
9
                x = clamp(x, box.bbox_left + 32, box.bbox_right - 32);
10
                vspeed = launch_speed;
11
                image_angle = 0;
12
                if (y >= (box.bbox_bottom - 4))
13
                {
14
                    y = box.bbox_bottom - 4;
15
                    vspeed = 0;
16
                    scene = 1;
17
                }
18
                break;
19
            case "right":
20
                y = clamp(y, box.bbox_top + 32, box.bbox_bottom - 32);
21
                hspeed = launch_speed;
22
                image_angle = 90;
23
                if (x >= (box.bbox_right - 4))
24
                {
25
                    x = box.bbox_right - 4;
26
                    hspeed = 0;
27
                    scene = 1;
28
                }
29
                break;
30
            case "up":
31
                x = clamp(x, box.bbox_left + 32, box.bbox_right - 32);
32
                vspeed = -launch_speed;
33
                image_angle = 180;
34
                if (y <= (box.bbox_top + 4))
35
                {
36
                    y = box.bbox_top + 4;
37
                    vspeed = 0;
38
                    scene = 1;
39
                }
40
                break;
41
            case "left":
42
                y = clamp(y, box.bbox_top + 32, box.bbox_bottom - 32);
43
                hspeed = -launch_speed;
44
                image_angle = 270;
45
                if (x <= (box.bbox_left + 4))
46
                {
47
                    x = box.bbox_left + 4;
48
                    hspeed = 0;
49
                    scene = 1;
50
                }
51
                break;
52
        }
53
        break;
54
    case 1:
55
        audio_play_sound(snd_guardener_arm_land, 1, 0);
56
        audio_stop_sound(snd_guardener_arm_launched);
57
        scr_screenshake_battle
scr_screenshake_battle

function scr_screenshake_battle() { instance_destroy(obj_screenshake_battle); var screenshake = instance_create(0, 0, obj_screenshake_battle); battle_screenshake_duration = argument[0]; battle_screenshake_intensity = argument[1]; battle_screenshake_dec = battle_screenshake_intensity / battle_screenshake_duration; }
(6, 1);
58
        var smoke = instance_create_depth(x, y, depth - 1, obj_battle_enemy_attack_guardener_arm_smoke);
59
        smoke.image_angle = image_angle;
60
        sprite_index = spr_attack_guardener_arm_land;
61
        image_index = 0;
62
        scene++;
63
        break;
64
    case 2:
65
        if (image_index >= (image_number - 1))
66
        {
67
            image_index = image_number - 1;
68
            image_speed = 0;
69
        }
70
        if (arm_return > 0)
71
        {
72
            if (!alarm[1])
73
                alarm[1] = arm_return;
74
        }
75
        break;
76
    case 3:
77
        switch (launch_dir)
78
        {
79
            case "down":
80
                vspeed = -launch_speed;
81
                if (y <= ystart)
82
                    instance_destroy();
83
                break;
84
            case "right":
85
                hspeed = -launch_speed;
86
                if (x <= xstart)
87
                    instance_destroy();
88
                break;
89
            case "up":
90
                vspeed = launch_speed;
91
                if (y >= ystart)
92
                    instance_destroy();
93
                break;
94
            case "left":
95
                hspeed = -launch_speed;
96
                if (x <= xstart)
97
                    instance_destroy();
98
                break;
99
        }
100
        break;
101
}