Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_battle_enemy_attack_ceroba_staff_1_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 soul = 2979;
5
if (is_active == false)
6
    exit;
7
switch (scene)
8
{
9
    case 0:
10
        var xtarget = xstart + lengthdir_x(40, 90 + (45 * image_xscale));
11
        var ytarget = ystart + lengthdir_y(40, 90 + (45 * image_xscale));
12
        x = lerp(x, xtarget, 0.15);
13
        y = lerp(y, ytarget, 0.15);
14
        if (abs(x - xtarget) < 0.5 && abs(y - ytarget) < 0.1)
15
        {
16
            xstart = x;
17
            ystart = y;
18
            scene++;
19
        }
20
        break;
21
    case 1:
22
        if (cutscene_wait(0.15))
23
            audio_play_sound(snd_ceroba_staff_lock, 1, 0);
24
        break;
25
    case 2:
26
        var tardist = point_distance(xstart, ystart, battle_box.x, battle_box.y);
27
        var tardir = point_direction(xstart, ystart, battle_box.x, battle_box.y);
28
        var xtarget = xstart + lengthdir_x(tardist, tardir);
29
        var ytarget = ystart + lengthdir_y(tardist, tardir);
30
        x = lerp(x, xtarget, 0.3);
31
        y = lerp(y, ytarget, 0.3);
32
        if (abs(x - xtarget) < 0.1 && abs(y - ytarget) < 0.1)
33
            scene++;
34
        break;
35
    case 3:
36
        sprite_index = -4;
37
        var orange = instance_create_depth(x, y, depth, obj_battle_enemy_attack_ceroba_staff_orange);
38
        orange.image_xscale = image_xscale;
39
        orange.spawner = id;
40
        audio_play_sound(snd_undertale_flash, 1, 0);
41
        scene++;
42
        break;
43
    case 4:
44
        cutscene_wait(0.15);
45
        break;
46
    case 5:
47
        image_angle += (rot_speed * image_xscale);
48
        if (rot_speed < 5)
49
            rot_speed = lerp(rot_speed, 15, 0.05);
50
        cutscene_wait(obj_battle_enemy_attack_ceroba_phase_1_staff.rot_time);
51
        break;
52
    case 6:
53
        image_angle += (rot_speed * image_xscale);
54
        if (rot_speed > 0.1)
55
            rot_speed = lerp(rot_speed, 0, 0.15);
56
        else
57
            scene++;
58
        break;
59
    case 7:
60
        sprite_index = spr_ceroba_staff_attack;
61
        image_index = 2;
62
        image_speed = 1;
63
        instance_destroy(obj_battle_enemy_attack_ceroba_staff_orange);
64
        audio_play_sound(snd_undertale_flash, 1, 0);
65
        scene++;
66
        break;
67
    case 8:
68
        if (image_index >= (image_number - 1))
69
        {
70
            image_index = image_number - 1;
71
            image_speed = 0;
72
            scene++;
73
        }
74
        break;
75
    case 9:
76
        if (image_xscale == -1)
77
        {
78
            scene++;
79
        }
80
        else
81
        {
82
            var xx = battle_box.x - 160;
83
            if (obj_heart_battle_fighting_parent.x < battle_box.x)
84
                xx = battle_box.x + 160;
85
            var spray_spawner = instance_create(xx, soul.y, obj_battle_enemy_attack_ceroba_flower_spray_spawner_pacifist);
86
            spray_spawner.bullet_number[0] = 2;
87
            spray_spawner.bullet_number[1] = 3;
88
            spray_spawner.bullet_speed[0] = 3;
89
            spray_spawner.target_x = soul.x;
90
            spray_spawner.target_y = soul.y;
91
            scene++;
92
        }
93
        break;
94
    case 10:
95
        if (!instance_exists(obj_battle_enemy_attack_ceroba_flower_spray_spawner_pacifist))
96
            cutscene_wait(1.5);
97
        break;
98
    case 11:
99
        instance_destroy(obj_battle_enemy_attack_ceroba_phase_1_staff);
100
        break;
101
}