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 |
|