Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_steamworks_32_elevator_outside_Step_0

(view raw script w/o annotations or w/e)
1
switch (scene)
2
{
3
    case 0:
4
        if (image_speed == 0 && image_index == 0)
5
        {
6
            image_speed = 1;
7
            audio_play_sound(snd_sliding_door_open, 1, 0);
8
        }
9
        image_speed = 1;
10
        if (image_index >= (image_number - 1))
11
        {
12
            image_index = image_number - 1;
13
            image_speed = 0;
14
            scene++;
15
        }
16
        break;
17
    case 1:
18
        obj_player_npc.image_alpha += 0.2;
19
        if (obj_player_npc.image_alpha >= 1)
20
            scene++;
21
        break;
22
    case 2:
23
        if (cutscene_npc_walk(1168, 800, 290, 3, "y", "left"))
24
        {
25
            if (global.party_member != -4)
26
                scene = 3;
27
            else
28
                scene = 5;
29
        }
30
        break;
31
    case 3:
32
        actor_follower.image_alpha += 0.2;
33
        if (actor_follower.image_alpha >= 1)
34
            scene++;
35
        break;
36
    case 4:
37
        cutscene_npc_walk(actor_follower, 820, 290, 3, "y", "left");
38
        break;
39
    case 5:
40
        obj_pl.direction = 180;
41
        cutscene_actor_into_follower();
42
        break;
43
    case 6:
44
        image_speed = -1;
45
        if (image_index <= 1)
46
        {
47
            image_index = 0;
48
            image_speed = 0;
49
            scene++;
50
        }
51
        break;
52
    case 7:
53
        instance_destroy(obj_player_npc);
54
        scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
55
        scene = 8;
56
        break;
57
}
58
switch (scene)
59
{
60
    case 8:
61
        if (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; } }
() && keyboard_multicheck_pressed(0))
62
        {
63
            if (global.route == 2 || global.sworks_flag[41] == 1 || global.sworks_flag[61] == 1)
64
            {
65
                audio_play_sound(snd_sliding_door_open, 1, 0);
66
                image_speed = 1;
67
                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; }
();
68
                cutscene_advance();
69
            }
70
            else
71
            {
72
                scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
73
                with (msg)
74
                    message[0] = "* (The elevator is#  unresponsive.)";
75
            }
76
        }
77
        break;
78
    case 9:
79
        if (image_index > (image_number - 1))
80
        {
81
            image_speed = 0;
82
            image_index = image_number - 1;
83
            cutscene_advance();
84
        }
85
        break;
86
    case 10:
87
        if (global.party_member != -4)
88
            scr_follower_into_actor
scr_follower_into_actor

function scr_follower_into_actor() { if (global.party_member == -4) return false; actor_follower = instance_create(global.party_member.x, global.party_member.y, global.party_member.npc_actor); with (global.party_member) { switch (sprite_index) { case up_sprite: case up_sprite_idle: case up_sprite_run: other.actor_follower.npc_direction = "up"; other.actor_follower.sprite_index = other.actor_follower.up_sprite; break; case down_sprite: case down_sprite_idle: case down_sprite_run: other.actor_follower.npc_direction = "down"; other.actor_follower.sprite_index = other.actor_follower.down_sprite; break; case left_sprite: case left_sprite_idle: case left_sprite_run: other.actor_follower.npc_direction = "left"; other.actor_follower.sprite_index = other.actor_follower.left_sprite; break; case right_sprite: case right_sprite_idle: case right_sprite_run: other.actor_follower.sprite_index = other.actor_follower.right_sprite; break; } instance_destroy(); } return true; }
();
89
        instance_create(obj_pl.x, obj_pl.y, obj_player_npc);
90
        cutscene_advance();
91
        break;
92
    case 11:
93
        if (cutscene_npc_walk(1168, 840, 260, 3, "x", "up"))
94
        {
95
            if (global.party_member != -4)
96
                scene = 12;
97
            else
98
                scene = 13;
99
        }
100
        break;
101
    case 12:
102
        cutscene_npc_walk(actor_follower, 840, 260, 3, "x", "up");
103
        break;
104
    case 13:
105
        cutscene_change_room(209, 160, 220, 0.1);
106
        break;
107
}
108
if (scene > 10)
109
{
110
    if (obj_player_npc.y < 275 && obj_player_npc.image_alpha > 0)
111
        obj_player_npc.image_alpha -= 0.2;
112
    if (global.party_member != -4 && actor_follower.y < 275 && actor_follower.image_alpha > 0)
113
        actor_follower.image_alpha -= 0.2;
114
}