|
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_approachscr_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_depthscr_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_approachscr_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_phasescr_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_splitscr_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_approachscr_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_approachscr_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_approachscr_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_wrapscr_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_approachscr_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_pointscr_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_markerscr_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_objscr_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_interpolatescr_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_patternscr_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_patternscr_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_approachscr_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_patternscr_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_patternscr_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_approachscr_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_wrapscr_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_approachscr_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_approachscr_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_approachscr_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
|
}
|