1 |
# |
2 |
# tctf_cutscene.bsl |
3 |
# |
4 |
|
5 |
func void |
6 |
Intro( |
7 |
void) |
8 |
{ |
9 |
fade_out 0 0 0 0 |
10 |
cm_interpolate IntroCam01 0 |
11 |
sleep f14 |
12 |
begin_cutscene weapon |
13 |
marketing_line_off=1 |
14 |
letterbox 1 |
15 |
sleep f60 |
16 |
invincible=1 |
17 |
obj_create 401 402 |
18 |
obj_create 404 407 |
19 |
fade_in 90 |
20 |
#Outside shot of TCTF |
21 |
cm_interpolate IntroCam01 0 |
22 |
playback 0 IntroKonokoSet |
23 |
sleep f300 |
24 |
#Griffin and Guy talking |
25 |
chr_create 1201 start |
26 |
chr_create 1202 start |
27 |
playback 1202 IntroTCTF01 |
28 |
#make this box animation last as long as conversation |
29 |
chr_envanim 1201 IntroGriffinBox01 |
30 |
chr_animate 1201 COMGUYsit_idle1 1800 |
31 |
#Conversation between the two |
32 |
cm_interpolate IntroCam02 0 |
33 |
sound_dialog_play c14_50_01scigoon1 |
34 |
cinematic_start (COPtalking, 180, 180, 15, 1, 20, false) |
35 |
sound_dialog_play_block pause |
36 |
cm_interpolate IntroCamGriffin 0 |
37 |
sound_dialog_play c14_50_02griffin |
38 |
cinematic_start (GRIFtalking, 180, 180, 16, 3, 20, true) |
39 |
sound_dialog_play_block pause |
40 |
#TCTF walks out |
41 |
sound_music_start atm_low_perc2 0.8 |
42 |
cm_interpolate IntroCam02 0 |
43 |
playback 1202 IntroTCTF02 |
44 |
sound_dialog_play c14_50_03scigoon1 |
45 |
sleep f240 |
46 |
cinematic_stop (COPtalking, 15, 20) |
47 |
cinematic_stop (GRIFtalking, 15, 20) |
48 |
sleep f60 |
49 |
door_open 70 |
50 |
door_jam 70 |
51 |
sleep f100 |
52 |
#KONOKO on roof |
53 |
playback 0 IntroKonoko01 |
54 |
cm_interpolate IntroCamInside01 0 |
55 |
cm_interpolate_block IntroCamInside02 400 |
56 |
sleep f400 |
57 |
cm_anim both IntroCamRoof |
58 |
sleep f210 |
59 |
#Konoko falls into view |
60 |
cm_anim both IntroCamFall01 |
61 |
chr_envanim 0 IntroKonBox01 norotation |
62 |
chr_animate 0 KONOKOlev18_IntroFall01 140 |
63 |
#Griffin gets surprised |
64 |
chr_delete 1202 |
65 |
cm_anim_block both IntroCamStand01 |
66 |
chr_envanim 1201 IntroGriffinBox02 norotation |
67 |
chr_animate 1201 GRIFINlev18_IntroStand 110 |
68 |
env_anim 401 401 |
69 |
sleep f88 |
70 |
#Konoko enters office |
71 |
playback 0 IntroKonoko02 |
72 |
cm_interpolate_block IntroCamKonAim01 0 |
73 |
cm_interpolate_block IntroCamKonAim02 350 |
74 |
sleep f140 |
75 |
cinematic_start(KONangryfront, 180, 180, 18, 6, 30, true) |
76 |
sound_dialog_play c14_50_04konoko |
77 |
sound_dialog_play_block pause |
78 |
cinematic_stop (KONangryfront, 18, 30) |
79 |
#Conversation with Griffin |
80 |
playback 1201 IntroGriffin |
81 |
cm_interpolate IntroCamGriffin02 0 |
82 |
cinematic_start(GRIFtalkangry, 180,180,18,6,30, true) |
83 |
sound_dialog_play c14_50_05griffin |
84 |
sound_dialog_play_block pause |
85 |
cinematic_stop (GRIFtalkangry, 18, 30) |
86 |
#Griffin's office goes down |
87 |
sound_music_volume atm_low_perc2 0.0 0.5 |
88 |
sound_music_stop atm_low_perc2 |
89 |
music_intro |
90 |
env_show 403 0 |
91 |
obj_create 403 403 |
92 |
cm_anim both IntroCamEscape01 |
93 |
chr_envanim 1201 IntroGriffinBox03 norotation |
94 |
env_setanim 401 IntroChair02 |
95 |
env_anim 402 407 |
96 |
cutscene_sync mark |
97 |
sound_ambient_start c14_46_11grifdesk |
98 |
sleep f16 |
99 |
playback 0 IntroKonokoAim fromhere |
100 |
cm_anim_block both IntroCamEscape02 |
101 |
cm_wait |
102 |
cm_reset |
103 |
obj_kill 401 407 |
104 |
# look out Stefan is editing scripts; yo foolios need to turn back on the laser sight :O) |
105 |
marketing_line_off=0 |
106 |
end_cutscene |
107 |
invincible=0 |
108 |
chr_delete 1201 |
109 |
door_unjam 70 |
110 |
door_close 70 |
111 |
# who is a foolio? the foo or the foo who follows him? |
112 |
s1 |
113 |
} |
114 |
|
115 |
|
116 |
func void |
117 |
GrifSpawn( |
118 |
void) |
119 |
{ |
120 |
ai2_spawn ZomGrif |
121 |
chr_invincible ZomGrif 1 |
122 |
sleep f2 |
123 |
ai2_passive ZomGrif 1 |
124 |
ai2_setmovementmode ZomGrif walk |
125 |
playback ZomGrif ZomGrifDraw |
126 |
} |
127 |
|
128 |
func void create_zomshin(void) |
129 |
{ |
130 |
ai2_spawn ZomShin |
131 |
ai2_passive ZomShin 1 |
132 |
chr_shadow ZomShin 0 |
133 |
chr_invincible ZomShin 1 |
134 |
chr_unstoppable ZomShin 1 |
135 |
chr_nocollision ZomShin 1 |
136 |
chr_neutral ZomShin 1 |
137 |
chr_lock_active ZomShin |
138 |
} |
139 |
|
140 |
func void |
141 |
Base( |
142 |
void) |
143 |
{ |
144 |
begin_cutscene |
145 |
#place Griffin here earlier |
146 |
#chr_neutral ZomGrif 1 |
147 |
sleep f20 |
148 |
#playback ZomGrif BaseGriffin01 |
149 |
cm_interpolate BaseCam01 180 |
150 |
sleep f210 |
151 |
#place Konoko |
152 |
playback 0 BaseKonoko01 |
153 |
cm_interpolate BaseCam02 0 |
154 |
cm_interpolate_block BaseCam04 500 |
155 |
sound_dialog_play c14_51_01konoko |
156 |
cinematic_start(KONangryfront, 180,180,19,7,20, true) |
157 |
sound_dialog_play_block pause |
158 |
cinematic_stop (KONangryfront, 19, 20) |
159 |
cm_interpolate BaseCam01 0 |
160 |
cm_interpolate_block BaseCam03 600 |
161 |
sound_dialog_play c14_51_02griffin |
162 |
cinematic_start(GRIFtalkangry, 180,180,20,9,20, true) |
163 |
sound_dialog_play_block pause |
164 |
cutscene_sync mark |
165 |
sound_ambient_start c15_04_23_effects |
166 |
sound_dialog_play c14_51_03griffin |
167 |
#Shinzom comes out of ground |
168 |
create_zomshin |
169 |
chr_envanim ZomShin ChairShinBox01 |
170 |
obj_create 171 174 |
171 |
env_anim 171 174 |
172 |
obj_shade 171 174 .5 .5 .5 |
173 |
cm_anim both ChairCamZomUp |
174 |
#chr_create ZomShin start |
175 |
#chr_neutral ZomShin 1 |
176 |
sleep f270 |
177 |
particle zombiespark pulse |
178 |
|
179 |
cm_wait |
180 |
|
181 |
particle zombient start |
182 |
#hide Chair object, show chair gunk |
183 |
env_show 171 1 |
184 |
env_show 172 1 |
185 |
env_show 173 1 |
186 |
env_show 174 1 |
187 |
obj_kill 171 174 |
188 |
cm_interpolate BaseCamShin01 0 |
189 |
playback ZomShin BaseShin |
190 |
cm_interpolate_block BaseCamShin02 300 |
191 |
sound_dialog_play_block |
192 |
cinematic_stop (GRIFtalkangry, 20, 20) |
193 |
sound_dialog_play c14_51_04shinatama |
194 |
cinematic_start(SHINZOMlistening, 180,180,19,7,20, false) |
195 |
sound_dialog_play_block |
196 |
cinematic_stop (SHINZOMlistening, 19, 20) |
197 |
sleep f30 |
198 |
particle Forcefield do start |
199 |
sound_ambient_start zomshin_amb_loop 0.1 |
200 |
sound_ambient_volume zomshin_amb_loop 1.0 1.0 |
201 |
cm_interpolate BaseCam02 0 |
202 |
sound_dialog_play c14_51_05konoko |
203 |
cinematic_start(KONscared, 180,180,20,9,20, true) |
204 |
sound_dialog_play_block |
205 |
cinematic_stop (KONscared, 20, 20) |
206 |
playback ZomShin BaseShin |
207 |
cm_interpolate_block BaseCamShin02 0 |
208 |
sound_dialog_play c14_51_06shinatama |
209 |
cinematic_start(SHINZOMlistening, 180,180,19,7,20, false) |
210 |
particle zombiesteam start |
211 |
sound_dialog_play_block pause |
212 |
cinematic_stop (SHINZOMlistening, 19, 20) |
213 |
# cm_reset |
214 |
# trig_show 9 |
215 |
# trig_activate 9 |
216 |
end_cutscene |
217 |
music_zom |
218 |
ai2_passive ZomShin 1 |
219 |
ai2_makeignoreplayer ZomGrif 1 |
220 |
zombie_round_2 |
221 |
# ai2_allpassive 1 |
222 |
# remove line below after zomshin puzzle is fixed |
223 |
# Zom |
224 |
} |
225 |
|
226 |
func void fade_out_zom_amb(void) |
227 |
{ |
228 |
sound_ambient_volume zomshin_amb_loop 0.0 1.0 |
229 |
sleep 60 |
230 |
sound_ambient_stop zomshin_amb_loop |
231 |
} |
232 |
|
233 |
func void |
234 |
Zom( |
235 |
void) |
236 |
{ |
237 |
env_show 1010 0 |
238 |
particle Forcefield do stop |
239 |
fork fade_out_zom_amb |
240 |
begin_cutscene |
241 |
marketing_line_off=1 |
242 |
#Shinatama will already be created |
243 |
#show the destruction of the turrets and the forcefield around Griffin |
244 |
#cm_interpolate ZomCamGrif01 0 |
245 |
ai2_setmovementmode ZomGrif walk |
246 |
playback ZomGrif ZomGrifDrawSet |
247 |
#sleep f120 |
248 |
#Shinatama gets up out of chair |
249 |
chr_shadow ZomShin 1 |
250 |
chr_invincible ZomShin 0 |
251 |
chr_unstoppable ZomShin 0 |
252 |
chr_envanim ZomShin ZomShinBox01 norotation |
253 |
chr_animate ZomShin SHINZOMlev18_Free |
254 |
cm_anim both ZomCamFree01 |
255 |
sleep f90 |
256 |
cutscene_sync mark |
257 |
sound_ambient_start c_shin_escape |
258 |
cm_wait |
259 |
#Griffin says "what are you doing?" |
260 |
cm_interpolate ZomCamGrif01 0 |
261 |
sound_dialog_play c14_52_01griffin |
262 |
cinematic_start(GRIFtalkangry, 180,180,19,7,20, false) |
263 |
sound_dialog_play_block |
264 |
cinematic_stop(GRIFtalkangry, 19,20) |
265 |
#Shinatama approaches Griffin |
266 |
cm_interpolate ZomCamShinStart 0 |
267 |
playback ZomShin ZomShinSet |
268 |
chr_animate ZomShin SHINZOMwalk1 180 |
269 |
chr_nocollision ZomShin 0 |
270 |
sleep f175 |
271 |
#Griffin says GET BACK OR I'll SHOOT |
272 |
#cm_interpolate ZomCamGrif01 0 |
273 |
#playback ZomGrif ZomGrifDrawSet |
274 |
#sleep f120 |
275 |
#Shin keeps coming |
276 |
#cm_interpolate ZomCamShinApproach 0 |
277 |
playback ZomShin ZomShinWalk |
278 |
chr_animate ZomShin SHINZOMwalk1 600 |
279 |
#sleep f120 |
280 |
#Griffin draws weapon |
281 |
cm_interpolate ZomCamGrif01 0 |
282 |
playback ZomGrif ZomGrifDrawSet |
283 |
sleep f30 |
284 |
#sound_dialog_play c14_52_01bgriffin |
285 |
playback ZomGrif ZomGrifDraw |
286 |
sleep f60 |
287 |
#konoko drops weapon |
288 |
playback 0 ZomKonokoDrop |
289 |
#Shinatama Approaches Griffin |
290 |
cm_interpolate ZomCamBoth 0 |
291 |
sleep f180 |
292 |
#Griffin shoots |
293 |
cm_interpolate ZomCamGrifShoot 0 |
294 |
playback ZomGrif ZomGrifShoot |
295 |
sleep f50 |
296 |
#Shinatama gets hit |
297 |
cm_interpolate ZomCamShinDie 0 |
298 |
chr_animate ZomShin SHINZOMshot 126 |
299 |
sound_ambient_start c_shin_die 1.0 |
300 |
sleep f120 |
301 |
#Show Griffin over Shinatama |
302 |
cm_interpolate ZomCamDead 0 |
303 |
playback ZomGrif ZomGriffinKilled |
304 |
chr_animate ZomShin SHINZOMfallen_front 1000 |
305 |
sleep f10 |
306 |
cm_interpolate ZomCamKonokoBehind 270 |
307 |
playback 0 ZomKonokoBehind |
308 |
sleep f280 |
309 |
#Griffin turns and gets thrown |
310 |
# CB: we force omnipotent off because it breaks this cutscene (you kill |
311 |
# griffin prematurely) |
312 |
omnipotent = 0 |
313 |
chr_invincible ZomGrif 0 |
314 |
ai2_kill ZomShin |
315 |
chr_neutral ZomGrif 0 |
316 |
cm_interpolate ZomCamThrow 0 |
317 |
playback ZomGrif ZomGriffinTurn |
318 |
playback 0 ZomKonokoThrow |
319 |
sleep f140 |
320 |
#Knoko holds him down |
321 |
cm_interpolate ZomCamKonokoAim02 0 |
322 |
chr_neutral ZomGrif 1 |
323 |
chr_envanim ZomGrif ZomGriffinBox01 norotation |
324 |
chr_envanim 0 ZomKonokoBox01 norotation |
325 |
chr_animate 0 KONOKOlev18_ZomAim 300 |
326 |
chr_animate ZomGrif GRIFINlev18_ZomAim 500 |
327 |
sound_dialog_play c14_52_02konoko |
328 |
cinematic_start(KONangryfront, 180,180,19,7,20, false) |
329 |
sound_dialog_play_block pause |
330 |
#Looking down at griffin |
331 |
#chr_envanim 0 ZomKonokoBox01 norotation |
332 |
#chr_envanim ZomGrif ZomGriffinBox01 norotation |
333 |
#chr_animate 0 KONOKOlev18_ZomAim 300 |
334 |
#chr_animate ZomGrif GRIFINlev18_ZomAim 500 |
335 |
#cm_interpolate ZomCamKonokoAim01 0 |
336 |
#KONoko gets off Griffin |
337 |
#cm_interpolate ZomCamKonokoAim02 0 |
338 |
chr_envanim 0 ZomKonokoBox02 norotation |
339 |
chr_envanim ZomGrif ZomGriffinBox01 norotation |
340 |
chr_animate ZomGrif GRIFINlev18_ZomAim 500 |
341 |
chr_animate 0 KONOKOlev18_ZomUp 120 |
342 |
#sound_dialog_play c14_52_04konoko |
343 |
#Griffin gets up put the gun down |
344 |
sleep f100 |
345 |
cm_interpolate ZomCamGriffinUp 0 |
346 |
chr_envanim ZomGrif ZomGriffinBox02 norotation |
347 |
chr_animate ZomGrif GRIFINlev18_ZomUp |
348 |
sound_dialog_play c14_52_03griffin |
349 |
cinematic_start(GRIFbeatup, 180, 180, 20, 9, 20, true) |
350 |
sound_dialog_play_block pause |
351 |
#Konoko I'm a rogue agent, very dangerous |
352 |
playback 0 ZomKonokoFace |
353 |
cm_interpolate ZomCamKonokoFace 0 |
354 |
sound_dialog_play c14_52_04konoko |
355 |
sound_dialog_play_block pause |
356 |
#Griffin says youre a monster |
357 |
cm_interpolate ZomCamGriffinFace 0 |
358 |
playback ZomGrif ZomGriffinFace |
359 |
sound_dialog_play c14_52_05griffin |
360 |
sound_dialog_play_block pause |
361 |
#for you, badly |
362 |
cm_interpolate ZomCamKonokoFace 0 |
363 |
sound_dialog_play c14_52_06konoko |
364 |
sound_dialog_play_block pause |
365 |
#Griffin says youre a monster |
366 |
cm_interpolate ZomCamGriffinFace 0 |
367 |
sound_dialog_play c14_52_07griffin |
368 |
sound_dialog_play_block pause |
369 |
cinematic_stop(GRIFbeatup, 20, 20) |
370 |
cinematic_stop(KONangryfront, 19, 20) |
371 |
#Give player back control |
372 |
cm_reset |
373 |
end_cutscene |
374 |
ai2_allpassive 1 |
375 |
chr_set_health ZomGrif 1 |
376 |
marketing_line_off=0 |
377 |
trigvolume_enable trigger_volume_35 1 |
378 |
objective_set(5) |
379 |
} |
380 |
|
381 |
func void |
382 |
OutroKill( |
383 |
void) |
384 |
{ |
385 |
sound_music_start mus_wls 1.0 |
386 |
begin_cutscene jello |
387 |
sleep f40 |
388 |
sound_dialog_play c14_53_01konoko |
389 |
cinematic_start(KONintense, 180,180,19,8,20, false) |
390 |
sound_dialog_play_block |
391 |
cinematic_stop (KONintense, 19, 20) |
392 |
fade_out 0 0 0 120 |
393 |
sleep f120 |
394 |
end_cutscene |
395 |
win |
396 |
} |
397 |
|
398 |
|
399 |
func void |
400 |
OutroNoKill( |
401 |
void) |
402 |
{ |
403 |
begin_cutscene jello |
404 |
cm_detach |
405 |
ai2_takecontrol 1 |
406 |
ai2_lookatchar 0 ZomGrif |
407 |
ai2_lookatchar ZomGrif 0 |
408 |
sound_music_start mus_sad1 |
409 |
sound_dialog_play c14_54_01konoko |
410 |
cinematic_start(KONlistening, 180,180,19,8,20, false) |
411 |
sleep f120 |
412 |
cm_interpolate BaseCam01 180 |
413 |
sound_dialog_play_block |
414 |
cinematic_stop (KONlistening, 19, 20) |
415 |
fade_out 0 0 0 120 |
416 |
sleep f120 |
417 |
end_cutscene |
418 |
win |
419 |
} |