Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_battle_enemy_attack_goosic_disk_Step_0

(view raw script w/o annotations or w/e)
1
if (live_call())
2
    return global.live_result;
3
switch (scene)
4
{
5
    case -1:
6
        disc_yoffset -= abs(vsp);
7
        y += vsp;
8
        if (disc_yoffset <= 0)
9
        {
10
            vsp = lerp(vsp, 0, 0.15);
11
            if (abs(vsp) < 0.1)
12
            {
13
                vsp = 0;
14
                scene = 1;
15
            }
16
        }
17
        break;
18
    case 1:
19
        cutscene_wait(0.5);
20
        break;
21
    case 2:
22
        if (spin_speed < 20)
23
            spin_speed += 1;
24
        else
25
            cutscene_advance();
26
        break;
27
    case 3:
28
        var soul_dir = point_direction(x, y, obj_heart_battle_fighting_parent.x, obj_heart_battle_fighting_parent.y);
29
        if (launch_timer > 0)
30
            launch_timer -= 1;
31
        else if (direction > floor(soul_dir - spin_speed) && direction < floor(soul_dir + spin_speed))
32
            slow_down_noloop = true;
33
        if (slow_down_noloop == true)
34
        {
35
            spin_speed = lerp(spin_speed, 0, 0.75);
36
            if (spin_speed < 0.1)
37
            {
38
                spin_speed = 0;
39
                scene++;
40
            }
41
        }
42
        break;
43
    case 4:
44
        cutscene_wait(0.2);
45
        break;
46
    case 5:
47
        speed = lerp(speed, 14, 0.5);
48
        if (cutscene_wait(0.7))
49
        {
50
            launch_timer = launch_timer_max;
51
            slow_down_noloop = false;
52
            scene = 1;
53
            cutscene_advance(2);
54
        }
55
        break;
56
}
57
direction -= spin_speed;
58
image_angle = direction;
59
if (scene != 4 && scene != -1)
60
    speed = lerp(speed, 0, 0.3);
61
var alpha_new;
62
if (scene == 2 || scene == 3)
63
    alpha_new = 1;
64
else
65
    alpha_new = 0;
66
arrow_alpha = lerp(arrow_alpha, alpha_new, 0.2);