Subversion Repositories nw_plus

Rev

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