Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_hotland_complex_elevator_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
        image_speed = 1;
7
        if (image_index >= (image_number - 1))
8
        {
9
            image_index = image_number - 1;
10
            image_speed = 0;
11
            scene++;
12
        }
13
        break;
14
    case 1:
15
        obj_player_npc.image_alpha += 0.2;
16
        if (obj_player_npc.image_alpha >= 1)
17
            scene++;
18
        break;
19
    case 2:
20
        if (cutscene_npc_walk(1168, obj_player_npc.x, 250, 3, "y", "down"))
21
        {
22
            if (global.party_member != -4)
23
                scene = 3;
24
            else
25
                scene = 5;
26
        }
27
        break;
28
    case 3:
29
        obj_martlet_npc.image_alpha += 0.2;
30
        if (obj_martlet_npc.image_alpha >= 1)
31
            scene++;
32
        break;
33
    case 4:
34
        cutscene_npc_walk(1164, obj_player_npc.x, 230, 3, "y", "down");
35
        break;
36
    case 5:
37
        cutscene_actor_into_follower();
38
        break;
39
    case 6:
40
        image_speed = -1;
41
        if (image_index <= 1)
42
        {
43
            image_index = 0;
44
            image_speed = 0;
45
            scene++;
46
        }
47
        break;
48
    case 7:
49
        instance_destroy(obj_player_npc);
50
        scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
51
        scene = 8;
52
        break;
53
}
54
switch (scene)
55
{
56
    case 8:
57
        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))
58
        {
59
            if (global.hotland_flag[1] < 1 && global.hotland_flag[9] < 3)
60
            {
61
                scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
62
                with (msg)
63
                {
64
                    if (global.route == 3)
65
                        message[0] = "* (This is the wrong way.)";
66
                    else
67
                        message[0] = "* (The elevator is in use.)";
68
                }
69
            }
70
            else
71
            {
72
                image_speed = 1;
73
                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; }
();
74
                cutscene_advance();
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, 378, 200, 3, "x", "down"))
94
        {
95
            if (global.party_member != -4)
96
                scene = 12;
97
            else
98
                scene = 13;
99
        }
100
        if (obj_player_npc.y < 235 && obj_player_npc.image_alpha > 0)
101
            obj_player_npc.image_alpha -= 0.2;
102
        break;
103
    case 12:
104
        cutscene_npc_walk(1164, 378, 200, 3, "x", "down");
105
        if (obj_martlet_npc.y < 235 && obj_martlet_npc.image_alpha > 0)
106
            obj_martlet_npc.image_alpha -= 0.2;
107
        break;
108
    case 13:
109
        cutscene_change_room(259, 160, 220, 0.1);
110
        break;
111
}
112
if (image_index == 0 && image_speed == 1)
113
{
114
    if (!audio_is_playing(snd_sliding_door_open))
115
        audio_play_sound(snd_sliding_door_open, 1, 0);
116
}