source: AE/packages/81000TCTF3/BSL/tctf_iii/tctf3.bsl@ 522

Last change on this file since 522 was 520, checked in by gumby, 14 years ago

backing up

File size: 8.9 KB
RevLine 
[520]1func void start(string ai_name)
2{
3 #Konoko temp spawn location.
4 chr_location 0 229 -90 -384
5 #Chair stuff
6 env_show 171 1
7 env_show 172 1
8 env_show 173 1
9 env_show 174 1
10 dprint start
11
12
13 setup_doors
14 fork laser_byebye
15 #trigvolume_enable trigger_volume_29 0
16 #trigvolume_enable trigger_volume_35 0
17 #trigvolume_enable trigger_volume_39 0
18 #trigvolume_enable trigger_volume_36 0
19 #trigvolume_enable trigger_volume_41 0
20
21 my_save_point = save_point;
22
23 env_show 403 0
24
25 env_show 1010 0
26 dprint restore5
27 objective_set(4)
28 trigvolume_enable trigger_volume_42 0
29 trigvolume_enable trigger_volume_35 0
30 #Old Door locking
31 particle ZomShin_door_locklight01 do start
32 #door_lock 16
33
34 #TCTF II cutscene "Base"
35 env_show 171 1
36 env_show 172 1
37 env_show 173 1
38 env_show 174 1
39 # particle Forcefield do start
40 # particle zombiesteam start
41 #sound_ambient_start zomshin_amb_loop 1.0
42 #music_zom
43
44 #these next lines place griffin where he should be
45 dprint place_griffin_and_holster
46 ai2_spawn ZomGrif
47 ai2_makeignoreplayer ZomGrif 1
48 # make sure that griffin is aiming his weapon!
49 ai2_setmovementmode ZomGrif walk
50 # ai2_passive ZomGrif 1
51 playback ZomGrif ZomGrifDraw
52
53 # don't call the GrifSpawn function again
54
55 # create_zomshin
56 playback ZomShin BaseShin
57 chr_create 1202
58 chr_envanim 1202 IntroGriffinBox02
59
60 # zombie_round_2
61 chr_wait_health 1202 0
62 #slowmo 1000
63 #this will be replaced with a low gravity ONCC
64 ai2_spawn l1
65 chr_invincible l1
66 chr_envanim l1 IntroGriffinBox03 norotation
67}
68func void laser_byebye {
69 #should probably be replaced with some BINATRIG mods, but this will do for now
70 dprint laser_go_bye_bye
71 trig_deactivate 1
72 trig_deactivate 2
73 trig_deactivate 3
74 trig_deactivate 4
75 trig_deactivate 5
76 trig_deactivate 8
77 trig_deactivate 303
78 trig_deactivate 100
79 trig_deactivate 101
80 trig_deactivate 500
81 trig_deactivate 400
82 sleep 15
83 trig_deactivate 503
84 sleep 5
85 trig_deactivate 502
86 sleep 5
87 trig_deactivate 501
88 sleep 15
89 trig_deactivate 510
90 sleep 5
91 trig_deactivate 511
92 sleep 5
93 trig_deactivate 512
94 sleep 15
95 trig_deactivate 520
96 sleep 5
97 trig_deactivate 521
98 sleep 5
99 trig_deactivate 522
100 sleep 15
101 trig_deactivate 320
102 sleep 15
103 trig_deactivate 315
104 sleep 15
105 trig_deactivate 302
106}
107func void setup_doors(void) {
108#Old door locks
109# door_unlock 65
110# door_unlock 71
111# door_unlock 59
112# door_unlock 61
113# door_unlock 67
114# door_lock 7
115# door_lock 4
116# door_lock 5
117# door_lock 8
118# door_lock 6
119# door_lock 9
120# console_deactivate 3
121 chr_location 1 90 .5 -50
122 # incidental zombie shinatama dialog
123 trigvolume_enable shinzom_voice1 0
124 trigvolume_enable shinzom_voice2 0
125 trigvolume_enable shinzom_voice3 0
126 trigvolume_enable shinzom_voice4 0
127
128 #Most of this needs to be activated with a console. More later.
129 #Triple door
130 particle lastdoor1_locklight01 do start
131 particle lastdoor2_locklight01 do start
132 particle lastdoor3_locklight01 do start
133 door_unlock 97
134
135 #Blue door
136 #Look, ma! I broke the door!
137 #Needs sparks :P
138 door_open 28
139 door_jam 28
140 particle floor4_lock_locklight01 do stop
141
142
143 #First door
144 particle griffin_locklight01 do start
145
146 #We three doors (yellow)
147 #particle door42_locklight01 do start
148 #particle stair_lock_locklight01 do start
149 #particle roof_doors_locklight01 do start
150 door_lock 19
151 door_lock 20
152 door_lock 24
153
154 #Goodie Room
155 door_lock 36
156
157 #TCTF and BGI seperation, lower floor
158 door_lock 22
159}
160
161func void setup_lower(string ai_name) {
162 #Closes the stupid door
163 door_unjam 97
164 door_close 97
165 door_lock 97
166 particle lastdoor1_locklight01 do stop
167 particle lastdoor2_locklight01 do stop
168 particle lastdoor3_locklight01 do stop
169
170 ai2_spawn jubei
171 chr_boss_shield jubei
172 chr_givepowerup jubei shield 1
173 ai2_doalarm jubei 13
174}
175 var bool eggman;
176func void open_yellow(string char) {
177
178
179 eggman = chr_is_player(char);
180
181 if (eggman eq 0)
182 {
183 if (distracted eq 0)
184 {
185 #Places jubei in the proper position and anim
186 dprint robotnik
187 chr_animate(char, STRIKEconsole, 7777777);
188 console_reset 13
189 sleep 10
190 chr_freeze jubei 1
191 #This animation will be ended when konoko enters. Yes, I am OCD. He must type!
192 }
193 }
194
195 if (eggman eq 1)
196 {
197 #If player, unlock the yellow doors ^_^
198 dprint sonic
199 particle door42_locklight01 do start
200 particle stair_lock_locklight01 do start
201 particle roof_doors_locklight01 do start
202 door_unlock 19
203 door_unlock 20
204 door_unlock 24
205 }
206}
207 var bool eggman2;
208var int distracted = 0;
209func void distract_console(string char) {
210
211 eggman2 = chr_is_player(char);
212 if (eggman2 eq 0)
213 {
214 #Make jubei go back to other console
215 dprint jubei_is_distracted
216 distracted = 1;
217 ai2_tripalarm jubei 0
218 #ai2_doalarm jubei 13
219 #ai2_movetoflag jubei 598
220 }
221 if (eggman2 eq 1)
222 {
223 ai2_boss_battle = 1;
224 #Make jubei go to this console
225 dprint distracting_jubei
226 chr_freeze jubei 0
227 chr_animate(jubei, STRIKEconsole, 7);
228 sleep 10
229 console_reset 2
230 #I need to make this a patrol path
231 #I could also set his team to Neutral and then make him get attacked by Konoko :> (TRAM derived particle)
232 #Even better.
233 ai2_tripalarm 1 0
234 #erm...much better :>
235 #ai2_comehere jubei
236 ai2_setmovementmode jubei run
237 sleep 10
238 ai2_attack jubei 0
239 sleep 10
240 ai2_forget jubei
241 #I need to set up a trigger volume still, but meh.
242 #ai2_doalarm jubei 2
243 fork jubei_loop
244 }
245}
246
247func void jubei_loop(void) {
248 if(jubei_dead eq 0) {
249 ai2_tripalarm 1 0
250 #erm...much better :>
251 #ai2_comehere jubei
252 ai2_setmovementmode jubei run
253 sleep 10
254 ai2_attack jubei 0
255 sleep 10
256 ai2_forget jubei
257 fork jubei_loop
258 }
259}
260func void jubei_noticed(void) {
261dprint jubei_noticed
262ai2_inactive jubei
263#ai2_comehere jubei
264}
265
266var int jubei_dead = 0;
267func void jubei_died(string ai_name) {
268 jubei_dead = 1
269 fork lsi_loop
270}
271
272func void jubei_defeated(void) {
273 chr_inv_reset jubei
274 chr_givepowerup jubei lsi 2
275 chr_givepowerup hypo 2
276 chr_set_health jubei 0
277}
278
279func void lsi_loop(void) {
280 #needs to quit after a certain amount of time.
281 if(chr_has_lsi(0)) {
282 chr_boss_shield 0
283 chr_givepowerup 0 shield 100
284 }
285 else {
286 sleep 30
287 fork lsi_loop
288 }
289}
290func void t33(string ai_name)
291{
292 #Opens stupid door
293 dprint Open_stupid
294 sleep 20
295 door_open 97
296 door_jam 97
297
298 fork BGI_died(BGI_lower1)
299 fork BGI_died(BGI_lower2)
300 fork BGI_died(BGI_lower3)
301 fork BGI_died(BGI_lower4)
302 fork BGI_died(BGI_lower5)
303# fork BGI_died(BGI_lower6)
304# fork BGI_died(BGI_lower7)
305# fork BGI_died(BGI_lower8)
306
307
308 fork TCTF_died(TCTF_lower1)
309 fork TCTF_died(TCTF_lower2)
310 fork TCTF_died(TCTF_lower3)
311 fork TCTF_died(TCTF_lower4)
312 fork TCTF_died(TCTF_lower5)
313# fork TCTF_died(TCTF_lower6)
314# fork TCTF_died(TCTF_lower7)
315# fork TCTF_died(TCTF_lower8)
316
317
318 }
319func powersub1(string ai_name)
320{
321 dprint powersub1_active
322 sub1 = 1;
323 particle spine1 start
324 particle spinesound1 start
325
326 if(sub3 eq 0)
327 {
328# target_set(594,30.0)
329 }
330 if(sub3 ne 0)
331 {
332 if(sub2 eq 0)
333 {
334# target_set(595,30.0)
335 }
336 }
337 check_power
338}
339
340func powersub2(string ai_name)
341{
342 dprint powersub2_active
343 particle spine2 do start
344 particle spinesound2 start
345 sub2 = 1;
346 if(sub3 eq 0)
347 {
348# target_set(594,30.0)
349 }
350 if(sub3 ne 0)
351 {
352 if(sub1 eq 0)
353 {
354# target_set(587,30.0)
355 }
356 }
357 check_power
358}
359
360func powersub3(string ai_name)
361{
362 dprint powersub3_active
363 sub3 = 1;
364 particle spine3 do start
365 particle spinesound3 start
366 if(sub2 eq 0)
367 {
368# target_set(595,30.0)
369 }
370
371 if(sub2 ne 0)
372 {
373 if(sub1 eq 0)
374 {
375# target_set(587,30.0)
376 }
377 }
378 check_power
379}
380
381func check_power(string ai_name)
382{
383 dprint check_power_active
384 counter = counter - 1
385 if (counter eq 1)
386 {
387 #sound_dialog_play c14_54_27konoko
388 #sound_dialog_play_block pause
389 }
390
391 if (counter eq 0)
392 {
393 dprint defenses_active
394
395 }
396}
397
398
399func void t9(string ai_name)
400{
401#Trigger after exit basement
402dprint heyT9
403}
404
405func void floor4_lock(string ai_name)
406{
407
408 door_unlock 36
409 door_open 36
410 door_jam 36
411 #trigvolume_enable trigger_volume_39 1
412
413}
414
415func void respawn(string ai_name)
416{
417
418ai2_spawn(ai_name, force)
419
420}
421
422func void TCTF_spawned(string ai_name)
423{
424ai2_movetoflag(ai_name, 9101)
425}
426
427func void BGI_spawned(string ai_name)
428{
429 ai2_movetoflag(ai_name, 9101)
430}
431
432var string last_BGI = "none";
433var string last_TCTF = "none";
434func void BGI_died(string ai_name)
435{
436 last_BGI = ai_name;
437 if (jubei_dead eq 0) {
438 ai2_spawn(ai_name, force)
439 ai2_setmovementmode(ai_name, run)
440 ai2_movetoflag(ai_name, 9101)
441 sleep 200
442 ai2_movetoflag(ai_name, 9101)
443 ai2_makeaware(ai_name, last_TCTF)
444}
445
446}
447
448func void TCTF_died(string ai_name)
449{
450 last_TCTF = ai_name;
451 ai2_spawn(ai_name, force)
452 ai2_setmovementmode(ai_name, run)
453 ai2_movetoflag(ai_name, 9101)
454 sleep 200
455 ai2_movetoflag(ai_name, 9101)
456 ai2_makeaware(ai_name, last_BGI)
457}
Note: See TracBrowser for help on using the repository browser.