1 |
# |
2 |
# state_cutscene.bsl |
3 |
# |
4 |
|
5 |
var int face_count_dead; |
6 |
|
7 |
func void |
8 |
state_cs_intro( |
9 |
void) |
10 |
{ |
11 |
trigvolume_enable trig_vol_17 0 |
12 |
trigvolume_enable trig_vol_19 0 |
13 |
trigvolume_enable trigger_volume_99 0 |
14 |
begin_cutscene |
15 |
cutscene_sync off |
16 |
fade_out 0 0 0 0 |
17 |
sleep 120 |
18 |
#Griffin talks |
19 |
cinematic_start(GRIFtalkangry, 180, 180, 16, 3, 30, true) |
20 |
sound_dialog_play c10_34_01griffin |
21 |
sound_dialog_play_block pause |
22 |
#Kerr responds |
23 |
sleep 20 |
24 |
#cinematic_start(KERRtalking, 180, 180, 19, 7, 10, false) |
25 |
cinematic_start(KERRtalking, 180, 180, 15, 1, 10, false) |
26 |
sound_dialog_play c10_34_02kerr |
27 |
sound_dialog_play_block pause |
28 |
#Griffin talks again |
29 |
sleep 20 |
30 |
sound_dialog_play c10_34_03griffin |
31 |
sleep 400 |
32 |
|
33 |
#Make characters for cut-scene |
34 |
sound_music_start mus_main02_hd 1.0 |
35 |
chr_create 102 start |
36 |
sleep 10 |
37 |
#ninja runs out of scene |
38 |
playback 102 IntroNinja |
39 |
playback 0 IntroKonoko |
40 |
chr_nocollision 0 1 |
41 |
fade_in 120 |
42 |
cm_anim both Camout01 |
43 |
sleep 120 |
44 |
cinematic_stop (GRIFtalkangry, 16, 10) |
45 |
cinematic_stop (KERRtalking, 15, 10) |
46 |
cm_wait |
47 |
chr_delete 102 |
48 |
cm_anim both Camout02 |
49 |
cm_wait |
50 |
cm_interpolate Camin03 0 |
51 |
#change this amount to work with cutscene |
52 |
sleep 170 |
53 |
sleep 60 |
54 |
#security shows up behind Konoko |
55 |
ai2_spawn IntroSec1 |
56 |
ai2_spawn IntroSec2 |
57 |
sleep 10 |
58 |
cm_interpolate Camin04 0 |
59 |
playback 0 IntroKonoko02 |
60 |
sleep 30 |
61 |
sound_dialog_play c10_34_05secguard2 |
62 |
sound_dialog_play_block pause |
63 |
chr_animate IntroSec2 SECURIlev11_intro |
64 |
cm_interpolate Camin05 0 |
65 |
#put security guard talking here |
66 |
cinematic_start(SEC2talking, 180, 180, 15, 1, 30, true) |
67 |
sound_dialog_play c10_34_04secguard1 |
68 |
sound_dialog_play_block pause |
69 |
#Konoko says I don't have time for this |
70 |
cm_interpolate IntroCamNotime 0 |
71 |
cinematic_start (KONintense, 180, 180, 20, 8, 20, true) |
72 |
sound_dialog_play c10_34_06konoko |
73 |
sound_dialog_play_block pause |
74 |
#Security says something |
75 |
sound_dialog_play c10_34_07secguard1 |
76 |
sound_dialog_play_block pause |
77 |
cinematic_stop (SEC2talking, 15, 30) |
78 |
#your call |
79 |
cm_interpolate IntroCamCall01 0 |
80 |
cm_interpolate_block IntroCamCall02 90 |
81 |
sleep 70 |
82 |
sound_dialog_play c10_34_08konoko |
83 |
sound_dialog_play_block pause |
84 |
cinematic_stop (KONintense, 20,20) |
85 |
sleep 20 |
86 |
cm_reset 0 |
87 |
#chr_delete 102 |
88 |
chr_nocollision 0 0 |
89 |
trigvolume_enable trig_vol_17 1 |
90 |
trigvolume_enable trig_vol_19 1 |
91 |
trigvolume_enable trigger_volume_99 1 |
92 |
end_cutscene |
93 |
set_objective_1 |
94 |
} |
95 |
|
96 |
|
97 |
func void |
98 |
dog(string ai_name) |
99 |
{ |
100 |
particle obj1 kill |
101 |
begin_cutscene |
102 |
chr_forceholster 0 1 |
103 |
chr_nocollision 0 1 |
104 |
sleep 30 |
105 |
#Konoko uses console |
106 |
playback 0 DogKonokoSet |
107 |
cm_interpolate DogCamLeftHigh 0 |
108 |
cm_interpolate_block DogCamRightHigh 400 |
109 |
sleep 10 |
110 |
chr_animate 0 KONOKOlev11_cnsl_start 68 |
111 |
chr_animate_block 0 KONOKOlev11_cnsl_idle 300 |
112 |
#sleep 30 |
113 |
#Konoko talks |
114 |
cinematic_start (KONintense, 180, 180, 19, 7, 20, false) |
115 |
sound_dialog_play c10_35_01aKonoko |
116 |
sleep 90 |
117 |
chr_animate 0 KONOKOlev11_cnsl_type 120 |
118 |
chr_animate_block 0 KONOKOlev11_cnsl_idle 800 8 |
119 |
sleep 120 |
120 |
cm_interpolate DogCamRight 0 |
121 |
cm_interpolate_block DogCamLeft 500 |
122 |
#Konoko senses the watchdog |
123 |
sound_dialog_play_block c10_35_01bKonoko |
124 |
chr_animate 0 KONOKOlev11_cnsl_type 120 |
125 |
chr_animate_block 0 KONOKOlev11_cnsl_type 800 8 |
126 |
#camera switches to show Ninja |
127 |
chr_create 1030 start |
128 |
playback 1030 DogNinjaSet |
129 |
chr_animate 1030 NINJAlev11_cnsl_type 400 |
130 |
cm_interpolate DogCamNinjaRight 0 |
131 |
cm_interpolate_block DogCamNinjaLeft 360 |
132 |
sleep 360 |
133 |
#Konoko says no |
134 |
cm_interpolate DogCamLeftHigh 0 |
135 |
cm_interpolate_block DogCamRight 800 |
136 |
sound_dialog_play_block c10_35_01cKonoko |
137 |
chr_animate 0 KONOKOlev11_cnsl_idle 240 8 |
138 |
sleep 180 |
139 |
#Konoko wonders who hacker was |
140 |
chr_animate_block 0 KONOKOlev11_cnsl_stop |
141 |
#Gameplay resumes |
142 |
chr_delete 1030 |
143 |
sound_dialog_play_block pause |
144 |
cinematic_stop (KONintense, 15, 30) |
145 |
end_cutscene |
146 |
cm_reset |
147 |
chr_nocollision 0 0 |
148 |
playback DogKonokoEnd |
149 |
# save_game_2 |
150 |
|
151 |
trig_activate 12 |
152 |
trig_activate 13 |
153 |
trig_activate 14 |
154 |
|
155 |
door_unlock 82 |
156 |
|
157 |
set_objective_5 |
158 |
set_target_2 |
159 |
|
160 |
console_activate 1 |
161 |
console_activate 6 |
162 |
} |
163 |
|
164 |
func void |
165 |
Nwindow_ninja(string ai_name) |
166 |
{ |
167 |
#spawn character 1030 before Konoko enters the room |
168 |
chr_create 1030 start |
169 |
chr_neutral 1030 1 |
170 |
playback 1030 WindowNinjaSet |
171 |
} |
172 |
|
173 |
func void |
174 |
window_ninja(string ai_name) |
175 |
{ |
176 |
trigvolume_enable Cut_outro 0 |
177 |
chr_create 1030 start |
178 |
chr_neutral 1030 1 |
179 |
playback 1030 WindowNinjaSet |
180 |
begin_cutscene |
181 |
cm_interpolate WindowCamSet 70 |
182 |
ai2_takecontrol 1 |
183 |
ai2_setmovementmode 0 walk |
184 |
ai2_movetoflag 0 289 |
185 |
sleep f60 |
186 |
cm_interpolate WindowCamStart 120 |
187 |
sound_music_start mus_pursuit_hd |
188 |
sleep 120 |
189 |
#Ninja turns around |
190 |
cm_anim both WindowCam00 |
191 |
ai2_takecontrol 0 |
192 |
chr_envanim 1030 WindowNinjaBox02 norotation |
193 |
chr_animate 1030 NINJAlev11_windowturn |
194 |
obj_create 481 481 |
195 |
obj_show 481 481 |
196 |
env_anim 481 481 |
197 |
#Konoko says give me back those files |
198 |
cm_wait |
199 |
playback 0 WindowKonoko01 |
200 |
cm_interpolate WindowCam02 0 |
201 |
sleep 30 |
202 |
#cinematic_start (KONintense, 180, 180, 17, 6, 30, false) |
203 |
#sound_dialog_play lev11_WindowKon |
204 |
#sound_dialog_play_block pause |
205 |
#cinematic_stop (KONintense, 18, 30) |
206 |
sleep 60 |
207 |
playback 0 WindowKonoko02 |
208 |
#Ninja backs towards window and flies out) |
209 |
env_setanim 481 Disk02 |
210 |
chr_envanim 1030 WindowNinjaBox01 norotation |
211 |
chr_animate 1030 NINJAlev11_window |
212 |
cm_anim both WindowCam03 |
213 |
sleep 185 |
214 |
#break glass here |
215 |
sound_impulse_play glass_big |
216 |
particle WindowCharge do explode |
217 |
cm_wait |
218 |
cm_reset |
219 |
end_cutscene |
220 |
sleep 60 |
221 |
chr_delete 1030 |
222 |
ai2_spawn WindowNinjaRun |
223 |
ai2_passive WindowNinjaRun 1 |
224 |
chr_unstoppable WindowNinjaRun 1 |
225 |
ai2_spawn creepy_ninja_4 |
226 |
chr_lock_active WindowNinjaRun |
227 |
#make ninja no collision with particles |
228 |
playback WindowNinjaRun WindowNinjaRun |
229 |
obj_kill 481 481 |
230 |
target_set(1030, 0.0) |
231 |
sleep f210 |
232 |
playback WindowNinjaRun JumpNinjaSet |
233 |
sleep f10 |
234 |
playback WindowNinjaRun JumpNinjaSet |
235 |
#chr_delete WindowNinjaRun |
236 |
} |
237 |
|
238 |
func void |
239 |
WindowNinjaDelete(string ai_name) |
240 |
{ |
241 |
#chr_delete WindowNinjaRun |
242 |
} |
243 |
|
244 |
func void |
245 |
FaceSet(string ai_name) |
246 |
{ |
247 |
playback WindowNinjaRun |
248 |
ai2_spawn FaceNinja |
249 |
ai2_spawn FaceNinja2 |
250 |
ai2_passive FaceNinja 1 |
251 |
ai2_passive FaceNinja2 1 |
252 |
ai2_passive FaceNinja3 1 |
253 |
playback FaceNinja FaceNinjaSet |
254 |
playback FaceNinja FaceNinjaJump |
255 |
sleep 60 |
256 |
#chr_delete WindowNinjaRun |
257 |
ai2_passive FaceNinja 0 |
258 |
ai2_passive FaceNinja2 0 |
259 |
ai2_passive FaceNinja3 0 |
260 |
trigvolume_enable Cut_outro 0 |
261 |
} |
262 |
|
263 |
func void |
264 |
JumpNinja(string ai_name) |
265 |
{ |
266 |
chr_nocollision WindowNinjaRun 1 |
267 |
chr_animate WindowNinjaRun KONOKOlev11_jump -1 |
268 |
sleep f135 |
269 |
chr_delete WindowNinjaRun |
270 |
} |
271 |
|
272 |
func void |
273 |
JumpKonoko(string ai_name) |
274 |
{ |
275 |
begin_cutscene |
276 |
chr_animate 0 KONOKOlev11_jump -1 |
277 |
sleep f135 |
278 |
} |
279 |
|
280 |
#func void |
281 |
#Face(string ai_name) |
282 |
#{ |
283 |
# playback FaceNinja FaceNinjaJump |
284 |
# sleep 60 |
285 |
# #chr_delete WindowNinjaRun |
286 |
# ai2_passive FaceNinja 0 |
287 |
# sleep 60 |
288 |
#} |
289 |
|
290 |
|
291 |
func void |
292 |
outro_makeNinja(string ai_name) |
293 |
{ |
294 |
chr_create 111 start |
295 |
chr_create 110 start |
296 |
chr_neutral 110 1 |
297 |
chr_neutral 111 1 |
298 |
playback 110 OutroNinja |
299 |
playback 111 OutroSuperNinja |
300 |
} |
301 |
|
302 |
func void |
303 |
outro(string ai_name) |
304 |
{ |
305 |
particle obj2 kill |
306 |
sound_music_stop mus_pursuit_hd |
307 |
begin_cutscene |
308 |
sleep f30 |
309 |
chr_nocollision 0 1 |
310 |
chr_create 111 start |
311 |
chr_create 110 start |
312 |
chr_neutral 110 1 |
313 |
chr_neutral 111 1 |
314 |
playback 110 OutroNinja |
315 |
playback 111 OutroSuperNinja |
316 |
cm_interpolate JumpCamKonoko01 0 |
317 |
playback 0 JumpKonokoSet |
318 |
cm_interpolate_block JumpCamKonoko02 90 |
319 |
sleep f10 |
320 |
chr_animate 0 KONOKOlev11_jump -1 |
321 |
sleep f100 |
322 |
chr_nocollision 0 0 |
323 |
sleep f10 |
324 |
playback 0 JumpKonokoDown |
325 |
cm_interpolate OutroCamSet 0 |
326 |
#chr_forceholster 0 1 |
327 |
sleep f90 |
328 |
cm_interpolate OutroCam01 140 |
329 |
sleep 60 |
330 |
chr_animate 111 NINCOMstartle_bk1 |
331 |
sleep 80 |
332 |
cinematic_start (BOSS2face, 180, 180, 17, 6, 30, false) |
333 |
sound_dialog_play c10_37_01superninja |
334 |
sound_dialog_play_block pause |
335 |
cinematic_stop(BOSS2face, 17, 30) |
336 |
#ninja jumps onto line |
337 |
obj_create 71 71 |
338 |
cm_anim both OutroCam02 |
339 |
env_anim 71 71 |
340 |
chr_envanim 111 OutroNinjaBox01 norotation |
341 |
chr_animate 111 NINJAlev11_outrozip01 |
342 |
playback 110 OutroNinja02 |
343 |
cutscene_sync_mark |
344 |
sound_ambient_start c12_14_07zipa |
345 |
sleep 170 |
346 |
cm_interpolate OutroCam03 0 |
347 |
playback 0 OutroKonoko |
348 |
#kill character 111 here |
349 |
chr_delete 111 |
350 |
sleep 60 |
351 |
#KONOKO jumps on back of Ninja |
352 |
env_anim 71 71 |
353 |
chr_envanim_block 110 OutroNinjaBox01 norotation |
354 |
chr_animate 110 NINJAlev11_outrozip01 |
355 |
chr_envanim 0 OutroKonBox01 norotation |
356 |
chr_animate 0 KONOKOlev11_outrozip01 |
357 |
cm_anim both OutroCam04 |
358 |
cutscene_sync_mark |
359 |
sound_ambient_start c12_14_07zipb |
360 |
cm_wait |
361 |
cm_anim both OutroCam05 |
362 |
env_setanim 71 Zipthing02 |
363 |
chr_envanim 110 OutroNinjaBox02 norotation |
364 |
chr_animate 110 NINJAlev11_outrozip02 |
365 |
chr_envanim 0 OutroKonBox02 norotation |
366 |
chr_animate 0 KONOKOlev11_outrozip02 |
367 |
sleep 60 |
368 |
fade_out 0 0 0 60 |
369 |
sleep 90 |
370 |
win |
371 |
} |
372 |
|
373 |
func void |
374 |
Floor2Unlock(string ai_name) |
375 |
{ |
376 |
input 0 |
377 |
cm_interpolate Floor2Unlock 0 |
378 |
sleep 150 |
379 |
cm_reset |
380 |
door_unlock 54 |
381 |
particle lock1_locklight01 do start |
382 |
input 1 |
383 |
} |
384 |
|
385 |
func void |
386 |
DataArchiveUnlock(string ai_name) |
387 |
{ |
388 |
door_unlock 7 |
389 |
ai2_spawn fl1_target_1 |
390 |
input 0 |
391 |
sound_music_start mus_heart |
392 |
fork music_force_stop |
393 |
cm_interpolate DataArchiveUnlock 0 |
394 |
trigvolume_enable shut_off_vault_music 1 |
395 |
particle obj1 create |
396 |
sleep 150 |
397 |
cm_reset |
398 |
input 1 |
399 |
} |
400 |
|
401 |
func void |
402 |
you_lose(string ai_name) |
403 |
{ |
404 |
sound_music_stop mus_main02_hd |
405 |
sound_music_stop mus_heart |
406 |
sound_music_stop mus_pursuit |
407 |
sleep 240 |
408 |
fade_out 0 0 0 180 |
409 |
sleep 240 |
410 |
lose |
411 |
} |