Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_mail_station_steamworks_Step_0

(view raw script w/o annotations or w/e)
1
if (live_call())
2
    return global.live_result;
3
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; } }
() && scene == 0)
4
{
5
    if (global.party_member != -4)
6
    {
7
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
8
        with (msg)
9
        {
10
            sndfnt = 108;
11
            message[0] = "* Watch it, Clover!";
12
            message[1] = "* We don't want to alert#  any outsiders.";
13
            message[2] = "* Especially workers#  under Asgore like the#  UGPS.";
14
            message[3] = "* Your mail will have to#  wait.";
15
            prt[0] = 377;
16
            prt[1] = 370;
17
            prt[2] = 377;
18
            prt[3] = 370;
19
        }
20
    }
21
    else if (room == rm_steamworks_24 && global.route == 2 && global.sworks_flag[14] == 1 && global.sworks_flag[15] == 0)
22
    {
23
        obj_pl.direction = 0;
24
        scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
25
        with (msg)
26
        {
27
            sndfnt = 108;
28
            message[0] = "* Watch it, Clover!";
29
            message[1] = "* We don't want to alert any#  outsiders.";
30
            message[2] = "* Especially workers under#  Asgore like the UGPS.";
31
            message[3] = "* Your mail will have to wait.";
32
        }
33
    }
34
    else
35
    {
36
        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; }
();
37
        audio_play_sound(bell_sound, 1, 0);
38
        scene++;
39
    }
40
}
41
if (is_active == false)
42
{
43
    if (distance_to_object(obj_pl) < 40)
44
    {
45
        is_active = true;
46
        image_index = 0;
47
        image_speed = 1;
48
    }
49
    else if (image_index <= 0.5)
50
    {
51
        image_speed = 0;
52
        image_index = 0;
53
    }
54
}
55
else if (is_active == true)
56
{
57
    if (distance_to_object(obj_pl) > 50)
58
    {
59
        is_active = false;
60
        image_index = 7;
61
        image_speed = -1;
62
    }
63
    else if (image_index >= (image_number - 1))
64
    {
65
        image_speed = 0;
66
        image_index = image_number - 1;
67
    }
68
}
69
switch (scene)
70
{
71
    case 1:
72
        if (global.geno_complete[2])
73
        {
74
            scr_text
scr_text

function scr_text() { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue); }
();
75
            with (msg)
76
                message[0] = "* But nobody came.";
77
            if (!global.dialogue_open)
78
            {
79
                scene = 0;
80
                scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() { global.cutscene = false; obj_pl.alarm[0] = 1; }
();
81
            }
82
            exit;
83
        }
84
        var x_distance = 64;
85
        instance_create(obj_pl.x + x_distance, camera_get_view_y(view_camera[0]) - 40, obj_mail_whale);
86
        scene = 0;
87
        break;
88
}