Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_battle_enemy_attack_guardener_arm_half_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 >= 320)
13
                {
14
                    y = 320;
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 >= 320)
24
                {
25
                    x = 320;
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 <= 320)
35
                {
36
                    y = 320;
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 <= 320)
46
                {
47
                    x = 320;
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 zap = instance_create_depth(x, y, depth - 1, obj_battle_enemy_attack_guardener_arm_zap);
59
        zap.image_angle = image_angle;
60
        sprite_index = spr_attack_guardener_arm_jam;
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
            cutscene_wait(arm_return);
72
        break;
73
    case 3:
74
        switch (launch_dir)
75
        {
76
            case "down":
77
                vspeed = -launch_speed;
78
                if (y <= ystart)
79
                    instance_destroy();
80
                break;
81
            case "right":
82
                hspeed = -launch_speed;
83
                if (x <= xstart)
84
                    instance_destroy();
85
                break;
86
            case "up":
87
                vspeed = launch_speed;
88
                if (y >= ystart)
89
                    instance_destroy();
90
                break;
91
            case "left":
92
                hspeed = -launch_speed;
93
                if (x <= xstart)
94
                    instance_destroy();
95
                break;
96
        }
97
        break;
98
}