Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_raft_flowey_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 0:
6
        if (keyboard_multicheck_pressed(0) && scr_interact
scr_interact

function scr_interact() { if (distance_to_object(obj_pl) < 20 && obj_pl.state == scr_normal_state) { var pl_dir = obj_pl.direction; var pl_x = 0; var pl_y = 0; var check_distance_x = 0; var check_distance_y = 0; switch (pl_dir) { case 0: pl_x = obj_pl.bbox_right; pl_y = obj_pl.bbox_top + 1; check_distance_x = 20; break; case 180: pl_x = obj_pl.bbox_left; pl_y = obj_pl.bbox_top + 1; check_distance_x = -20; break; case 90: pl_x = obj_pl.x; pl_y = obj_pl.bbox_top; check_distance_y = -20; break; case 270: pl_x = obj_pl.x; pl_y = obj_pl.bbox_bottom; check_distance_y = 20; break; } if (collision_line_first(pl_x, pl_y, pl_x + check_distance_x, pl_y + check_distance_y, id, false, false)) return true; } }
())
7
        {
8
            scr_cutscene_start
scr_cutscene_start

function scr_cutscene_start() { global.cutscene = true; obj_pl.state = scr_frozen_state; obj_pl.image_index = 0; obj_pl.image_speed = 0; }
();
9
            scene++;
10
        }
11
        break;
12
    case 1:
13
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
14
        with (msg)
15
        {
16
            message[0] = "* (Get on?)";
17
            ch_msg = 0;
18
            ch[1] = "Yes";
19
            ch[2] = "No";
20
            if (outcome == 1)
21
            {
22
                other.actor_clover = instance_create(obj_pl.x, obj_pl.y, obj_player_npc);
23
                other.scene = 2;
24
            }
25
            if (outcome == 2)
26
            {
27
                other.scene = 0;
28
                scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
29
            }
30
        }
31
        break;
32
    case 2:
33
        cutscene_npc_walk(actor_clover, 1140, 300, 3, "x", "up");
34
        break;
35
    case 3:
36
        cutscene_wait(0.25);
37
        break;
38
    case 4:
39
        with (actor_clover)
40
        {
41
            audio_play_sound(snd_playerjump, 1, 0);
42
            action_sprite = true;
43
            jump_noloop = false;
44
            image_speed = 0;
45
            sprite_index = spr_pl_run_up;
46
            image_index = 5;
47
            vspeed = -2;
48
        }
49
        cutscene_advance();
50
        break;
51
    case 5:
52
        with (actor_clover)
53
        {
54
            if (y < 265)
55
                jump_noloop = true;
56
            if (jump_noloop == true)
57
            {
58
                vspeed += 0.5;
59
                if (vspeed >= 1.5)
60
                {
61
                    action_sprite = false;
62
                    npc_direction = "up";
63
                    vspeed = 0;
64
                    other.scene++;
65
                }
66
            }
67
        }
68
        break;
69
    case 6:
70
        cutscene_wait(1.5);
71
        break;
72
    case 7:
73
        with (obj_raft_flowey)
74
        {
75
            if (vspeed > -1)
76
                vspeed -= 0.025;
77
            if (vspeed < 0.5)
78
            {
79
                if (sprite_index != spr_ava_vertical)
80
                    sprite_index = spr_ava_vertical;
81
            }
82
            obj_player_npc.vspeed = vspeed;
83
        }
84
        if (obj_player_npc.y < 120)
85
        {
86
            obj_raft_flowey.vspeed = 0;
87
            obj_player_npc.vspeed = 0;
88
            cutscene_camera_freeze();
89
        }
90
        break;
91
    case 8:
92
        if (cutscene_wait(1.5))
93
            scr_audio_fade_out
scr_audio_fade_out

function scr_audio_fade_out(arg0, arg1) { var snd = arg0; var fade_len = arg1; if (!audio_is_playing(snd)) return false; audio_sound_gain(snd, 0, fade_len); if (instance_exists(obj_audio_fade_helper)) { with (obj_audio_fade_helper) { if (audio_to_fade == snd) return false; } } with (instance_create(0, 0, obj_audio_fade_helper)) audio_to_fade = snd; }
(obj_radio.bgm, 1000);
94
        break;
95
    case 9:
96
        depth = obj_player_npc.depth + 1;
97
        layer_y("overlay", layer_get_y("overlay") + 1);
98
        if (layer_get_y("overlay") >= 0)
99
            scene++;
100
        break;
101
    case 10:
102
        cutscene_wait(1.5);
103
        break;
104
    case 11:
105
        if (vspeed < 0.5)
106
            vspeed += 0.025;
107
        if (obj_player_npc.y >= (camera_get_view_y(view_camera[0]) + 210))
108
        {
109
            vspeed = 0;
110
            cutscene_advance();
111
        }
112
        obj_player_npc.vspeed = vspeed;
113
        break;
114
    case 12:
115
        cutscene_wait(1.5);
116
        break;
117
    case 13:
118
        image_alpha = 0;
119
        script_execute(scr_enemy_defragment);
120
        if (!audio_is_playing(snd_monster_damage_death))
121
            audio_play_sound(snd_monster_damage_death, 20, 0);
122
        scene++;
123
        break;
124
    case 14:
125
        cutscene_wait(1.5);
126
        var x_target = camera_get_view_x(view_camera[0]) + 160;
127
        var y_target = camera_get_view_y(view_camera[0]) + 210;
128
        obj_player_npc.x = lerp(obj_player_npc.x, x_target, 0.05);
129
        obj_player_npc.y = lerp(obj_player_npc.y, y_target, 0.05);
130
        break;
131
    case 15:
132
        if (yellow_overlay_alpha < 1)
133
            yellow_overlay_alpha += 0.05;
134
        else
135
            cutscene_advance();
136
        break;
137
    case 16:
138
        cutscene_wait(0.5);
139
        break;
140
    case 17:
141
        instance_destroy(obj_flowey_battle_ow_controller);
142
        room = rm_battle_flowey_phase_2;
143
        texture_flush("BattleHotlandFloweyPhase1");
144
        break;
145
}