Undertale Yellow script viewer

← back to main script listing

gml_Object_obj_mail_whale_Step_0

(view raw script w/o annotations or w/e)
1
palette_index = obj_pl.palette_index
2
shader_on = obj_pl.shader_on
3
switch scene
4
{
5
    case 1:
6
        y += fly_speed
7
        if (y > 0)
8
            mail_whale_shadow_alpha += 0.025
9
        if (y > mail_whale_y_target && fly_speed > 0)
10
            fly_speed -= 0.2
11
        else if (fly_speed == 0)
12
            scene = 2
13
        break
14
    case 2:
15
        if (global.player_can_travel == true)
16
        {
17
            scr_text
scr_text

function scr_text() //gml_Script_scr_text { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue) }
()
18
            with (msg)
19
            {
20
                portrait = false
21
                message[0] = "* Hello -  greetings - hip hip#  hooray!"
22
                message[1] = "* What can I do for you today?"
23
                ch_msg = 1
24
                ch[1] = "Mail"
25
                ch[2] = "Travel"
26
                if (outcome == 1)
27
                    other.mail_whale_mail_noloop = true
28
                if (outcome == 2)
29
                    other.mail_whale_travel_noloop = true
30
                if other.mail_whale_mail_noloop
31
                {
32
                    message[2] = "* You have a watch? If you don't,#  that's fine!"
33
                    message[3] = "* Cause you know what time it is?#  Mail time! Mail time! "
34
                    if ds_list_empty(global.mail_unclaimed_list)
35
                    {
36
                        message[4] = "* Do you have mail to claim?"
37
                        message[5] = "* Let's take a look. You don't!#  What a shame."
38
                        message[6] = "* If you want to check again,#  just ring the bell!"
39
                        message[7] = "* Until we meet again; I bid you#  farewell!"
40
                        other.scene++
41
                    }
42
                    else
43
                    {
44
                        portrait = false
45
                        message[4] = "* (You received mail!)"
46
                        message[5] = "* I truly hope you like your#  mail!"
47
                        message[6] = "* As for me, I must set sail!"
48
                        if (message_current == 4)
49
                        {
50
                            audio_play_sound(snd_success, 1, 0)
51
                            scr_mail_claim
scr_mail_claim

function scr_mail_claim() //gml_Script_scr_mail_claim { var old_list = global.mail_unclaimed_list for (var i = 0; i < ds_list_size(old_list); i++) { scr_mail_add(ds_list_find_value(old_list, i)) global.mail_count += 1 } ds_list_clear(global.mail_unclaimed_list) }
()
52
                            other.scene = 3
53
                        }
54
                    }
55
                }
56
                if other.mail_whale_travel_noloop
57
                {
58
                    message[2] = "* Where in the world would you#  like to fly?"
59
                    message[3] = "* Just choose the place and the#  UGPS sign!"
60
                    global.cutscene = true
61
                    other.scene = 4
62
                }
63
            }
64
        }
65
        else
66
        {
67
            scr_text
scr_text

function scr_text() //gml_Script_scr_text { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue) }
()
68
            if ds_list_empty(global.mail_unclaimed_list)
69
            {
70
                with (msg)
71
                {
72
                    portrait = false
73
                    message[0] = "* Hello again, friend! Do you#  have mail to claim?"
74
                    message[1] = "* Let's take a look. You don't!#  What a shame."
75
                    message[2] = "* If you want to check again,#  just ring the bell!"
76
                    message[3] = "* Until we meet again; I bid you#  farewell!"
77
                }
78
                scene++
79
            }
80
            else
81
            {
82
                with (msg)
83
                {
84
                    portrait = false
85
                    message[0] = "* You have a watch? If you don't,#  that's fine!"
86
                    message[1] = "* Cause you know what time it is?#  Mail time! Mail time! "
87
                    message[2] = "* (You received mail!)"
88
                    message[3] = "* I truly hope you like your#  mail!"
89
                    message[4] = "* As for me, I must set sail!"
90
                    if (message_current == 2)
91
                    {
92
                        audio_play_sound(snd_success, 1, 0)
93
                        scr_mail_claim
scr_mail_claim

function scr_mail_claim() //gml_Script_scr_mail_claim { var old_list = global.mail_unclaimed_list for (var i = 0; i < ds_list_size(old_list); i++) { scr_mail_add(ds_list_find_value(old_list, i)) global.mail_count += 1 } ds_list_clear(global.mail_unclaimed_list) }
()
94
                        other.scene++
95
                    }
96
                }
97
            }
98
        }
99
        break
100
    case 3:
101
        if instance_exists(obj_dialogue)
102
            return;
103
        y -= fly_speed
104
        mail_whale_shadow_alpha -= 0.05
105
        if (y > ystart && fly_speed < 2)
106
            fly_speed += 0.2
107
        if (y <= ystart)
108
        {
109
            instance_destroy()
110
            scr_cutscene_end
scr_cutscene_end

function scr_cutscene_end() //gml_Script_scr_cutscene_end { global.cutscene = false obj_pl.alarm[0] = 1 }
()
111
            instance_destroy()
112
        }
113
        break
114
    case 4:
115
        if instance_exists(obj_dialogue)
116
            return;
117
        instance_create(0, 0, obj_fast_travel_menu)
118
        scene++
119
        break
120
    case 5:
121
        if instance_exists(obj_fast_travel_menu)
122
            return;
123
        if (global.fast_travel_point == "None")
124
        {
125
            scr_text
scr_text

function scr_text() //gml_Script_scr_text { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue) }
()
126
            with (msg)
127
                message[0] = "* OOF."
128
            scene = 3
129
        }
130
        else
131
        {
132
            scr_text
scr_text

function scr_text() //gml_Script_scr_text { if (!instance_exists(obj_dialogue)) msg = instance_create(x, y, obj_dialogue) }
()
133
            with (msg)
134
            {
135
                message[0] = "* A very fine choice, I cannot#  scoff!"
136
                message[1] = "* Hop into my basket and we'll#  takeoff!"
137
            }
138
            scene = 6
139
        }
140
        break
141
    case 6:
142
        if global.dialogue_open
143
            return;
144
        depth = (-y) - 10
145
        if (!instance_exists(obj_player_npc))
146
            instance_create(obj_pl.x, obj_pl.y, obj_player_npc)
147
        else
148
        {
149
            var yy = y + 40
150
            if (room == rm_steamworks_32)
151
                yy = y + 20
152
            cutscene_npc_walk(1168, x, yy, 2, "nothing", "up")
153
        }
154
        break
155
    case 7:
156
        cutscene_wait(0.5)
157
        break
158
    case 8:
159
        audio_play_sound(snd_playerjump, 1, 0)
160
        with (obj_doorway)
161
            instance_destroy()
162
        obj_player_npc.image_alpha = 0
163
        sprite_index = spr_mail_whale_basket_clover_yellow
164
        cutscene_advance()
165
        break
166
    case 9:
167
        cutscene_wait(1)
168
        break
169
    case 10:
170
        depth = (-room_height) + 1
171
        y -= fly_speed
172
        mail_whale_shadow_alpha -= 0.05
173
        if (y > -40 && fly_speed < 2)
174
            fly_speed += 0.2
175
        if (y <= (camera_get_view_y(view_camera[0]) - 40))
176
            event_user(1)
177
        break
178
}