Subversion Repositories nw_plus

Rev

Rev 7 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 h266 1
/*
2
--------------------------------------------------------------------------------
3
Duke: Nuclear Winter
4
By Joris Weimar
5
 1997 Simply Silly Software
6
--------------------------------------------------------------------------------
7
Duke: Nuclear Winter Plus
8
By Hendricks266
9
--------------------------------------------------------------------------------
10
*/
11
 
12
state snowmangrowcode
13
  ifcount 32
14
  {
15
    addkills 1
16
    sound SQUISH2
17
    sound PIPEBOMB_EXPLODE
18
    hitradius 2048 60 70 80 90
19
    debris SCRAP3 40
20
    debris SCRAP3 40
21
    debris SCRAP3 40
22
    debris SCRAP3 40
23
    killit
24
  }
25
  else
26
  {
27
      sizeto MAXXSTRETCH MAXYSTRETCH
28
    break
29
  }
30
ends
31
 
32
move SNOWBALLSPEED1 750 100
33
move SNOWBALLUP 0 -2000
34
 
35
action SNOWBALL1 0 1 1 1 1
36
 
37
ai AISNOWBALL1 SNOWBALL1 SNOWBALLSPEED1 geth getv
38
ai AISNOWBALLUP SNOWBALL1 SNOWBALLUP geth getv
39
 
40
useractor notenemy SNOWBALL 0 SNOWBALL1
41
   state checksquished
42
 
43
   ifai 0
44
     {
45
       sizeat 1 1
46
       cstat 32768
47
       clipdist 0
48
       ai AISNOWBALLUP
49
     }
50
   ifai AISNOWBALLUP
51
     {
52
       ifcount 1
53
         {
54
           ai AISNOWBALL1
55
           cstat 257
56
           clipdist 32
57
           sizeat 30 30
58
         }
59
       else break
60
    }
61
 
62
   ifai AISNOWBALL1
63
     {
64
       ifpdistl 1024
65
         {
66
           getplayer[THISACTOR].i temp
67
           setactor[temp].htextra SNOWBALLAMOUNT
68
           setactor[temp].htpicnum SNOWBALL
69
          // addphealth SNOWBALLAMOUNT
70
           debris SCRAP3 5
71
           globalsound DUKE_GRUNT
72
           state headhitstate
73
           palfrom 15 15 15
74
           killit
75
         }
76
       iffloordistl 10
77
         {
78
           debris SCRAP3 5
79
           killit
80
         }
81
     }
82
   ifcount 30 killit
83
enda
84
 
85
action ASNOWMANIDLE 26 3 5 1 20
86
action ASNOWMANATTACK 11 3 5 1 30
87
action ASNOWMANDIE 5 5 1 1 10
88
action ASNOWMANDEAD 10 1 1
89
action ASNOWMANFROZEN 0 1 5 1 1
90
 
91
move SNOWMANSPEED
92
 
93
ai AISNOWFOLLOW ASNOWMANIDLE SNOWMANSPEED faceplayerslow
94
ai AISNOWATTACK ASNOWMANATTACK SNOWMANSPEED faceplayer
95
ai AISNOWMANSHRINK ASNOWMANIDLE SNOWMANSPEED geth getv
96
ai AISNOWMANGROW ASNOWMANIDLE SNOWMANSPEED geth getv
97
ai AISNOWMANDYING ASNOWMANDIE SNOWMANSPEED geth getv
98
 
99
state snowmanidlestate
100
   ifcansee
101
     ifpdistl 8192
102
       {
103
         ai AISNOWATTACK
104
         break
105
       }
106
ends
107
 
108
state snowmandyingstate
109
   ifactioncount 5 action ASNOWMANDEAD
110
ends
111
 
112
state snowmanattackstate
113
   ifcount 15 nullop else ifcount 14 spawn SNOWBALL
114
   ifactioncount 3
115
     {
116
       resetcount
117
       ifpdistl 8192 resetactioncount else ai AISNOWFOLLOW
118
     }
119
ends
120
 
121
state snowmanshrinkstate
122
  ifcount SHRUNKDONECOUNT
123
    ai AISNOWFOLLOW
124
  else
125
    ifcount SHRUNKCOUNT
126
      sizeto 42 36
127
  else
128
    state genericshrunkcode
129
ends
130
 
131
state snowmanhitstate
132
 
133
  ifdead
134
  {
135
  //  debris SCRAP3 40
136
  //  debris SCRAP3 40
137
    debris SCRAP3 20
138
 
139
    ifwasweapon GROWSPARK
140
    {
141
      sound ACTOR_GROWING
142
      ai AISNOWMANGROW
143
      break
144
    }
145
 
146
    addkills 1
147
 
148
    ifwasweapon FREEZEBLAST
149
    {
150
      sound SOMETHINGFROZE
151
      spritepal 1
152
      move 0
153
      action ASNOWMANFROZEN
154
      strength 0
155
      break
156
    }
157
    ifwasweapon RADIUSEXPLOSION
158
    {
159
      debris SCRAP3 40
160
      killit
161
    }
162
    else
163
      ifwasweapon RPG
164
    {
165
      debris SCRAP3 20
166
      killit
167
    }
168
    else
169
    {
170
      cstat 0
171
      ai AISNOWMANDYING
172
    }
173
 
174
  }
175
  else
176
  {
177
   debris SCRAP3 20
178
   ifwasweapon SHRINKSPARK
179
    {
180
      sound ACTOR_SHRINKING
181
      ai AISNOWMANSHRINK
182
    }
183
    else
184
      ifwasweapon GROWSPARK
185
        sound EXPANDERHIT
186
  }
187
ends
188
 
189
 
190
useractor enemy SNOWMAN SNOWMANSTRENGTH ASNOWMANIDLE
191
   fall
192
 
193
   ifaction ASNOWMANDEAD
194
     {
195
  ifrespawn
196
    {
197
    ifcount RESPAWNACTORTIME
198
      {
199
      spawn TRANSPORTERSTAR
200
      cstat 257
201
      strength SNOWMANSTRENGTH
202
      ai AISNOWFOLLOW
203
      }
204
    }
205
    else
206
    {
207
    strength 0
208
    ifhitweapon
209
      {
210
      ifwasweapon RADIUSEXPLOSION
211
        {
212
     //  debris SCRAP3 40
213
     //  debris SCRAP3 40
214
        debris SCRAP3 20
215
        killit
216
        }
217
      }
218
    }
219
  break
220
  }
221
  else
222
ifaction ASNOWMANFROZEN
223
  {
224
  ifcount THAWTIME
225
    {
226
    ai AISNOWFOLLOW
227
    getlastpal
228
    }
229
    else
230
    ifcount FROZENDRIPTIME
231
      ifrnd 8
232
       spawn WATERDRIP
233
 
234
  ifhitweapon
235
    {
236
    ifwasweapon FREEZEBLAST
237
      {
238
      strength 0
239
      break
240
      }
241
  addkills 1
242
  lotsofglass 30
243
  ifrnd 84 debris SCRAP3 10
244
  sound GLASS_BREAKING
245
  killit
246
  }
247
  ifp pfacing
248
    ifpdistl FROZENQUICKKICKDIST
249
      pkick
250
  break
251
  }
252
 
253
ifai AISNOWMANSHRINK
254
  {
255
  state snowmanshrinkstate
256
  break
257
  }
258
 
259
 
260
ifhitweapon state snowmanhitstate
261
 
262
ifp pdead break
263
 
264
ifai 0
265
  {
266
  ai AISNOWFOLLOW
267
  sizeat 42 36
268
  clipdist 32
269
  cstat 257
270
  }
271
 
272
      ifai AISNOWMANDYING state snowmandyingstate
273
 else ifai AISNOWMANGROW state genericgrowcode
274
 else ifai AISNOWFOLLOW state snowmanidlestate
275
 else ifai AISNOWATTACK state snowmanattackstate
276
enda
277
 
278
move botshrunkspeed   50
279
move botsteroidspeed  400
280
move botstopped
281
move botfall          0 -38
282
move bothardfall      0
283
move botflyupspeed    200 -140
284
move botflydownspeed  200 -38
285
move botflyspeed      200 // -38
286
move botdodgespeedfly 250 -140
287
move botdodgespeeddownfly 250 140
288
 
289
action ABOTFLY        0  1 5 1 13
290
action ABOTFLYDYING   65 5 1 1 18
291
action ABOTFLYDIEBACK 69 5 1 -1 18
292
action ABOTFLYDEAD    65 1 1 1 1
293
action ABOTFLYFROZEN  0 1 5 1 1
294
 
295
ai AIBOTFLYUP ABOTFLY botflyupspeed faceplayer
296
ai AIBOTFLYDOWN ABOTFLY botflydownspeed faceplayer
297
ai AIBOTFLYSEEKUP ABOTFLY botflyupspeed geth seekplayer randomangle
298
ai AIBOTFLYSEEKDOWN ABOTFLY botflydownspeed geth seekplayer randomangle
299
ai AIBOTFLYDODGEUP ABOTFLY botdodgespeedfly fleeenemy randomangle
300
ai AIBOTFLYDODGEDOWN ABOTFLY botdodgespeeddownfly fleeenemy randomangle
301
ai AIBOTFLYNOTMOVING
302
ai AIBOTFLYCAMPING ABOTFLY botstopped faceplayer
303
ai AIBOTFLYDYING ABOTFLYDYING botstopped faceplayer
304
ai AIFLYWAIT ABOTFLY botstopped faceplayer
305
ai AIFLYUPMOMENT ABOTFLY botflyupspeed faceplayer
306
ai AIFLYUPHOLD ABOTFLY botflyupspeed faceplayer
307
ai AIBOTFLYSTRAIGHT ABOTFLY botflyspeed geth getv
308
ai AIBOTFLYGROW ABOTFLY botstopped geth getv
309
ai AIBOTFLYSHRINK ABOTFLY botshrunkspeed fleeenemy
310
ai AIBOTFLYSTEROIDS ABOTFLY botsteroidspeed randomangle
311
ai AIBOTFLYFLEE ABOTFLY botflyspeed randomangle
312
 
313
action ABOTWALK   10 4 5 1 13
314
action ABOTWALK1  10 1 5 1 13
315
action ABOTWALKGO 10 4 5 1 13
316
action ABOTKICK   10 2 5 1 25
317
action ABOTCRAWL  55 3 5 1 13
318
action ABOTJUMPUP 40 2 5 1 13
319
action ABOTFALL   50 1 5 1 1
320
action ABOTWDYING 70 5 1 1 18
321
action ABOTWDEAD  75 1 1 1 1
322
action ABOTWALKDIEBACK 74 5 1 -1 18
323
action ABOTWALKFROZEN  0 1 5 1 1
324
 
325
move   botwalkspeed  250
326
move   botjumpspeed  250 -115
327
move   botjumpdspeed 250 150
328
move   botcrawlspeed 0
329
move   botfallspeed  250 100
330
 
331
ai AIBOTWALKKICK ABOTKICK botstopped faceplayer
332
ai AIBOTWALKHUNT ABOTWALK botwalkspeed faceplayer
333
ai AIBOTWALKSEEK ABOTWALK botwalkspeed seekplayer
334
ai AIBOTWALKSEEK2
335
ai AIBOTWALKCAMPING ABOTWALK botstopped faceplayersmart
336
ai AIBOTWALKSTRJUMP1 ABOTJUMPUP botjumpspeed geth getv
337
ai AIBOTWALKSTRJUMP2 ABOTFALL   botjumpdspeed geth getv
338
ai AIBOTWALKSTRJUMP1S ABOTJUMPUP botjumpspeed faceplayer
339
ai AIBOTWALKSTRJUMP2S ABOTFALL   botjumpdspeed faceplayer
340
ai AIBOTWALKJUMP1 ABOTJUMPUP botjumpspeed faceplayer
341
ai AIBOTWALKJUMP2 ABOTFALL   botjumpdspeed faceplayer
342
ai AIBOTWALKDYING ABOTWDYING botstopped faceplayer
343
ai AIWALKFALL     ABOTFALL   botstopped faceplayer
344
ai AIWALKFALLHARD ABOTFALL   botstopped faceplayer
345
ai AIBOTWALKSTRAIGHT ABOTWALK botwalkspeed geth getv
346
ai AIBOTWALKGROW ABOTWALK1 botstopped geth getv
347
ai AIBOTWALKSHRINK ABOTWALK botshrunkspeed fleeenemy
348
ai AIBOTWALKSTEROIDS ABOTWALK botsteroidspeed randomangle
349
ai AIBOTWALKFLEE ABOTWALK botwalkspeed randomangle
350
ai AIBOTLETFALL ABOTFALL botfallspeed getv geth
351
ai AIBOTWALKNOTMOVING
352
ai AIWALKWAIT ABOTWALK botstopped faceplayer
353
 
354
state miniboss
355
 
356
   sound SANTA_TRASH1
357
 
358
   spawn EXPLOSION2
359
   spawn EXPLOSION2
360
   spawn PIGCOP
361
   spawn PIGCOP
362
 
363
ends
364
 
365
 
366
 
367
state stomphisfreakingass
368
 
369
ifp pdead nullop
370
  else
371
  {
372
  ifpdistl SQUISHABLEDISTANCE
373
    {
374
    addphealth -1000
375
    sound SQUISH2
376
//    state standard_pjibs
377
    state standard_pjibs
378
    sound SANTA_TRASH9
379
    }
380
  }
381
 
382
ends
383
 
384
 
385
state botchangeweaponstate
386
 
387
ifspritepal 0 nullop else break
388
 
389
resetcount
390
 
391
ifspritepal 0
392
  {
393
  ifpdistl 4096
394
    {
395
    ifrnd 128
396
      spritepal 3
397
      else
398
      spritepal 9
399
    }
400
    else
401
    {
402
    ifrnd 128
403
      spritepal 3
404
    }
405
  }
406
  else
407
ifspritepal 3
408
  {
409
  ifpdistg 4096
410
    {
411
    ifrnd 128
412
      spritepal 0
413
      else
414
      spritepal 9
415
    }
416
    else
417
    {
418
    ifrnd 128
419
      spritepal 9
420
    }
421
  }
422
  else
423
ifspritepal 9
424
  {
425
  ifpdistg 4096
426
    {
427
    ifrnd 128
428
      spritepal 0
429
      else
430
      spritepal 3
431
    }
432
    else
433
    {
434
    ifrnd 128
435
      spritepal 9
436
    }
437
  }
438
 
439
sound SELECT_WEAPON
440
 
441
ends
442
 
443
state botquickshootstate
444
 
445
ifspritepal 0 nullop else break
446
 
447
ifp pshrunk break
448
ifp pdead break
449
 
450
ifspritepal 0
451
  {
452
  shoot RPG sound RPG_SHOOT
453
  }
454
  else
455
ifspritepal 3
456
  {
457
  shoot CHAINGUN sound CHAINGUN_FIRE
458
  }
459
  else
460
ifspritepal 9
461
  {
462
//  shoot SHRINKER sound SHRINKER_FIRE
463
  shoot SHOTGUN sound SHOTGUN_FIRE
464
  }
465
 
466
ends
467
 
468
 
469
state botshootstate
470
 
471
ifspritepal 0 nullop else break // ifcanshoottarget nullop // ifcanseetarget nullop
472
 
473
ifp pdead break
474
ifp pshrunk break
475
 
476
ifspritepal 0
477
  {
478
  ifcount 5
479
    {
480
    ifactioncount 5
481
      {
482
      resetactioncount
483
      shoot RPG
484
      sound RPG_SHOOT
485
      }
486
 
487
    ifpdistl 4096
488
      {
489
      ifrnd 5
490
        state botchangeweaponstate
491
      }
492
    }
493
  }
494
  else
495
ifspritepal 3
496
  {
497
  ifcount 5
498
    {
499
    ifactioncount 1
500
      {
501
      resetactioncount
502
      shoot SHOTSPARK1 shoot CHAINGUN shoot CHAINGUN shoot CHAINGUN
503
      sound CHAINGUN_FIRE
504
      }
505
    ifrnd 1 state botchangeweaponstate
506
    }
507
  }
508
  else
509
ifspritepal 9
510
  {
511
  ifcount 5
512
    {
513
    ifactioncount 5
514
      {
515
      resetactioncount
516
//      shoot SHRINKER
517
//      sound SHRINKER_FIRE
518
      shoot SHOTGUN
519
      sound SHOTGUN_FIRE
520
      }
521
    ifp ponsteroids
522
      {
523
      ifrnd 64
524
        state botchangeweaponstate
525
      }
526
    ifrnd 1 state botchangeweaponstate
527
    }
528
  }
529
 
530
 
531
 
532
ends
533
 
534
state dudehurt
535
 
536
/*
537
        ifstrength YELLHURTSOUNDSTRENGTHMP
538
        {
539
          ifrnd 64
540
            sound SANTA_GOTHIT
541
          else
542
            ifrnd 64
543
              sound SANTA_DEAD
544
          else
545
            ifrnd 64
546
              sound SANTA_TRASH6
547
          else
548
            sound SANTA_TRASH8
549
        }
550
        else
551
        {
552
          ifrnd 64
553
            sound SANTA_GOTHIT
554
          else ifrnd 64
555
            sound SANTA_DEAD
556
          else ifrnd 64
557
            sound SANTA_TRASH6
558
          else
559
            sound SANTA_TRASH8
560
        }
561
*/
562
 
563
        ifrnd 80
564
          sound SANTA_GOTHIT
565
ends
566
 
567
state dukehurt
568
 
569
        ifrnd 80
570
          sound SANTA_GOTHIT
571
/*
572
 
573
        ifphealthl YELLHURTSOUNDSTRENGTHMP
574
        {
575
          ifrnd 64
576
            sound DUKE_LONGTERM_PAIN2
577
          else
578
            ifrnd 64
579
              sound DUKE_LONGTERM_PAIN3
580
          else
581
            ifrnd 64
582
              sound DUKE_LONGTERM_PAIN4
583
          else
584
            sound DUKE_DEAD
585
        }
586
        else
587
        {
588
          ifrnd 64
589
            sound DUKE_LONGTERM_PAIN5
590
          else ifrnd 64
591
            sound DUKE_LONGTERM_PAIN6
592
          else ifrnd 64
593
            sound DUKE_LONGTERM_PAIN7
594
          else
595
            sound DUKE_LONGTERM_PAIN8
596
        }
597
*/
598
ends
599
 
600
 
601
// WALK STATES
602
 
603
state botwalkhitstate
604
 
605
state botshootstate
606
 
607
// spawn BLOOD
608
 
609
ifdead
610
  {
611
  ifspritepal 21 { state miniboss break } else soundonce SANTA_DEAD
612
 
613
  ifwasweapon FREEZEBLAST
614
    {
615
      spritepal 1
616
      strength 0
617
      move 0
618
      action ABOTWALKFROZEN
619
      sound SOMETHINGFROZE
620
      break
621
    }
622
    else
623
  ifwasweapon GROWSPARK
624
    {
625
      cstat 0
626
      sound ACTOR_GROWING
627
      ai AIBOTWALKGROW
628
      break
629
    }
630
    else
631
  ifwasweapon RADIUSEXPLOSION
632
    {
633
//      state standard_pjibs
634
//      state standard_pjibs
635
//      state standard_pjibs
636
      state standard_pjibs
637
      sound SQUISH2
638
      addkills 1
639
      endofgame 52
640
      killit
641
    }
642
    else
643
  ifwasweapon RPG
644
    {
645
//      state standard_pjibs
646
//      state standard_pjibs
647
//      state standard_pjibs
648
      state standard_pjibs
649
      sound SQUISH2
650
      addkills 1
651
      endofgame 52
652
      killit
653
    }
654
    else
655
    {
656
      ai AIBOTWALKDYING
657
      break
658
    }
659
   }
660
  else
661
  {
662
  state dudehurt
663
 
664
  ifwasweapon SHRINKSPARK
665
    {
666
      ifai AIBOTWALKSTEROIDS nullop else
667
       {
668
         ai AIBOTWALKSHRINK
669
         break
670
       }
671
    }
672
  }
673
 
674
ends
675
 
676
state botwalkdyingstate
677
  fall
678
  strength 0
679
 
680
  ifactioncount 5
681
    {
682
      action ABOTWDEAD
683
      endofgame 52
684
      killit
685
    }
686
ends
687
 
688
state botwalkseekstate
689
 
690
ifcansee
691
  {
692
    ai AIBOTWALKHUNT
693
    break
694
  }
695
 
696
ifgapzl 100
697
  {
698
  }
699
  else
700
  {
701
  ifnotmoving
702
    {
703
    ifrnd 4 operate
704
    ifpdistl 8000
705
      {
706
      ai AIFLYUPMOMENT
707
      cactor SOBBOTFLY
708
      break
709
      }
710
      else
711
      ai AIBOTWALKJUMP1
712
    break
713
    }
714
  }
715
 
716
ends
717
 
718
state botwalkjumpstate
719
 
720
ifrnd 4
721
  ifpdistl 6000
722
    state botquickshootstate
723
 
724
ifai AIBOTWALKJUMP1
725
  {
726
  ifactioncount 2
727
    {
728
    ai AIBOTWALKJUMP2
729
    break
730
    }
731
  }
732
 
733
ifai AIBOTWALKJUMP2
734
  {
735
  ifactioncount 1
736
    {
737
    state botshootstate
738
    iffloordistl 16
739
      {
740
      sound DUKE_LAND
741
      operate
742
      ai AIBOTWALKHUNT
743
      }
744
    }
745
  }
746
 
747
ends
748
 
749
state botwalkhuntstate
750
 
751
state botshootstate
752
 
753
ifrnd 3
754
  {
755
  ai AIBOTWALKSTRJUMP1S
756
  count 10
757
  }
758
 
759
ifcansee
760
  {
761
  ifpdistl 1024
762
    {
763
    ifrnd 24
764
      {
765
      ifp pdead
766
        nullop
767
        else
768
        ai AIBOTWALKKICK
769
      break
770
      }
771
    }
772
  }
773
  else
774
  {
775
  ifphealthl 50
776
    ifrnd 64
777
      ifpdistl 8000
778
        {
779
          ifrnd 80
780
            sound SANTA_TRASH1
781
        }
782
 
783
  ifrnd 128
784
    {
785
    ifp phigher
786
      {
787
      ai AIFLYUPMOMENT
788
      cactor SOBBOTFLY
789
      break
790
      }
791
      else
792
      {
793
      ai AIBOTWALKSTRAIGHT
794
      break
795
      }
796
    }
797
    else
798
    {
799
    ai AIBOTWALKSTRAIGHT
800
    break
801
    }
802
  ai AIBOTWALKSEEK
803
  break
804
  }
805
 
806
ifrnd 128
807
  ifnotmoving
808
    {
809
    ifrnd 8
810
      operate
811
    ai AIBOTWALKJUMP1
812
    break
813
    }
814
 
815
ends
816
 
817
state botwalkkickstate
818
 
819
ifactioncount 2
820
  {
821
  resetactioncount
822
  ifpdistl 1024
823
    {
824
    ifp pdead
825
      {
826
      ai AIBOTWALKHUNT
827
      break
828
      }
829
    ifp pfacing
830
      ifrnd 16
831
        {
832
          globalsound SANTA_TRASH8
833
        }
834
    sound KICK_HIT
835
 
836
    ifspritepal 21 addphealth -1 else addphealth -6
837
 
838
    state dukehurt
839
    }
840
    else
841
    {
842
    ai AIBOTWALKHUNT
843
    break
844
    }
845
 
846
  ifrnd 50
847
    {
848
    ai AIBOTWALKHUNT
849
    break
850
    }
851
  }
852
 
853
ends
854
 
855
state botwalkstraightjumpstate
856
 
857
ifai AIBOTWALKSTRJUMP1
858
  {
859
  ifcount 20
860
    {
861
    ai AIBOTWALKSTRJUMP2
862
    break
863
    }
864
  }
865
  else
866
ifai AIBOTWALKSTRJUMP2
867
  {
868
  ifcount 18
869
    {
870
    iffloordistl 16
871
      {
872
      operate
873
      ifrnd 128
874
      sound DUKE_LAND
875
      ifrnd 200
876
        ai AIBOTWALKSTRAIGHT
877
        else
878
        ai AIBOTWALKSEEK
879
      }
880
    }
881
  }
882
 
883
ends
884
 
885
state botjumpshootstate
886
 
887
ifai AIBOTWALKSTRJUMP1S
888
  {
889
  state botshootstate
890
 
891
  ifcount 20
892
    {
893
    ai AIBOTWALKSTRJUMP2S
894
    resetactioncount
895
    count 10
896
    break
897
    }
898
 
899
  }
900
  else
901
ifai AIBOTWALKSTRJUMP2S
902
  {
903
  ifcount 18
904
    {
905
    iffloordistl 16
906
      {
907
      operate
908
      sound DUKE_LAND
909
      ai AIBOTWALKHUNT
910
      count 10
911
      }
912
    }
913
  }
914
 
915
 
916
ends
917
 
918
 
919
state botwalkstraightstate
920
 
921
ifpdistg 20000
922
  ai AIBOTWALKSEEK
923
 
924
ifcansee
925
  {
926
  ifnotmoving
927
    {
928
    ai AIBOTWALKSTRJUMP1
929
    break
930
    }
931
  ifrnd 64
932
    ai AIBOTWALKHUNT
933
  }
934
  else
935
  {
936
  ifrnd 128
937
    ifnotmoving
938
      ai AIBOTWALKSTRJUMP1
939
  }
940
 
941
ends
942
 
943
state steroidswalk
944
 
945
soundonce DUKE_HARTBEAT
946
spawn FRAMEEFFECT1
947
 
948
ifhitweapon
949
  {
950
  state botwalkhitstate
951
  break
952
  }
953
 
954
ifcount 150
955
  {
956
  ai AIBOTWALKHUNT
957
  }
958
 
959
ifcount 34
960
  {
961
  }
962
  else
963
  {
964
  sizeto 42 36
965
  }
966
 
967
ends
968
 
969
state botletfallstate
970
 
971
ifactioncount 5
972
  {
973
  }
974
  else
975
  ifactioncount 6
976
    {
977
    soundonce SANTA_TRASH7
978
    }
979
 
980
ifcansee
981
  {
982
  ai AIFLYWAIT
983
  cactor SOBBOTFLY
984
  break
985
  }
986
  else
987
  {
988
  iffloordistl 50
989
    {
990
    ai AIFLYWAIT
991
    cactor SOBBOTFLY
992
    break
993
    }
994
  }
995
 
996
ends
997
 
998
useractor enemy SOBBOTWALK SOBBOTSTRENGTH ABOTWALK
999
   state checksquished
1000
 
1001
  ifai 0
1002
    {
1003
 
1004
      ifspawnedby RECON
1005
        {
1006
          spawn PIGCOP
1007
          killit
1008
        }
1009
 
1010
  ifcansee nullop else break
1011
 
1012
  sizeat 42 36
1013
  cstat 257
1014
 
1015
  ai AIBOTWALKSEEK
1016
 
1017
  ifspritepal 21
1018
    {
1019
      strength MINIBOSSSTRENGTH
1020
      ifrnd 64 soundonce SANTA_TRASH9
1021
    }
1022
    else spritepal 0
1023
 
1024
  sound INSERT_CLIP
1025
  break
1026
  }
1027
 
1028
 
1029
   fall
1030
   sleeptime 300
1031
 
1032
ifaction ABOTWDEAD break
1033
  else
1034
ifaction ABOTWALKFROZEN
1035
  {
1036
 
1037
  ifcount THAWTIME
1038
    {
1039
    ai AIBOTWALKHUNT
1040
    getlastpal
1041
    }
1042
    else
1043
    ifcount FROZENDRIPTIME
1044
      {
1045
      ifactioncount 26
1046
        {
1047
        spawn WATERDRIP
1048
        resetactioncount
1049
        }
1050
      }
1051
  ifhitweapon
1052
    {
1053
    ifwasweapon FREEZEBLAST
1054
      {
1055
      strength 0
1056
      break
1057
      }
1058
    addkills 1
1059
 
1060
    ifrnd 84
1061
      spawn BLOODPOOL
1062
    lotsofglass 30
1063
    spawn ATOMICHEALTH
1064
    sound GLASS_BREAKING
1065
    ifspritepal 21
1066
      {
1067
        state miniboss
1068
        break
1069
      }
1070
    endofgame 52
1071
    killit
1072
    }
1073
  ifp pfacing
1074
    ifpdistl FROZENQUICKKICKDIST
1075
      pkick
1076
  break
1077
  }
1078
  else
1079
ifai AIBOTWALKSTEROIDS
1080
  {
1081
    state steroidswalk
1082
    break
1083
  }
1084
  else
1085
ifai AIBOTWALKGROW
1086
  {
1087
  ifcount 32
1088
    {
1089
    guts JIBS4 24
1090
    guts JIBS6 28
1091
    addkills 1
1092
    sound SQUISH2
1093
    sound PIPEBOMB_EXPLODE
1094
    hitradius 2048 60 70 80 90
1095
    spawn BLOODPOOL
1096
    spawn EXPLOSION2
1097
    ifspritepal 21
1098
      {
1099
        state miniboss
1100
        break
1101
      }
1102
    endofgame 52
1103
    killit
1104
    }
1105
    else
1106
    {
1107
    sizeto MAXXSTRETCH MAXYSTRETCH
1108
    break
1109
    }
1110
  break
1111
  }
1112
  else
1113
ifai AIBOTWALKSHRINK
1114
  {
1115
 
1116
  ifcount SHRUNKDONECOUNT
1117
    ai AIBOTWALKHUNT
1118
    else
1119
    ifcount SHRUNKCOUNT
1120
      {
1121
      spawn FRAMEEFFECT1
1122
      sizeto 42 36
1123
      }
1124
      else
1125
      {
1126
      ifcount 31
1127
        nullop
1128
        else
1129
        {
1130
        ifcount 30
1131
          {
1132
          ifrnd 255
1133
            {
1134
            sound DUKE_TAKEPILLS
1135
            ai AIBOTWALKSTEROIDS
1136
            break
1137
            }
1138
          }
1139
        }
1140
      ifcount 32
1141
        {
1142
        ifpdistl SQUISHABLEDISTANCE
1143
          {
1144
          state standard_pjibs
1145
          sound SQUISH2
1146
          spawn BLOODPOOL
1147
          pkick
1148
//          state headhitstate
1149
//          state headhitstate
1150
//          state headhitstate
1151
          state headhitstate
1152
    ifspritepal 21
1153
      {
1154
        state miniboss
1155
        break
1156
      }
1157
    else
1158
      {
1159
          ifrnd 128
1160
              sound SANTA_DEAD
1161
              else
1162
              sound SANTA_TRASH9
1163
      }
1164
          endofgame 52
1165
          killit
1166
          }
1167
        }
1168
        else
1169
        {
1170
        sizeto MINXSTRETCH MINYSTRETCH
1171
        spawn FRAMEEFFECT1
1172
        }
1173
      }
1174
 
1175
  break
1176
  }
1177
  else
1178
ifai AIBOTWALKDYING
1179
  {
1180
  state botwalkdyingstate
1181
  break
1182
  }
1183
  else
1184
  ifrnd 1
1185
    operate
1186
 
1187
ifhitweapon
1188
  {
1189
  state botwalkhitstate
1190
  break
1191
  }
1192
  else
1193
ifai AIWALKFALLHARD
1194
  {
1195
  iffloordistl 16
1196
    {
1197
    ai AIBOTWALKHUNT
1198
    }
1199
    else
1200
    {
1201
    break
1202
    }
1203
  }
1204
  else
1205
  {
1206
  ifai AIWALKFALL
1207
    {
1208
    state botshootstate
1209
    iffloordistl 16
1210
      {
1211
      ai AIBOTWALKHUNT
1212
      }
1213
      else
1214
      {
1215
      break
1216
      }
1217
    }
1218
  }
1219
 
1220
ifp pshrunk
1221
  state stomphisfreakingass
1222
 
1223
iffloordistl 550
1224
  nullop
1225
  else
1226
  {
1227
  ai AIFLYWAIT
1228
  cactor SOBBOTFLY
1229
  }
1230
 
1231
ifonwater
1232
  {
1233
  }
1234
  else
1235
  {
1236
  ifp pjetpack
1237
    ifp phigher
1238
      ifcansee
1239
        {
1240
        ai AIFLYWAIT
1241
        cactor SOBBOTFLY
1242
        }
1243
  }
1244
 
1245
ifp phigher
1246
  {
1247
  ifrnd 1
1248
    {
1249
    ifrnd 196
1250
      {
1251
      ai AIFLYWAIT
1252
      cactor SOBBOTFLY
1253
      }
1254
    }
1255
  }
1256
 
1257
ifai AIWALKWAIT
1258
  {
1259
  ai AIBOTWALKSEEK
1260
  break
1261
  }
1262
  else
1263
ifai AIBOTWALKSEEK
1264
  state botwalkseekstate
1265
    else
1266
ifai AIBOTWALKHUNT
1267
  state botwalkhuntstate
1268
    else
1269
ifai AIBOTWALKJUMP1
1270
  state botwalkjumpstate
1271
    else
1272
ifai AIBOTWALKJUMP2
1273
  state botwalkjumpstate
1274
    else
1275
ifai AIBOTWALKKICK
1276
  state botwalkkickstate
1277
    else
1278
ifai AIBOTWALKSTRAIGHT
1279
  state botwalkstraightstate
1280
    else
1281
ifai AIBOTWALKSTRJUMP1
1282
  state botwalkstraightjumpstate
1283
    else
1284
ifai AIBOTWALKSTRJUMP2
1285
  state botwalkstraightjumpstate
1286
    else
1287
ifai AIBOTLETFALL
1288
  state botletfallstate
1289
    else
1290
ifai AIBOTWALKSTRJUMP1S
1291
  state botjumpshootstate
1292
    else
1293
ifai AIBOTWALKSTRJUMP2S
1294
  state botjumpshootstate
1295
 
1296
 
1297
enda
1298
 
1299
state botflydyingstate
1300
 
1301
fall
1302
 
1303
strength 0
1304
cstat 0
1305
 
1306
ifactioncount 5
1307
  {
1308
  action ABOTFLYDEAD
1309
    ifspritepal 21
1310
      {
1311
        state miniboss
1312
        break
1313
      }
1314
  endofgame 52
1315
  }
1316
 
1317
ends
1318
 
1319
state choosedodgefly
1320
 
1321
ifceilingdistl 100
1322
  {
1323
  ifai AIBOTFLYDODGEDOWN
1324
    nullop
1325
    else
1326
    ai AIBOTFLYDODGEDOWN
1327
  }
1328
  else
1329
  {
1330
  ifai AIBOTFLYDODGEUP
1331
    nullop
1332
    else
1333
    ai AIBOTFLYDODGEUP
1334
  }
1335
 
1336
ends
1337
 
1338
 
1339
state botflydodgestate
1340
 
1341
ifcanshoottarget
1342
  state botshootstate
1343
 
1344
ifcansee
1345
  {
1346
  ifrnd 2
1347
    {
1348
    ifceilingdistl 100
1349
      ai AIBOTFLYDODGEDOWN
1350
      else
1351
      ai AIBOTFLYDODGEUP
1352
    }
1353
  }
1354
  else
1355
  {
1356
  ai AIBOTFLYSEEKUP
1357
  }
1358
 
1359
ifcount 10
1360
  ai AIBOTFLYDOWN
1361
 
1362
ends
1363
 
1364
state botflyhitstate
1365
 
1366
state botshootstate
1367
 
1368
// spawn BLOOD
1369
 
1370
ifdead
1371
  {
1372
  ifspritepal 21 { state miniboss break } else sound SANTA_DEAD
1373
 
1374
  ifwasweapon FREEZEBLAST
1375
    {
1376
    spritepal 1
1377
    strength 0
1378
    move 0
1379
    action ABOTFLYFROZEN
1380
    sound SOMETHINGFROZE
1381
    break
1382
    }
1383
    else
1384
  ifwasweapon GROWSPARK
1385
    {
1386
    cstat 0
1387
    sound ACTOR_GROWING
1388
    ai AIBOTFLYGROW
1389
    break
1390
    }
1391
    else
1392
  ifwasweapon RADIUSEXPLOSION
1393
    {
1394
//    state standard_pjibs
1395
//    state standard_pjibs
1396
//    state standard_pjibs
1397
    state standard_pjibs
1398
    sound SQUISH2
1399
    addkills 1
1400
    endofgame 52
1401
    killit
1402
    }
1403
    else
1404
  ifwasweapon RPG
1405
    {
1406
//    state standard_pjibs
1407
//    state standard_pjibs
1408
//    state standard_pjibs
1409
    state standard_pjibs
1410
    sound SQUISH2
1411
    addkills 1
1412
    endofgame 52
1413
    killit
1414
    }
1415
    else
1416
    {
1417
    ai AIBOTFLYDYING
1418
    }
1419
 
1420
  }
1421
  else
1422
  {
1423
  state dudehurt
1424
 
1425
  ifwasweapon SHRINKSPARK
1426
    {
1427
    ifai AIBOTFLYSTEROIDS
1428
       {
1429
       }
1430
       else
1431
       {
1432
       ai AIBOTFLYSHRINK
1433
       break
1434
       }
1435
    }
1436
  }
1437
 
1438
ends
1439
 
1440
state botflyseekupstate
1441
 
1442
ifcansee
1443
  {
1444
  ai AIBOTFLYUP
1445
  break
1446
  }
1447
 
1448
ifp phigher
1449
  {
1450
  }
1451
  else
1452
  {
1453
  ai AIBOTFLYSEEKDOWN
1454
  break
1455
  }
1456
 
1457
ends
1458
 
1459
state botflyseekdownstate
1460
 
1461
ifcansee
1462
  {
1463
  ai AIBOTFLYDOWN
1464
  break
1465
  }
1466
  else
1467
  {
1468
  ifp phigher
1469
    {
1470
    }
1471
    else
1472
    {
1473
    ai AIBOTLETFALL
1474
    cactor SOBBOTWALK
1475
    }
1476
  }
1477
 
1478
ifp phigher
1479
  {
1480
  ai AIBOTFLYSEEKUP
1481
  break
1482
  }
1483
 
1484
ends
1485
 
1486
state botflydownstate
1487
 
1488
state botshootstate
1489
 
1490
ifrnd 16
1491
  {
1492
  ifp phigher
1493
    {
1494
    ai AIBOTFLYUP
1495
    break
1496
    }
1497
  }
1498
 
1499
ifcansee
1500
  {
1501
  }
1502
  else
1503
  {
1504
  ai AIBOTFLYSTRAIGHT
1505
  break
1506
  }
1507
 
1508
ends
1509
 
1510
state botflyupstate
1511
 
1512
state botshootstate
1513
 
1514
ifrnd 16
1515
  {
1516
  ifp phigher
1517
    nullop
1518
    else
1519
    {
1520
    ai AIBOTFLYDOWN
1521
    break
1522
    }
1523
  }
1524
 
1525
ifcansee
1526
  {
1527
  }
1528
  else
1529
  {
1530
  ai AIBOTFLYSTRAIGHT
1531
  }
1532
 
1533
ends
1534
 
1535
state botflyupmomentstate
1536
 
1537
ifcansee
1538
  {
1539
  ifcount 10 ai AIBOTFLYUP
1540
  break
1541
  }
1542
  else
1543
  {
1544
  ifcount 50
1545
    {
1546
    ai AIBOTLETFALL
1547
    cactor SOBBOTWALK
1548
    }
1549
  }
1550
 
1551
ends
1552
 
1553
state botflyholdstate
1554
 
1555
state botshootstate
1556
 
1557
ifcount 50
1558
  {
1559
  ai AIBOTFLYUP
1560
  }
1561
 
1562
ends
1563
 
1564
state botflystraightstate
1565
 
1566
ifpdistg 20000
1567
  ai AIBOTFLYSEEKDOWN
1568
 
1569
ifcansee
1570
  {
1571
  ai AIBOTFLYDOWN
1572
  }
1573
  else
1574
  {
1575
  ifrnd 128
1576
    ifnotmoving
1577
      ai AIFLYUPMOMENT
1578
  }
1579
 
1580
ends
1581
 
1582
state steroidsfly
1583
 
1584
soundonce DUKE_HARTBEAT
1585
spawn FRAMEEFFECT1
1586
 
1587
ifcount 100
1588
  {
1589
  ai AIBOTFLYUP
1590
  }
1591
 
1592
ifcount 34
1593
  {
1594
  }
1595
  else
1596
  {
1597
  sizeto 42 36
1598
  }
1599
 
1600
ifhitweapon
1601
  {
1602
  state botflyhitstate
1603
  break
1604
  }
1605
 
1606
ends
1607
 
1608
// FLY ACTOR
1609
 
1610
useractor enemy SOBBOTFLY SOBBOTSTRENGTH ABOTFLY
1611
state checksquished
1612
 
1613
ifai 0
1614
  {
1615
  ifcansee nullop else { break }
1616
  ifspritepal 21 strength MINIBOSSSTRENGTH
1617
  sizeat 42 36
1618
  cstat 257
1619
  sound INSERT_CLIP
1620
  ai AIBOTFLYSEEKDOWN
1621
  spritepal 0
1622
  break
1623
  }
1624
 
1625
 
1626
fall
1627
 
1628
sleeptime 300
1629
 
1630
ifaction ABOTFLYDEAD
1631
  break
1632
  else
1633
ifaction ABOTFLYFROZEN
1634
  {
1635
  ifcount THAWTIME
1636
    {
1637
    ai AIBOTFLYUP
1638
    getlastpal
1639
    }
1640
    else
1641
    ifcount FROZENDRIPTIME
1642
      {
1643
      ifactioncount 26
1644
        {
1645
        spawn WATERDRIP
1646
        resetactioncount
1647
        }
1648
      }
1649
  ifhitweapon
1650
    {
1651
    ifwasweapon FREEZEBLAST
1652
      {
1653
      strength 0
1654
      break
1655
      }
1656
    addkills 1
1657
 
1658
    ifrnd 84
1659
      spawn BLOODPOOL
1660
 
1661
    lotsofglass 30
1662
    spawn ATOMICHEALTH
1663
    sound GLASS_BREAKING
1664
    ifspritepal 21
1665
      {
1666
        state miniboss
1667
        break
1668
      }
1669
    endofgame 52
1670
    killit
1671
    }
1672
 
1673
  ifp pfacing
1674
    ifpdistl FROZENQUICKKICKDIST
1675
      pkick
1676
  break
1677
  }
1678
  else
1679
ifai AIBOTFLYSTEROIDS
1680
  {
1681
  soundonce DUKE_JETPACK_IDLE
1682
  state steroidsfly
1683
  break
1684
  }
1685
  else
1686
ifai AIBOTFLYGROW
1687
  {
1688
  ifcount 32
1689
    {
1690
    guts JIBS4 24
1691
    guts JIBS6 28
1692
    addkills 1
1693
    sound SQUISH2
1694
    sound PIPEBOMB_EXPLODE
1695
    hitradius 2048 60 70 80 90
1696
    spawn BLOODPOOL
1697
    spawn EXPLOSION2
1698
    ifspritepal 21
1699
      {
1700
        state miniboss
1701
        break
1702
      }
1703
    endofgame 52
1704
    killit
1705
    }
1706
    else
1707
    {
1708
    sizeto MAXXSTRETCH MAXYSTRETCH
1709
    break
1710
    }
1711
  break
1712
  }
1713
  else
1714
ifai AIBOTFLYSHRINK
1715
  {
1716
  ifcount SHRUNKDONECOUNT
1717
    ai AIBOTFLYUP
1718
    else
1719
    ifcount SHRUNKCOUNT
1720
      {
1721
      spawn FRAMEEFFECT1
1722
      sizeto 42 36
1723
      }
1724
      else
1725
      {
1726
      ifcount 31
1727
        nullop
1728
        else
1729
        {
1730
        ifcount 30
1731
          {
1732
          ifrnd 255
1733
            {
1734
            sound DUKE_TAKEPILLS
1735
            ai AIBOTFLYSTEROIDS
1736
            break
1737
            }
1738
          }
1739
        }
1740
      ifcount 32
1741
        {
1742
 
1743
        ifpdistl SQUISHABLEDISTANCE
1744
          {
1745
//          state standard_pjibs
1746
//          state standard_pjibs
1747
//          state standard_pjibs
1748
          state standard_pjibs
1749
          sound SQUISH2
1750
          spawn BLOODPOOL
1751
          pkick
1752
//          state headhitstate
1753
//          state headhitstate
1754
//          state headhitstate
1755
          state headhitstate
1756
    ifspritepal 21
1757
      {
1758
        state miniboss
1759
        break
1760
      }
1761
    else
1762
      {
1763
          ifrnd 128
1764
              sound SANTA_DEAD
1765
              else
1766
              sound SANTA_TRASH9
1767
      }
1768
          endofgame 52
1769
          killit
1770
          }
1771
        }
1772
        else
1773
        {
1774
        sizeto MINXSTRETCH MINYSTRETCH
1775
        spawn FRAMEEFFECT1
1776
        }
1777
      }
1778
  break
1779
  }
1780
 
1781
soundonce DUKE_JETPACK_IDLE
1782
 
1783
ifai AIBOTFLYDYING
1784
  {
1785
  state botflydyingstate
1786
  break
1787
  }
1788
 
1789
ifhitweapon
1790
  state botflyhitstate
1791
 
1792
ifrnd 2 operate
1793
 
1794
ifp pshrunk
1795
  {
1796
  state stomphisfreakingass
1797
  }
1798
 
1799
ifrnd 25
1800
  {
1801
  ifp phigher
1802
    {
1803
    }
1804
    else
1805
    {
1806
    ifp ponground
1807
      {
1808
      iffloordistl 200
1809
        {
1810
        sound DUKE_JETPACK_OFF
1811
        iffloordistl 100 ai AIWALKFALL else ai AIWALKFALLHARD
1812
        cactor SOBBOTWALK
1813
        }
1814
      }
1815
    }
1816
  }
1817
 
1818
ifai AIFLYWAIT
1819
  {
1820
  move 0
1821
  sound DUKE_JETPACK_ON
1822
  ai AIBOTFLYSEEKDOWN
1823
  }
1824
 
1825
ifai AIBOTFLYSEEKUP
1826
  state botflyseekupstate
1827
    else
1828
ifai AIBOTFLYSEEKDOWN
1829
  state botflyseekdownstate
1830
    else
1831
ifai AIBOTFLYDOWN
1832
  state botflydownstate
1833
    else
1834
ifai AIBOTFLYUP
1835
  state botflyupstate
1836
    else
1837
ifai AIBOTFLYDODGEUP
1838
  state botflydodgestate
1839
    else
1840
ifai AIBOTFLYDODGEDOWN
1841
  state botflydodgestate
1842
    else
1843
ifai AIFLYUPMOMENT
1844
  state botflyupmomentstate
1845
    else
1846
ifai AIFLYUPHOLD
1847
  state botflyholdstate
1848
    else
1849
ifai AIBOTFLYSTRAIGHT
1850
  state botflystraightstate
1851
 
1852
break
1853
enda
1854
 
1855
 
1856
 
1857
action  AELFUZIWALK    0 4 5 1 30
1858
action  AELFUZIRUN     0 4 5 1 15
1859
action  AELFUZIFROZEN  0 1 5 1
1860
action  AELFUZIGROW    0 1 5 1
1861
action  AELFUZIJUMP  266 2 5 1 15
1862
action  AELFUZIFALL  276 1 5 1 1
1863
action  AELFUZIDYING 260 5 1 1 25
1864
action  AELFUZIDEAD  265 1 1 1 1
1865
action  AELFUZISHOOT 281 2 5 1
1866
 
1867
move    elfuziwalkspeed 100
1868
move    elfuzirunspeed  200
1869
move    elfuzijumpspeed 150 -200
1870
move    elfuzifallspeed 150 150
1871
move    elfuzistopped
1872
move    elfuzishrink1    80
1873
 
1874
ai      AIELFUZISHRINKING AELFUZIWALK   elfuzishrink1  fleeenemy
1875
ai      AIELFUZIDYING     AELFUZIDYING  elfuzistopped faceplayer
1876
ai      AIELFUZISEEKING   AELFUZIWALK   elfuziwalkspeed seekplayer
1877
ai      AIELFUZIHUNTING   AELFUZIRUN    elfuzirunspeed faceplayer
1878
ai      AIELFUZIJUMPING   AELFUZIJUMP   elfuzijumpspeed geth getv
1879
ai      AIELFUZIFALLING   AELFUZIFALL   elfuzifallspeed geth getv
1880
ai      AIELFUZISHOOTING  AELFUZISHOOT  elfuzistopped faceplayer
1881
ai      AIELFUZIIQ        AELFUZIRUN    elfuzirunspeed geth getv
1882
ai      AIELFUZIGROW      AELFUZIGROW   elfuzistopped geth getv
1883
 
1884
state elfuziseekstate
1885
 
1886
ifcansee
1887
  {
1888
  ifp pdead break
1889
 
1890
  ifpdistl 15000
1891
    {
1892
    ifrnd 16
1893
      {
1894
      ai AIELFUZIHUNTING
1895
      }
1896
    }
1897
  }
1898
 
1899
ends
1900
 
1901
state elfuzihuntstate
1902
 
1903
ifp pdead ai AIELFUZISEEKING
1904
 
1905
 
1906
ifcansee
1907
  {
1908
  ifpdistl 2000
1909
    {
1910
    ai AIELFUZISHOOTING
1911
    break
1912
    }
1913
  ifrnd 64 ifnotmoving
1914
    {
1915
    ai AIELFUZIJUMPING
1916
    break
1917
    }
1918
 
1919
  ifrnd 7
1920
    ifpdistl 8192
1921
      {
1922
      ai AIELFUZISHOOTING
1923
      }
1924
  }
1925
  else
1926
  {
1927
  ifrnd 64 ai AIELFUZIIQ
1928
  }
1929
 
1930
ends
1931
 
1932
state elfuziiqstate
1933
 
1934
ifcansee
1935
  {
1936
  ai AIELFUZIHUNTING
1937
  }
1938
  else
1939
  {
1940
  ifrnd 16
1941
    ifnotmoving
1942
      {
1943
      ai AIELFUZISEEKING
1944
      }
1945
  }
1946
 
1947
ends
1948
 
1949
state elfuzishootstate
1950
 
1951
ifcansee
1952
  {
1953
  ifp pdead ai AIELFUZISEEKING
1954
 
1955
  ifactioncount 3
1956
    {
1957
    ifspritepal 0
1958
    {
1959
    sound CHAINGUN_FIRE
1960
    shoot CHAINGUN
1961
    }
1962
    else {
1963
    ifrnd 80
1964
      {
1965
      sound SHRINKER_FIRE
1966
      shoot SHRINKER
1967
      } }
1968
    resetactioncount
1969
    }
1970
  ifrnd 4
1971
    ai AIELFUZIHUNTING
1972
  }
1973
  else
1974
  {
1975
  ai AIELFUZIIQ
1976
  }
1977
 
1978
ends
1979
 
1980
state elfuzijumpingstate
1981
 
1982
ifactioncount 2
1983
  ai AIELFUZIFALLING
1984
 
1985
ends
1986
 
1987
state elfuzifallingstate
1988
 
1989
iffloordistl 5
1990
  ai AIELFUZIHUNTING
1991
 
1992
ends
1993
 
1994
action NONEACTION 0 1 1 1 1
1995
 
1996
move forwardspeed 1500
1997
// ai AIMOVEFORWARD NONEACTION forwardspeed faceplayer
1998
 
1999
useractor notenemy SPECBLOOD 0 // Hendricks266 fixed this actor. Before this fix, this line said "useractor SPECBLOOD 0", and the code was all messed up.
2000
  cstat 32768
2001
  // sizeat 42 36
2002
  // sizeat 32 27
2003
  sizeat 1 1
2004
  // ai AIMOVEFORWARD
2005
  spawn BLOOD
2006
  killit
2007
enda
2008
 
2009
 
2010
 
2011
state elfuzihitstate
2012
spawn BLOOD // Hendricks266 fixed this bug. Before this fix, this line said "spawn SPECBLOOD".  SPECBLOOD is a piece of shit.
2013
state random_wall_jibs
2014
 
2015
ifdead
2016
  {
2017
  ifrnd 128
2018
    {
2019
    spawn XMASPRESENT2
2020
    }
2021
  ifwasweapon GROWSPARK
2022
    {
2023
    sound ACTOR_GROWING
2024
    ai AIELFUZIGROW
2025
    break
2026
    }
2027
 
2028
  addkills 1
2029
  state random_wall_jibs
2030
 
2031
  ifwasweapon FREEZEBLAST
2032
    {
2033
    sound SOMETHINGFROZE
2034
    spritepal 1
2035
    move 0
2036
    action AELFUZIFROZEN
2037
    strength 0
2038
    break
2039
    }
2040
  ifwasweapon RADIUSEXPLOSION
2041
    {
2042
    sound SQUISH2
2043
//    state standard_jibs
2044
//    state standard_jibs
2045
    state standard_jibs
2046
    killit
2047
    }
2048
    else
2049
  ifwasweapon RPG
2050
    {
2051
    sound SQUISH2
2052
//    state standard_jibs
2053
//    state standard_jibs
2054
    state standard_jibs
2055
    killit
2056
    }
2057
    else
2058
    ai AIELFUZIDYING
2059
 
2060
  }
2061
  else
2062
  {
2063
//  state random_wall_jibs
2064
  ifwasweapon SHRINKSPARK
2065
    {
2066
    sound ACTOR_SHRINKING
2067
    ai AIELFUZISHRINKING
2068
    }
2069
    else
2070
    ifwasweapon GROWSPARK
2071
      sound EXPANDERHIT
2072
      else
2073
      ifrnd 32
2074
        ai AIELFUZISHOOTING
2075
  }
2076
ends
2077
 
2078
state elfuzishrinkstate
2079
 
2080
ifcount SHRUNKDONECOUNT
2081
  ai AIELFUZISEEKING
2082
  else
2083
  ifcount SHRUNKCOUNT
2084
//    sizeto 48 40
2085
      sizeto 32 27
2086
    else
2087
    state genericshrunkcode
2088
 
2089
ends
2090
 
2091
state elfuzidyingstate
2092
 
2093
ifactioncount 5
2094
  {
2095
  ifrnd 64
2096
    spawn BLOODPOOL
2097
  state rf
2098
  iffloordistl 8
2099
    sound THUD
2100
  action AELFUZIDEAD
2101
  move elfuzistopped
2102
  break
2103
  }
2104
 
2105
ends
2106
 
2107
useractor enemy ELFUZI ELFUZISTRENGTH
2108
fall
2109
 
2110
state checksquished
2111
 
2112
ifaction AELFUZIDEAD
2113
  {
2114
  ifrespawn
2115
    ifcount RESPAWNACTORTIME
2116
      {
2117
      spawn TRANSPORTERSTAR
2118
      cstat 257
2119
      strength ELFUZISTRENGTH
2120
      ai AIELFUZISEEKING
2121
      }
2122
      else
2123
      {
2124
      strength 0
2125
      ifhitweapon
2126
        ifwasweapon RADIUSEXPLOSION
2127
          {
2128
          sound SQUISH2
2129
//          state standard_jibs
2130
//          state standard_jibs
2131
          state standard_jibs
2132
          killit
2133
          }
2134
      break
2135
      }
2136
  break
2137
  }
2138
  else
2139
ifaction AELFUZIFROZEN
2140
  {
2141
  ifcount THAWTIME
2142
    {
2143
    ai AIELFUZISEEKING
2144
    getlastpal
2145
    }
2146
    else
2147
    ifcount FROZENDRIPTIME
2148
      ifrnd 8
2149
        spawn WATERDRIP
2150
 
2151
  ifhitweapon
2152
    {
2153
    ifwasweapon FREEZEBLAST
2154
      {
2155
      strength 0
2156
      break
2157
      }
2158
    addkills 1
2159
    lotsofglass 30
2160
    ifrnd 84 spawn BLOODPOOL
2161
    sound GLASS_BREAKING
2162
    killit
2163
    }
2164
  ifp pfacing
2165
    ifpdistl FROZENQUICKKICKDIST
2166
      pkick
2167
  break
2168
  }
2169
  else
2170
  ifai AIELFUZIDYING
2171
    state elfuzidyingstate
2172
 
2173
ifai AIELFUZISHRINKING nullop else { ifai AIELFUZIGROW nullop else { ifhitweapon state elfuzihitstate } }
2174
 
2175
ifai 0
2176
  {
2177
  ai AIELFUZISEEKING
2178
  cstat 257
2179
  // clipdist 32
2180
//  sizeat 42 36
2181
  sizeat 32 27
2182
  ifspritepal 0 nullop else
2183
    {
2184
  ifrnd 72
2185
    strength ELFUZIALTSTR
2186
  else
2187
    strength ELFUZISTRENGTH
2188
    }
2189
  }
2190
  else
2191
 
2192
      ifai AIELFUZISEEKING state elfuziseekstate
2193
 else ifai AIELFUZIHUNTING state elfuzihuntstate
2194
 else ifai AIELFUZIIQ state elfuziiqstate
2195
 else ifai AIELFUZISHOOTING state elfuzishootstate
2196
 else ifai AIELFUZIJUMPING state elfuzijumpingstate
2197
 else ifai AIELFUZIFALLING state elfuzifallingstate
2198
 else ifai AIELFUZIGROW state genericgrowcode
2199
      ifai AIELFUZISHRINKING state elfuzishrinkstate
2200
enda
2201
 
2202
useractor enemystayput ELFUZISTAYPUT ELFUZISTRENGTH
2203
   cstat 257
2204
   // clipdist 32
2205
   ai AIELFUZISEEKING
2206
   cactor ELFUZI
2207
enda
2208
 
2209
action  AELFGUNWALK    0 4 5 1 20
2210
action  AELFGUNRUN     0 4 5 1 10
2211
action  AELFGUNFROZEN  0 1 5 1
2212
action  AELFGUNGROW    0 1 5 1
2213
action  AELFGUNDYING  35 4 1 1 25
2214
action  AELFGUNDEAD   39 1 1 1 1
2215
action  AELFGUNSHOOT  20 3 5 1 40
2216
 
2217
move    elfgunwalkspeed 70
2218
move    elfgunrunspeed  110
2219
move    elfgunstopped
2220
move    elfgunshrink1    80
2221
 
2222
ai      AIELFGUNSHRINKING AELFGUNWALK   elfgunshrink1  fleeenemy
2223
ai      AIELFGUNDYING     AELFGUNDYING  elfgunstopped faceplayer
2224
ai      AIELFGUNSEEKING   AELFGUNWALK   elfgunwalkspeed seekplayer
2225
ai      AIELFGUNHUNTING   AELFGUNRUN    elfgunrunspeed faceplayer
2226
ai      AIELFGUNSHOOTING  AELFGUNSHOOT  elfgunstopped faceplayer
2227
ai      AIELFGUNIQ        AELFGUNRUN    elfgunrunspeed geth getv
2228
ai      AIELFGUNGROW      AELFGUNGROW   elfgunstopped geth getv
2229
 
2230
state elfgunseekstate
2231
 
2232
ifcansee
2233
  {
2234
  ifp pdead break
2235
 
2236
  ifpdistl 15000
2237
    {
2238
    ifrnd 16
2239
      {
2240
      ai AIELFGUNHUNTING
2241
      }
2242
    }
2243
  }
2244
 
2245
ends
2246
 
2247
state elfgunhuntstate
2248
   ifp pdead ai AIELFGUNSEEKING
2249
 
2250
   ifcansee
2251
     {
2252
       ifpdistl 2000
2253
         {
2254
           ai AIELFGUNSHOOTING
2255
           break
2256
         }
2257
     }
2258
 
2259
  ifrnd 7
2260
    {
2261
      ifpdistl 8192 ai AIELFGUNSHOOTING
2262
    }
2263
  else ifrnd 48 ai AIELFGUNIQ
2264
ends
2265
 
2266
state elfguniqstate
2267
   ifcansee ai AIELFGUNHUNTING
2268
  else
2269
  {
2270
  ifrnd 16
2271
    ifnotmoving
2272
      ai AIELFGUNSEEKING
2273
  }
2274
ends
2275
 
2276
state elfgunshootstate
2277
 
2278
ifcansee
2279
  {
2280
  ifp pdead ai AIELFGUNSEEKING
2281
 
2282
  ifcount 20
2283
    {
2284
    ifcount 29
2285
      nullop
2286
      else
2287
      {
2288
      ifcount 28
2289
        {
2290
        sound SHOTGUN_COCK
2291
        }
2292
      }
2293
    }
2294
    else
2295
    {
2296
    ifcount 19
2297
      {
2298
      sound SHOTGUN_FIRE
2299
      shoot SHOTGUN
2300
      shoot SHOTGUN
2301
      shoot SHOTGUN
2302
      shoot SHOTGUN
2303
      shoot SHOTGUN
2304
      }
2305
    }
2306
 
2307
  ifactioncount 3
2308
    {
2309
    resetcount
2310
    resetactioncount
2311
    ifrnd 64
2312
      ai AIELFGUNHUNTING
2313
    }
2314
  }
2315
  else ai AIELFGUNIQ
2316
 
2317
ends
2318
 
2319
state elfgunhitstate
2320
   spawn BLOOD
2321
 
2322
state random_wall_jibs
2323
 
2324
ifdead
2325
  {
2326
  state random_wall_jibs
2327
  ifrnd 128
2328
    {
2329
    spawn XMASPRESENT
2330
    }
2331
  ifwasweapon GROWSPARK
2332
    {
2333
    sound ACTOR_GROWING
2334
    ai AIELFGUNGROW
2335
    break
2336
    }
2337
 
2338
  addkills 1
2339
 
2340
  ifwasweapon FREEZEBLAST
2341
    {
2342
    sound SOMETHINGFROZE
2343
    spritepal 1
2344
    move 0
2345
    action AELFGUNFROZEN
2346
    strength 0
2347
    break
2348
    }
2349
  ifwasweapon RADIUSEXPLOSION
2350
    {
2351
    sound SQUISH2
2352
//    state standard_jibs
2353
//    state standard_jibs
2354
    state standard_jibs
2355
    killit
2356
    }
2357
    else
2358
  ifwasweapon RPG
2359
    {
2360
    sound SQUISH2
2361
//    state standard_jibs
2362
//    state standard_jibs
2363
    state standard_jibs
2364
    killit
2365
    }
2366
    else
2367
    ai AIELFGUNDYING
2368
 
2369
  }
2370
  else
2371
  {
2372
  state random_wall_jibs
2373
  ifwasweapon SHRINKSPARK
2374
    {
2375
    sound ACTOR_SHRINKING
2376
    ai AIELFGUNSHRINKING
2377
    }
2378
    else
2379
    ifwasweapon GROWSPARK
2380
      sound EXPANDERHIT
2381
      else
2382
      ifrnd 32
2383
        ai AIELFGUNSHOOTING
2384
  }
2385
ends
2386
 
2387
state elfgunshrinkstate
2388
 
2389
ifcount SHRUNKDONECOUNT
2390
  ai AIELFGUNSEEKING
2391
  else
2392
  ifcount SHRUNKCOUNT
2393
//    sizeto 48 40
2394
    sizeto 32 27
2395
    else
2396
    state genericshrunkcode
2397
 
2398
ends
2399
 
2400
state elfgundyingstate
2401
 
2402
ifactioncount 4
2403
  {
2404
  ifrnd 64
2405
    spawn BLOODPOOL
2406
  state rf
2407
  iffloordistl 8
2408
    sound THUD
2409
  action AELFGUNDEAD
2410
  move elfgunstopped
2411
  break
2412
  }
2413
 
2414
ends
2415
 
2416
useractor enemy ELFGUN ELFGUNSTRENGTH
2417
fall
2418
state checksquished
2419
 
2420
ifaction AELFGUNDEAD
2421
  {
2422
  ifrespawn
2423
    ifcount RESPAWNACTORTIME
2424
      {
2425
      spawn TRANSPORTERSTAR
2426
      cstat 257
2427
      strength ELFGUNSTRENGTH
2428
      ai AIELFGUNSEEKING
2429
      }
2430
      else
2431
      {
2432
      strength 0
2433
      ifhitweapon
2434
        ifwasweapon RADIUSEXPLOSION
2435
          {
2436
          sound SQUISH2
2437
//          state standard_jibs
2438
//          state standard_jibs
2439
          state standard_jibs
2440
          killit
2441
          }
2442
      break
2443
      }
2444
  break
2445
  }
2446
  else
2447
ifaction AELFGUNFROZEN
2448
  {
2449
  ifcount THAWTIME
2450
    {
2451
    ai AIELFGUNSEEKING
2452
    getlastpal
2453
    }
2454
    else
2455
    ifcount FROZENDRIPTIME
2456
      ifrnd 8
2457
        spawn WATERDRIP
2458
 
2459
  ifhitweapon
2460
    { // state elfgunhitstate
2461
    ifwasweapon FREEZEBLAST
2462
      {
2463
      strength 0
2464
      break
2465
      }
2466
    addkills 1
2467
    lotsofglass 30
2468
    ifrnd 84 spawn BLOODPOOL
2469
    sound GLASS_BREAKING
2470
    killit
2471
    }
2472
  ifp pfacing
2473
    ifpdistl FROZENQUICKKICKDIST
2474
      pkick
2475
  break
2476
  }
2477
  else
2478
  ifai AIELFGUNDYING
2479
    state elfgundyingstate
2480
 
2481
ifai AIELFGUNSHRINKING nullop else { ifai AIELFGUNGROW nullop else { ifhitweapon { state elfgunhitstate } } }
2482
 
2483
ifai 0
2484
  {
2485
  ai AIELFGUNSEEKING
2486
  cstat 257
2487
  // clipdist 32
2488
//  sizeat 42 36
2489
  sizeat 32 27
2490
  strength ELFGUNSTRENGTH
2491
  }
2492
  else
2493
 
2494
ifai AIELFGUNSEEKING { state elfgunseekstate } else
2495
ifai AIELFGUNHUNTING { state elfgunhuntstate } else
2496
ifai AIELFGUNIQ { state elfguniqstate } else
2497
ifai AIELFGUNSHOOTING { state elfgunshootstate } else
2498
ifai AIELFGUNGROW { state genericgrowcode }
2499
ifai AIELFGUNSHRINKING { state elfgunshrinkstate }
2500
 
2501
break
2502
enda
2503
 
2504
useractor enemystayput ELFGUNSTAYPUT ELFGUNSTRENGTH
2505
ai AIELFGUNSEEKING
2506
cstat 257
2507
// clipdist 32
2508
cactor ELFGUN
2509
break
2510
enda
2511
 
2512
state present
2513
  fall
2514
  sizeat 20 20
2515
  cstat 257
2516
  clipdist 16
2517
ends
2518
 
2519
state present1
2520
  ifp pshrunk nullop else
2521
  ifp palive
2522
    ifcount 6
2523
      ifpdistl RETRIEVEDISTANCE
2524
        ifcanseetarget
2525
          {
2526
            sound RIP_PAPER
2527
            ifvarl temp 1 { ifrnd 128 spawn SHIELD else spawn SIXPAK } else espawnvar temp
2528
            killit
2529
          }
2530
ends
2531
 
2532
state present2
2533
  ifp pshrunk nullop else
2534
  ifp palive
2535
    ifcount 6
2536
      ifpdistl RETRIEVEDISTANCE
2537
        ifcanseetarget
2538
          {
2539
            sound RIP_PAPER
2540
            ifvarl temp 1 { ifrnd 128 spawn CHAINGUNSPRITE else spawn SHOTGUNSPRITE } else espawnvar temp
2541
            killit
2542
          }
2543
ends
2544
 
2545
 
2546
useractor notenemy XMASPRESENT 0 // ELFGUN
2547
  state present
2548
  state present1
2549
enda
2550
 
2551
useractor notenemy XMASPRESENT2 0 // ELFUZI
2552
  state present
2553
  state present2
2554
enda
2555
 
2556
 
2557
action VOIDACTION
2558
move NULLSPEED
2559
 
2560
ai MAKENOISE VOIDACTION NULLSPEED geth getv
2561
 
2562
useractor notenemy NOISEMAKER 999
2563
  sizeat 48 40
2564
  cstat 17
2565
 
2566
  ifai 0 ai MAKENOISE
2567
 
2568
  ifspritepal 21
2569
    {
2570
      ifhitweapon
2571
        {
2572
          ifcount 24
2573
            {
2574
              strength 999
2575
              ifrnd 128 sound MOVIE2 else sound MOVIE3
2576
              resetcount
2577
            }
2578
        }
2579
    }
2580
  else
2581
   {
2582
     hitradius 4096 1 1 1 1
2583
   }
2584
enda
2585
 
2586
useractor notenemy MALEGEEK 20
2587
 ifhitweapon
2588
   {
2589
     guts JIBS6 3
2590
     sound SQUISH2
2591
     ifdead
2592
       {
2593
         stopsound MALECAROL
2594
         guts JIBS6 2
2595
         guts JIBS6 3
2596
         guts JIBS6 4
2597
         sound MALECAROL_DEAD
2598
         globalsound MOUSEANNOY
2599
         killit
2600
       }
2601
   }
2602
 ifcount 225
2603
   {
2604
     sound MALECAROL
2605
     resetcount
2606
   }
2607
enda
2608
 
2609
useractor notenemy FEMALEGEEK 20
2610
 ifhitweapon
2611
   {
2612
     guts JIBS6 3
2613
     sound SQUISH2
2614
     ifdead
2615
       {
2616
         stopsound FEMALECAROL
2617
         guts JIBS6 2
2618
         guts JIBS6 3
2619
         guts JIBS6 4
2620
         sound FEMALECAROL_DEAD
2621
         killit
2622
       }
2623
   }
2624
 ifcount 225
2625
   {
2626
     sound FEMALECAROL
2627
     resetcount
2628
   }
2629
enda
2630
 
2631
state mariocode
2632
 cstat 257
2633
 sizeat 62 62
2634
ends
2635
 
2636
useractor notenemy NWMARIO 0
2637
 state mariocode
2638
enda
2639
 
2640
useractor notenemy NWMARIO2 0
2641
 state mariocode
2642
enda