Deltarune (Chapter 5) script viewer

← back to main script listing

gml_Object_obj_room_castle_front_race_Create_0

related scripts: Create_0 Step_0

(view raw script w/o annotations or w/e)
1
var names = ["mauswheel", "winglade", "poppup"];
2
var sprites = [294, 6778, 5711];
3
var speed_range = [new Vector2(6, 11), new Vector2(5, 9), new Vector2(3, 7)];
4
if (
scr_flag_get
scr_flag_get

function
scr_flag_get(arg0)
{ return global.flag[arg0]; } function scr_flag_name_get(arg0) { var v = global.flagname[arg0]; return is_undefined(v) ? "*unknown flag*" : v; } function scr_flag_get_ext(arg0, arg1, arg2 = 1) { if (arg1 < 0)
scr_flag_get(arg0);
else return scr_get_bitmask_value(global.flag[arg0], arg1, arg2); }
(462 cars_hit)
< 3 &&
scr_flag_get
scr_flag_get

function
scr_flag_get(arg0)
{ return global.flag[arg0]; } function scr_flag_name_get(arg0) { var v = global.flagname[arg0]; return is_undefined(v) ? "*unknown flag*" : v; } function scr_flag_get_ext(arg0, arg1, arg2 = 1) { if (arg1 < 0)
scr_flag_get(arg0);
else return scr_get_bitmask_value(global.flag[arg0], arg1, arg2); }
(465 car_part_completed)
== 1)
5
{
6
    array_insert(names, 2, "car");
7
    array_insert(sprites, 2, 5609);
8
    array_insert(speed_range, 2, new Vector2(4, 13));
9
}
10
var bg = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(208, 329, spr_castle_front_racetrack);
11
bg.depth = 989990;
12
con = -1;
13
_racers = [];
14
_winner = -4;
15
_pippins_marker = -4;
16
for (var i = 0; i < array_length(sprites); i += 1)
17
{
18
    var racer = instance_create(560, 500, obj_room_castle_front_racer);
19
    var racer_speed = speed_range[i];
20
    var racer_name = names[i];
21
    racer.init(sprites[i], i * 20, id, racer_speed, racer_name);
22
    _racers[array_length(_racers)] = racer;
23
    racer.start_race();
24
}
25
if (scr_enemyrecruitcheck("sha"))
26
{
27
    _shadowmen_state = "default";
28
    _shadowguy_marker_left = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(200, 506, spr_shadowman_cheer);
29
    with (_shadowguy_marker_left)
30
    {
31
        
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
32
        image_speed = 0.2;
33
    }
34
    _shadowguy_marker_right = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(_shadowguy_marker_left.x + 60, _shadowguy_marker_left.y, spr_shadowman_idle_a_right);
35
    _shadowguy_marker_right.depth = _shadowguy_marker_left.depth - 10;
36
    with (_shadowguy_marker_right)
37
        image_speed = 0.2;
38
    _shadowmen_readable = instance_create(_shadowguy_marker_left.x + 20, _shadowguy_marker_left.y + 50, obj_readable_room1);
39
    with (_shadowmen_readable)
40
    {
41
        extflag = "shadowmen";
42
        image_xscale = 6;
43
        image_yscale = 3;
44
    }
45
    _shadowmen_block = instance_create(_shadowguy_marker_left.x + 20, _shadowguy_marker_left.y + 64, obj_solidblockDark);
46
    with (_shadowmen_block)
47
    {
48
        image_xscale = 3.4;
49
        image_yscale = 1;
50
    }
51
}
52
if (scr_enemyrecruitcheck("pippins"))
53
{
54
    _pippins_con = [];
55
    _pippins_con[0] = 0;
56
    _pippins_con[1] = 0;
57
    _pippins_marker = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(750, 530, spr_npc_pippins_jump_cool);
58
    with (_pippins_marker)
59
        
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
60
    _pippins_readable = instance_create(_pippins_marker.x + 16, _pippins_marker.y + 40, obj_readable_room1);
61
    with (_pippins_readable)
62
    {
63
        extflag = "pippins";
64
        image_xscale = 2;
65
        image_yscale = 2;
66
    }
67
    _pippins_solid = instance_create(_pippins_marker.x + 8, _pippins_marker.y + 50, obj_solidblockDark);
68
    with (_pippins_solid)
69
        image_xscale = 1.5;
70
}
71
if (scr_enemyrecruitcheck("wicabel"))
72
{
73
    _wicabell_marker = 
scr_dark_marker
scr_dark_marker

function
scr_dark_marker(arg0, arg1, arg2)
{ thismarker = instance_create(arg0, arg1, obj_marker); with (thismarker) { sprite_index = arg2; image_speed = 0; image_xscale = 2; image_yscale = 2; } return thismarker; }
(660, 520, spr_npc_wicabel);
74
    with (_wicabell_marker)
75
        
scr_depth
scr_depth

function
scr_depth(arg0 = id, arg1 = 0)
{ with (arg0) depth = 100000 - ((y * 10) + (sprite_height * 10) + (arg1 * 10)); }
();
76
    _wicabell_readable = instance_create(_wicabell_marker.x + 16, _wicabell_marker.y + 40, obj_readable_room1);
77
    with (_wicabell_readable)
78
    {
79
        extflag = "wicabell";
80
        image_xscale = 2;
81
        image_yscale = 2;
82
    }
83
    _wicabell_solid = instance_create(_wicabell_marker.x + 8, _wicabell_marker.y + 60, obj_solidblockDark);
84
    with (_wicabell_solid)
85
    {
86
        image_xscale = 1.5;
87
        image_yscale = 1;
88
    }
89
}
90
91
reset_shadowmen = function()
92
{
93
    if (!scr_enemyrecruitcheck("sha"))
94
        exit;
95
    _shadowmen_state = "default";
96
    with (_shadowguy_marker_left)
97
    {
98
        sprite_index = spr_shadowman_cheer;
99
        image_speed = 0.2;
100
    }
101
    with (_shadowguy_marker_right)
102
    {
103
        sprite_index = spr_shadowman_wave_money;
104
        visible = 1;
105
    }
106
};
107
108
trigger_event = function(arg0, arg1)
109
{
110
    switch (arg0)
111
    {
112
        case "stopped":
113
            var racer_name = arg1[0];
114
            var all_stopped = true;
115
            for (var i = 0; i < array_length(_racers); i++)
116
            {
117
                var racer = _racers[i];
118
                if (!racer.is_stopped())
119
                {
120
                    if (all_stopped)
121
                        all_stopped = false;
122
                }
123
                else if (_winner == -4)
124
                {
125
                    _winner = racer;
126
                    racer.win();
127
                    if (scr_enemyrecruitcheck("sha"))
128
                    {
129
                        if (racer_name == "poppup")
130
                        {
131
                            _shadowmen_state = "happy";
132
                            with (_shadowguy_marker_left)
133
                                sprite_index = spr_shadowman_celebrate;
134
                            with (_shadowguy_marker_right)
135
                                visible = 0;
136
                        }
137
                        else
138
                        {
139
                            _shadowmen_state = "sad";
140
                            with (_shadowguy_marker_left)
141
                            {
142
                                sprite_index = spr_shadowman_consoling;
143
                                image_speed = 0.1;
144
                                
scr_shakeobj
scr_shakeobj

function
scr_shakeobj()
{ var _shakeobj = instance_create(x, y, obj_shakeobj); _shakeobj.target = id; if (argument_count >= 1) { if (i_ex(argument0)) _shakeobj.target = argument0; } if (argument_count >= 2) { if (argument1 != -1) _shakeobj.shakeamt = argument1; } if (argument_count >= 3) { if (argument2 != -1) _shakeobj.shakereduct = argument2; } with (_shakeobj) event_user(0); }
();
145
                            }
146
                            with (_shadowguy_marker_right)
147
                            {
148
                                sprite_index = spr_shadowman_sad;
149
                                
scr_shakeobj
scr_shakeobj

function
scr_shakeobj()
{ var _shakeobj = instance_create(x, y, obj_shakeobj); _shakeobj.target = id; if (argument_count >= 1) { if (i_ex(argument0)) _shakeobj.target = argument0; } if (argument_count >= 2) { if (argument1 != -1) _shakeobj.shakeamt = argument1; } if (argument_count >= 3) { if (argument2 != -1) _shakeobj.shakereduct = argument2; } with (_shakeobj) event_user(0); }
();
150
                            }
151
                        }
152
                    }
153
                }
154
            }
155
            if (all_stopped)
156
            {
157
                for (var i = 0; i < array_length(_racers); i++)
158
                {
159
                    var racer = _racers[i];
160
                    racer.restart();
161
                }
162
                _winner = -4;
163
                
scr_script_delayed
scr_script_delayed

function
scr_script_delayed()
{ var __scriptdelay = instance_create(0, 0, obj_script_delayed); __scriptdelay.script = argument[0]; __scriptdelay.alarm[0] = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; } function scr_script_delayed_until() { var __scriptdelay = instance_create(0, 0, obj_script_delayed_function); __scriptdelay.script = argument[0]; __scriptdelay.condition = argument[1]; __scriptdelay.target = id; for (var __i = 0; __i < (argument_count - 2); __i++) __scriptdelay.script_arg[__i] = argument[__i + 2]; __scriptdelay.arg_count = argument_count - 2; return __scriptdelay; } function delay_function(arg0, arg1) { return
scr_script_delayed(arg0, arg1);
}
(reset_shadowmen, 60);
164
            }
165
            break;
166
    }
167
};
168
169
show_convo = function(arg0, arg1 = 0)
170
{
171
    npc_animate = false;
172
    npc_animate_target = -4;
173
    times_talked = arg1;
174
    switch (arg0)
175
    {
176
        case "pippins":
177
            con = 10;
178
            npc_animate = true;
179
            npc_animate_target = _pippins_marker;
180
            break;
181
        case "wicabell":
182
            con = 30;
183
            if (times_talked > 0)
184
                con = 35;
185
            break;
186
        case "shadowmen":
187
            var sound = choose(7, 21, 45);
188
            var pitch = 1;
189
            var volume = 0.5;
190
            if (_shadowmen_state == "sad")
191
            {
192
                sound = 716;
193
                pitch = 0.5;
194
                volume = 0.7;
195
            }
196
            else if (_shadowmen_state == "happy")
197
            {
198
                pitch = 2;
199
            }
200
            snd_play_x(sound, volume, pitch);
201
            break;
202
    }
203
};