1 | # |
---|
2 | # |
---|
3 | # roof_cutscene.bsl |
---|
4 | # |
---|
5 | |
---|
6 | func void intro_roll_sounds(void) |
---|
7 | { |
---|
8 | sleep 252 |
---|
9 | sound_impulse_play kon_roll |
---|
10 | sleep 3 |
---|
11 | sound_impulse_play kon_roll |
---|
12 | } |
---|
13 | |
---|
14 | func void |
---|
15 | intro_taunt( |
---|
16 | void) |
---|
17 | { |
---|
18 | chr_envanim_stop IntroNinja |
---|
19 | chr_teleport IntroNinja 600 |
---|
20 | chr_facetoflag IntroNinja 600 |
---|
21 | chr_animate IntroNinja NINCOMcrouch_idle |
---|
22 | |
---|
23 | ai2_passive IntroNinja 1 |
---|
24 | ai2_setmovementmode IntroNinja creep |
---|
25 | sleep f40 |
---|
26 | playback_block IntroNinja IntroNinja |
---|
27 | ai2_passive IntroNinja 0 |
---|
28 | |
---|
29 | ai2_attack IntroNinja 0 |
---|
30 | } |
---|
31 | |
---|
32 | func void |
---|
33 | intro( |
---|
34 | void) |
---|
35 | { |
---|
36 | fade_out 0 0 0 0 |
---|
37 | cm_interpolate IntroCam01 0 |
---|
38 | sleep 14 |
---|
39 | begin_cutscene |
---|
40 | ai2_spawn IntroNinja |
---|
41 | #sound_ambient_start c08_11_19zip |
---|
42 | sleep 30 |
---|
43 | fade_in 120 |
---|
44 | obj_create 81 81 |
---|
45 | env_anim 81 81 |
---|
46 | cm_anim both IntroCam01 |
---|
47 | chr_envanim 0 IntroKonBip01 norotation |
---|
48 | chr_animate 0 KONOKOlev12_Intro |
---|
49 | chr_envanim IntroNinja IntroNinBip01 norotation |
---|
50 | chr_animate IntroNinja NINJAlev12_Intro |
---|
51 | fork intro_roll_sounds |
---|
52 | sleep f30 |
---|
53 | sound_ambient_start c08_11_19zip |
---|
54 | cm_anim_block both IntroCam02 |
---|
55 | cm_wait |
---|
56 | cm_reset |
---|
57 | playback 0 IntroKonoko |
---|
58 | done_with_intro_cutscene = 1; |
---|
59 | trigvolume_reset death_fall_trigger_67 |
---|
60 | end_cutscene |
---|
61 | fork intro_taunt |
---|
62 | s1 |
---|
63 | } |
---|
64 | |
---|
65 | func void |
---|
66 | camcontrol( |
---|
67 | void) |
---|
68 | { |
---|
69 | cm_anim both IntroCam01 |
---|
70 | cm_anim_block both IntroCam02 |
---|
71 | cm_wait |
---|
72 | } |
---|
73 | |
---|
74 | |
---|
75 | |
---|
76 | func void |
---|
77 | Elevator( |
---|
78 | void) |
---|
79 | { |
---|
80 | begin_cutscene |
---|
81 | sleep 10 |
---|
82 | # "It's strange, I can almost feel him out there, creeping from shadow to shadow..." |
---|
83 | sound_dialog_play c11_39_02konoko |
---|
84 | playback 0 ElevatorKonokoSet |
---|
85 | cm_interpolate ElevatorCam01 0 |
---|
86 | sleep 10 |
---|
87 | chr_envanim 0 ElevatorKonBox01 |
---|
88 | obj_create 31 31 |
---|
89 | obj_shade 31 31 .4 .4 .4 |
---|
90 | env_anim 31 31 |
---|
91 | sound_ambient_start first_elevator |
---|
92 | cm_anim both ElevatorCam01 |
---|
93 | sleep 220 |
---|
94 | obj_kill 31 31 |
---|
95 | env_show 31 1 |
---|
96 | cm_reset |
---|
97 | sleep 10 |
---|
98 | end_cutscene |
---|
99 | } |
---|
100 | |
---|
101 | |
---|
102 | |
---|
103 | |
---|
104 | func void |
---|
105 | NinjaZip( |
---|
106 | void) |
---|
107 | { |
---|
108 | chr_envanim NinjaZip ZipNinjaBipBox norotation |
---|
109 | chr_animate NinjaZip NINJAlev12_zip |
---|
110 | obj_create 72 72 |
---|
111 | env_anim 72 72 |
---|
112 | sleep 60 |
---|
113 | playback E_N14 Ninja02Jump |
---|
114 | sleep 80 |
---|
115 | ai2_passive E_N14 0 |
---|
116 | sleep 100 |
---|
117 | playback NinjaZip NinjaZipLeave |
---|
118 | sleep 120 |
---|
119 | chr_delete NinjaZip |
---|
120 | } |
---|
121 | |
---|
122 | func void |
---|
123 | KonokoZip( |
---|
124 | void) |
---|
125 | { |
---|
126 | particle obj_zip kill |
---|
127 | begin_cutscene |
---|
128 | sleep 10 |
---|
129 | cm_anim both KonZipCam01 |
---|
130 | chr_envanim 0 ZipKonBipBox norotation |
---|
131 | chr_animate 0 KONOKOlev12_zip |
---|
132 | obj_create 71 71 |
---|
133 | env_anim 71 71 |
---|
134 | sleep 55 |
---|
135 | sound_ambient_start c08_11_19zip |
---|
136 | sleep 235 |
---|
137 | |
---|
138 | # CB: kill ninja's zip so we don't get Z fighting on superposed objects |
---|
139 | obj_kill 72 72 |
---|
140 | |
---|
141 | cm_reset |
---|
142 | end_cutscene |
---|
143 | } |
---|
144 | |
---|
145 | func void pretty_sayline(void) |
---|
146 | { |
---|
147 | sleep 180 |
---|
148 | # "I'm backing him into a corner. This isn't going to be pretty." |
---|
149 | sound_dialog_play c11_39_09konoko |
---|
150 | sound_dialog_play_block pause |
---|
151 | sleep 30 |
---|
152 | door_open 2 |
---|
153 | door_jam 2 |
---|
154 | } |
---|
155 | |
---|
156 | func void |
---|
157 | ninja( |
---|
158 | void) |
---|
159 | { |
---|
160 | begin_cutscene |
---|
161 | sleep 10 |
---|
162 | fork pretty_sayline |
---|
163 | fork storm |
---|
164 | ai2_spawn OutroNinja |
---|
165 | chr_boss_shield OutroNinja |
---|
166 | ai2_allpassive 1 |
---|
167 | playback OutroNinja SuperNinjaSet |
---|
168 | chr_nocollision OutroNinja 1 |
---|
169 | #konokoenters elevator |
---|
170 | #cm_interpolate SuperCam00 0 |
---|
171 | #playback 0 SuperKonokoEnter |
---|
172 | chr_envanim 0 SuperKonBox01 |
---|
173 | gs_farclipplane_set 500 |
---|
174 | obj_create 41 41 |
---|
175 | obj_shade 41 41 .4 .4 .4 |
---|
176 | env_anim 41 41 |
---|
177 | sound_ambient_start c08_20_27elevator |
---|
178 | cm_anim both SuperCam00 |
---|
179 | cm_wait |
---|
180 | obj_kill 41 41 |
---|
181 | env_show 41 1 |
---|
182 | cm_interpolate SuperNinjaCam01 180 |
---|
183 | sleep 120 |
---|
184 | #all you have done is force me to fight |
---|
185 | sound_dialog_play c11_40_01superninja |
---|
186 | cinematic_start (BOSS2face, 180, 180, 19, 7, 20, false) |
---|
187 | sleep 60 |
---|
188 | playback 0 SuperKonokoSet |
---|
189 | sound_dialog_play_block pause |
---|
190 | #Konoko who are you |
---|
191 | cm_interpolate SuperCamKonokoSet 0 |
---|
192 | door_close 2 |
---|
193 | door_lock 2 |
---|
194 | sound_dialog_play c11_40_02konoko |
---|
195 | cinematic_start (KONtalking, 180, 180, 20, 9, 20, true) |
---|
196 | sound_dialog_play_block pause |
---|
197 | cinematic_stop (KONtalking, 20, 20) |
---|
198 | #Super Ninja goes around |
---|
199 | playback OutroNinja SuperNinjaWalk |
---|
200 | sleep 40 |
---|
201 | playback 0 SuperKonokoWalk |
---|
202 | #ninja talks |
---|
203 | sound_dialog_play c11_40_03superninja |
---|
204 | cinematic_stop (BOSS2face, 7, 0) |
---|
205 | cinematic_start (BOSS2face, 180, 180, 7, 9, 2, false) |
---|
206 | cm_interpolate SuperCamWalkOut02 0 |
---|
207 | cm_interpolate_block SuperCamWalkOut02b 800 |
---|
208 | sound_dialog_play_block pause |
---|
209 | #konoko answers |
---|
210 | sound_dialog_play c11_40_04konoko |
---|
211 | cinematic_start (KONtalking, 180, 180, 16, 3, 20, true) |
---|
212 | sound_dialog_play_block pause |
---|
213 | cinematic_stop (KONtalking, 16, 20) |
---|
214 | #super ninja we writhe |
---|
215 | sound_dialog_play c11_40_05superninja |
---|
216 | #cm_interpolate_block SuperCamWalkOut02b 800 |
---|
217 | sound_dialog_play_block pause |
---|
218 | cm_interpolate SuperCamWalkOut02b 800 |
---|
219 | #Konoko says you're a thug |
---|
220 | sound_dialog_play c11_40_06konoko |
---|
221 | cinematic_start (KONangry, 180, 180, 16, 3, 20, true) |
---|
222 | cm_interpolate SuperCamWalkOut03 0 |
---|
223 | cm_interpolate_block SuperCamWalkOut03b 600 |
---|
224 | sound_dialog_play_block pause |
---|
225 | cinematic_stop (KONtalking, 16, 20) |
---|
226 | #ninja says we'll see about that |
---|
227 | sound_dialog_play c11_40_07superninja |
---|
228 | sound_dialog_play_block pause |
---|
229 | cinematic_stop (BOSS2face, 19, 15) |
---|
230 | #gameplay setup |
---|
231 | playback 0 SuperKonokoEnd |
---|
232 | cm_reset |
---|
233 | end_cutscene |
---|
234 | sleep 20 |
---|
235 | chr_animate OutroNinja NINCOMteleport_in 47 |
---|
236 | music_battle |
---|
237 | sleep 40 |
---|
238 | playback OutroNinja SuperNinjaDone |
---|
239 | chr_animate OutroNinja NINCOMteleport_out 31 |
---|
240 | chr_nocollision OutroNinja 0 |
---|
241 | |
---|
242 | dprint SAVEDGAME4 |
---|
243 | save_game 4 autosave |
---|
244 | } |
---|
245 | |
---|
246 | |
---|
247 | func void |
---|
248 | test( |
---|
249 | void) |
---|
250 | { |
---|
251 | chr_envanim 0 ZipKonBipBox norotation |
---|
252 | sleep 120 |
---|
253 | playback 0 IntroKonoko |
---|
254 | } |
---|
255 | |
---|
256 | |
---|
257 | func void |
---|
258 | deathfall( |
---|
259 | void) |
---|
260 | { |
---|
261 | if (done_with_intro_cutscene eq 1) |
---|
262 | { |
---|
263 | sleep 30 |
---|
264 | cm_detach |
---|
265 | sleep 30 |
---|
266 | chr_set_health 0 0 |
---|
267 | } |
---|
268 | } |
---|
269 | |
---|
270 | |
---|
271 | func void |
---|
272 | outro( |
---|
273 | void) |
---|
274 | { |
---|
275 | sound_music_volume mus_fitec 0.0 1.0 |
---|
276 | music_stop |
---|
277 | begin_cutscene |
---|
278 | chr_animate OutroNinja NINCOMteleport_in 31 |
---|
279 | sleep 10 |
---|
280 | #spawn teleported Ninja and add some glowy bits |
---|
281 | chr_envanim OutroNinja OutroNinjaBox01 |
---|
282 | chr_animate OutroNinja NINCOMteleport_out 31 |
---|
283 | sleep 10 |
---|
284 | cm_interpolate OutroCam01 0 |
---|
285 | sleep 10 |
---|
286 | chr_envanim OutroNinja OutroNinjaBox01 norotation |
---|
287 | chr_animate OutroNinja NINJAlev12_Outro1 |
---|
288 | sound_ambient_start ninja_cd_scene |
---|
289 | cm_anim both OutroCam01 |
---|
290 | sleep 208 |
---|
291 | obj_create 481 481 |
---|
292 | env_anim 481 481 |
---|
293 | cm_interpolate OutroCamDisk 90 |
---|
294 | chr_envanim OutroNinja OutroNinjaBox02 norotation |
---|
295 | chr_animate OutroNinja NINJAlev12_Outro2 900 |
---|
296 | #Konoko patrol to flag 2000 |
---|
297 | #chr_teleport 0 2000 |
---|
298 | playback 0 OutroKonoko01 |
---|
299 | sleep 100 |
---|
300 | sleep 70 |
---|
301 | #camera cut here to Konoko's face |
---|
302 | cm_interpolate OutroCam02 0 |
---|
303 | #sleep 30 |
---|
304 | #playback 0 OutroKonoko02 |
---|
305 | sleep 50 |
---|
306 | cinematic_start (KONtalking, 180, 180, 18, 6, 15, true) |
---|
307 | sound_dialog_play c11_41_01konoko |
---|
308 | sleep 300 |
---|
309 | #camera cut here to Konoko and Ninja |
---|
310 | cm_interpolate OutroCam03 0 |
---|
311 | cm_interpolate_block OutroCam04 800 |
---|
312 | chr_envanim OutroNinja OutroNinjaBox02 norotation |
---|
313 | chr_animate OutroNinja NINJAlev12_Outro2 1300 |
---|
314 | sound_dialog_play_block |
---|
315 | # Camera cut as Konoko steps on Ninja |
---|
316 | #Add sound of Konoko saying she has nothing in common |
---|
317 | sound_dialog_play c11_41_01bkonoko |
---|
318 | cinematic_stop (KONtalking, 18, 20) |
---|
319 | cinematic_start (KONintense, 180, 180, 18, 6, 15, true) |
---|
320 | cm_anim both OutroCam05 |
---|
321 | chr_envanim 0 OutroKonBox01 norotation |
---|
322 | chr_animate 0 KONOKOlev12_Outro1 |
---|
323 | chr_envanim OutroNinja OutroNinjaBox03 norotation |
---|
324 | chr_animate OutroNinja NINJAlev12_Outro3 |
---|
325 | sleep 175 |
---|
326 | sound_ambient_start c09_36_26neckbreak |
---|
327 | sleep 100 |
---|
328 | #Camera cut to Konoko's face |
---|
329 | playback 0 OutroKonoko02 |
---|
330 | chr_animate OutroNinja STRIKEfallen_front 540 |
---|
331 | cm_interpolate OutroCam06 0 |
---|
332 | sleep 60 |
---|
333 | sound_dialog_play c11_41_02konoko |
---|
334 | cinematic_stop (KONintense, 18, 10) |
---|
335 | sleep 60 |
---|
336 | fade_out 0 0 0 120 |
---|
337 | sleep 120 |
---|
338 | win |
---|
339 | } |
---|
340 | |
---|