Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_npc_complex_cursor_Step_0

(view raw script w/o annotations or w/e)
1
depth = (-y)
2
interact = 0
3
if (keyboard_multicheck_pressed(0) && scr_interact
scr_interact

function scr_interact() //gml_Script_scr_interact { if (distance_to_object(obj_pl) < 20 && obj_pl.state == gml_Script_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; } }
() == true)
4
{
5
    if (global.hotland_flag[1] > 0 && global.party_member != -4)
6
    {
7
        scr_text
scr_text

function scr_text() //gml_Script_scr_text { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue) }
()
8
        with (msg)
9
        {
10
            sndfnt = 102
11
            message[0] = "* (We need to stay#  focused.)"
12
            message[1] = "* (Let's not bother#  others with our#  problems.)"
13
            prt[0] = 321
14
            prt[1] = 329
15
        }
16
    }
17
    else
18
        interact = 1
19
}
20
if (sprite_index == spr_hotland_mr_cursor)
21
{
22
    if (instance_exists(obj_dialogue) && is_talking == true)
23
    {
24
        if (obj_dialogue.cutoff == string_length(obj_dialogue.message[obj_dialogue.message_current]))
25
        {
26
            image_speed = 0
27
            image_index = 0
28
        }
29
        else
30
            image_speed = 0.2
31
    }
32
    else
33
    {
34
        image_speed = 0
35
        is_talking = false
36
    }
37
}
38
if (ds_map_find_value(global.npc_map, npc_id) != npc_flag)
39
    ds_map_replace(global.npc_map, npc_id, npc_flag)
40
switch scene
41
{
42
    case 0:
43
        if interact
44
            scene = 1
45
        break
46
    case 1:
47
        is_talking = 1
48
        switch npc_flag
49
        {
50
            case 0:
51
                scr_cutscene_start
scr_cutscene_start

function scr_cutscene_start() //gml_Script_scr_cutscene_start { global.cutscene = true obj_pl.state = gml_Script_scr_frozen_state obj_pl.image_index = 0 obj_pl.image_speed = 0 }
()
52
                cutscene_dialogue()
53
                with (msg)
54
                {
55
                    message[0] = "* I'm usually a chill dude but#  today has not been my day. Let#  me tell you:"
56
                    message[1] = "* First, the attendant needs my#  name so she can save me a room."
57
                    message[2] = "* \"Mr. Cursor,\" I reply. She#  steps back and goes \"Like some#  kind of warlock?\""
58
                    message[3] = "* I say \"What? Warlock?\" with#  visible confusion."
59
                    message[4] = "* \"I like to roll that ten-sided#  die as much as the next guy but#  no, I'm Mr. CURSOR.\""
60
                    message[5] = "* Turns out, she thought I said#  \"Curser\" like I was gonna hex#  the joint!"
61
                    message[6] = "* Really didn't need her input#  on my iconic name but whatever.#  "
62
                    message[7] = "* So then, I walk over to the#  elevator to head back to New#  Home."
63
                    message[8] = "* It's busy, so I wait, and I#  wait, and I wait, and LITERALLY#  THREE HOURS PASS!"
64
                    message[9] = "* Next thing I know, the#  elevator opens but OOPS!!"
65
                    message[10] = "* Mr. Cursor has a tendency to#  timeout and fall asleep every#  five minutes!! "
66
                    message[11] = "* SO I MISSED MY ONE CHANCE!!!"
67
                    message[12] = "* And now I'm stuck here and#  don't know WHEN I'LL EVER GET#  TO"
68
                    if (message_current == 12)
69
                    {
70
                        skippable = false
71
                        message_timer = 15
72
                    }
73
                }
74
                break
75
            case 1:
76
                scene = 0
77
                scr_text
scr_text

function scr_text() //gml_Script_scr_text { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue) }
()
78
                with (msg)
79
                {
80
                    message[0] = "* Sorry about that... I have to#  slow down and take a breather#  when things get heated."
81
                    message[1] = "* What was I talking about?"
82
                    message[2] = "* Ugh, my memory sucks."
83
                }
84
                other.npc_flag += 1
85
                break
86
            case 2:
87
                scene = 0
88
                scr_text
scr_text

function scr_text() //gml_Script_scr_text { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue) }
()
89
                with (msg)
90
                {
91
                    message[0] = "* Yo, I monitored the situation#  further and it just clicked#  with me!"
92
                    message[1] = "* What if I tried to ram my way#  into the elevator by force?"
93
                    message[2] = "* Like just charge straight into#  the doors!"
94
                    message[3] = "* Eh, well... on second thought,#  if I tried that I might slip a#  disk..."
95
                }
96
                other.npc_flag += 1
97
                break
98
            case 3:
99
                scene = 0
100
                scr_text
scr_text

function scr_text() //gml_Script_scr_text { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue) }
()
101
                with (msg)
102
                    message[0] = "* You think this place has free#  Wi-Fi? I'm uh, pretty bored."
103
                break
104
        }
105
106
        break
107
    case 2:
108
        is_talking = false
109
        audio_sound_gain(obj_radio.current_song, 0, 500)
110
        sprite_index = spr_hotland_mr_cursor_loading
111
        image_speed = 1
112
        scene++
113
        break
114
    case 3:
115
        cutscene_wait(2.5)
116
        break
117
    case 4:
118
        audio_sound_gain(obj_radio.current_song, 1, 500)
119
        sprite_index = spr_hotland_mr_cursor
120
        image_index = 0
121
        image_speed = 0
122
        scene++
123
        break
124
    case 5:
125
        cutscene_dialogue()
126
        is_talking = true
127
        with (msg)
128
            message[0] = "* GO HOME!!!"
129
        break
130
    case 6:
131
        scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() //gml_Script_scr_cutscene_end { global.cutscene = false obj_pl.alarm[0] = 1 }
()
132
        npc_flag += 1
133
        scene = 0
134
        break
135
}