Subversion Repositories nw_plus

Rev

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