Deltarune (Chapter 2) script viewer

← back to main script listing

gml_Object_obj_teacup_Step_0

(view raw script w/o annotations or w/e)
1
camTargetHeight = reverse ? camTargetHeightReverse : camTargetHeightNormal;
2
var _tempLock = false;
3
riseSpeedBoost = min(riseSpeedBoost, riseSpeedBoostMax);
4
var _generalSpeed = riseSpeed;
5
if (reverse && !is_undefined(riseSpeedReverse))
6
    _generalSpeed = riseSpeedReverse;
7
var _riseSpeedFinal = _generalSpeed + riseSpeedBoost;
8
if (tutorialRide)
9
    _riseSpeedFinal = riseSpeedBoost;
10
if (state == 0)
11
{
12
    if (uniqueRideExperience == 1 && global.flag[373 unlocked_east_basement] == 1)
13
        instance_destroy();
14
    var _targetY = ystart;
15
    if (reverse)
16
        _targetY = endY;
17
    y = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(y, _targetY, riseSpeedInitial);
18
    if (y == _targetY)
19
    {
20
        state = 1;
21
        if (uniqueRideExperience == 1)
22
        {
23
            snd_play(snd_locker);
24
            instance_create(0, 0, obj_shake);
25
            state = 0.1;
26
            waitingAround = 15;
27
        }
28
    }
29
}
30
if (state == 0.1)
31
{
32
    if (--waitingAround <= 0)
33
        state = 1;
34
}
35
if (state == 1)
36
{
37
}
38
if (state == 2)
39
{
40
    if (--waitingAround <= 0)
41
    {
42
        state = 3;
43
        snd_play(snd_wing);
44
    }
45
}
46
if (state == 3)
47
{
48
    for (var i = 0; i < partySize; i += 1)
49
    {
50
        var _sprites = [spr_teacup_kris, spr_teacup_kris, spr_teacup_susie, spr_teacup_ralsei];
51
        cup_char[i].sprite_index = _sprites[global.char[i]];
52
        with (cup_char[i])
53
        {
54
            image_xscale = 2;
55
            image_yscale = 2;
56
            image_index = 0;
57
            image_speed = 0;
58
            cutoff = 10;
59
        }
60
    }
61
    cupCharExists = 1;
62
    state = 4;
63
    waitingAround = 15;
64
    if (uniqueRideExperience == 1 && !reverse)
65
    {
66
        waitingAround = 45;
67
        originalY = y;
68
        originalX = x;
69
    }
70
    if (rideToRide)
71
        waitingAround = 3;
72
}
73
if (state == 4)
74
{
75
    if (uniqueRideExperience == 1 && !reverse)
76
    {
77
        for (var i = 0; i < 3; i += 1)
78
        {
79
            with (cup_char[i])
80
                
scr_depth
scr_depth

function
scr_depth()
{ depth = 100000 - ((y * 10) + (sprite_height * 10)); }
();
81
        }
82
        var _shakeSize = 5;
83
        x = originalX + irandom_range(-_shakeSize, _shakeSize);
84
        y = originalY + irandom_range(-_shakeSize, _shakeSize);
85
        spin = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(spin, 0, spinSpeed);
86
        if (waitingAround <= 15)
87
        {
88
            x = originalX;
89
            y = originalY;
90
        }
91
    }
92
    if (--waitingAround <= 0)
93
    {
94
        heldThisRide = false;
95
        state = 5;
96
        looptrack = snd_loop(snd_chain_extend);
97
        snd_pitch(looptrack, 0.3 + (_riseSpeedFinal * 0.09));
98
        snd_volume(looptrack, 0.3, 0);
99
    }
100
}
101
var _destinationY;
102
if (state == 5)
103
{
104
    if (room == room_dw_cyber_battle_maze_1 && global.flag[442 learned_teacups] == 0)
105
    {
106
        if (riseSpeedBoost == 0)
107
        {
108
            idletimer++;
109
        }
110
        else
111
        {
112
            global.flag[442 learned_teacups] = 1;
113
            idletimer = 0;
114
        }
115
    }
116
    var _moveDirection = reverse ? 1 : -1;
117
    _destinationY = reverse ? ystart : endY;
118
    if (!held)
119
    {
120
        if (!heldThisRide && holdHeight > -1 && !reverse)
121
        {
122
            var _moveAmount = y + (_riseSpeedFinal * _moveDirection);
123
            var _holdCondition = reverse ? (_moveAmount > holdHeight) : (_moveAmount < holdHeight);
124
            if (_holdCondition)
125
            {
126
                y = holdHeight;
127
                held = true;
128
                heldThisRide = true;
129
                heldAmount = 0;
130
            }
131
        }
132
    }
133
    else
134
    {
135
        with (obj_teacupParallaxer)
136
            autoamount -= (_riseSpeedFinal * 2);
137
        heldAmount += _riseSpeedFinal;
138
        if (heldAmount >= holdDistance)
139
            held = false;
140
        with (obj_teacup_bullet)
141
        {
142
            if (master == other.id)
143
                ystart += _riseSpeedFinal;
144
        }
145
        if (uniqueRideExperience == 4 && 
scr_sideb_get_phase
scr_sideb_get_phase

function
scr_sideb_get_phase()
{ var phase = 0; if (global.flag[916 snowgrave_fail] == 0) { if (global.flag[915 snowgrave_plot] > 0 && global.flag[915 snowgrave_plot] < 4) phase = 1; if (global.flag[915 snowgrave_plot] >= 4 && global.flag[915 snowgrave_plot] < 7) phase = 2; if (global.flag[915 snowgrave_plot] >= 7 && global.flag[915 snowgrave_plot] < 20) phase = 3; if (global.flag[915 snowgrave_plot] >= 20) phase = 4; } return phase; }
() != 3)
146
        {
147
            if (teaBullets-- > 0)
148
            {
149
                if ((teaBullets % 3) == 0)
150
                    
scr_tb_make_split
scr_tb_make_split

function
scr_tb_make_split(arg0, arg1, arg2, arg3, arg4)
{ for (var i = 0; i < arg3; i += 1) { var _bul =
scr_tb_make(arg0, arg1 + ((i / arg3) * 360), arg2, arg4, true);
with (_bul) { offsetAngle = (i / arg3) * 360; if (i == 0) eatMe = true; } } }
(800, spin, 0, 3, 5);
151
            }
152
            if (collision_rectangle(bbox_left, bbox_top - 10, bbox_right, bbox_bottom, obj_teacup_bullet, false, true) != -4)
153
            {
154
                if (cup_char[1].sprite_index == spr_teacup_susie)
155
                    cup_char[1].sprite_index = spr_teacup_susie_tea;
156
                teatimer--;
157
                if (teatimer <= 0)
158
                {
159
                    snd_play(snd_swallow);
160
                    teatimer = 6;
161
                }
162
            }
163
            else if (cup_char[1].sprite_index == spr_teacup_susie_tea)
164
            {
165
                cup_char[1].sprite_index = spr_teacup_susie;
166
            }
167
            var _closest = abs(368 - spin) > abs(8 - spin);
168
            spin = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(spin, _closest ? 8 : 368, spinSpeed);
169
            if (instance_exists(obj_teacupParallaxer))
170
            {
171
                if (obj_teacupParallaxer.auto == 0)
172
                    obj_teacupParallaxer.auto = 1;
173
            }
174
            _tempLock = true;
175
        }
176
    }
177
    var _spinSpeed = spinSpeed;
178
    var _mode = mode;
179
    if (uniqueRideExperience == 1 && reverse)
180
    {
181
        _mode = 2;
182
        _spinSpeed = 2;
183
        if (global.tempflag[33] > 0 && room == room_dw_mansion_b_west_2f)
184
            _riseSpeedFinal = 12;
185
    }
186
    var _spinDir = (down_h() || left_h()) - (up_h() || right_h());
187
    switch (_mode)
188
    {
189
        case 0:
190
            if (!_tempLock)
191
                spin -= _spinSpeed;
192
            if (!held)
193
                y += (_spinDir * _riseSpeedFinal);
194
            break;
195
        case 1:
196
            if (!_tempLock)
197
                spin += (_spinSpeed * _spinDir);
198
            if (!held)
199
                y = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(y, _destinationY, _riseSpeedFinal);
200
            break;
201
        case 2:
202
            if (!_tempLock)
203
                spin += (_spinSpeed * _moveDirection);
204
            if (!held)
205
                y = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(y, _destinationY, _riseSpeedFinal);
206
            break;
207
    }
208
    spin = 
scr_wrap
scr_wrap

function
scr_wrap(arg0, arg1, arg2)
{ var _val = arg0; var _range = abs(arg2 - arg1); if (arg2 <= arg1) { return arg0; } else { while (_val < arg1) _val += _range; while (_val > arg2) _val -= _range; return _val; } }
(spin, 0, 360);
209
    if (camFollow)
210
    {
211
        var _movedSoFar = abs(reverse ? (endY - y) : (ystart - y));
212
        if (_movedSoFar > camFollowAfter)
213
        {
214
            var _camTarget = camTargetHeight;
215
            cameray_set(lerp(cameray(), y - _camTarget, 0.2));
216
            cameray_set(clamp(cameray(), 0, room_height - 480));
217
            if (_movedSoFar > (camFollowAfter * 2))
218
                cameray_set(min(cameray(), (y - _camTarget) + 140));
219
            if (held)
220
                cameray_set((y - camTargetHeight) + (_riseSpeedFinal * 4));
221
            if (shaketimer > 0)
222
            {
223
                shaketimer--;
224
                var shakex = shaketimer;
225
                if ((shakex % 2) == 0)
226
                    shakex *= -1;
227
                camerax_set(clamp(x - (camerawidth() / 2), 0, room_width - camerawidth()) + shakex);
228
            }
229
        }
230
    }
231
    if (y == _destinationY)
232
    {
233
        state = 6;
234
        instance_create_depth(0, 0, 0, obj_shake);
235
        snd_play(snd_locker);
236
    }
237
    if (riseSpeedBoost != 0)
238
        riseSpeedBoost = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(riseSpeedBoost, 0, riseSpeedBoostFriction);
239
    if ((uniqueRideExperience == 2 || uniqueRideExperience == 3) && crusher == -4 && abs(_destinationY - y) < 100)
240
    {
241
        crusher = instance_create_depth(x, endY - 510, depth - 1000, obj_dw_pancakemaker);
242
        with (crusher)
243
        {
244
            image_xscale = 2;
245
            image_yscale = image_xscale;
246
        }
247
    }
248
}
249
if (state == 6)
250
{
251
    with (obj_teacup_bullet)
252
    {
253
        if (master == other.id)
254
            instance_destroy();
255
    }
256
    if (reverse)
257
        theScore = 0;
258
    snd_stop(looptrack);
259
    if (!instance_exists(obj_shake))
260
    {
261
        if (scoreboardExists && !reverse)
262
        {
263
            if (scoreboardGoal <= theScore)
264
            {
265
                state = 7;
266
            }
267
            else
268
            {
269
                snd_play(snd_error);
270
                state = 6.1;
271
                waitingAround = 30;
272
            }
273
        }
274
        else
275
        {
276
            state = 7;
277
        }
278
    }
279
}
280
if (state == 6.1)
281
{
282
    var _flash = (waitingAround div 5) % 2;
283
    if (_flash == 0)
284
        scoreboard.scoreCol = 0;
285
    else
286
        scoreboard.scoreCol = 255;
287
    if (--waitingAround <= 0)
288
    {
289
        scoreboard.scoreCol = 14483711;
290
        reverse = true;
291
        state = 5;
292
    }
293
}
294
with (crusher)
295
{
296
    y += (5 + _riseSpeedFinal);
297
    if (y >= other.y)
298
    {
299
        y = other.y;
300
        if (!other.crushed)
301
        {
302
            other.crushed = true;
303
            instance_create(0, 0, obj_shake);
304
            snd_play(snd_locker);
305
        }
306
    }
307
}
308
if (state == 7)
309
{
310
    if (uniqueRideExperience == 1 && !reverse)
311
    {
312
        oX = x;
313
        oY = y;
314
    }
315
    if (uniqueRideExperience == 2)
316
    {
317
        for (var i = 0; i < partySize; i++)
318
        {
319
            var _character = (i == 0) ? obj_mainchara : global.cinstance[i - 1];
320
            var _marker = cup_char[i];
321
            with (_character)
322
            {
323
                x = _marker.x;
324
                y = _marker.y - 10;
325
                image_alpha = 1;
326
            }
327
            with (_marker)
328
                sprite_index = spr_teacup_empty;
329
        }
330
        with (jumpToRide)
331
        {
332
            rideToRide = true;
333
            event_perform(ev_other, ev_user0);
334
        }
335
        snd_play(snd_jump);
336
        state = 12;
337
    }
338
    else
339
    {
340
        snd_play(snd_jump);
341
        for (var i = 0; i < partySize; i++)
342
        {
343
            var _sprites = [spr_kris_fall_ball, spr_kris_fall_ball, spr_susie_dw_fall_ball, spr_ralsei_teacup_enter];
344
            var _charaDest = reverse ? startPos[i] : endPos[i];
345
            jumpMarker[i] = instance_create(cup_char[i].x, cup_char[i].y, obj_marker);
346
            with (jumpMarker[i])
347
            {
348
                sprite_index = _sprites[global.char[i]];
349
                image_xscale = 2;
350
                image_yscale = 2;
351
                image_index = 0;
352
                image_speed = 0.5;
353
                jumper = 
scr_jump_to_point
scr_jump_to_point

function
scr_jump_to_point(arg0, arg1, arg2, arg3)
{ return
scr_jump_to_point_sprite(arg0, arg1, arg2, arg3, 0, 0);
}
(_charaDest[0], _charaDest[1], 16, other.jumpOutDuration);
354
            }
355
            with (cup_char[i])
356
                sprite_index = spr_teacup_empty;
357
        }
358
        cupCharExists = 0;
359
        waitingAround = jumpOutDuration;
360
        state = 8;
361
    }
362
}
363
if (state == 8)
364
{
365
    if (uniqueRideExperience == 1 && !reverse)
366
    {
367
        x = oX + irandom_range(-3, 3);
368
        y = oY + irandom_range(-1, 1);
369
    }
370
    if (--waitingAround <= 0)
371
    {
372
        var _longestAnim, _animSpeed;
373
        for (var i = 0; i < partySize; i++)
374
        {
375
            var _sprites = [spr_kris_dw_land_example_dark, spr_kris_dw_land_example_dark, spr_susie_dw_landed, spr_teacup_ralsei_land];
376
            _longestAnim = 0;
377
            _animSpeed = 0.25;
378
            with (jumpMarker[i])
379
            {
380
                sprite_index = _sprites[global.char[i]];
381
                image_index = 0;
382
                image_speed = _animSpeed;
383
                cutoff = 0;
384
                _longestAnim = max(_longestAnim, image_number);
385
            }
386
        }
387
        waitingAround = 12 + (_longestAnim / _animSpeed);
388
        state = 9;
389
        snd_play(snd_wing);
390
        cameramarker = 
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; }
(jumpMarker[0].jumper.endx, jumpMarker[0].jumper.endy, spr_krisd_dark);
391
        cameramarker.depth = -100;
392
        cameramarker.image_blend = c_blue;
393
        cameramarker.visible = 0;
394
        if (uniqueRideExperience != 1)
395
            
scr_pan_to_obj
scr_pan_to_obj

function
scr_pan_to_obj(arg0, arg1)
{ _panx = arg0.x - floor((__view_get(e__VW.WView, 0) / 2) - (arg0.sprite_width / 2)); _pany = arg0.y - floor((__view_get(e__VW.HView, 0) / 2) - (arg0.sprite_height / 2)); if (_panx < 0) _panx = 0; if (_panx >= (room_width - __view_get(e__VW.WView, 0))) _panx = room_width - __view_get(e__VW.WView, 0); if (_pany < 0) _pany = 0; if (_pany >= (room_height - __view_get(e__VW.HView, 0))) _pany = room_height - __view_get(e__VW.HView, 0);
scr_pan_lerp(_panx, _pany, arg1);
} enum e__VW { XView, YView, WView, HView, Angle, HBorder, VBorder, HSpeed, VSpeed, Object, Visible, XPort, YPort, WPort, HPort, Camera, SurfaceID }
(cameramarker, 12);
396
    }
397
}
398
if (state == 9)
399
{
400
    with (obj_mainchara)
401
    {
402
        battlemode = 0;
403
        drawbattlemode = 1;
404
    }
405
    if (uniqueRideExperience == 1 && !reverse)
406
    {
407
        x = oX + irandom_range(-3, 3);
408
        y = oY + irandom_range(-1, 1);
409
    }
410
    var animdone = 0;
411
    for (var i = 0; i < partySize; i++)
412
    {
413
        with (jumpMarker[i])
414
        {
415
            if (image_index >= (image_number - 1))
416
            {
417
                image_speed = 0;
418
                image_index = image_number - 1;
419
            }
420
            if (image_index == (image_number - 1))
421
                animdone++;
422
        }
423
        if (animdone >= 3 && waitingAround > 6)
424
            waitingAround = 6;
425
    }
426
    if (--waitingAround <= 0)
427
    {
428
        for (var i = 0; i < partySize; i++)
429
        {
430
            var _character = (i == 0) ? obj_mainchara : global.cinstance[i - 1];
431
            var _marker = jumpMarker[i];
432
            with (_character)
433
            {
434
                x = _marker.x;
435
                y = _marker.y;
436
                image_alpha = 1;
437
            }
438
            with (_marker)
439
                instance_destroy();
440
            with (cameramarker)
441
                instance_destroy();
442
            global.facing = 0;
443
            with (obj_caterpillarchara)
444
                
scr_caterpillar_interpolate
scr_caterpillar_interpolate

function
scr_caterpillar_interpolate()
{ _newfacing =
scr_facing_letter_to_number(
scr_get_cardinal_direction(point_direction(x, y, obj_mainchara.x, obj_mainchara.y)));
remx[0] = obj_mainchara.x; remy[0] = obj_mainchara.y; facing[0] = _newfacing; for (_iaia = target; _iaia > 0; _iaia -= 1) { remx[_iaia] = lerp(obj_mainchara.x, x, _iaia / target); if (global.darkzone == 1) remy[_iaia] = lerp(obj_mainchara.y, y + 16, _iaia / target); else remy[_iaia] = lerp(obj_mainchara.y, y + 6, _iaia / target); facing[_iaia] = _newfacing; } }
();
445
        }
446
        waitingAround = -1;
447
        state = 10;
448
    }
449
}
450
if (state == 10)
451
{
452
    if (uniqueRideExperience == 1 && !reverse)
453
    {
454
        x = oX + irandom_range(-3, 3);
455
        y = oY + irandom_range(-1, 1);
456
    }
457
    if (--waitingAround <= 0)
458
    {
459
        with (obj_darkcontroller)
460
            charcon = 0;
461
        global.interact = 0;
462
        myPitch = 1;
463
        with (obj_mainchara)
464
            cutscene = 0;
465
        riseSpeedBoost = riseSpeedBoostInitial;
466
        heldAmount = 0;
467
        if (!returnOnFinish)
468
        {
469
            if (scoreboardExists && reverse)
470
            {
471
                state = 13;
472
                scoreboard.scoreCol = 14483711;
473
            }
474
            else
475
            {
476
                state = 1;
477
            }
478
            reverse = !reverse;
479
            if (!reverse && regenerateBullets)
480
            {
481
                if (uniqueBulletPattern != -1)
482
                    
scr_tb_pattern
scr_tb_pattern

function
scr_tb_pattern()
{ var _pattern = room; if (argument_count > 0) { _pattern = argument[0]; switch (_pattern) { default: break; case 0: var _spacing = 84; var _distance = 720; var _bullets = _distance div _spacing; for (var i = 0; i < (_bullets - 1); i++) { var _h = 100 + (i * _spacing); bullet =
scr_tb_make(_h, 270 + (i * 40), 0, 1, false);
if (i == (_bullets - 1)) bullet.boostAmount = 16; } break; case 1: var _spacing = 84; var _distance = 1040; var _bullets = _distance div _spacing; for (var i = 0; i < (_bullets - 1); i++) { var _h = 100 + (i * _spacing); bullet =
scr_tb_make(_h, 270 - (i * 40), 0, 1, false);
if (i == (_bullets - 1)) bullet.boostAmount = 16; } break; case 2: lasti = 6; bangle[0] = 270; bangle[1] = 230; bangle[2] = 190; bangle[3] = 230; bangle[4] = 270; bangle[5] = 310; bangle[6] = 350; for (var i = 0; i <= lasti; i++) { for (j = 0; j < 4; j++) { bullet =
scr_tb_make(240 + (i * 360) + (j * 40), bangle[i], 0, 1, false);
bullet.boostAmount = 12; } } break; case 3: lasti = 5; bangle[0] = 270; bangle[1] = 230; bangle[2] = 190; bangle[3] = 230; bangle[4] = 270; bangle[5] = 310; for (var i = 0; i <= lasti; i++) { for (j = 0; j < 3; j++) { bullet =
scr_tb_make(140 + (i * 320) + (j * 40), bangle[i], 0, 1, false);
bullet.boostAmount = 12; } } break; case 4: lasti = 2; bangle[0] = 270; bangle[1] = 310; bangle[2] = 270; for (var i = 0; i <= lasti; i++) { for (j = 0; j < 4; j++) { bullet =
scr_tb_make(140 + (i * 360) + (j * 40), bangle[i], 0, 1, false);
bullet.boostAmount = 12; } } break; case 5: for (var i = 0; i < 5; i++) { bullet =
scr_tb_make(140 + (i * 40), 270, 0, 1, false);
bullet.boostAmount = 12; } break; case 52: for (var i = 0; i < 4; i++) { bullet =
scr_tb_make(120 + (i * 40), 270, 0, 1, false);
bullet.boostAmount = 12; } break; case 53: for (var i = 0; i < 3; i++) { bullet =
scr_tb_make(100 + (i * 40), 270, 0, 1, false);
...
(uniqueBulletPattern);
483
                else
484
                    
scr_tb_pattern
scr_tb_pattern

function
scr_tb_pattern()
{ var _pattern = room; if (argument_count > 0) { _pattern = argument[0]; switch (_pattern) { default: break; case 0: var _spacing = 84; var _distance = 720; var _bullets = _distance div _spacing; for (var i = 0; i < (_bullets - 1); i++) { var _h = 100 + (i * _spacing); bullet =
scr_tb_make(_h, 270 + (i * 40), 0, 1, false);
if (i == (_bullets - 1)) bullet.boostAmount = 16; } break; case 1: var _spacing = 84; var _distance = 1040; var _bullets = _distance div _spacing; for (var i = 0; i < (_bullets - 1); i++) { var _h = 100 + (i * _spacing); bullet =
scr_tb_make(_h, 270 - (i * 40), 0, 1, false);
if (i == (_bullets - 1)) bullet.boostAmount = 16; } break; case 2: lasti = 6; bangle[0] = 270; bangle[1] = 230; bangle[2] = 190; bangle[3] = 230; bangle[4] = 270; bangle[5] = 310; bangle[6] = 350; for (var i = 0; i <= lasti; i++) { for (j = 0; j < 4; j++) { bullet =
scr_tb_make(240 + (i * 360) + (j * 40), bangle[i], 0, 1, false);
bullet.boostAmount = 12; } } break; case 3: lasti = 5; bangle[0] = 270; bangle[1] = 230; bangle[2] = 190; bangle[3] = 230; bangle[4] = 270; bangle[5] = 310; for (var i = 0; i <= lasti; i++) { for (j = 0; j < 3; j++) { bullet =
scr_tb_make(140 + (i * 320) + (j * 40), bangle[i], 0, 1, false);
bullet.boostAmount = 12; } } break; case 4: lasti = 2; bangle[0] = 270; bangle[1] = 310; bangle[2] = 270; for (var i = 0; i <= lasti; i++) { for (j = 0; j < 4; j++) { bullet =
scr_tb_make(140 + (i * 360) + (j * 40), bangle[i], 0, 1, false);
bullet.boostAmount = 12; } } break; case 5: for (var i = 0; i < 5; i++) { bullet =
scr_tb_make(140 + (i * 40), 270, 0, 1, false);
bullet.boostAmount = 12; } break; case 52: for (var i = 0; i < 4; i++) { bullet =
scr_tb_make(120 + (i * 40), 270, 0, 1, false);
bullet.boostAmount = 12; } break; case 53: for (var i = 0; i < 3; i++) { bullet =
scr_tb_make(100 + (i * 40), 270, 0, 1, false);
...
();
485
            }
486
        }
487
        else
488
        {
489
            state = 11;
490
        }
491
        if (uniqueRideExperience == 3)
492
            state = 12;
493
        if (uniqueRideExperience == 4 && reverse)
494
            state = 12;
495
        if (uniqueRideExperience == 1 && reverse)
496
        {
497
            state = 14;
498
            waitingAround = 30;
499
            x = oX;
500
            y = oY;
501
        }
502
    }
503
}
504
if (state == 11)
505
{
506
    y = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(y, ystart, riseSpeedInitial);
507
    spin -= riseSpeedInitial;
508
    if (y == ystart)
509
    {
510
        state = 1;
511
        if (uniqueBulletPattern != -1)
512
            
scr_tb_pattern
scr_tb_pattern

function
scr_tb_pattern()
{ var _pattern = room; if (argument_count > 0) { _pattern = argument[0]; switch (_pattern) { default: break; case 0: var _spacing = 84; var _distance = 720; var _bullets = _distance div _spacing; for (var i = 0; i < (_bullets - 1); i++) { var _h = 100 + (i * _spacing); bullet =
scr_tb_make(_h, 270 + (i * 40), 0, 1, false);
if (i == (_bullets - 1)) bullet.boostAmount = 16; } break; case 1: var _spacing = 84; var _distance = 1040; var _bullets = _distance div _spacing; for (var i = 0; i < (_bullets - 1); i++) { var _h = 100 + (i * _spacing); bullet =
scr_tb_make(_h, 270 - (i * 40), 0, 1, false);
if (i == (_bullets - 1)) bullet.boostAmount = 16; } break; case 2: lasti = 6; bangle[0] = 270; bangle[1] = 230; bangle[2] = 190; bangle[3] = 230; bangle[4] = 270; bangle[5] = 310; bangle[6] = 350; for (var i = 0; i <= lasti; i++) { for (j = 0; j < 4; j++) { bullet =
scr_tb_make(240 + (i * 360) + (j * 40), bangle[i], 0, 1, false);
bullet.boostAmount = 12; } } break; case 3: lasti = 5; bangle[0] = 270; bangle[1] = 230; bangle[2] = 190; bangle[3] = 230; bangle[4] = 270; bangle[5] = 310; for (var i = 0; i <= lasti; i++) { for (j = 0; j < 3; j++) { bullet =
scr_tb_make(140 + (i * 320) + (j * 40), bangle[i], 0, 1, false);
bullet.boostAmount = 12; } } break; case 4: lasti = 2; bangle[0] = 270; bangle[1] = 310; bangle[2] = 270; for (var i = 0; i <= lasti; i++) { for (j = 0; j < 4; j++) { bullet =
scr_tb_make(140 + (i * 360) + (j * 40), bangle[i], 0, 1, false);
bullet.boostAmount = 12; } } break; case 5: for (var i = 0; i < 5; i++) { bullet =
scr_tb_make(140 + (i * 40), 270, 0, 1, false);
bullet.boostAmount = 12; } break; case 52: for (var i = 0; i < 4; i++) { bullet =
scr_tb_make(120 + (i * 40), 270, 0, 1, false);
bullet.boostAmount = 12; } break; case 53: for (var i = 0; i < 3; i++) { bullet =
scr_tb_make(100 + (i * 40), 270, 0, 1, false);
...
(uniqueBulletPattern);
513
        else
514
            
scr_tb_pattern
scr_tb_pattern

function
scr_tb_pattern()
{ var _pattern = room; if (argument_count > 0) { _pattern = argument[0]; switch (_pattern) { default: break; case 0: var _spacing = 84; var _distance = 720; var _bullets = _distance div _spacing; for (var i = 0; i < (_bullets - 1); i++) { var _h = 100 + (i * _spacing); bullet =
scr_tb_make(_h, 270 + (i * 40), 0, 1, false);
if (i == (_bullets - 1)) bullet.boostAmount = 16; } break; case 1: var _spacing = 84; var _distance = 1040; var _bullets = _distance div _spacing; for (var i = 0; i < (_bullets - 1); i++) { var _h = 100 + (i * _spacing); bullet =
scr_tb_make(_h, 270 - (i * 40), 0, 1, false);
if (i == (_bullets - 1)) bullet.boostAmount = 16; } break; case 2: lasti = 6; bangle[0] = 270; bangle[1] = 230; bangle[2] = 190; bangle[3] = 230; bangle[4] = 270; bangle[5] = 310; bangle[6] = 350; for (var i = 0; i <= lasti; i++) { for (j = 0; j < 4; j++) { bullet =
scr_tb_make(240 + (i * 360) + (j * 40), bangle[i], 0, 1, false);
bullet.boostAmount = 12; } } break; case 3: lasti = 5; bangle[0] = 270; bangle[1] = 230; bangle[2] = 190; bangle[3] = 230; bangle[4] = 270; bangle[5] = 310; for (var i = 0; i <= lasti; i++) { for (j = 0; j < 3; j++) { bullet =
scr_tb_make(140 + (i * 320) + (j * 40), bangle[i], 0, 1, false);
bullet.boostAmount = 12; } } break; case 4: lasti = 2; bangle[0] = 270; bangle[1] = 310; bangle[2] = 270; for (var i = 0; i <= lasti; i++) { for (j = 0; j < 4; j++) { bullet =
scr_tb_make(140 + (i * 360) + (j * 40), bangle[i], 0, 1, false);
bullet.boostAmount = 12; } } break; case 5: for (var i = 0; i < 5; i++) { bullet =
scr_tb_make(140 + (i * 40), 270, 0, 1, false);
bullet.boostAmount = 12; } break; case 52: for (var i = 0; i < 4; i++) { bullet =
scr_tb_make(120 + (i * 40), 270, 0, 1, false);
bullet.boostAmount = 12; } break; case 53: for (var i = 0; i < 3; i++) { bullet =
scr_tb_make(100 + (i * 40), 270, 0, 1, false);
...
();
515
    }
516
}
517
if (state == 12)
518
{
519
}
520
if (state == 13)
521
{
522
    var _closest = abs(360 - spin) > abs(0 - spin);
523
    spin = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(spin, _closest ? 0 : 360, spinSpeed);
524
    if (spin == 0 || spin == 360)
525
        state = 1;
526
}
527
if (state == 14)
528
{
529
    y += 10;
530
    if (y > (room_height + 500))
531
        state = 12;
532
}
533
for (var i = 0; i < 3; i++)
534
{
535
    var _charSpin = (-90 + (120 * i)) - spin;
536
    cupx = lengthdir_x(cupDistanceFromCenter, _charSpin);
537
    cupy = lengthdir_y(cupDistanceFromCenter * 0.5, _charSpin);
538
    var _cupDepth = depth - depthSeparation - cupy;
539
    var _spritesTea = [spr_teacup_tea, spr_teacup_kris_tea, spr_teacup_kris_tea, spr_teacup_ralsei_tea];
540
    if (teaFilled > 0.1 && global.char[i] != 2)
541
    {
542
        if (teaFilled >= 1)
543
            _spritesTea = [spr_teacup_tea2, spr_teacup_kris_tea2, spr_teacup_kris_tea, spr_teacup_ralsei_tea2];
544
        if ((state == 5 || state == 6) && i < partySize)
545
            cup_char[i].sprite_index = _spritesTea[global.char[i]];
546
        else
547
            cup_char[i].sprite_index = _spritesTea[0];
548
    }
549
    cup_char[i].spin = _charSpin;
550
    cup_char[i].x = x + cupx;
551
    cup_char[i].y = (y + cupy) - 16;
552
    cup_char[i].x += cupCharXnudge;
553
    cup_char[i].y += cupCharYnudge;
554
    cup_char[i].image_index = 
scr_wrap
scr_wrap

function
scr_wrap(arg0, arg1, arg2)
{ var _val = arg0; var _range = abs(arg2 - arg1); if (arg2 <= arg1) { return arg0; } else { while (_val < arg1) _val += _range; while (_val > arg2) _val -= _range; return _val; } }
(_charSpin, 0, 360) div 30;
555
    if (fadeOutOthers && !reverse && i != 0)
556
    {
557
        if (state == 5)
558
        {
559
            var _fadeDistance = 120;
560
            if (uniqueRideExperience == 4)
561
                _fadeDistance = 900;
562
            if (abs(_destinationY - y) <= _fadeDistance)
563
                cup_char[i].image_alpha = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(cup_char[i].image_alpha, 1, 0.02 + (riseSpeed / _fadeDistance));
564
            else
565
                cup_char[i].image_alpha = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(cup_char[i].image_alpha, 0.15, 0.05);
566
        }
567
        else
568
        {
569
            cup_char[i].image_alpha = 
scr_approach
scr_approach

function
scr_approach(arg0, arg1, arg2)
{ if (arg0 < arg1) { arg0 += arg2; if (arg0 > arg1) return arg1; } else { arg0 -= arg2; if (arg0 < arg1) return arg1; } return arg0; }
(cup_char[i].image_alpha, 1, 0.05);
570
        }
571
    }
572
    cup_char[i].depth = _cupDepth - 1;
573
}
574
if (scoreboardExists)
575
{
576
    with (scoreboard)
577
    {
578
        var _theCurrentScore = other.theScore;
579
        y = other.y + 92;
580
        theScore = _theCurrentScore;
581
        if (other.state == 6.1)
582
            theScore = other.scoreboardGoal;
583
        image_index = floor((_theCurrentScore / other.scoreboardGoal) * (image_number - 1));
584
        if (_theCurrentScore >= other.scoreboardGoal)
585
        {
586
            image_index = image_number - 1;
587
            scoreCol = 65280;
588
        }
589
    }
590
}
591
if (room == room_dw_cyber_battle_maze_1)
592
{
593
    if (state == 5 && idletimer > 30 && global.flag[442 learned_teacups] == 0)
594
        drawtutorialarrows = true;
595
    else
596
        drawtutorialarrows = false;
597
}
598
if (wooshnoise == 1)
599
{
600
    var woosh = snd_play_pitch(snd_swallow, 0.6);
601
    snd_volume(woosh, 0.1, 0);
602
    snd_volume(woosh, 1, 1);
603
    wooshnoise = 0;
604
}
605
if (bouncenoise)
606
{
607
    if (!snd_is_playing(snd_jump))
608
        snd_play_pitch(snd_jump, 1.5);
609
    bouncenoise = 0;
610
}
611
if (swallownoise)
612
{
613
    snd_play(snd_swallow);
614
    swallownoise = 0;
615
}