home *** CD-ROM | disk | FTP | other *** search
/ Come Get Some! / ComeGetSome.iso / confiles / gore / gore.con next >
Text File  |  1996-06-02  |  101KB  |  3,643 lines

  1.  
  2. /*
  3. --------------------------------------------------------------------------------
  4. Duke Nukem 3D GAME.CON file.
  5. By Todd Replogle
  6. (c) 1996 3D Realms Entertainment
  7. --------------------------------------------------------------------------------
  8.  
  9.  
  10. IMPORTANT NOTICE IF YOU USE MODIFIED .CON FILES
  11.  
  12. If you are playing a MULTIPLAY game (Dukematch or Co-op) and you are
  13. using *modified* .CON files (USER.CON, GAME.CON, DEFS.CON), then each
  14. multiplayer must be using the EXACT SAME .CON files, or the game will
  15. get out of sync and/or develop interesting problems.
  16.  
  17. 3D Realms encourages you to experiment freely with the parameters
  18. contained in this file, and to share your discoveries with the rest
  19. of the world.  However, BE ADVISED that 3D Realms does NOT offer 
  20. any technical support on how to use this file or other user-modifiable 
  21. features of this game.  Do NOT call 3D Realms or Apogee Software 
  22. for advice or help with this subject.  
  23.  
  24. You make modifications to this and other files at your own risk. 
  25. It is recommended that you first make a backup copy of this, or
  26. any .CON files before making any changes.
  27.  
  28. --------------------------------------------------------------------------------
  29.  
  30. */
  31.  
  32. include DEFS.CON
  33. include USER.CON
  34.  
  35. state dead_mass_jibs
  36.     guts JIBS2 5
  37.     guts JIBS3 5
  38.     guts JIBS4 5
  39.     guts JIBS5 5
  40.     guts JIBS6 5
  41.     guts DUKELEG 5
  42.     guts DUKETORSO 5
  43.     guts LIZMANHEAD1 5
  44.     guts LIZMANARM1 5
  45.     guts HEADJIB1 5
  46.     shoot BLOODSPLAT2
  47.     shoot BLOODSPLAT4
  48.  
  49. ends
  50.  
  51. state mass_jibs
  52.     guts JIBS1 3
  53.     guts JIBS2 3
  54.     guts HEADJIB1 3
  55.     guts ARMJIB1 3
  56.     spawn HEADJIB1
  57.     spawn ARMJIB1
  58.     spawn LIZMANHEAD1
  59.     spawn LIZMANARM1
  60.     shoot BLOODSPLAT2
  61.     shoot BLOODSPLAT4
  62. ends
  63.  
  64. state genericshrunkcode
  65.     ifcount 32 { ifpdistl SQUISHABLEDISTANCE pstomp }
  66.     else { sizeto 9 8 spawn FRAMEEFFECT1 }
  67. ends
  68.  
  69. move SHUTTLEVELS 16
  70.  
  71. actor SPACESHUTTLE TOUGH
  72.   //  ifmove 0 { move SHUTTLEVELS getv geth }
  73. enda
  74.  
  75. actor SATELLITE TOUGH
  76.   //  ifmove 0 { move SHUTTLEVELS getv geth }
  77.   //  ifcount 120 move SHUTTLEVELS getv geth randomangle
  78. enda
  79.  
  80. action ASHARKCRUZING 0 8 5 1 24
  81. action ASHARKFLEE    0 8 5 1 10
  82. action ASHARKATACK   0 8 5 1 6
  83. action ASHARKSHRUNK  0 8 5 1 24
  84. action ASHARKFROZEN  0 1 5 1 24
  85.  
  86. move SHARKVELS 24
  87. move SHARKFASTVELS 72
  88. move SHARKFLEEVELS 40
  89.  
  90. actor SHARK SHARKSTRENGTH ASHARKCRUZING SHARKVELS randomangle geth
  91.     ifaction ASHARKSHRUNK
  92.     {
  93.         ifcount SHRUNKDONECOUNT action ASHARKCRUZING
  94.         else ifcount SHRUNKCOUNT sizeto 24 24
  95.         else state genericshrunkcode
  96.     }
  97.     else ifaction ASHARKFROZEN
  98.     {
  99.         fall
  100.  
  101.         ifcount THAWTIME { action ASHARKFLEE getlastpal }
  102.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  103.  
  104.         ifhitweapon
  105.         {
  106.             ifwasweapon FREEZEBLAST { strength 0 break }
  107.             lotsofglass 30
  108.             sound GLASS_BREAKING
  109.             killit
  110.         }
  111.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  112.         break
  113.     }
  114.     else ifaction ASHARKFLEE
  115.     {
  116.         ifcount 16 ifrnd 48 { action ASHARKCRUZING move SHARKVELS randomangle geth }
  117.     }
  118.     else ifaction ASHARKCRUZING
  119.     {
  120.         ifcansee ifcount 48 ifrnd 2 { action ASHARKATACK move SHARKFASTVELS faceplayerslow getv break }
  121.         ifcount 32 ifnotmoving
  122.         {
  123.             ifrnd 128 move SHARKVELS randomangle geth
  124.             else move SHARKFASTVELS randomangle geth
  125.         }
  126.     }
  127.     else ifaction ASHARKATACK
  128.     {
  129.         ifcount 4
  130.         {
  131.             ifpdistl 1280
  132.             {
  133.                 ifp palive ifcanshoottarget
  134.                 {
  135.                     sound DUKE_GRUNT
  136.                     palfrom 32 32
  137.                     addphealth SHARKBITESTRENGTH
  138.                 }
  139.                 action ASHARKFLEE
  140.                 move SHARKFLEEVELS fleeenemy
  141.             }
  142.         }
  143.         else ifnotmoving
  144.             { ifcount 32 { action ASHARKCRUZING move SHARKVELS randomangle geth } }
  145.         else ifcount 48 ifrnd 2
  146.             { action ASHARKCRUZING move SHARKFASTVELS randomangle geth }
  147.     }
  148.  
  149.     ifhitweapon
  150.     {
  151.         state mass_jibs
  152.         ifdead
  153.             { sound SQUISHED state dead_mass_jibs guts JIBS6 5 killit }
  154.         else
  155.         {
  156.             ifwasweapon SHRINKSPARK
  157.             {
  158.                 action ASHARKSHRUNK
  159.                 sound ACTOR_SHRINKING
  160.             }
  161.             else ifwasweapon FREEZEBLAST
  162.             {
  163.                 action ASHARKFROZEN
  164.                 sound SOMETHINGFROZE
  165.                 move 0
  166.             }
  167.             else move SHARKVELS randomangle geth
  168.         }
  169.     }
  170. enda
  171.  
  172.  
  173. action BLIMPWAITTORESPAWN
  174.  
  175. state blimphitstate
  176.     cstat 0
  177.     spawn FIRSTGUNSPRITE
  178.     spawn EXPLOSION2
  179.  
  180.     debris SCRAP1 40            // Weapons and ammo!
  181.     debris SCRAP2 32
  182.     debris SCRAP3 32
  183.     debris SCRAP4 32
  184.     debris SCRAP5 32
  185.  
  186.     sound PIPEBOMB_EXPLODE
  187.     ifrespawn { action BLIMPRESPAWNTIME move 0 cstat 32768 }
  188.     else killit
  189. ends
  190.  
  191. actor BLIMP 1
  192.  
  193.     ifaction BLIMPWAITTORESPAWN
  194.     {
  195.         ifcount RESPAWNACTORTIME
  196.         {
  197.             action 0
  198.             cstat 0
  199.             move 0
  200.         }
  201.         break
  202.     }
  203.  
  204.     ifhitweapon
  205.     {
  206.         ifwasweapon RADIUSEXPLOSION state blimphitstate
  207.         ifwasweapon RPG state blimphitstate
  208.         strength 1
  209.     }
  210. enda
  211.  
  212.  
  213.  
  214. state rats
  215.     ifrnd 128 spawn RAT
  216.     ifrnd 128 spawn RAT
  217.     ifrnd 128 spawn RAT
  218.     ifrnd 128 spawn RAT
  219.     ifrnd 128 spawn RAT
  220.     ifrnd 128 spawn RAT
  221.     ifrnd 128 spawn RAT
  222.     ifrnd 128 spawn RAT
  223. ends
  224.  
  225. move RESPAWN_ACTOR_FLAG
  226.  
  227. action RUBCANDENT 1 1 1 1 1
  228. action RUBCAN
  229.  
  230. actor RUBBERCAN WEAK
  231.     ifaction RUBCANDENT { ifactioncount 16 { strength 0 action RUBCAN break } }
  232.     else ifhitweapon
  233.     {
  234.         ifwasweapon RADIUSEXPLOSION { state rats ifrnd 48 spawn BURNING debris SCRAP3 12 killit }
  235.         else action RUBCANDENT
  236.     }
  237. enda
  238.  
  239. state headhitstate
  240. // Unrem the following line to involving screen tilting during
  241. // low player hitpoint damage.
  242.  
  243.  
  244. // wackplayer
  245.  
  246.  
  247. ends
  248.  
  249.  
  250. action EXPBARRELFRAME         0   2   1   1   15
  251. actor EXPLODINGBARREL 26
  252.     fall
  253.     ifaction EXPBARRELFRAME
  254.     {
  255.         ifactioncount 2
  256.         {
  257.             hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  258.             spawn EXPLOSION2
  259.             debris SCRAP2 2
  260.             sound PIPEBOMB_EXPLODE
  261.             killit
  262.         }
  263.         break
  264.     }
  265.     ifsquished
  266.     {
  267.         debris SCRAP1 5
  268.         killit
  269.         break
  270.     }
  271.     ifhitweapon
  272.         action EXPBARRELFRAME
  273. enda
  274.  
  275. action BURNING_FLAME    0   12   1   1   2
  276. move BURNING_VELS 
  277.  
  278. state burningstate
  279.  
  280.     ifgapzl 16 break
  281.     ifpdistg 10240 break
  282.  
  283.     ifcount 128
  284.     {
  285.         ifspawnedby TIRE
  286.         {
  287.             ifactioncount 512
  288.             {
  289.                 sizeto 16 16
  290.                 killit
  291.             }
  292.             ifrnd 16 sizeto 64 48
  293.         }
  294.         else
  295.         {
  296.             sizeto 8 8 sizeto 8 8
  297.             ifactioncount 192 killit
  298.         }
  299.     }
  300.     else
  301.     {
  302.         ifmove 0 move BURNING_VELS
  303.  
  304.         ifspawnedby BOX
  305.             { sizeto 32 32 ifcount 32 { spawn SMALLSMOKE killit } }
  306.         else ifspawnedby TREE1 sizeto 96 96
  307.         else ifspawnedby TREE2 sizeto 96 96
  308.         else ifspawnedby APLAYER { sizeto 40 40 sizeto 40 40 }
  309.         else sizeto 52 52
  310.         ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 24 16 }
  311.     }
  312.  
  313. ends
  314.  
  315. actor BURNING WEAK BURNING_FLAME
  316.     state burningstate
  317. enda
  318.  
  319. actor BURNING2 WEAK BURNING_FLAME
  320.     state burningstate
  321. enda
  322.  
  323. action TOILETWATERFRAMES 0 4 1 1 1
  324. actor TOILETWATER 0 TOILETWATERFRAMES
  325.     ifpdistl 8192
  326.     {
  327.         soundonce WATER_GURGLE
  328.         ifspawnedby TOILET sizeto 34 34
  329.         else
  330.         {
  331.             ifspawnedby WATERFOUNTAINBROKE
  332.                 sizeto 6 15
  333.             else ifspawnedby TOILETWATER { } else sizeto 24 32
  334.         }
  335.  
  336.         ifp palive ifpdistl RETRIEVEDISTANCE ifp pfacing ifactioncount 32
  337.             ifphealthl MAXPLAYERHEALTH ifhitspace ifcansee
  338.         {
  339.             addphealth 1
  340.             globalsound DUKE_DRINKING
  341.             resetactioncount
  342.         }
  343.     }
  344. enda
  345.  
  346. action WOODENHORSEFRAME  0   1   4
  347. action WOODENFALLFRAME  122  1   5
  348.  
  349. actor HORSEONSIDE WEAKEST cactor WOODENHORSE action WOODENFALLFRAME enda
  350. actor WOODENHORSE WEAK WOODENHORSEFRAME
  351.     fall
  352.     ifhitweapon
  353.     {
  354.         ifdead
  355.         {
  356.             debris SCRAP1 4
  357.             debris SCRAP2 3
  358.             killit
  359.         }
  360.         else action WOODENFALLFRAME
  361.     }
  362. enda
  363.  
  364. state steamcode
  365.     ifpdistl 8192 soundonce STEAM_HISSING
  366.  
  367.     ifcount 20
  368.     {
  369.         resetcount
  370.         ifp palive ifpdistl 1024
  371.         {
  372.             addphealth -1
  373.             palfrom 16 16
  374.         }
  375.     }
  376.     else
  377.     {
  378.         ifspawnedby STEAM break ifspawnedby CEILINGSTEAM break
  379.         sizeto 24 24
  380.     }
  381. ends
  382.  
  383. action STEAMFRAMES      0       5       1       1       1
  384. actor STEAM 0 STEAMFRAMES
  385.     state steamcode
  386. enda
  387.  
  388. actor CEILINGSTEAM 0 STEAMFRAMES
  389.     state steamcode
  390. enda
  391.  
  392. actor WATERBUBBLEMAKER 0 0 randomangle
  393.     ifpdistl 3084 ifrnd 24 spawn WATERBUBBLE
  394. enda
  395.  
  396. action BUBBLE
  397. action CRACKEDBUBBLE    1
  398. move BUBMOVE           -10 -36
  399. move BUBMOVEFAST           -10 -52
  400.  
  401. actor WATERBUBBLE 0 BUBBLE BUBMOVE getv geth randomangle
  402.  
  403.     ifaction CRACKEDBUBBLE
  404.     {
  405.         ifinwater ifrnd 192 killit
  406.         ifactioncount 7 killit
  407.     }
  408.     else
  409.     {
  410.         ifcount 4
  411.         {
  412.             ifrnd 192 move BUBMOVE getv geth randomangle
  413.             else move BUBMOVEFAST getv geth randomangle
  414.             resetcount
  415.         }
  416.  
  417.         ifonwater
  418.         {
  419.             iffloordistl 8 action CRACKEDBUBBLE
  420.         }
  421.         else ifactioncount 40 action CRACKEDBUBBLE
  422.     }
  423. enda
  424.  
  425.  
  426. move SMOKEVEL 8 -16
  427. move ENGINE_SMOKE 64 -64
  428. move SMOKESHOOTOUT -192
  429. action SMOKEFRAMES 0 4 1 1 10
  430. actor SMALLSMOKE 0 SMOKEFRAMES
  431.     ifmove 0
  432.     {
  433.         ifspawnedby RECON
  434.             move SMOKESHOOTOUT geth
  435.         else ifspawnedby SECTOREFFECTOR
  436.             move ENGINE_SMOKE geth getv
  437.         else move SMOKEVEL geth getv faceplayer
  438.         ifspawnedby RPG
  439.         cstat 2
  440.     }
  441.     ifpdistl 1596 ifspawnedby RPG killit
  442.     ifactioncount 4 killit
  443. enda
  444.  
  445. action BARREL_DENTING  2 2 1 1 6
  446. action BARREL_DENTED   1
  447. action BARREL_DENTED2  2
  448.  
  449. move SPAWNED_BLOOD
  450.  
  451. actor NUKEBARRELDENTED WEAK
  452.     cactor NUKEBARREL
  453.     action BARREL_DENTED
  454. enda
  455.  
  456. actor NUKEBARRELLEAKED WEAK
  457.     cactor NUKEBARREL
  458.     action BARREL_DENTED2
  459. enda
  460.  
  461. actor NUKEBARREL MEDIUMSTRENGTH
  462.     ifsquished
  463.     {
  464.         debris SCRAP1 32
  465.         spawn BLOODPOOL
  466.         spawn OOZ
  467.         killit
  468.     }
  469.     fall
  470.     ifaction BARREL_DENTING
  471.     {
  472.         ifactioncount 2
  473.         {
  474.             debris SCRAP1 10
  475.             ifrnd 2 spawn BLOODPOOL
  476.             killit
  477.         }
  478.     }
  479.     else ifhitweapon
  480.     {
  481.         ifdead
  482.         {
  483.             sound VENT_BUST
  484.  
  485.             ifrnd 128
  486.                 spawn BLOODPOOL
  487.             action BARREL_DENTING
  488.         }
  489.         else
  490.         {
  491.             ifaction 0
  492.                 action BARREL_DENTED
  493.             else ifaction BARREL_DENTED
  494.             {
  495.                 action BARREL_DENTED2
  496.                 spawn BLOODPOOL
  497.             }
  498.             else ifaction BARREL_DENTED2
  499.                 action BARREL_DENTING
  500.         }
  501.     }
  502. enda
  503.  
  504. state burningbarrelcode
  505.     fall
  506.     ifcount 32
  507.     {
  508.         resetcount
  509.         ifp palive ifpdistl 1480 ifp phigher
  510.         {
  511.             addphealth -1
  512.             palfrom 16 16
  513.             ifrnd 96 sound DUKE_LONGTERM_PAIN
  514.         }
  515.     }
  516.     ifhitweapon
  517.     {
  518.         sound VENT_BUST
  519.         debris SCRAP1 10
  520.         ifrnd 128 spawn BURNING
  521.         else spawn BURNING2
  522.         killit
  523.     }
  524. ends
  525.  
  526. actor FIREBARREL state burningbarrelcode enda
  527. actor FIREVASE state burningbarrelcode enda
  528.  
  529. action SHRINKERFRAMES 0 4 1 1 10
  530. actor SHRINKEREXPLOSION 0 SHRINKERFRAMES
  531.     ifactioncount 4 killit
  532. enda
  533.  
  534. action EXPLOSION_FRAMES 0 20 1 1  4
  535. actor EXPLOSION2 1 EXPLOSION_FRAMES
  536.     ifactioncount 20 killit
  537. enda
  538.  
  539. actor EXPLOSION2BOT 1 EXPLOSION_FRAMES
  540.     ifactioncount 20 killit
  541. enda
  542.  
  543. action FFLAME_FR 0 16 1 1 1
  544. action FFLAME 0 1 1 1 1
  545.  
  546. actor FLOORFLAME 0 FFLAME_FR
  547.         ifaction FFLAME_FR
  548.         {
  549.                 ifpdistl 1024 hitradius 1024 WEAKEST WEAKEST WEAKEST WEAKEST
  550.                 ifactioncount 16
  551.                     action FFLAME
  552.         }
  553.         ifaction FFLAME ifrnd 4
  554.         {
  555.              action FFLAME_FR
  556.              sound CAT_FIRE
  557.              resetactioncount
  558.         }
  559.  
  560. enda
  561.  
  562.  
  563.  
  564. action ASATNSPIN   0 5 1 1 4
  565. action ASATSHOOTING -10 3 5 1 40
  566. action ASATWAIT 0 1 5 1 1
  567. move TURRVEL
  568.  
  569. actor ROTATEGUN ROTTURRETSTRENGTH
  570. // ASATSHOOTING TURRVEL faceplayer
  571.  
  572.     ifaction 0
  573.     {
  574.         action ASATSHOOTING
  575.         move TURRVEL faceplayer
  576.     }
  577.     else ifaction ASATNSPIN
  578.         { ifactioncount 32 { action ASATWAIT move TURRVEL faceplayer } }
  579.     else ifaction ASATSHOOTING
  580.     {
  581.         ifactioncount 12 { ifrnd 32 action ASATWAIT }
  582.         ifcount 32 resetcount
  583.         else ifcount 16 { ifcount 17 { } else { sound PRED_ATTACK shoot FIRELASER } }
  584.         else ifcount 4 { ifcount 5 { } else { ifcansee ifcanshoottarget { sound PRED_ATTACK shoot FIRELASER } } }
  585.     }
  586.     else ifaction ASATWAIT
  587.         { ifactioncount 64 ifrnd 32 ifp palive ifcansee { action ASATSHOOTING move TURRVEL faceplayer } }
  588.     ifhitweapon { ifdead { addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit }
  589.         else { action ASATNSPIN debris SCRAP1 4 } move 0 }
  590.  
  591. enda
  592.  
  593. action RIP_F 0 8 1 1 1
  594. actor FORCERIPPLE 0 RIP_F
  595.     ifactioncount 8 killit
  596. enda
  597.  
  598. action TRANSFOWARD 0  6  1  1  2
  599. action TRANSBACK   5  6  1 -1  2
  600. actor TRANSPORTERSTAR 0 TRANSFOWARD
  601.     ifaction TRANSFOWARD
  602.     {
  603.         ifactioncount 6
  604.             action TRANSBACK
  605.     }
  606.     else
  607.         ifactioncount 6 killit
  608. enda
  609.  
  610. action BEAMFOWARD  0  4  1  1  9
  611. actor TRANSPORTERBEAM 0 BEAMFOWARD
  612.     sizeto 32 64 sizeto 32 64 sizeto 32 64
  613.     ifactioncount 4 killit
  614. enda
  615.  
  616. state getcode
  617.     ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
  618.     else globalsound DUKE_GET
  619.     palfrom 16 0 32
  620.     ifrespawn
  621.     {
  622.         move RESPAWN_ACTOR_FLAG
  623.         spawn RESPAWNMARKERRED
  624.         cstat 32768
  625.     }
  626.     else killit
  627. ends
  628.  
  629. state randgetweapsnds
  630.     ifrnd 64 globalsound DUKE_GETWEAPON1
  631.     else ifrnd 96 globalsound DUKE_GETWEAPON2
  632.     else ifrnd 128 globalsound DUKE_GETWEAPON3
  633.     else ifrnd 140 globalsound DUKE_GETWEAPON4
  634.     else globalsound DUKE_GETWEAPON6
  635. ends
  636.  
  637. state getweaponcode
  638.  
  639.     state randgetweapsnds
  640.  
  641.     palfrom 32 0 32
  642.     ifgotweaponce 1 break
  643.     ifrespawn
  644.     {
  645.         move RESPAWN_ACTOR_FLAG
  646.         spawn RESPAWNMARKERRED
  647.         cstat 32768
  648.     }
  649.     else killit
  650. ends
  651.  
  652.  
  653. state respawnit
  654.     ifcount RESPAWNITEMTIME { spawn TRANSPORTERSTAR move 0 cstat 0 sound TELEPORTER }
  655. ends
  656.  
  657. state quikget
  658.     ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
  659.     else globalsound DUKE_GET
  660.     palfrom 16 0 32
  661.     killit
  662. ends
  663.  
  664. state quikweaponget
  665.     state randgetweapsnds
  666.     palfrom 32 0 32
  667.     ifgotweaponce 1 break
  668.     killit
  669. ends
  670.  
  671. actor STEROIDS
  672.     fall
  673.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  674.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE
  675.         ifpinventory GET_STEROIDS STEROID_AMOUNT ifcanseetarget
  676.     {
  677.         addinventory GET_STEROIDS STEROID_AMOUNT quote 37 state getcode
  678.         ifspawnedby STEROIDS state getcode
  679.         else state quikget
  680.     }
  681. enda
  682.  
  683. actor HEATSENSOR
  684.     fall
  685.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  686.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HEATS HEAT_AMOUNT
  687.         ifcanseetarget
  688.     {
  689.         addinventory GET_HEATS HEAT_AMOUNT quote 101 state getcode
  690.         ifspawnedby HEATSENSOR state getcode
  691.         else state quikget
  692.     }
  693. enda
  694.  
  695. actor BOOTS
  696.     fall
  697.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  698.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BOOTS BOOT_AMOUNT
  699.         ifcanseetarget
  700.     {
  701.         addinventory GET_BOOTS BOOT_AMOUNT quote 6
  702.         ifspawnedby BOOTS state getcode
  703.         else state quikget
  704.     }
  705. enda
  706.  
  707. actor SHIELD
  708.     fall
  709.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  710.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SHIELD SHIELD_AMOUNT
  711.         ifcanseetarget
  712.     {
  713.         ifspawnedby PIGCOP
  714.         {
  715.             ifrnd 128 addinventory GET_SHIELD PIG_SHIELD_AMOUNT1
  716.             else addinventory GET_SHIELD PIG_SHIELD_AMOUNT2
  717.             quote 104
  718.             sound KICK_HIT palfrom 24 0 32 killit
  719.         }
  720.         else addinventory GET_SHIELD SHIELD_AMOUNT quote 38
  721.         ifspawnedby SHIELD state getcode
  722.         else state quikget
  723.     }
  724. enda
  725.  
  726. actor AIRTANK
  727.     fall
  728.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  729.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SCUBA SCUBA_AMOUNT
  730.         ifcanseetarget
  731.     {
  732.         addinventory GET_SCUBA SCUBA_AMOUNT quote 39 state getcode
  733.         ifspawnedby AIRTANK state getcode
  734.         else state quikget
  735.     }
  736. enda
  737.  
  738. action HOLODUKE_FRAMES 0 4 1 1 8
  739. actor HOLODUKE 0 HOLODUKE_FRAMES
  740.     fall
  741.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  742.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HOLODUKE HOLODUKE_AMOUNT
  743.         ifcanseetarget
  744.     {
  745.         addinventory GET_HOLODUKE HOLODUKE_AMOUNT quote 51 state getcode
  746.         ifspawnedby HOLODUKE state getcode
  747.         else state quikget
  748.     }
  749. enda
  750.  
  751. actor JETPACK
  752.     fall
  753.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  754.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_JETPACK JETPACK_AMOUNT ifcanseetarget
  755.     {
  756.         addinventory GET_JETPACK JETPACK_AMOUNT quote 41 state getcode
  757.         ifspawnedby JETPACK state getcode
  758.         else state quikget
  759.     }
  760. enda
  761.  
  762. actor ACCESSCARD
  763.     fall
  764.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  765.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  766.     {
  767.         ifpinventory GET_ACCESS 0 break
  768.         addinventory GET_ACCESS 1
  769.         quote 43
  770.         state getcode
  771.     }
  772. enda
  773.  
  774. // test boss_recod
  775.  
  776.  
  777. actor AMMO
  778.     fall
  779.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  780.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  781.     {
  782.         addammo PISTOL_WEAPON PISTOLAMMOAMOUNT quote 65
  783.         ifspawnedby AMMO state getcode
  784.         else state quikget
  785.     }
  786. enda
  787.  
  788. actor FREEZEAMMO
  789.     fall
  790.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  791.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  792.     {
  793.         addammo FREEZE_WEAPON FREEZEAMMOAMOUNT quote 66
  794.         ifspawnedby FREEZEAMMO state getcode
  795.         else state quikget
  796.     }
  797. enda
  798.  
  799.  
  800.  
  801. actor SHOTGUNAMMO
  802.     fall
  803.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  804.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  805.     {
  806.         addammo SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 69
  807.         ifspawnedby SHOTGUNAMMO state getcode
  808.         else state quikget
  809.     }
  810. enda
  811.  
  812. actor AMMOLOTS
  813.     fall
  814.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  815.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  816.     {
  817.         addammo PISTOL_WEAPON 48 quote 65
  818.         ifspawnedby AMMOLOTS state getcode
  819.         else state quikget
  820.     }
  821. enda
  822.  
  823. actor CRYSTALAMMO
  824.     fall
  825.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  826.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  827.     {
  828.         addammo SHRINKER_WEAPON CRYSTALAMMOAMOUNT quote 78
  829.         ifspawnedby CRYSTALAMMO state getcode
  830.         else state quikget
  831.     }
  832. enda
  833.  
  834. actor BATTERYAMMO
  835.     fall
  836.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  837.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  838.     {
  839.         addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT quote 63
  840.         ifspawnedby BATTERYAMMO state getcode
  841.         else state quikget
  842.     }
  843. enda
  844.  
  845. actor DEVISTATORAMMO
  846.     fall
  847.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  848.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  849.     {
  850.         addammo DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 14
  851.         ifspawnedby DEVISTATORAMMO state getcode
  852.         else state quikget
  853.     }
  854. enda
  855.  
  856. actor RPGAMMO
  857.     fall
  858.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  859.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  860.     {
  861.         addammo RPG_WEAPON RPGAMMOBOX quote 64
  862.         ifspawnedby RPGAMMO state getcode
  863.         else state quikget
  864.     }
  865. enda
  866.  
  867. actor HBOMBAMMO
  868.     fall
  869.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  870.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  871.     {
  872.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  873.  
  874.         addweapon HANDBOMB_WEAPON 1 quote 55
  875.         addammo HANDBOMB_WEAPON HANDBOMBBOX
  876.  
  877.         ifspawnedby HBOMBAMMO state getweaponcode
  878.         else state quikweaponget
  879.     }
  880. enda
  881.  
  882. actor RPGSPRITE
  883.     fall
  884.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  885.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  886.     {
  887.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  888.  
  889.         addweapon RPG_WEAPON RPGAMMOBOX quote 56
  890.         ifspawnedby RPGSPRITE state getweaponcode
  891.         else state quikweaponget
  892.     }
  893. enda
  894.  
  895. // 531.89 GTE.
  896. // IMA.
  897. // PO BOX 4629
  898. // Rocford ill, 61110-4629
  899. // Ms. Lee
  900.  
  901. actor SHOTGUNSPRITE
  902.     fall
  903.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  904.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  905.     {
  906.         ifspawnedby PIGCOP
  907.         {
  908.             addweapon SHOTGUN_WEAPON 0
  909.             ifrnd 64 addammo SHOTGUN_WEAPON 4
  910.             else ifrnd 64 addammo SHOTGUN_WEAPON 3
  911.             else ifrnd 64 addammo SHOTGUN_WEAPON 2
  912.             else addammo SHOTGUN_WEAPON 1
  913.         }
  914.         else
  915.         {
  916.             ifgotweaponce 0 break // Multiplayer only
  917.             addweapon SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 57
  918.         }
  919.         ifspawnedby SHOTGUNSPRITE state getweaponcode
  920.         else state quikweaponget
  921.     }
  922. enda
  923.  
  924.  
  925.  
  926. actor SIXPAK
  927.     fall
  928.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  929.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH ifcanseetarget
  930.     {
  931.         addphealth 30 quote 62
  932.         ifspawnedby SIXPAK state getcode
  933.         else state quikget
  934.     }
  935. enda
  936.  
  937. actor COLA
  938.     fall
  939.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  940.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH // ifcanseetarget
  941.     {
  942.         addphealth 10 quote 61
  943.         ifspawnedby COLA state getcode
  944.         else state quikget
  945.     }
  946. enda
  947.  
  948. actor ATOMICHEALTH
  949.     fall
  950.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  951.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  952.         ifphealthl MAXPLAYERATOMICHEALTH
  953.     {
  954.         addphealth 50 quote 19
  955.         ifspawnedby ATOMICHEALTH state getcode
  956.         else state quikget
  957.     }
  958. enda
  959.  
  960.  
  961.  
  962.  
  963. actor FIRSTAID
  964.     fall
  965.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  966.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6
  967.         ifpinventory GET_FIRSTAID FIRSTAID_AMOUNT ifcanseetarget
  968.     {
  969.         addinventory GET_FIRSTAID FIRSTAID_AMOUNT quote 3
  970.  
  971.         ifspawnedby FIRSTAID state getcode
  972.         else state quikget
  973.     }
  974. enda
  975.  
  976.  
  977. actor FIRSTGUNSPRITE
  978.     fall
  979.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  980.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  981.     {
  982.         ifgotweaponce 0 break
  983.  
  984.         addweapon PISTOL_WEAPON 48
  985.         ifspawnedby FIRSTGUNSPRITE state getweaponcode
  986.         else state quikweaponget
  987.     }
  988. enda
  989.  
  990.  
  991. actor TRIPBOMBSPRITE
  992.     fall
  993.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  994.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  995.     {
  996.         ifgotweaponce 0 break
  997.  
  998.         addweapon TRIPBOMB_WEAPON 1
  999.         quote 58
  1000.         ifspawnedby TRIPBOMBSPRITE state getweaponcode
  1001.         else state quikweaponget
  1002.     }
  1003. enda
  1004.  
  1005. actor CHAINGUNSPRITE
  1006.     fall
  1007.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1008.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1009.     {
  1010.         ifgotweaponce 0 break
  1011.  
  1012.         addweapon CHAINGUN_WEAPON 50 quote 54
  1013.         ifspawnedby CHAINGUNSPRITE state getweaponcode
  1014.         else state quikweaponget
  1015.     }
  1016. enda
  1017.  
  1018.  
  1019.  
  1020. actor SHRINKERSPRITE
  1021.     fall
  1022.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1023.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1024.     {
  1025.         ifgotweaponce 0 break
  1026.  
  1027.         addweapon SHRINKER_WEAPON 10 quote 60
  1028.         ifspawnedby SHRINKERSPRITE state getweaponcode
  1029.         else state quikweaponget
  1030.     }
  1031. enda
  1032.  
  1033. actor FREEZESPRITE
  1034.     fall
  1035.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1036.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1037.     {
  1038.         ifgotweaponce 0 break
  1039.  
  1040.         addweapon FREEZE_WEAPON FREEZEAMMOAMOUNT quote 59
  1041.         ifspawnedby FREEZESPRITE state getweaponcode
  1042.         else state quikweaponget
  1043.     }
  1044. enda
  1045.  
  1046. actor DEVISTATORSPRITE
  1047.     fall
  1048.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1049.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1050.     {
  1051.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  1052.  
  1053.         addweapon DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 87
  1054.         ifspawnedby DEVISTATORSPRITE state getweaponcode
  1055.         else state quikweaponget
  1056.     }
  1057. enda
  1058.  
  1059.  
  1060. state firestate
  1061.  
  1062.     ifgapzl 16 break
  1063.     ifinwater killit
  1064.  
  1065.     ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 32 32 }
  1066.  
  1067.     ifactor FIRE ifspawnedby FIRE break
  1068.     else ifactor FIRE2 ifspawnedby FIRE2 break
  1069.  
  1070.     iffloordistl 128
  1071.     {
  1072.         ifcount 32 sizeto 8 8
  1073.         ifcount 64 killit
  1074.     }
  1075.     else killit
  1076.  
  1077. ends
  1078.  
  1079. action FIRE_FRAMES     -1 14 1 1 1
  1080. move FIREVELS
  1081. actor FIRE WEAK FIRE_FRAMES FIREVELS state firestate enda
  1082. actor FIRE2 WEAK FIRE_FRAMES FIREVELS state firestate enda
  1083.  
  1084. actor FECES
  1085.     ifcount 24
  1086.     {
  1087.         ifpdistl RETRIEVEDISTANCE
  1088.         {
  1089.             soundonce DUKE_STEPONFECES
  1090.             sound STEPNIT
  1091.  
  1092.             spawn BLOODPOOL   // Will be brown
  1093.             killit
  1094.         }
  1095.     }
  1096.     else sizeto 32 32
  1097. enda
  1098.  
  1099. state drop_ammo ifrnd SPAWNAMMOODDS spawn AMMO ends
  1100. state drop_battery ifrnd SPAWNAMMOODDS spawn BATTERYAMMO ends
  1101. state drop_sgshells ifrnd SPAWNAMMOODDS spawn SHOTGUNAMMO ends
  1102. state drop_shotgun ifrnd SPAWNAMMOODDS spawn SHOTGUNSPRITE ends
  1103. state drop_chaingun
  1104.     ifrnd SPAWNAMMOODDS
  1105.     {
  1106.         ifrnd 32 spawn CHAINGUNSPRITE
  1107.         else spawn BATTERYAMMO
  1108.     }
  1109. ends
  1110.  
  1111. state jib_sounds
  1112.     ifrnd SWEARFREQUENCY
  1113.     {
  1114.         ifrnd 16 globalsound JIBBED_ACTOR1
  1115.         else ifrnd 16 globalsound JIBBED_ACTOR2
  1116.         else ifrnd 16 globalsound JIBBED_ACTOR3
  1117.         else ifrnd 16 globalsound JIBBED_ACTOR5
  1118.         else ifrnd 16 globalsound JIBBED_ACTOR6
  1119.         else ifrnd 16 globalsound JIBBED_ACTOR10
  1120.         else ifrnd 16 globalsound JIBBED_ACTOR7
  1121.         else ifrnd 16 globalsound JIBBED_ACTOR4
  1122.         else ifrnd 16 globalsound JIBBED_ACTOR8
  1123.         else ifrnd 16 globalsound JIBBED_ACTOR13
  1124.         else ifrnd 16 globalsound JIBBED_ACTOR9
  1125.         else ifrnd 16 globalsound JIBBED_ACTOR11
  1126.         else ifrnd 16 globalsound JIBBED_ACTOR12
  1127.     }
  1128. ends
  1129.  
  1130. state standard_jibs
  1131.     guts JIBS2 5
  1132.     guts JIBS3 5
  1133.     guts JIBS4 5
  1134.     guts JIBS5 5
  1135.     guts JIBS6 5
  1136.     ifrnd 8 { shoot BLOODSPLAT4 }
  1137.     ifrnd 32 { guts JIBS1 1 spawn BLOODPOOL }               // spine
  1138.     state jib_sounds
  1139. ends
  1140.  
  1141. action FEMSHRUNK
  1142. action FEMFROZEN1 1
  1143. action FEMFROZEN2
  1144. action FEMDANCE1 19 1 1 1 16
  1145. action FEMDANCE3 19 1 1 1 26
  1146.  
  1147. action FEMDANCE2 20 2 1 1 10
  1148. action FEMANIMATE
  1149.  
  1150. state femcode
  1151.  
  1152.     ifactor NAKED1 { } else ifactor FEM6 { } else
  1153.     {
  1154.         fall
  1155.         ifactor BLOODYPOLE ifhitweapon ifdead
  1156.             { state standard_jibs killit }
  1157.     }
  1158.  
  1159.     ifaction FEMSHRUNK
  1160.     {
  1161.         ifcount SHRUNKDONECOUNT action FEMANIMATE
  1162.         else ifcount SHRUNKCOUNT sizeto 40 40
  1163.         else state genericshrunkcode
  1164.     }
  1165.     else ifaction FEMDANCE1 { ifactioncount 2 action FEMDANCE2 }
  1166.     else ifaction FEMDANCE2 { ifactioncount 8 action FEMDANCE3 }
  1167.     else ifaction FEMDANCE3 { ifactioncount 2 action FEMANIMATE }
  1168.     else ifaction FEMFROZEN1
  1169.     {
  1170.         ifcount THAWTIME { action FEMANIMATE getlastpal }
  1171.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1172.  
  1173.         ifhitweapon
  1174.         {
  1175.             ifwasweapon FREEZEBLAST { strength 0 break }
  1176.             lotsofglass 30
  1177.             sound GLASS_BREAKING
  1178.             respawnhitag
  1179.             ifrnd 84 spawn BLOODPOOL
  1180.             killit
  1181.         }
  1182.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1183.         break
  1184.     }
  1185.     else ifaction FEMFROZEN2
  1186.     {
  1187.         ifcount THAWTIME { action FEMANIMATE getlastpal }
  1188.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1189.  
  1190.         ifhitweapon
  1191.         {
  1192.             ifwasweapon FREEZEBLAST { strength 0 break }
  1193.             lotsofglass 30
  1194.  
  1195.             sound GLASS_BREAKING
  1196.             ifrnd 84 spawn BLOODPOOL
  1197.             respawnhitag
  1198.  
  1199.             ifrnd 128 sound DUKE_HIT_STRIPPER1
  1200.             else sound DUKE_HIT_STRIPPER2
  1201.  
  1202.             killit
  1203.         }
  1204.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1205.         break
  1206.     }
  1207.  
  1208.     ifhitweapon
  1209.     {
  1210.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING count 0 action FEMSHRUNK break }
  1211.         state mass_jibs
  1212.         ifdead
  1213.         {
  1214.             ifwasweapon FREEZEBLAST
  1215.             {
  1216.                 ifaction FEMSHRUNK break
  1217.  
  1218.                 ifactor NAKED1 action FEMFROZEN2
  1219.                 else ifactor FEM5 action FEMFROZEN2
  1220.                 else ifactor FEM6 action FEMFROZEN2
  1221.                 else ifactor FEM8 action FEMFROZEN2
  1222.                 else ifactor FEM9 action FEMFROZEN2
  1223.                 else ifactor PODFEM1 action FEMFROZEN2
  1224.                 else action FEMFROZEN1
  1225.  
  1226.                 move 0
  1227.                 spritepal 1
  1228.                 strength 0
  1229.  
  1230.                 sound SOMETHINGFROZE
  1231.  
  1232.                 break
  1233.             }
  1234.  
  1235.             ifrnd 128 sound DUKE_HIT_STRIPPER1
  1236.             else sound DUKE_HIT_STRIPPER2
  1237.  
  1238.             respawnhitag
  1239.             state standard_jibs
  1240.  
  1241.             shoot BLOODSPLAT1
  1242.             shoot BLOODSPLAT2
  1243.             shoot BLOODSPLAT3
  1244.             shoot BLOODSPLAT4
  1245.             spawn BLOODPOOL
  1246.  
  1247.             ifactor FEM1 money 5
  1248.             else ifactor FEM2 { money 7 cactor BARBROKE cstat 0 }
  1249.             else ifactor FEM3 money 4
  1250.             else ifactor FEM7 money 8
  1251.  
  1252.             ifactor FEM5 { strength TOUGH cactor BLOODYPOLE }
  1253.             else ifactor FEM6 { cstat 0 cactor FEM6PAD }
  1254.             else ifactor FEM8 { strength TOUGH cactor BLOODYPOLE }
  1255.             else
  1256.             {
  1257.                 spritepal 6
  1258.                 soundonce LADY_SCREAM
  1259.                 ifactor NAKED1 debris SCRAP3 18
  1260.                 else ifactor PODFEM1 debris SCRAP3 18
  1261.                 killit
  1262.             }
  1263.         }
  1264.         else
  1265.         {
  1266.             sound SQUISHED
  1267.             guts JIBS6 50
  1268.             ifactor FEM8 break
  1269.             soundonce LADY_SCREAM
  1270.         }
  1271.     }
  1272. ends
  1273.  
  1274. state killme
  1275.     ifp pfacing ifpdistl 1280 ifhitspace soundonce KILLME
  1276. ends
  1277.  
  1278. state tipme
  1279.     ifp pfacing ifpdistl 1280 ifhitspace
  1280.     {
  1281.         tip
  1282.         ifrnd 128 soundonce DUKE_TIP1
  1283.         else soundonce DUKE_TIP2
  1284.         ifactor FEM1 action FEMDANCE1
  1285.     }
  1286. ends
  1287.  
  1288. actor FEM1 TOUGH FEMANIMATE state tipme state femcode enda
  1289. actor FEM2 TOUGH FEMANIMATE state tipme state femcode enda
  1290. actor FEM3 TOUGH FEMANIMATE state tipme state femcode enda
  1291. actor FEM4 TOUGH FEMANIMATE state femcode enda
  1292. actor FEM5 TOUGH FEMANIMATE state killme state femcode enda
  1293. actor FEM6 TOUGH FEMANIMATE state killme state femcode enda
  1294. actor FEM7 TOUGH FEMANIMATE state tipme state femcode enda
  1295. actor FEM8 TOUGH FEMANIMATE state femcode enda
  1296. actor FEM9 TOUGH FEMANIMATE state femcode enda
  1297. actor NAKED1 TOUGH FEMANIMATE state killme state femcode enda
  1298. actor PODFEM1 TOUGH FEMANIMATE state killme state femcode enda
  1299. actor BLOODYPOLE TOUGH state femcode enda
  1300.  
  1301. actor STATUEFLASH fall // state statuehit
  1302.     ifcount 32 cactor STATUE
  1303. enda
  1304.  
  1305. actor STATUE fall
  1306.     ifp pfacing ifpdistl 1280 ifhitspace { cactor STATUEFLASH move 0 }
  1307. enda
  1308.  
  1309. actor MIKE
  1310.     ifp pfacing ifpdistl 1280 ifhitspace mikesnd
  1311. enda
  1312.  
  1313. state troop_body_jibs
  1314.     ifrnd 16 guts HEADJIB1 10 
  1315.     ifrnd 16 guts LEGJIB1 10
  1316.     ifrnd 16 guts ARMJIB1 10
  1317.     ifrnd 16 spawn BLOODPOOL
  1318.     state mass_jibs
  1319. ends
  1320.  
  1321. state liz_body_jibs
  1322. ifrnd 64 guts LIZMANHEAD1 10
  1323.     ifrnd 64 guts LIZMANLEG1 10
  1324.     ifrnd 64 guts LIZMANARM1 10
  1325.     ifrnd 48 spawn BLOODPOOL
  1326.     state mass_jibs
  1327. ends
  1328.  
  1329. state delete_enemy killit ends
  1330.  
  1331.  
  1332. action BLOODFRAMES 0 4 1 1 15
  1333. actor BLOOD 0 BLOODFRAMES
  1334.     sizeto 72 72 sizeto 72 72 sizeto 72 72
  1335.     ifpdistg 3144 killit
  1336.     ifactioncount 4 killit
  1337. enda
  1338.  
  1339. action EGGOPEN1 1 1 1 1 4
  1340. action EGGOPEN2 2 1 1 1 4
  1341. action EGGOPEN3 2 1 1 1 4
  1342. action EGGWAIT  0
  1343. action EGGFROZEN 1
  1344. action EGGSHRUNK 1
  1345.  
  1346. actor EGG TOUGH
  1347.     ifaction 0
  1348.     {
  1349.         ifcount 64
  1350.         {
  1351.             ifrnd 128 { action EGGWAIT move 0 }
  1352.             else
  1353.             {
  1354.                 sound SLIM_HATCH
  1355.                 action EGGOPEN1
  1356.             }
  1357.         }
  1358.     }
  1359.     else ifaction EGGOPEN1 ifactioncount 4 action EGGOPEN2
  1360.     else ifaction EGGOPEN2 ifactioncount 4 { spawn GREENSLIME action EGGOPEN3 }
  1361.     else ifaction EGGSHRUNK
  1362.     {
  1363.         ifcount SHRUNKDONECOUNT action EGGOPEN2
  1364.         else ifcount SHRUNKCOUNT sizeto 48 40
  1365.         else state genericshrunkcode
  1366.     }
  1367.     else ifaction EGGFROZEN
  1368.     {
  1369.         ifcount THAWTIME { action 0 getlastpal }
  1370.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1371.  
  1372.         ifhitweapon
  1373.         {
  1374.             ifwasweapon FREEZEBLAST { strength 0 break }
  1375.             lotsofglass 30
  1376.  
  1377.             sound GLASS_BREAKING
  1378.             ifrnd 84 spawn BLOODPOOL
  1379.  
  1380.             addkills 1
  1381.             killit
  1382.         }
  1383.  
  1384.         // ifp pducking
  1385.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1386.  
  1387.         break
  1388.     }
  1389.  
  1390.     ifhitweapon
  1391.     {
  1392.         ifwasweapon SHRINKSPARK { move 0 sound ACTOR_SHRINKING action EGGSHRUNK break }
  1393.         state mass_jibs
  1394.         ifdead
  1395.         {
  1396.             ifwasweapon FREEZEBLAST
  1397.                 { sound SOMETHINGFROZE spritepal 1 move 0 action EGGFROZEN strength 0 break }
  1398.  
  1399.             addkills 1
  1400.  
  1401.             sound SQUISHED
  1402.  
  1403.             state standard_jibs
  1404.             state delete_enemy
  1405.         }
  1406.     }
  1407.     else ifaction EGGWAIT
  1408.     {
  1409.         ifcount 512 ifrnd 2
  1410.         {
  1411.             ifaction EGGSHRUNK break
  1412.             sound SLIM_HATCH
  1413.             action EGGOPEN1
  1414.         }
  1415.     }
  1416.  
  1417. enda
  1418.  
  1419. actor KNEE KNEE_WEAPON_STRENGTH enda
  1420. actor SPIT SPIT_WEAPON_STRENGTH enda
  1421. actor CHAINGUN CHAINGUN_WEAPON_STRENGTH enda
  1422. actor SHOTGUN SHOTGUN_WEAPON_STRENGTH enda
  1423. actor FIRELASER FIRELASER_WEAPON_STRENGTH enda
  1424. actor HEAVYHBOMB HANDBOMB_WEAPON_STRENGTH enda
  1425. actor BOUNCEMINE BOUNCEMINE_WEAPON_STRENGTH enda
  1426. actor MORTER MORTER_WEAPON_STRENGTH enda
  1427. actor SHRINKSPARK SHRINKER_WEAPON_STRENGTH enda
  1428. actor RPG RPG_WEAPON_STRENGTH enda
  1429. actor FREEZEBLAST FREEZETHROWER_WEAPON_STRENGTH enda
  1430. actor DEVISTATORBLAST FREEZETHROWER_WEAPON_STRENGTH enda
  1431. actor COOLEXPLOSION1 COOL_EXPLOSION_STRENGTH enda
  1432. actor TRIPBOMB TRIPBOMB_STRENGTH enda
  1433.  
  1434. action WEAP2FRAMES 0  4  1  1  6
  1435. actor SHOTSPARK1 PISTOL_WEAPON_STRENGTH WEAP2FRAMES
  1436.     ifdead killit
  1437.     ifactioncount 4 killit
  1438.     else
  1439.     {
  1440.         ifactioncount 3 { ifinwater spawn WATERBUBBLE }
  1441.         else ifcount 2 { } else ifonwater spawn WATERSPLASH2
  1442.     }
  1443. enda
  1444.  
  1445. state standard_pjibs
  1446.     guts JIBS1 3
  1447.     guts JIBS3 3
  1448.     guts JIBS4 3
  1449.     guts JIBS5 3
  1450.     guts JIBS6 3
  1451.     guts DUKETORSO 3
  1452.     guts DUKELEG 3
  1453.     guts DUKEGUN 3
  1454.     ifrnd 64 money 160
  1455. ends
  1456.  
  1457. move DUKENOTMOVING
  1458. state handle_dead_dukes
  1459.     fall
  1460.     ifp pfacing ifpdistl 1280 ifhitspace { move 32 spawn FECES sound DUKE_USEMEDKIT }
  1461.     ifmove 0     // 1st time initializiation...
  1462.     {
  1463.         ifrnd 128 cstat 4
  1464.         else cstat 0
  1465.         move DUKENOTMOVING
  1466.     }
  1467.  
  1468.     ifsquished
  1469.     {
  1470.         sound SQUISHED
  1471.         state mass_jibs
  1472.         spawn OOZ
  1473.         killit
  1474.     }
  1475.     else ifcount 1024 ifpdistg 4096 killit
  1476.     else
  1477.     {
  1478.         strength 0
  1479.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  1480.         {
  1481.             state mass_jibs
  1482.             state standard_jibs
  1483.             killit
  1484.         }
  1485.     }
  1486. ends
  1487.  
  1488. action PLYINGFRAMES 0 1 0 1 1
  1489. actor DUKELYINGDEAD 0 PLYINGFRAMES
  1490.     state handle_dead_dukes
  1491. enda
  1492.  
  1493. action PSTAND       0   1   5   1    1
  1494. action PEXPLODE     106   5   1   1   10
  1495. action PEXPLODEAD   113   1   1
  1496.  
  1497. action PJPHOUVER    15   1   5   1
  1498. action PWALK        20   4   5   1   16
  1499. action PRUN         20   4   5   1   10
  1500. action PWALKBACK    45   4   5  -1   16
  1501. action PRUNBACK     45   4   5  -1   10
  1502. action PJUMPING     50   4   5   1   30
  1503. action PFALLING     65   1   5
  1504. action PDUCKING     86   1   5
  1505. action PCRAWLING    86   3   5   1   20
  1506. action PAKICKING    40   2   5   1   25
  1507. action PFLINTCHING  106  1   1   1   10
  1508. action PTHROWNBACK  106  5   1   1   18
  1509. action PFROZEN       20  1   5
  1510. action PLYINGDEAD   113  1   1
  1511.  
  1512. action PSWIMMINGGO   375   1   5   1   10
  1513. action PSWIMMING     375   4   5   1   13
  1514. action PSWIMMINGWAIT 395   1   5   1   13
  1515. action PTREDWATER    395   2   5   1   17
  1516.  
  1517. move PSTOPED
  1518. move PSHRINKING // used as a var only
  1519.  
  1520. state check_dead_thrown_back
  1521.     ifdead
  1522.     {
  1523.         strength 0
  1524.         action PTHROWNBACK
  1525.     }
  1526. ends
  1527.  
  1528. state check_pstandard
  1529.     ifp pwalking action PWALK
  1530.     else ifp pkicking action PAKICKING
  1531.     else ifp pwalkingback action PWALKBACK
  1532.     else ifp prunning action PRUN
  1533.     else ifp prunningback action PRUNBACK
  1534.     else ifp pjumping
  1535.         action PJUMPING
  1536.     else ifp pducking action PDUCKING
  1537. ends
  1538.  
  1539. state random_wall_jibs
  1540.     ifrnd 150 shoot BLOODSPLAT1
  1541.     ifrnd 150 shoot BLOODSPLAT2
  1542.     ifrnd 150 shoot BLOODSPLAT3
  1543.     ifrnd 150 shoot BLOODSPLAT4
  1544.     ifrnd 150 shoot BLOODSPLAT1
  1545. ends
  1546.  
  1547. actor APLAYER 100 PSTAND 0 0
  1548.  
  1549.     ifaction 0 action PSTAND
  1550.     ifdead 
  1551.     {
  1552.         ifsquished palfrom 32 63 63 63
  1553.         else fall
  1554.  
  1555.         ifactioncount 7 { move 0 } else ifactioncount 6
  1556.         {
  1557.             ifmultiplayer { }
  1558.             else
  1559.             {
  1560.                 ifrnd 32 sound DUKE_KILLED5
  1561.                 else ifrnd 32 sound DUKE_KILLED3
  1562.                 else ifrnd 32 sound DUKE_KILLED1
  1563.                 else ifrnd 32 sound DUKE_KILLED2
  1564.             }
  1565.         }
  1566.  
  1567.         ifaction PLYINGDEAD
  1568.         {
  1569.             ifactioncount 3 move PSTOPED
  1570.             quote 13
  1571.             ifhitspace
  1572.             {
  1573.                 action PSTAND
  1574.                 spawn DUKELYINGDEAD
  1575.                 resetplayer
  1576.             }
  1577.             break
  1578.         }
  1579.         else ifaction PTHROWNBACK
  1580.         {
  1581.             ifactioncount 5
  1582.             {
  1583.                 spawn BLOODPOOL
  1584.                 action PLYINGDEAD
  1585.             }
  1586.             else ifactioncount 1 move 0
  1587.             break
  1588.         }
  1589.         else ifaction PFROZEN
  1590.         {
  1591.             cstat 257
  1592.  
  1593.             palfrom 16 0 0 24
  1594.  
  1595.             ifhitweapon
  1596.             {
  1597.                 ifwasweapon FREEZEBLAST break
  1598.                 lotsofglass 60
  1599.                 ifrnd 84 spawn BLOODPOOL
  1600.                 
  1601.                 getlastpal
  1602.                 sound GLASS_BREAKING
  1603.                 spawn ATOMICHEALTH
  1604.                 cstat 32768
  1605.                 action PLYINGDEAD
  1606.                 break
  1607.             }
  1608.  
  1609.             ifactioncount THAWTIME { getlastpal strength 1 move 0 action PSTAND }
  1610.             else ifactioncount FROZENDRIPTIME { ifrnd 32 spawn WATERDRIP }
  1611.  
  1612.             ifp pfacing   // assumes some other player
  1613.                 ifpdistl FROZENQUICKKICKDIST pkick
  1614.  
  1615.             break
  1616.         }
  1617.         else ifaction PEXPLODEAD
  1618.         {
  1619.             quote 13
  1620.             ifhitspace
  1621.             {
  1622.                 action PSTAND
  1623.                 resetplayer
  1624.             }
  1625.             break
  1626.         }
  1627.         else ifaction PEXPLODE
  1628.         {
  1629.             ifactioncount 5
  1630.             {
  1631.                 action PEXPLODEAD
  1632.                 state mass_jibs
  1633.                 spawn BLOODPOOL
  1634.             }
  1635.             break
  1636.         }
  1637.  
  1638.         else ifp pshrunk
  1639.         {
  1640.             state standard_pjibs
  1641.             spawn BLOODPOOL
  1642.  
  1643.             sound SQUISHED
  1644.             sound DUKE_DEAD
  1645.  
  1646.             cstat 32768                 // Hide the sprite
  1647.  
  1648.             action PLYINGDEAD
  1649.         }
  1650.  
  1651.         else
  1652.         {
  1653.             ifinwater
  1654.             {
  1655.                 action PLYINGDEAD
  1656.                 spawn WATERBUBBLE
  1657.                 spawn WATERBUBBLE
  1658.             }
  1659.             else
  1660.             {
  1661.                 action PEXPLODE
  1662.                 state standard_pjibs
  1663.                 cstat 32768
  1664.                 sound SQUISHED
  1665.                 sound DUKE_DEAD
  1666.             }
  1667.         }
  1668.         break
  1669.     }
  1670.  
  1671.     ifsquished
  1672.     {
  1673.         strength -1
  1674.         sound SQUISHED
  1675.         state dead_mass_jibs
  1676.         shoot BLOODSPLAT2 
  1677.         shoot BLOODSPLAT4
  1678.         spawn OOZ
  1679.         break
  1680.     }
  1681.  
  1682.     ifp ponsteroids
  1683.     {
  1684.         ifp pstanding { }
  1685.         else spawn FRAMEEFFECT1
  1686.     }
  1687.  
  1688.     ifmove PSHRINKING
  1689.     {
  1690.         ifcount 32
  1691.         {
  1692.             ifcount SHRUNKDONECOUNT move 0
  1693.             else ifcount SHRUNKCOUNT
  1694.             {
  1695.                 sizeto 42 36
  1696.                 ifgapzl 24
  1697.                 {
  1698.                     strength 0
  1699.                     sound SQUISHED
  1700.                     palfrom 48 64
  1701.                     break
  1702.                 }
  1703.             }
  1704.             else ifp ponsteroids count SHRUNKCOUNT
  1705.         }
  1706.         else
  1707.         {
  1708.             ifp ponsteroids count SHRUNKCOUNT
  1709.             else { sizeto 8 9 spawn FRAMEEFFECT1 }
  1710.         }
  1711.     }
  1712.  
  1713.     else ifhitweapon
  1714.     {
  1715.         state mass_jibs
  1716.         ifrnd 16 { move 24 spawn FECES sound DUKE_STEPONFECES }
  1717.         ifdead { ifmultiplayer sound DUKE_KILLED4 }
  1718.         else
  1719.         {
  1720.             ifmultiplayer
  1721.             {
  1722.                 ifphealthl YELLHURTSOUNDSTRENGTHMP
  1723.                 state mass_jibs
  1724.                 {
  1725.                     ifrnd 64 sound DUKE_LONGTERM_PAIN2
  1726.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN3
  1727.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN4
  1728.                     else sound DUKE_DEAD
  1729.                 }
  1730.                 else
  1731.                 {
  1732.                     ifrnd 64 sound DUKE_LONGTERM_PAIN5
  1733.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN6
  1734.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN7
  1735.                     else sound DUKE_LONGTERM_PAIN8
  1736.                 }
  1737.             }
  1738.             else
  1739.             {
  1740.                 ifphealthl YELLHURTSOUNDSTRENGTH
  1741.                 {
  1742.                     ifrnd 74 sound DUKE_LONGTERM_PAIN2
  1743.                     else ifrnd 8 sound DUKE_LONGTERM_PAIN3
  1744.                     else sound DUKE_LONGTERM_PAIN4
  1745.                 }
  1746.                 ifrnd 128 sound DUKE_LONGTERM_PAIN
  1747.             }
  1748.         }
  1749.         ifstrength TOUGH
  1750.         {
  1751.             state headhitstate
  1752.             sound DUKE_GRUNT
  1753.             ifp pstanding action PFLINTCHING
  1754.         }
  1755.  
  1756.         ifwasweapon RPG
  1757.         {
  1758.             ifrnd 32 spawn BLOOD
  1759.             ifdead state standard_pjibs
  1760.             palfrom 48 52
  1761.             break
  1762.         }
  1763.         ifwasweapon RADIUSEXPLOSION
  1764.         {
  1765.             ifrnd 32 spawn BLOOD
  1766.             ifdead state standard_pjibs
  1767.             palfrom 48 52
  1768.             break
  1769.         }
  1770.         ifwasweapon FIREEXT
  1771.         {
  1772.             ifrnd 32 spawn BLOOD
  1773.             ifdead state standard_pjibs
  1774.             palfrom 48 52
  1775.             break
  1776.         }
  1777.  
  1778.         ifwasweapon SHRINKSPARK
  1779.         {
  1780.             palfrom 48 0 48
  1781.             move PSHRINKING // used as a var only.
  1782.             sound ACTOR_SHRINKING
  1783.             break
  1784.         }
  1785.  
  1786.         ifwasweapon SHOTSPARK1 palfrom 24 48
  1787.         else ifwasweapon FREEZEBLAST
  1788.         {
  1789.             palfrom 48 0 0 48
  1790.             ifdead { sound SOMETHINGFROZE spritepal 1 action PFROZEN break }
  1791.         }
  1792.         else ifwasweapon COOLEXPLOSION1 palfrom 48 48 0 48
  1793.         else ifwasweapon KNEE palfrom 16 32
  1794.         else ifwasweapon FIRELASER palfrom 32 32
  1795.         state check_dead_thrown_back
  1796.         state random_wall_jibs
  1797.  
  1798.         break
  1799.     }
  1800.  
  1801.     ifaction PFLINTCHING
  1802.     {
  1803.         ifactioncount 2 action PSTAND
  1804.         break
  1805.     }
  1806.  
  1807.     ifinwater
  1808.     {
  1809.         ifaction PTREDWATER
  1810.         {
  1811.             ifp pwalking prunning action PSWIMMINGGO
  1812.         }
  1813.         else ifp pstanding pwalkingback prunningback action PTREDWATER
  1814.         else
  1815.         {
  1816.             ifaction PSWIMMING
  1817.             {
  1818.                 ifrnd 4 spawn WATERBUBBLE
  1819.                 ifactioncount 4
  1820.                     action PSWIMMINGWAIT
  1821.             }
  1822.             else ifaction PSWIMMINGWAIT
  1823.             {
  1824.                 ifactioncount 2
  1825.                     action PSWIMMINGGO
  1826.             }
  1827.             else ifaction PSWIMMINGGO
  1828.             {
  1829.                 ifactioncount 2
  1830.                     action PSWIMMING
  1831.             }
  1832.             else action PTREDWATER
  1833.         }
  1834.  
  1835.         ifrnd 4 spawn WATERBUBBLE // For effect
  1836.  
  1837.         break
  1838.     }
  1839.     else ifp pjetpack
  1840.     {
  1841.         ifaction PJPHOUVER
  1842.         {
  1843.             ifactioncount 4
  1844.                 resetactioncount
  1845.         }
  1846.         else action PJPHOUVER
  1847.         break
  1848.     }
  1849.     else
  1850.     {
  1851.         ifaction PTREDWATER action PSTAND
  1852.         ifaction PSWIMMING action PSTAND
  1853.         ifaction PSWIMMINGWAIT action PSTAND
  1854.         ifaction PSWIMMINGGO action PSTAND
  1855.         ifaction PJPHOUVER action PFALLING
  1856.     }
  1857.  
  1858.     ifaction PFALLING
  1859.     {
  1860.         ifp ponground
  1861.             action PSTAND
  1862.         else
  1863.         {
  1864.             ifp pfalling break
  1865.             else state check_pstandard
  1866.         }
  1867.     }
  1868.  
  1869.     ifaction PDUCKING
  1870.     {
  1871.         ifgapzl 48
  1872.         {
  1873.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1874.         }
  1875.         else ifp pducking
  1876.         {
  1877.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1878.         }
  1879.         else
  1880.         {
  1881.             ifp pstanding action PSTAND
  1882.             else state check_pstandard
  1883.         }
  1884.     }
  1885.  
  1886.     else ifaction PCRAWLING
  1887.     {
  1888.         ifgapzl 48
  1889.         {
  1890.             ifp pstanding action PCRAWLING
  1891.         }
  1892.         else ifp pducking
  1893.         {
  1894.             ifp pstanding action PDUCKING
  1895.         }
  1896.         else
  1897.         {
  1898.             ifp pstanding action PSTAND
  1899.             else state check_pstandard
  1900.         }
  1901.     }
  1902.     else ifgapzl 48 action PDUCKING
  1903.  
  1904.     else ifaction PJUMPING
  1905.     {
  1906.         ifp ponground action PSTAND
  1907.         else ifactioncount 4 ifp pfalling action PFALLING
  1908.     }
  1909.  
  1910.     ifp pfalling action PFALLING
  1911.     else ifaction PSTAND state check_pstandard
  1912.     else ifaction PAKICKING
  1913.     {
  1914.         ifactioncount 2 action PSTAND
  1915.         break
  1916.     }
  1917.     else ifaction PWALK
  1918.     {
  1919.         ifp pfalling action PFALLING
  1920.         else ifp pstanding action PSTAND
  1921.         else ifp prunning action PRUN
  1922.         else ifp pwalkingback action PWALKBACK
  1923.         else ifp prunningback action PRUNBACK
  1924.         else ifp pjumping
  1925.             action PJUMPING
  1926.         else ifp pducking action PDUCKING
  1927.     }
  1928.  
  1929.     else ifaction PRUN
  1930.     {
  1931.         ifp pstanding action PSTAND
  1932.         else ifp pwalking action PWALK
  1933.         else ifp pwalkingback action PWALKBACK
  1934.         else ifp prunningback action PRUNBACK
  1935.         else ifp pjumping
  1936.             action PJUMPING
  1937.         else ifp pducking action PDUCKING
  1938.     }
  1939.  
  1940.     else ifaction PWALKBACK
  1941.     {
  1942.         ifp pstanding action PSTAND
  1943.         else ifp pwalking action PWALK
  1944.         else ifp prunning action PRUN
  1945.         else ifp prunningback action PRUNBACK
  1946.         else ifp pjumping
  1947.             action PJUMPING
  1948.         else ifp pducking action PDUCKING
  1949.     }
  1950.  
  1951.     else ifaction PRUNBACK
  1952.     {
  1953.         ifp pstanding action PSTAND
  1954.         else ifp pwalking action PWALK
  1955.         else ifp prunning action PRUN
  1956.         else ifp pwalkingback action PWALKBACK
  1957.         else ifp pjumping
  1958.             action PJUMPING
  1959.         else ifp pducking action PDUCKING
  1960.     }
  1961. enda
  1962.  
  1963. actor ORGANTIC TURRETSTRENGTH
  1964.     ifcount 48 resetcount
  1965.     else { ifcount 32 sizeto 32 32 }
  1966.     else ifcount 16 { sizeto 48 18 ifpdistl 2048 { sound TURR_ATTACK addphealth -2 palfrom 32 16 } }
  1967.     ifhitweapon { ifdead { addkills 1 sound TURR_DYING guts JIBS5 10 state delete_enemy } sound TURR_PAIN break }
  1968.     ifrnd 1 soundonce TURR_ROAM
  1969. enda
  1970.  
  1971. state rf
  1972.     ifrnd 128 cstat 4
  1973.     else cstat 0
  1974. ends
  1975.  
  1976.  
  1977. //
  1978. //
  1979. //      TROOP/LIZTROOP CODE
  1980. //
  1981. //
  1982.  
  1983. action ATROOPSTAND       0    1    5    1    1
  1984. action ATROOPSTAYSTAND  -2    1    5    1    1
  1985. action ATROOPWALKING     0    4    5    1   12
  1986. action ATROOPWALKINGBACK 15   4    5   -1   12
  1987. action ATROOPRUNNING     0    4    5    1    8
  1988. action ATROOPSHOOT      35    1    5    1   30
  1989. action ATROOPJETPACK    40    1    5    1    1
  1990. action ATROOPJETPACKILL 40    2    5    1   50
  1991. action ATROOPFLINTCH    50    1    1    1    6
  1992. action ATROOPDYING      50    5    1    1   16
  1993. action ATROOPDEAD       54
  1994. action ATROOPPLAYDEAD   54
  1995. action ATROOPSUFFERDEAD 58    2    1   -4   24
  1996. action ATROOPSUFFERING  59    2    1    1   21
  1997. action ATROOPDUCK       64    1    5    1    3
  1998. action ATROOPDUCKSHOOT  64    2    5    1   25
  1999. action ATROOPABOUTHIDE  74    1    1    1   25
  2000. action ATROOPHIDE       79    1    1    1   25
  2001. action ATROOPREAPPEAR   74    1    1    1   25
  2002. action ATROOPFROZEN      0    1    5
  2003.  
  2004. move TROOPWALKVELS 72
  2005. move TROOPWALKVELSBACK -72
  2006. move TROOPJETPACKVELS 64 -84
  2007. move TROOPJETPACKILLVELS 192 -38
  2008. move TROOPRUNVELS 108
  2009. move TROOPSTOPPED
  2010. move DONTGETUP
  2011. move SHRUNKVELS 32
  2012.  
  2013. ai AITROOPSEEKENEMY  ATROOPWALKING   TROOPWALKVELS seekplayer
  2014. ai AITROOPSEEKPLAYER ATROOPWALKING   TROOPWALKVELS seekplayer
  2015. ai AITROOPFLEEING    ATROOPWALKING   TROOPWALKVELS fleeenemy
  2016. ai AITROOPFLEEINGBACK ATROOPWALKINGBACK   TROOPWALKVELSBACK faceplayer
  2017. ai AITROOPDODGE      ATROOPWALKING   TROOPRUNVELS  dodgebullet
  2018. ai AITROOPSHOOTING   ATROOPSHOOT     TROOPSTOPPED  faceplayer
  2019. ai AITROOPDUCKING    ATROOPDUCK      TROOPSTOPPED  faceplayer
  2020. ai AITROOPJETPACK    ATROOPJETPACK   TROOPJETPACKVELS seekplayer
  2021. ai AITROOPSHRUNK     ATROOPWALKING   SHRUNKVELS fleeenemy
  2022. ai AITROOPHIDE       ATROOPABOUTHIDE TROOPSTOPPED faceplayer
  2023.  
  2024. state troophidestate
  2025.     ifaction ATROOPREAPPEAR
  2026.     {
  2027.         ifactioncount 2 { sound TELEPORTER ai AITROOPSHOOTING cstat 257 }
  2028.         else { sizeto 41 40 sizeto 41 40 sizeto 41 40 sizeto 41 40 spawn FRAMEEFFECT1 }
  2029.     }
  2030.     else ifaction ATROOPWALKING
  2031.     {
  2032.         ifpdistl 2448 ifpdistg 1024
  2033.         {
  2034.             ifceilingdistl 48 break
  2035.             ifp pfacing break
  2036.  
  2037.             ifgapzl 64 { } else ifawayfromwall { spawn TRANSPORTERSTAR action ATROOPREAPPEAR move 0 break }
  2038.         }
  2039.     }
  2040.     else ifaction ATROOPHIDE
  2041.     {
  2042.         ifactioncount 2
  2043.         {
  2044.             spawn TRANSPORTERSTAR
  2045.             sound TELEPORTER
  2046.             action ATROOPWALKING move TROOPWALKVELS faceplayer
  2047.             cstat 32768
  2048.         }
  2049.         else
  2050.         {
  2051.             sizeto 0 40
  2052.             sizeto 0 40
  2053.             sizeto 0 40
  2054.             sizeto 0 40
  2055.             spawn FRAMEEFFECT1
  2056.         }
  2057.     }
  2058.     else ifaction ATROOPABOUTHIDE ifactioncount 2 { action ATROOPHIDE cstat 0 }
  2059. ends
  2060.  
  2061.  
  2062. state troopgunnashoot
  2063.     ifp palive
  2064.     {
  2065.         ifpdistl 1024 ai AITROOPSHOOTING
  2066.         else ifactornotstayput
  2067.         {
  2068.             ifactioncount 12 ifrnd 16 ifcanshoottarget
  2069.             {
  2070.                 ifspritepal 21 ifrnd 4 ifpdistg 4096 ai AITROOPHIDE
  2071.                 else
  2072.                 {
  2073.                     ifpdistl 1100 ai AITROOPFLEEING
  2074.                     else
  2075.                     {
  2076.                         ifpdistl 4096 ifcansee ifcanshoottarget ai AITROOPSHOOTING
  2077.                         else { move TROOPRUNVELS seekplayer action ATROOPRUNNING }
  2078.                     }
  2079.                 }
  2080.             }
  2081.         }
  2082.         else ifcount 26 ifrnd 32 ai AITROOPSHOOTING
  2083.     }
  2084. ends
  2085.  
  2086. state troopseekstate
  2087.     state troopgunnashoot
  2088.     ifinwater { ai AITROOPJETPACK break }
  2089.     ifcansee
  2090.     {
  2091.         ifmove TROOPRUNVELS ifpdistl 1596 ai AITROOPDUCKING
  2092.         ifp phigher { ifceilingdistl 128 { } else ifactornotstayput ai AITROOPJETPACK break }
  2093.         else ifrnd 2
  2094.         {
  2095.             ifspritepal 21 ifpdistg 1596 { ai AITROOPHIDE break }
  2096.             ifbulletnear { ifrnd 128 ai AITROOPDODGE else ai AITROOPDUCKING break }
  2097.         }
  2098.     }
  2099.     ifnotmoving { ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget ai AITROOPSHOOTING }
  2100.     ifrnd 1
  2101.     {
  2102.         ifrnd 128 soundonce PRED_ROAM
  2103.         else soundonce PRED_ROAM2
  2104.     }
  2105. ends
  2106.  
  2107. state troopduckstate
  2108.     ifaction ATROOPDUCK
  2109.         { ifactioncount 8 { ifp palive { ifrnd 128 action ATROOPDUCKSHOOT } else ifmove DONTGETUP break else ai AITROOPSEEKPLAYER } }
  2110.     else ifaction ATROOPDUCKSHOOT
  2111.     {
  2112.         ifcount 64
  2113.         {
  2114.             ifmove DONTGETUP resetcount
  2115.             else
  2116.             {
  2117.                 ifpdistl 1100
  2118.                     ai AITROOPFLEEING
  2119.                 else ai AITROOPSEEKPLAYER
  2120.             }
  2121.         }
  2122.         else ifactioncount 2 { ifcanshoottarget { sound PRED_ATTACK resetactioncount shoot FIRELASER } else ai AITROOPSEEKPLAYER }
  2123.     }
  2124. ends
  2125.  
  2126. state troopshootstate
  2127.     ifactioncount 2
  2128.     {
  2129.         ifcanshoottarget
  2130.         {
  2131.             shoot FIRELASER sound PRED_ATTACK resetactioncount
  2132.             ifrnd 128 ai AITROOPSEEKPLAYER
  2133.             ifcount 24
  2134.             {
  2135.                 ifrnd 96 ifpdistg 2048 ai AITROOPSEEKPLAYER
  2136.                 else
  2137.                 {
  2138.                     ifpdistg 1596 ai AITROOPFLEEING
  2139.                     else ai AITROOPFLEEINGBACK
  2140.                 }
  2141.             }
  2142.         }
  2143.         else ai AITROOPSEEKPLAYER
  2144.     }
  2145. ends
  2146.  
  2147. state troopfleestate
  2148.     ifactioncount 7
  2149.     {
  2150.         ifpdistg 3084 { ai AITROOPSEEKPLAYER break }
  2151.         else ifrnd 32 ifp palive ifcansee ifcanshoottarget { ifrnd 128 ai AITROOPDUCKING else ai AITROOPSHOOTING break }
  2152.     }
  2153.     ifnotmoving
  2154.     {
  2155.         ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget
  2156.             { ifrnd 128 ai AITROOPSHOOTING else ai AITROOPDUCKING }
  2157.     }
  2158. ends
  2159.  
  2160. state troopdying
  2161.     iffloordistl 32 { ifactioncount 5 { cstat 0 iffloordistl 8 sound THUD ifrnd 64 spawn BLOODPOOL state rf strength 0 move TROOPSTOPPED action ATROOPDEAD } break }
  2162.     else { state rf move 0 action ATROOPDYING }
  2163. ends
  2164.  
  2165. state checktroophit
  2166.     ifaction ATROOPSUFFERING { stopsound LIZARD_BEG sound PRED_DYING cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  2167.     ifdead
  2168.     {
  2169.         ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ATROOPFROZEN strength 0 break }
  2170.  
  2171.         state drop_ammo
  2172.         state dead_mass_jibs
  2173.         state random_wall_jibs
  2174.         addkills 1
  2175.  
  2176.         ifwasweapon RPG { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  2177.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  2178.         else { sound PRED_DYING ifrnd 32 iffloordistl 32 { sound LIZARD_BEG spawn BLOODPOOL strength 0 move 0 action ATROOPSUFFERING break } action ATROOPDYING break }
  2179.     }
  2180.     else
  2181.     {
  2182.         state random_wall_jibs
  2183.         state dead_mass_jibs
  2184.         sound PRED_PAIN
  2185.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AITROOPSHRUNK }
  2186.         else iffloordistl 32 ifrnd 96 action ATROOPFLINTCH
  2187.     }
  2188. ends
  2189.  
  2190. state troopjetpackstate
  2191.     ifaction ATROOPJETPACKILL
  2192.     {
  2193.         ifcansee ifactioncount 2
  2194.         {
  2195.             resetactioncount
  2196.             sound PRED_ATTACK
  2197.             shoot FIRELASER
  2198.         }
  2199.  
  2200.         ifp phigher ai AITROOPJETPACK
  2201.         else ifinwater ai AITROOPJETPACK
  2202.         else ifcount 26 iffloordistl 32 ai AITROOPSEEKPLAYER
  2203.     }
  2204.     else ifcount 48 ifcansee
  2205.         { action ATROOPJETPACKILL move TROOPJETPACKILLVELS seekplayer }
  2206. ends
  2207.  
  2208. state checksquished
  2209.     ifsquished { addkills 1 sound SQUISHED state standard_jibs spawn OOZ state delete_enemy }
  2210. ends
  2211.  
  2212. state troopsufferingstate
  2213.     ifactioncount 2
  2214.     {
  2215.         ifrnd 16 spawn WATERDRIP
  2216.         ifactioncount 14 { stopsound LIZARD_BEG cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  2217.     }
  2218. ends
  2219.  
  2220. state troopshrunkstate
  2221.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  2222.     else ifcount SHRUNKCOUNT sizeto 48 40
  2223.     else state genericshrunkcode
  2224. ends
  2225.  
  2226. state troopcode fall
  2227.     ifinwater ifrnd 1 spawn WATERBUBBLE
  2228.     ifaction ATROOPSTAND { ifrnd 192 ai AITROOPSHOOTING else ai AITROOPSEEKPLAYER }
  2229.     else ifaction ATROOPFROZEN
  2230.     {
  2231.         ifcount THAWTIME { ai AITROOPSEEKENEMY getlastpal }
  2232.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  2233.         ifhitweapon
  2234.         {
  2235.             ifwasweapon FREEZEBLAST { strength 0 break }
  2236.             addkills 1
  2237.  
  2238.             ifrnd 84 spawn BLOODPOOL
  2239.             lotsofglass 30
  2240.             sound GLASS_BREAKING
  2241.             killit
  2242.         }
  2243.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2244.         break
  2245.     }
  2246.     else ifaction ATROOPPLAYDEAD
  2247.     {
  2248.         ifhitweapon
  2249.         {
  2250.             
  2251.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  2252.             break
  2253.         }
  2254.         else state checksquished
  2255.  
  2256.         ifcount PLAYDEADTIME { addkills -1 soundonce PRED_ROAM cstat 257 strength 1 ai AITROOPSHOOTING }
  2257.         else ifp pfacing resetcount
  2258.  
  2259.         break
  2260.     }
  2261.     else ifaction ATROOPDEAD
  2262.     {
  2263.         strength 0
  2264.         ifrespawn ifcount RESPAWNACTORTIME { spawn TRANSPORTERSTAR cstat 257 strength TROOPSTRENGTH ai AITROOPSEEKENEMY }
  2265.         ifhitweapon
  2266.         {
  2267.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  2268.             break
  2269.         }
  2270.         else state checksquished
  2271.         break
  2272.     }
  2273.     else ifaction ATROOPSUFFERDEAD
  2274.     {
  2275.         ifactioncount 2
  2276.         {
  2277.             ifrnd 64 { resetcount action ATROOPPLAYDEAD }
  2278.             else { soundonce PRED_DYING action ATROOPDEAD }
  2279.         }
  2280.     }
  2281.     else ifaction ATROOPDYING { state troopdying break }
  2282.     else ifaction ATROOPSUFFERING
  2283.         { state troopsufferingstate ifhitweapon state checktroophit break }
  2284.     else ifaction ATROOPFLINTCH { ifactioncount 4 ai AITROOPSEEKENEMY }
  2285.     else
  2286.     {
  2287.         ifai AITROOPSEEKPLAYER state troopseekstate
  2288.         else ifai AITROOPJETPACK
  2289.         {
  2290.             state troopjetpackstate
  2291.             ifinwater { } else soundonce DUKE_JETPACK_IDLE
  2292.         }
  2293.         else ifai AITROOPSEEKENEMY state troopseekstate
  2294.         else ifai AITROOPSHOOTING state troopshootstate
  2295.         else ifai AITROOPFLEEING state troopfleestate
  2296.         else ifai AITROOPFLEEINGBACK state troopfleestate
  2297.         else ifai AITROOPDODGE state troopseekstate
  2298.         else ifai AITROOPDUCKING state troopduckstate
  2299.         else ifai AITROOPSHRUNK state troopshrunkstate
  2300.         else ifai AITROOPHIDE { state troophidestate break }
  2301.     }
  2302.  
  2303.     ifhitweapon state checktroophit else state checksquished
  2304.     ifhitweapon state mass_jibs
  2305. ends
  2306.  
  2307.  
  2308. actor LIZTROOPJETPACK TROOPSTRENGTH ai AITROOPJETPACK cactor LIZTROOP enda
  2309. actor LIZTROOPDUCKING TROOPSTRENGTH
  2310.     ai AITROOPDUCKING cactor LIZTROOP
  2311.     ifgapzl 48 move DONTGETUP
  2312. enda
  2313.  
  2314. actor LIZTROOPSHOOT TROOPSTRENGTH ATROOPSTAND ai AITROOPSHOOTING cactor LIZTROOP enda
  2315. actor LIZTROOPSTAYPUT TROOPSTRENGTH ATROOPSTAYSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  2316. actor LIZTROOPRUNNING TROOPSTRENGTH ATROOPSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  2317. actor LIZTROOPONTOILET TROOPSTRENGTH ifcount 24 { sound FLUSH_TOILET operate ai AITROOPSEEKPLAYER cactor LIZTROOP } enda
  2318. actor LIZTROOP TROOPSTRENGTH ATROOPSTAND state troopcode enda
  2319.  
  2320. action ALIZWALKING       0     4    5    1    15
  2321. action ALIZRUNNING       0     4    5    1    11
  2322. action ALIZTHINK         20    2    5    1    40
  2323. action ALIZSCREAM        30    1    5    1    2
  2324. action ALIZJUMP          45    3    5    1    20
  2325. action ALIZFALL          55
  2326. action ALIZSHOOTING      70    2    5    1    7
  2327. action ALIZDYING         60    6    1    1    15
  2328. action ALIZLYINGDEAD     65    1
  2329. action ALIZFROZEN         0    1    5
  2330.  
  2331. move LIZWALKVEL 72
  2332. move LIZRUNVEL 192
  2333. move LIZJUMPVEL 184
  2334. move LIZSTOP
  2335.  
  2336. ai AILIZGETENEMY ALIZWALKING LIZWALKVEL seekplayer
  2337. ai AILIZDODGE ALIZRUNNING LIZRUNVEL dodgebullet
  2338. ai AILIZCHARGEENEMY ALIZRUNNING LIZRUNVEL seekplayer
  2339. ai AILIZFLEENEMY ALIZWALKING LIZWALKVEL fleeenemy
  2340. ai AILIZSHOOTENEMY ALIZSHOOTING LIZSTOP faceplayer
  2341. ai AILIZJUMPENEMY ALIZJUMP LIZJUMPVEL jumptoplayer
  2342. ai AILIZTHINK ALIZTHINK LIZSTOP faceplayerslow
  2343. ai AILIZSHRUNK ALIZWALKING SHRUNKVELS fleeenemy
  2344. ai AILIZSPIT ALIZSCREAM LIZSTOP faceplayerslow
  2345. ai AILIZDYING ALIZDYING LIZSTOP faceplayer
  2346.  
  2347. state lizseekstate
  2348.  
  2349.     ifactornotstayput
  2350.     {
  2351.         ifcansee ifp palive ifpdistl 2048 ifcount 16 ifcanshoottarget { ai AILIZSHOOTENEMY break }
  2352.         ifai AILIZCHARGEENEMY
  2353.         {
  2354.             ifcount 72 ifcanshoottarget { ai AILIZSHOOTENEMY break }
  2355.             ifp phigher ifpdistg 2048 ifrnd 6 { ai AILIZJUMPENEMY break }
  2356.         }
  2357.         else ifpdistg 4096 { ifrnd 92 { ifcount 48 ifcanshoottarget ai AILIZSHOOTENEMY } else ifcount 24 { ai AILIZCHARGEENEMY break } }
  2358.  
  2359.         iffloordistl 16 { ifcount 48 ifnotmoving ifcansee { ai AILIZJUMPENEMY break } }
  2360.         else { ifpdistg 1280 ai AILIZJUMPENEMY break }
  2361.  
  2362.         ifrnd 4 ifnotmoving operate
  2363.         else ifrnd 1 ifbulletnear
  2364.         {
  2365.             ifgapzl 128 ai AILIZDODGE
  2366.             else ifactornotstayput { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
  2367.         }
  2368.     }
  2369.     else
  2370.     {
  2371.         ifactioncount 16 { ifp palive ifrnd 32 ifcansee ifcanshoottarget ai AILIZSHOOTENEMY }
  2372.         ifcount 16 ifrnd 32 move LIZWALKVEL randomangle geth
  2373.     }
  2374.  
  2375. ends
  2376.  
  2377. state lizshrunkstate
  2378.     ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
  2379.     else ifcount SHRUNKCOUNT sizeto 48 40
  2380.     else state genericshrunkcode
  2381. ends
  2382.  
  2383. state lizfleestate
  2384.     ifcount 16 { ifrnd 48 ifp palive ifcansee ai AILIZSPIT }
  2385.     else { iffloordistl 16 { } else ai AILIZGETENEMY break }
  2386. ends
  2387.  
  2388. state lizthinkstate
  2389.     ifrnd 8 soundonce CAPT_ROAM
  2390.     ifactioncount 3
  2391.     {
  2392.         ifrnd 32 ifp palive ifcansee ai AILIZSPIT
  2393.         else ifrnd 96 ai AILIZGETENEMY
  2394.     }
  2395.     else ifactioncount 2 ifrnd 1 spawn FECES
  2396.     ifrnd 1 ifbulletnear
  2397.     {
  2398.         ifgapzl 96 ai AILIZDODGE
  2399.         else { ifrnd 128 ai AILIZJUMPENEMY else ai AILIZDODGE }
  2400.     }
  2401. ends
  2402.  
  2403. state lizshootstate
  2404.     ifcount 20 ifrnd 8
  2405.     {
  2406.         ifcansee ifpdistl 2048 { ifrnd 128 ai AILIZFLEENEMY break }
  2407.         ifrnd 80 ai AILIZTHINK else ai AILIZGETENEMY
  2408.     }
  2409.     ifactioncount 2
  2410.     {
  2411.         ifcansee
  2412.         {
  2413.             ifcanshoottarget { sound CAPT_ATTACK shoot SHOTSPARK1 resetactioncount }
  2414.             else ai AILIZTHINK
  2415.         }
  2416.         else ai AILIZGETENEMY
  2417.     }
  2418. ends
  2419.  
  2420. state checklizhit
  2421.     spawn BLOOD
  2422.     state mass_jibs
  2423.     ifai AILIZSHRUNK
  2424.         { addkills 1 sound SQUISHED state standard_jibs state delete_enemy }
  2425.     ifdead
  2426.     {
  2427.         state dead_mass_jibs
  2428.         ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ALIZFROZEN strength 0 break }
  2429.  
  2430.         state drop_chaingun
  2431.         addkills 1
  2432.  
  2433.         ifwasweapon RPG { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  2434.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  2435.         else { state rf ai AILIZDYING ifrnd 64 spawn BLOODPOOL }
  2436.         sound CAPT_DYING
  2437.     }
  2438.     else
  2439.     {
  2440.         sound CAPT_PAIN
  2441.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AILIZSHRUNK break }
  2442.         state random_wall_jibs
  2443.         ifp palive ifcansee ifcanshoottarget { ai AILIZSHOOTENEMY break }
  2444.     }
  2445. ends
  2446.  
  2447. state lizjumpstate
  2448.     ifaction ALIZFALL { iffloordistl 16 ai AILIZGETENEMY }
  2449.     else ifactioncount 3 action ALIZFALL
  2450. ends
  2451.  
  2452. state lizdyingstate
  2453.     ifaction ALIZLYINGDEAD
  2454.     {
  2455.         strength 0
  2456.         ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2457.         ifcount RESPAWNACTORTIME ifrespawn
  2458.         {
  2459.             spawn TRANSPORTERSTAR cstat 257 strength LIZSTRENGTH ai AILIZGETENEMY
  2460.         }
  2461.     }
  2462.     else ifai AILIZDYING ifactioncount 6 { iffloordistl 8 sound THUD move LIZSTOP action ALIZLYINGDEAD }
  2463. ends
  2464.  
  2465. state lizdodgestate
  2466.     ifcount 13 ai AILIZGETENEMY
  2467. ends
  2468.  
  2469. actor LIZMANSTAYPUT LIZSTRENGTH ai AILIZGETENEMY cactor LIZMAN enda
  2470. actor LIZMANSPITTING LIZSTRENGTH ai AILIZSPIT cactor LIZMAN enda
  2471. actor LIZMANJUMP LIZSTRENGTH ai AILIZJUMPENEMY cactor LIZMAN enda
  2472.  
  2473. actor LIZMAN LIZSTRENGTH fall
  2474.     state checksquished
  2475.     ifai 0 ai AILIZGETENEMY
  2476.     else ifaction ALIZLYINGDEAD { fall state lizdyingstate break }
  2477.     else ifaction ALIZFROZEN
  2478.     {
  2479.         ifcount THAWTIME { ai AILIZGETENEMY getlastpal }
  2480.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  2481.  
  2482.         ifhitweapon
  2483.         {
  2484.             ifwasweapon FREEZEBLAST { strength 0 break }
  2485.             addkills 1
  2486.  
  2487.             ifrnd 84 spawn BLOODPOOL
  2488.             lotsofglass 30
  2489.             sound GLASS_BREAKING
  2490.             killit
  2491.         }
  2492.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2493.         break
  2494.     }
  2495.     else ifai AILIZJUMPENEMY state lizjumpstate
  2496.     else
  2497.     {
  2498.         fall
  2499.         ifai AILIZGETENEMY state lizseekstate
  2500.         else ifai AILIZCHARGEENEMY state lizseekstate
  2501.         else ifai AILIZDODGE state lizdodgestate
  2502.         else ifai AILIZSHOOTENEMY state lizshootstate
  2503.         else ifai AILIZFLEENEMY state lizfleestate
  2504.         else ifai AILIZTHINK state lizthinkstate
  2505.         else ifai AILIZSHRUNK state lizshrunkstate
  2506.         else ifai AILIZDYING state lizdyingstate
  2507.         else ifai AILIZSPIT
  2508.             { ifcount 26 ai AILIZGETENEMY else ifcount 18 ifrnd 96 { shoot SPIT sound LIZARD_SPIT } }
  2509.     }
  2510.  
  2511.     ifai AILIZSHRUNK break
  2512.     ifhitweapon state checklizhit
  2513. enda
  2514.  
  2515. action DRONEFRAMES     0   1   7   1   1
  2516. action DRONESCREAM     0   1   7   1   1
  2517. move DRONERUNVELS 128 64
  2518. move DRONERUNUPVELS 128 -64
  2519. move DRONEBULLVELS 252 -64
  2520. move DRONEBACKWARDS -64 -64
  2521. move DRONERISE 32 -32
  2522. move DRONESTOPPED -16
  2523.  
  2524. ai AIDRONEGETE DRONESCREAM DRONERUNVELS faceplayerslow getv
  2525. ai AIDRONEWAIT DRONEFRAMES DRONESTOPPED faceplayerslow
  2526. ai AIDRONEGETUP DRONESCREAM DRONERUNUPVELS faceplayer getv
  2527. ai AIDRONEPULLBACK DRONEFRAMES DRONEBACKWARDS faceplayerslow
  2528. ai AIDRONEHIT DRONESCREAM DRONEBACKWARDS faceplayer
  2529. ai AIDRONESHRUNK DRONEFRAMES SHRUNKVELS fleeenemy
  2530. ai AIDRONEDODGE DRONEFRAMES DRONEBULLVELS dodgebullet geth
  2531. ai AIDRONEDODGEUP DRONEFRAMES DRONERISE getv geth
  2532.  
  2533. state checkdronehitstate
  2534.     state mass_jibs
  2535.     ifdead
  2536.     
  2537.     {
  2538.         state dead_mass_jibs
  2539.         addkills 1
  2540.         debris SCRAP1 8
  2541.         debris SCRAP2 4
  2542.         debris SCRAP3 7
  2543.         spawn EXPLOSION2
  2544.         sound RPG_EXPLODE
  2545.         hitradius 2048 15 20 25 30
  2546.         killit
  2547.     }
  2548.     else
  2549.     {
  2550.         sound DRON_PAIN
  2551.         ifbulletnear
  2552.         {
  2553.             ifceilingdistl 64 ifrnd 48 ai AIDRONEDODGE
  2554.             ai AIDRONEDODGEUP
  2555.         }
  2556.         else ai AIDRONEGETE
  2557.     }
  2558. ends
  2559.  
  2560. state droneshrunkstate
  2561.     ifcount 24 state delete_enemy
  2562.     else sizeto 1 1
  2563. ends
  2564.  
  2565. state checkdronenearplayer
  2566.  
  2567.     ifp palive ifpdistl 1596
  2568.     {
  2569.         ifcount 8
  2570.         {
  2571.             addkills 1
  2572.             sound DRON_ATTACK2
  2573.             debris SCRAP1 8
  2574.             debris SCRAP2 4
  2575.             debris SCRAP3 7
  2576.             spawn EXPLOSION2
  2577.             sound RPG_EXPLODE
  2578.             hitradius 2048 15 20 25 30
  2579.             killit
  2580.         }
  2581.         else ifcount 3 { } else sound LASERTRIP_ARMING
  2582.     }
  2583.  
  2584. ends
  2585.  
  2586. state dronegetstate
  2587.     ifrnd 192
  2588.     {
  2589.         ifcansee
  2590.         {
  2591.             ifbulletnear { ai AIDRONEDODGE break }
  2592.             ifmove DRONEBULLVELS
  2593.             {
  2594.                 ifcount 64 ai AIDRONEPULLBACK
  2595.                 else ifnotmoving ifcount 16 ai AIDRONEPULLBACK
  2596.             }
  2597.             else ifcount 32
  2598.             {
  2599.                 ifp phigher move DRONEBULLVELS geth getv
  2600.                 else move DRONEBULLVELS geth
  2601.             }
  2602.         }
  2603.         else ifrnd 1 operate
  2604.     }
  2605. ends
  2606.  
  2607. state dronedodgestate
  2608.     ifai AIDRONEDODGEUP
  2609.     {
  2610.        ifcount 8 ai AIDRONEGETE
  2611.        else ifnotmoving ai AIDRONEGETE
  2612.     }
  2613.     else
  2614.     {
  2615.         ifcount 8 ai AIDRONEGETE
  2616.         else ifnotmoving ai AIDRONEGETE
  2617.     }
  2618. ends
  2619.  
  2620. actor DRONE DRONESTRENGTH
  2621.     state checksquished
  2622.     state checkdronenearplayer
  2623.  
  2624.     ifrnd 2 fall
  2625.     else soundonce DRON_JETSND
  2626.  
  2627.     ifaction 0 ai AIDRONEGETE
  2628.  
  2629.     else ifai AIDRONEWAIT
  2630.     {
  2631.         ifactioncount 4 ifrnd 16
  2632.             ifcansee { sound DRON_ATTACK1 ifp phigher ai AIDRONEGETUP else ai AIDRONEGETE }
  2633.     }
  2634.     else ifai AIDRONEGETE state dronegetstate
  2635.     else ifai AIDRONEGETUP state dronegetstate
  2636.     else ifai AIDRONEPULLBACK { ifcount 32 ai AIDRONEWAIT }
  2637.     else ifai AIDRONEHIT { ifcount 8 ai AIDRONEWAIT }
  2638.     else ifai AIDRONESHRUNK state droneshrunkstate
  2639.     else ifai AIDRONEDODGE state dronedodgestate
  2640.     else ifai AIDRONEDODGEUP state dronedodgestate
  2641.  
  2642.     ifhitweapon state checkdronehitstate
  2643.     ifrnd 1 soundonce DRON_ROAM
  2644.  
  2645. enda
  2646.  
  2647.  
  2648.  
  2649. action AOCTAWALK        0   3   5   1   15
  2650. action AOCTASTAND       0   1   5   1   15
  2651. action AOCTASCRATCH     0   4   5   1   15
  2652. action AOCTAHIT        30   1   1   1   10
  2653. action AOCTASHOOT      20   1   5   1   10
  2654. action AOCTADYING      30   8   1   1   17
  2655. action AOCTADEAD       38   1   1   1    1
  2656. action AOCTAFROZEN      0   1   5
  2657.  
  2658. move OCTAWALKVELS 96 -30
  2659. move OCTAUPVELS 96 -70
  2660. move OCTASTOPPED 0 -30
  2661. move OCTAINWATER 96 24
  2662.  
  2663. ai AIOCTAGETENEMY AOCTAWALK OCTAWALKVELS seekplayer
  2664. ai AIOCTASHOOTENEMY AOCTASHOOT OCTASTOPPED faceplayer
  2665. ai AIOCTASCRATCHENEMY AOCTASCRATCH OCTASTOPPED faceplayer
  2666. ai AIOCTAHIT AOCTAHIT OCTASTOPPED faceplayer
  2667. ai AIOCTASHRUNK AOCTAWALK SHRUNKVELS faceplayer
  2668. ai AIOCTADYING AOCTADYING OCTASTOPPED faceplayer
  2669.  
  2670. state octagetenemystate
  2671.  
  2672.     ifcansee
  2673.     {
  2674.         ifactioncount 32 { ifrnd 48 ifcanshoottarget { sound OCTA_ATTACK1 ai AIOCTASHOOTENEMY break } }
  2675.         else ifpdistl 1280 ai AIOCTASCRATCHENEMY
  2676.     }
  2677.  
  2678. ends
  2679.  
  2680. state octascratchenemystate
  2681.     ifpdistg 1280 ai AIOCTAGETENEMY
  2682.     else ifcount 32 { resetcount sound OCTA_ATTACK2 palfrom 8 32 addphealth OCTASCRATCHINGPLAYER }
  2683. ends
  2684.  
  2685. state octashootenemystate
  2686.     ifcount 25 { ifcount 27 ai AIOCTAGETENEMY }
  2687.     else ifcount 24 shoot COOLEXPLOSION1
  2688.     else ifactioncount 6 resetactioncount
  2689. ends
  2690.  
  2691. state checkoctahitstate
  2692.     state mass_jibs
  2693.     ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIOCTASHRUNK }
  2694.     else
  2695.     {
  2696.         ifdead
  2697.         {
  2698.             state dead_mass_jibs
  2699.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action AOCTAFROZEN strength 0 break }
  2700.  
  2701.             addkills 1
  2702.             ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2703.             else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2704.             else { state rf ai AIOCTADYING }
  2705.             sound OCTA_DYING
  2706.         }
  2707.         else
  2708.         {
  2709.             ifwasweapon RPG
  2710.             {
  2711.                 sound OCTA_DYING
  2712.                 addkills 1
  2713.                 state standard_jibs
  2714.                 killit
  2715.             }
  2716.             sound OCTA_PAIN spawn BLOOD
  2717.             ifrnd 64 ai AIOCTAHIT
  2718.  
  2719.         }
  2720.     }
  2721.     state random_wall_jibs
  2722. ends
  2723.  
  2724. state octashrunkstate
  2725.     ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
  2726.     else ifcount SHRUNKCOUNT sizeto 48 40
  2727.     else state genericshrunkcode
  2728. ends
  2729.  
  2730. state octadyingstate
  2731.     ifactioncount 8 { ifrnd 64 spawn BLOODPOOL move OCTASTOPPED action AOCTADEAD break }
  2732.     else ifactioncount 5 { } else ifactioncount 4 iffloordistl 8 sound THUD
  2733. ends
  2734.  
  2735. actor OCTABRAINSTAYPUT OCTASTRENGTH ai AIOCTAGETENEMY cactor OCTABRAIN enda
  2736.  
  2737. actor OCTABRAIN OCTASTRENGTH fall
  2738.  
  2739.     state checksquished
  2740.  
  2741.     ifai 0 ai AIOCTAGETENEMY
  2742.     else ifaction AOCTADEAD
  2743.     {
  2744.         strength 0
  2745.         ifcount RESPAWNACTORTIME ifrespawn
  2746.             { addkills -1 spawn TRANSPORTERSTAR cstat 257 strength OCTASTRENGTH ai AIOCTAGETENEMY }
  2747.         ifhitweapon ifwasweapon RADIUSEXPLOSION { state standard_jibs killit }
  2748.         break
  2749.     }
  2750.     else ifaction AOCTAFROZEN
  2751.     {
  2752.         ifcount THAWTIME { ai AIOCTAGETENEMY getlastpal }
  2753.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  2754.  
  2755.         ifhitweapon
  2756.         {
  2757.             addkills 1
  2758.             ifwasweapon FREEZEBLAST { strength 0 break }
  2759.  
  2760.             lotsofglass 30
  2761.             ifrnd 84 spawn BLOODPOOL
  2762.             sound GLASS_BREAKING
  2763.             killit
  2764.         }
  2765.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2766.         break
  2767.     }
  2768.     else
  2769.     {
  2770.         ifrnd 1 soundonce OCTA_ROAM
  2771.  
  2772.         ifai AIOCTAGETENEMY state octagetenemystate
  2773.         else ifai AIOCTAHIT { ifcount 8 ai AIOCTASHOOTENEMY }
  2774.         else ifai AIOCTADYING { state octadyingstate break }
  2775.         else ifai AIOCTASCRATCHENEMY state octascratchenemystate
  2776.         else ifai AIOCTASHOOTENEMY state octashootenemystate
  2777.         else ifai AIOCTASHRUNK state octashrunkstate
  2778.  
  2779.         ifmove OCTAUPVELS { } else ifp phigher move OCTAUPVELS seekplayer
  2780.         else ifmove OCTAINWATER { } else ifinwater move OCTAINWATER seekplayer
  2781.  
  2782.         ifhitweapon state checkoctahitstate
  2783.     }
  2784. enda
  2785.  
  2786. action APIGWALK         0  4 5 1 20
  2787. action APIGRUN          0  4 5 1 11
  2788. action APIGSHOOT        30 2 5 1 58
  2789. action APIGCOCK         25 1 5 1 16
  2790. action APIGSTAND        30 1 5 1 1
  2791. action APIGDIVE         40 2 5 1 40
  2792. action APIGDIVESHOOT    45 2 5 1 58
  2793. action APIGDYING        55 5 1 1 15
  2794. action APIGHIT          55 1 1 1 10
  2795. action APIGDEAD         60 1 1 1 1
  2796. action APIGFROZEN        0 1 5
  2797.  
  2798. move PIGWALKVELS 72
  2799. move PIGRUNVELS 108
  2800. move PIGSTOPPED
  2801.  
  2802. ai AIPIGSEEKENEMY APIGWALK PIGWALKVELS seekplayer
  2803. ai AIPIGSHOOTENEMY APIGSHOOT PIGSTOPPED faceplayer
  2804. ai AIPIGFLEEENEMY APIGWALK PIGWALKVELS fleeenemy
  2805. ai AIPIGSHOOT APIGSHOOT PIGSTOPPED faceplayer
  2806. ai AIPIGDODGE APIGRUN PIGRUNVELS dodgebullet
  2807. ai AIPIGCHARGE APIGRUN PIGRUNVELS seekplayer
  2808. ai AIPIGDIVING APIGDIVE PIGSTOPPED faceplayer
  2809. ai AIPIGDYING APIGDYING PIGSTOPPED faceplayer
  2810. ai AIPIGSHRINK APIGWALK SHRUNKVELS fleeenemy
  2811. ai AIPIGHIT APIGHIT PIGSTOPPED faceplayer
  2812.  
  2813. state pigseekenemystate
  2814.  
  2815.     ifai AIPIGCHARGE
  2816.     {
  2817.         ifcansee ifpdistl 3084
  2818.         {
  2819.             ifnotmoving ai AIPIGSEEKENEMY
  2820.             else ai AIPIGDIVING
  2821.         }
  2822.         break
  2823.     }
  2824.     else iffloordistl 32
  2825.     {
  2826.         ifpdistg 4096 { ifactornotstayput ai AIPIGCHARGE }
  2827.         ifrnd 8 { ifbulletnear ai AIPIGDODGE }
  2828.     }
  2829.  
  2830.     ifrnd 128 ifcansee
  2831.     {
  2832.         ifai AIPIGDODGE { ifcount 32 ai AIPIGCHARGE break }
  2833.         iffloordistl 32
  2834.         {
  2835.             ifpdistl 1024 ifp palive ifcanshoottarget
  2836.                 { ai AIPIGSHOOTENEMY break }
  2837.             ifcount 48 { ifrnd 8 ifp palive ifcanshoottarget { ifrnd 192 ai AIPIGSHOOTENEMY else ai AIPIGDIVING break } }
  2838.         }
  2839.     }
  2840. ends
  2841.  
  2842.  
  2843. state pigshootenemystate
  2844. //    ifcansee
  2845.     {
  2846.         ifcount 12 { } else ifcount 11
  2847.         {
  2848.             ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2849.             else ai AIPIGSEEKENEMY
  2850.         }
  2851.         ifcount 25 { } else ifcount 24 { action APIGCOCK sound SHOTGUN_COCK }
  2852.         ifcount 48 { } else ifcount 47
  2853.         {
  2854.             ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2855.             else ai AIPIGSEEKENEMY
  2856.         }
  2857.         ifcount 60 { } else ifcount 59 { action APIGCOCK sound SHOTGUN_COCK }
  2858.         ifcount 72
  2859.         {
  2860.             ifrnd 64 resetcount
  2861.             else
  2862.             {
  2863.                 ifpdistl 768 ai AIPIGFLEEENEMY
  2864.                 else ai AIPIGSEEKENEMY
  2865.             }
  2866.         }
  2867.         ifaction APIGCOCK ifactioncount 2 action APIGSHOOT
  2868.     }
  2869.     else ai AIPIGSEEKENEMY
  2870. ends
  2871.  
  2872. state pigfleeenemystate
  2873.     ifactioncount 8 ai AIPIGSEEKENEMY
  2874.     else ifnotmoving ai AIPIGSEEKENEMY
  2875. ends
  2876.  
  2877. state pigdivestate
  2878.     ifaction APIGDIVESHOOT
  2879.     {
  2880.         ifcansee
  2881.         {
  2882.             ifcount 12 { } else ifcount 11
  2883.             {
  2884.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2885.                 else ai AIPIGSEEKENEMY
  2886.             }
  2887.             ifcount 25 { } else ifcount 24 { sound SHOTGUN_COCK }
  2888.             ifcount 48 { } else ifcount 47
  2889.             {
  2890.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2891.                 else ai AIPIGSEEKENEMY
  2892.             }
  2893.             ifcount 60 { } else ifcount 59
  2894.             {
  2895.                 sound SHOTGUN_COCK
  2896.                 ifgapzl 32 ai AIPIGDIVING
  2897.                 else
  2898.                 {
  2899.                     ifpdistl 4096 ai AIPIGFLEEENEMY
  2900.                     else ai AIPIGSEEKENEMY
  2901.                 }
  2902.             }
  2903.         }
  2904.         else ifgapzl 32 ai AIPIGDIVING else ai AIPIGSEEKENEMY
  2905.     }
  2906.     else ifactioncount 2 ifp palive { resetcount action APIGDIVESHOOT }
  2907. ends
  2908.  
  2909. state checkpighitstate
  2910.     spawn BLOOD
  2911.     state mass_jibs
  2912.     ifdead
  2913.     {
  2914.         state dead_mass_jibs
  2915.         state random_wall_jibs
  2916.         ifrnd 16 spawn SHIELD else state drop_shotgun
  2917.         ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action APIGFROZEN strength 0 break }
  2918.  
  2919.         addkills 1
  2920.         ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2921.         else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2922.         ai AIPIGDYING sound PIG_DYING
  2923.     }
  2924.     else
  2925.     {
  2926.         sound PIG_PAIN
  2927.         state random_wall_jibs
  2928.  
  2929.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIPIGSHRINK }
  2930.         else ifrnd 64 ai AIPIGHIT
  2931.         else ifrnd 64 ai AIPIGSHOOTENEMY
  2932.         else ifrnd 64 { ai AIPIGDIVING action APIGDIVESHOOT }
  2933.     }
  2934. ends
  2935.  
  2936. state pigshrinkstate
  2937.     ifcount SHRUNKDONECOUNT ai AIPIGSEEKENEMY
  2938.     else ifcount SHRUNKCOUNT sizeto 48 40
  2939.     else state genericshrunkcode
  2940. ends
  2941.  
  2942. state pigdyingstate
  2943.     ifactioncount 5 { ifrnd 64 spawn BLOODPOOL state rf iffloordistl 8 sound THUD action APIGDEAD move PIGSTOPPED break }
  2944. ends
  2945.  
  2946.  
  2947.  
  2948. actor PIGCOPDIVE PIGCOPSTRENGTH ai AIPIGDIVING action APIGDIVESHOOT cactor PIGCOP enda
  2949. actor PIGCOPSTAYPUT PIGCOPSTRENGTH ai AIPIGSEEKENEMY cactor PIGCOP enda
  2950. actor PIGCOP PIGCOPSTRENGTH APIGSTAND fall
  2951.     state checksquished
  2952.     ifaction APIGSTAND ai AIPIGSEEKENEMY
  2953.     else ifaction APIGDEAD
  2954.     {
  2955.         ifrespawn ifcount RESPAWNACTORTIME
  2956.             { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH ai AIPIGSEEKENEMY }
  2957.         else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  2958.     }
  2959.     else ifaction APIGFROZEN
  2960.     {
  2961.         ifcount THAWTIME { ai AIPIGSEEKENEMY getlastpal }
  2962.         else ifcount FROZENDRIPTIME ifrnd 8 spawn WATERDRIP
  2963.  
  2964.         ifhitweapon
  2965.         {
  2966.             ifwasweapon FREEZEBLAST { strength 0 break }
  2967.             addkills 1
  2968.  
  2969.             lotsofglass 30
  2970.             ifrnd 84 spawn BLOODPOOL
  2971.             sound GLASS_BREAKING
  2972.             killit
  2973.         }
  2974.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2975.         break
  2976.     }
  2977.     else ifai AIPIGDYING state pigdyingstate
  2978.     else ifai AIPIGHIT { ifactioncount 3 ai AIPIGSEEKENEMY }
  2979.     else ifai AIPIGSHRINK state pigshrinkstate
  2980.     else
  2981.     {
  2982.         ifai AIPIGSEEKENEMY state pigseekenemystate
  2983.         else ifai AIPIGDODGE state pigseekenemystate
  2984.         else ifai AIPIGSHOOTENEMY state pigshootenemystate
  2985.         else ifai AIPIGFLEEENEMY state pigfleeenemystate
  2986.         else ifai AIPIGDIVING state pigdivestate
  2987.         else ifai AIPIGCHARGE state pigseekenemystate
  2988.         ifhitweapon state checkpighitstate
  2989.         ifrnd 1
  2990.         {
  2991.             ifrnd 32 soundonce PIG_ROAM
  2992.             else ifrnd 64 soundonce PIG_ROAM2
  2993.             else soundonce PIG_ROAM3
  2994.         }
  2995.     }
  2996. enda
  2997.  
  2998.  
  2999.  
  3000.  
  3001. action ABOSS1WALK                0  4  5  1  12
  3002. action ABOSS1FROZEN              30 1  5
  3003. action ABOSS1RUN                 0  6  5  1  5
  3004. action ABOSS1SHOOT               30 2  5  1  4
  3005. action ABOSS1LOB                 40 2  5  1  35
  3006. action ABOSS1DYING              50 5  1  1  50
  3007. action BOSS1FLINTCH             50 1  1  1  1
  3008. action ABOSS1DEAD               55
  3009.  
  3010. move PALBOSS1SHRUNKRUNVELS 32
  3011. move PALBOSS1RUNVELS 128
  3012. move BOSS1WALKVELS 208
  3013. move BOSS1RUNVELS 296
  3014. move BOSS1STOPPED
  3015.  
  3016. ai AIBOSS1SEEKENEMY ABOSS1WALK BOSS1WALKVELS seekplayer
  3017. ai AIBOSS1RUNENEMY ABOSS1RUN BOSS1RUNVELS faceplayer
  3018. ai AIBOSS1SHOOTENEMY ABOSS1SHOOT BOSS1STOPPED faceplayer
  3019. ai AIBOSS1LOBBED ABOSS1LOB BOSS1STOPPED faceplayer // faceplayersmart
  3020. ai AIBOSS1DYING ABOSS1DYING BOSS1STOPPED faceplayer
  3021. ai AIBOSS1PALSHRINK ABOSS1WALK PALBOSS1SHRUNKRUNVELS furthestdir
  3022.  
  3023. state boss1palshrunkstate
  3024.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  3025.     else ifcount SHRUNKCOUNT sizeto 40 40
  3026.     else state genericshrunkcode
  3027. ends
  3028.  
  3029. state checkboss1seekstate
  3030.     ai AIBOSS1SEEKENEMY
  3031.     ifspritepal 0 { } else     // a fake way of doing a ifspritepal NOT.
  3032.         move PALBOSS1RUNVELS seekplayer
  3033. ends
  3034.  
  3035. state boss1runenemystate
  3036.     ifpdistl 2048 { ifp palive ai AIBOSS1SHOOTENEMY break }
  3037.     else ifcansee { ifactioncount 6 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS1SEEKENEMY } }
  3038.     else ai AIBOSS1SEEKENEMY
  3039. ends
  3040.  
  3041. state boss1seekenemystate
  3042.     ifrnd 2 soundonce BOS1_ROAM
  3043.     else ifactioncount 6 { resetactioncount sound BOS1_WALK }
  3044.  
  3045.     ifpdistl 2548 ifp palive { ai AIBOSS1SHOOTENEMY break }
  3046.  
  3047.     ifcansee ifcount 32
  3048.     {
  3049.         ifrnd 32 { ifp palive ifcanshoottarget ai AIBOSS1SHOOTENEMY }
  3050.         else ifpdistg 2548 ifrnd 192
  3051.             ifcanshoottarget
  3052.             {
  3053.                 ifrnd 64
  3054.                 {
  3055.                     ai AIBOSS1RUNENEMY
  3056.                     ifspritepal 0 { } else move PALBOSS1RUNVELS seekplayer
  3057.                 }
  3058.                 else ai AIBOSS1LOBBED
  3059.             }
  3060.     }
  3061.  
  3062. ends
  3063.  
  3064. state boss1dyingstate
  3065.   ifaction ABOSS1DEAD
  3066.   {
  3067.       ifspritepal 0 break
  3068.       ifrespawn ifcount RESPAWNACTORTIME
  3069.           { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss1seekstate }
  3070.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  3071.   }
  3072.   ifactioncount 5 { iffloordistl 8 sound THUD action ABOSS1DEAD cstat 0 ifspritepal 0 endofgame 52 }
  3073. ends
  3074.  
  3075. state boss1lobbedstate
  3076.     ifcansee
  3077.     {
  3078.         ifactioncount 2
  3079.         {
  3080.             resetactioncount
  3081.             sound BOS1_ATTACK2
  3082.             shoot MORTER
  3083.         }
  3084.         else ifcount 64 ifrnd 16 state checkboss1seekstate
  3085.     }
  3086.     else state checkboss1seekstate
  3087. ends
  3088.  
  3089. state boss1shootenemy
  3090.     ifcount 72 state checkboss1seekstate
  3091.     else ifaction ABOSS1SHOOT ifactioncount 2
  3092.     {
  3093.         sound BOS1_ATTACK1
  3094.         shoot SHOTSPARK1
  3095.         shoot SHOTSPARK1
  3096.         shoot SHOTSPARK1
  3097.         shoot SHOTSPARK1
  3098.         shoot SHOTSPARK1
  3099.         shoot SHOTSPARK1
  3100.         resetactioncount
  3101.     }
  3102. ends
  3103.  
  3104. state checkboss1hitstate
  3105.     state mass_jibs
  3106.     ifrnd 2 spawn BLOODPOOL
  3107.     ifdead
  3108.     {
  3109.         state dead_mass_jibs
  3110.         ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
  3111.         else
  3112.         {
  3113.             ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
  3114.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS1FROZEN strength 0 break }
  3115.         }
  3116.  
  3117.         sound BOS1_DYING
  3118.  
  3119.         addkills 1
  3120.         ai AIBOSS1DYING
  3121.     }
  3122.     else
  3123.     {
  3124.         ifrnd 32 { action BOSS1FLINTCH move 0 }
  3125.  
  3126.         ifspritepal 0 { }
  3127.         else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS1PALSHRINK break }
  3128.  
  3129.         soundonce BOS1_PAIN
  3130.  
  3131.         debris SCRAP1 1
  3132.         guts JIBS6 1
  3133.     }
  3134. ends
  3135.  
  3136. state boss1code
  3137.  
  3138.     ifaction ABOSS1FROZEN
  3139.     {
  3140.         ifcount THAWTIME { ai AIBOSS1SEEKENEMY spritepal 21 }
  3141.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  3142.  
  3143.         ifhitweapon
  3144.         {
  3145.             ifwasweapon FREEZEBLAST { strength 0 break }
  3146.             addkills 1
  3147.             lotsofglass 30
  3148.  
  3149.             ifrnd 84 spawn BLOODPOOL
  3150.             sound GLASS_BREAKING
  3151.             killit
  3152.         }
  3153.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3154.         break
  3155.     }
  3156.     ifai 0 { ifspritepal 0 ai AIBOSS1RUNENEMY else { strength BOSS1PALSTRENGTH ai AIBOSS1SHOOTENEMY } }
  3157.     else ifaction BOSS1FLINTCH { ifactioncount 3 ai AIBOSS1SHOOTENEMY }
  3158.     else ifai AIBOSS1SEEKENEMY state boss1seekenemystate
  3159.     else ifai AIBOSS1RUNENEMY state boss1runenemystate
  3160.     else ifai AIBOSS1SHOOTENEMY state boss1shootenemy
  3161.     else ifai AIBOSS1LOBBED state boss1lobbedstate
  3162.     else ifai AIBOSS1PALSHRINK state boss1palshrunkstate
  3163.  
  3164.     ifai AIBOSS1DYING state boss1dyingstate
  3165.     else
  3166.     {
  3167.         ifhitweapon state checkboss1hitstate
  3168.         else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth -1000 palfrom 63 63 }
  3169.     }
  3170. ends
  3171.  
  3172. actor BOSS1STAYPUT BOSS1STRENGTH cactor BOSS1 enda
  3173. actor BOSS1 BOSS1STRENGTH fall state boss1code enda
  3174.  
  3175.  
  3176. action ABOSS2WALK                0  4  5  1  30
  3177. action ABOSS2FROZEN              0  1  5
  3178. action ABOSS2RUN                 0  4  5  1  15
  3179. action ABOSS2SHOOT               20 2  5  1  15
  3180. action ABOSS2LOB                 30 2  5  1  105
  3181. action ABOSS2DYING              40 8  1  1  35
  3182. action BOSS2FLINTCH             40 1  1  1  1
  3183. action ABOSS2DEAD               48
  3184.  
  3185. move PALBOSS2SHRUNKRUNVELS 32
  3186. move PALBOSS2RUNVELS 84
  3187. move BOSS2WALKVELS 192
  3188. move BOSS2RUNVELS 256
  3189. move BOSS2STOPPED
  3190.  
  3191. ai AIBOSS2SEEKENEMY ABOSS2WALK BOSS2WALKVELS seekplayer
  3192. ai AIBOSS2RUNENEMY ABOSS2RUN BOSS2RUNVELS faceplayer
  3193. ai AIBOSS2SHOOTENEMY ABOSS2SHOOT BOSS2STOPPED faceplayer
  3194. ai AIBOSS2LOBBED ABOSS2LOB BOSS2STOPPED faceplayer
  3195. ai AIBOSS2DYING ABOSS2DYING BOSS2STOPPED faceplayer
  3196. ai AIBOSS2PALSHRINK ABOSS2WALK PALBOSS2SHRUNKRUNVELS furthestdir
  3197.  
  3198. state boss2palshrunkstate
  3199.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  3200.     else ifcount SHRUNKCOUNT sizeto 40 40
  3201.     else state genericshrunkcode
  3202. ends
  3203.  
  3204. state checkboss2seekstate
  3205.     ai AIBOSS2SEEKENEMY
  3206.     ifspritepal 0 { } else     // a fake way of doing a ifspritepal NOT.
  3207.         move PALBOSS2RUNVELS seekplayer
  3208. ends
  3209.  
  3210. state boss2runenemystate
  3211.     ifcansee
  3212.     {
  3213.         ifactioncount 3 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS2SEEKENEMY }
  3214.         ifcount 48 ifrnd 2 { ifp palive { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY } break }
  3215.     }
  3216.     else ai AIBOSS2SEEKENEMY
  3217. ends
  3218.  
  3219. state boss2seekenemystate
  3220.     ifrnd 2 soundonce BOS2_ROAM
  3221.     else ifactioncount 3 { resetactioncount sound BOS1_WALK }
  3222.  
  3223.     ifcansee ifcount 32 ifp palive ifrnd 48 ifcanshoottarget
  3224.     {
  3225.         ifrnd 64 ifpdistg 4096
  3226.         {
  3227.             ai AIBOSS2RUNENEMY
  3228.             ifspritepal 0 { }
  3229.             else move PALBOSS2RUNVELS seekplayer
  3230.             break
  3231.         }
  3232.  
  3233.         ifpdistl 10240 { ifrnd 128 { sound BOS2_ATTACK ai AIBOSS2LOBBED } }
  3234.         else { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY }
  3235.     }
  3236. ends
  3237.  
  3238. state boss2dyingstate
  3239.   ifaction ABOSS2DEAD
  3240.   {
  3241.       ifspritepal 0 break
  3242.       ifrespawn ifcount RESPAWNACTORTIME
  3243.           { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss2seekstate }
  3244.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  3245.   }
  3246.   ifactioncount 8 { iffloordistl 8 sound THUD action ABOSS2DEAD cstat 0 ifspritepal 0 endofgame 52 }
  3247. ends
  3248.  
  3249. state boss2lobbedstate
  3250.     ifcansee
  3251.     {
  3252.         ifactioncount 2 resetactioncount
  3253.         else ifactioncount 1 { ifrnd 128 shoot COOLEXPLOSION1 }
  3254.         else ifcount 64 ifrnd 16 state checkboss2seekstate
  3255.     }
  3256.     else state checkboss2seekstate
  3257. ends
  3258.  
  3259. state boss2shootenemy
  3260.     ifcount 72 state checkboss2seekstate
  3261.     else ifaction ABOSS2SHOOT ifactioncount 2
  3262.     {
  3263.         shoot RPG
  3264.         resetactioncount
  3265.     }
  3266. ends
  3267.  
  3268. state checkboss2hitstate
  3269.     state mass_jibs
  3270.     ifrnd 2 spawn BLOODPOOL
  3271.     ifdead
  3272.     {
  3273.         state dead_mass_jibs
  3274.         ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
  3275.         else
  3276.         {
  3277.             ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
  3278.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS2FROZEN strength 0 break }
  3279.         }
  3280.  
  3281.         sound BOS2_DYING
  3282.  
  3283.         addkills 1
  3284.  
  3285.         ai AIBOSS2DYING
  3286.     }
  3287.     else
  3288.     {
  3289.         ifrnd 144
  3290.         {
  3291.             ifrnd 32 { action BOSS2FLINTCH move 0 }
  3292.             else { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY }
  3293.         }
  3294.  
  3295.         ifspritepal 0 { }
  3296.         else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS2PALSHRINK break }
  3297.  
  3298.         soundonce BOS2_PAIN
  3299.  
  3300.         debris SCRAP1 1
  3301.         guts JIBS6 1
  3302.     }
  3303. ends
  3304.  
  3305. state boss2code
  3306.  
  3307.     ifaction ABOSS2FROZEN
  3308.     {
  3309.         ifcount THAWTIME { ai AIBOSS2SEEKENEMY spritepal 21 }
  3310.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  3311.  
  3312.         ifhitweapon
  3313.         {
  3314.             ifwasweapon FREEZEBLAST { strength 0 break }
  3315.             addkills 1
  3316.  
  3317.             lotsofglass 30
  3318.             sound GLASS_BREAKING
  3319.             ifrnd 84 spawn BLOODPOOL
  3320.             killit
  3321.         }
  3322.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3323.         break
  3324.     }
  3325.     ifai 0 { ifspritepal 0 ai AIBOSS2RUNENEMY else { strength 1 { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY } } }
  3326.     else ifaction BOSS2FLINTCH { ifactioncount 3 ai AIBOSS2SEEKENEMY }
  3327.     else ifai AIBOSS2SEEKENEMY state boss2seekenemystate
  3328.     else ifai AIBOSS2RUNENEMY state boss2runenemystate
  3329.     else ifai AIBOSS2SHOOTENEMY state boss2shootenemy
  3330.     else ifai AIBOSS2LOBBED state boss2lobbedstate
  3331.     else ifai AIBOSS2PALSHRINK state boss2palshrunkstate
  3332.  
  3333.     ifai AIBOSS2DYING state boss2dyingstate
  3334.     else
  3335.     {
  3336.         ifhitweapon state checkboss2hitstate
  3337.         else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth -1000 palfrom 63 63 }
  3338.     }
  3339.  
  3340.  
  3341. ends
  3342.  
  3343. actor BOSS2 BOSS2STRENGTH fall state boss2code enda
  3344.  
  3345.  
  3346. action ABOSS3WALK                0  4  5  1  30
  3347. action ABOSS3FROZEN              0  1  5
  3348. action ABOSS3RUN                 0  4  5  1  15
  3349. action ABOSS3LOB                20 4  5  1  50
  3350. action ABOSS3LOBBING            30 2  5  1  15
  3351. action ABOSS3DYING              40 8  1  1  20
  3352. action BOSS3FLINTCH             40 1  1  1  1
  3353. action ABOSS3DEAD               48
  3354.  
  3355. move PALBOSS3SHRUNKRUNVELS 32
  3356. move PALBOSS3RUNVELS 84
  3357. move BOSS3WALKVELS 208
  3358. move BOSS3RUNVELS 270
  3359. move BOSS3STOPPED
  3360.  
  3361. ai AIBOSS3SEEKENEMY ABOSS3WALK BOSS3WALKVELS seekplayer
  3362. ai AIBOSS3RUNENEMY ABOSS3RUN BOSS3RUNVELS faceplayerslow
  3363. ai AIBOSS3LOBENEMY ABOSS3LOB BOSS3STOPPED faceplayer
  3364. ai AIBOSS3DYING ABOSS3DYING BOSS3STOPPED faceplayer
  3365. ai AIBOSS3PALSHRINK ABOSS3WALK PALBOSS3SHRUNKRUNVELS faceplayer
  3366.  
  3367. state boss3palshrunkstate
  3368.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  3369.     else ifcount SHRUNKCOUNT sizeto 40 40
  3370.     else state genericshrunkcode
  3371. ends
  3372.  
  3373. state checkboss3seekstate
  3374.     ai AIBOSS3SEEKENEMY
  3375.     ifspritepal 0 { } else     // a fake way of doing a ifspritepal NOT.
  3376.         move PALBOSS3RUNVELS seekplayer
  3377. ends
  3378.  
  3379. state boss3runenemystate
  3380.     ifcansee { ifactioncount 3 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS3SEEKENEMY } }
  3381.     else ai AIBOSS3SEEKENEMY
  3382. ends
  3383.  
  3384. state boss3seekenemystate
  3385.     ifrnd 2 soundonce BOS3_ROAM
  3386.     else ifactioncount 3 { resetactioncount sound BOS1_WALK }
  3387.  
  3388.     ifcansee ifcount 32 ifrnd 48 ifcanshoottarget
  3389.     {
  3390.         ifrnd 64
  3391.             ifpdistg 4096
  3392.             {
  3393.                 ai AIBOSS3RUNENEMY
  3394.                 ifspritepal 0 break
  3395.                 move PALBOSS3RUNVELS seekplayer
  3396.                 break
  3397.             }
  3398.  
  3399.         ifp palive
  3400.             ai AIBOSS3LOBENEMY
  3401.     }
  3402. ends
  3403.  
  3404. state boss3dyingstate
  3405.   ifaction ABOSS3DEAD
  3406.   {
  3407.       ifspritepal 0 break
  3408.       ifrespawn ifcount RESPAWNACTORTIME
  3409.           { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss3seekstate }
  3410.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  3411.   }
  3412.   ifactioncount 8 { iffloordistl 8 sound THUD action ABOSS3DEAD cstat 0 ifspritepal 0 endofgame 52 }
  3413. ends
  3414.  
  3415. state boss3lobbedstate
  3416.     ifcansee
  3417.     {
  3418.         ifaction ABOSS3LOBBING
  3419.             ifactioncount 2
  3420.         {
  3421.             shoot RPG
  3422.             resetactioncount
  3423.             ifrnd 8 ai AIBOSS3SEEKENEMY
  3424.         }
  3425.  
  3426.         ifactioncount 3 { action ABOSS3LOBBING resetcount }
  3427.     }
  3428.     else state checkboss3seekstate
  3429. ends
  3430.  
  3431. state checkboss3hitstate
  3432.     state mass_jibs
  3433.     ifrnd 2 spawn BLOODPOOL
  3434.     ifdead
  3435.     {
  3436.         state dead_mass_jibs
  3437.         ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
  3438.         else
  3439.         {
  3440.             ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
  3441.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS3FROZEN strength 0 break }
  3442.         }
  3443.  
  3444.         addkills 1
  3445.         ai AIBOSS3DYING
  3446.  
  3447.         sound BOS3_DYING
  3448.         sound JIBBED_ACTOR9
  3449.  
  3450.     }
  3451.     else
  3452.     {
  3453.         ifrnd 32 { action BOSS3FLINTCH move 0 }
  3454.  
  3455.         ifspritepal 0 { }
  3456.         else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS3PALSHRINK break }
  3457.  
  3458.         soundonce BOS3_PAIN
  3459.  
  3460.         debris SCRAP1 1
  3461.         guts JIBS6 1
  3462.     }
  3463. ends
  3464.  
  3465. state boss3code
  3466.  
  3467.     ifaction ABOSS3FROZEN
  3468.     {
  3469.         ifhitweapon
  3470.         {
  3471.             ifwasweapon FREEZEBLAST { strength 0 break }
  3472.  
  3473.             addkills 1
  3474.             lotsofglass 30
  3475.  
  3476.             ifrnd 84 spawn BLOODPOOL
  3477.             sound GLASS_BREAKING
  3478.             killit
  3479.         }
  3480.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3481.         break
  3482.     }
  3483.     ifai 0 { ifspritepal 0 ai AIBOSS3RUNENEMY else { strength 1 ai AIBOSS3LOBENEMY } }
  3484.     else ifaction BOSS3FLINTCH { ifactioncount 3 ai AIBOSS3SEEKENEMY }
  3485.     else ifai AIBOSS3SEEKENEMY state boss3seekenemystate
  3486.     else ifai AIBOSS3RUNENEMY state boss3runenemystate
  3487.     else ifai AIBOSS3LOBENEMY state boss3lobbedstate
  3488.     else ifai AIBOSS3PALSHRINK state boss3palshrunkstate
  3489.  
  3490.     ifai AIBOSS3DYING state boss3dyingstate
  3491.     else
  3492.     {
  3493.         ifhitweapon state checkboss3hitstate
  3494.         else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth -1000 palfrom 63 63 }
  3495.     }
  3496. ends
  3497.  
  3498. actor BOSS3 BOSS3STRENGTH fall state boss3code enda
  3499.  
  3500.  
  3501. action ACOMMBREETH  0  3  5  1  40
  3502. action ACOMMFROZEN  0  1  5
  3503. action ACOMMSPIN   -5  1  5  1  12
  3504. action ACOMMGET     0  3  5  1  30
  3505. action ACOMMSHOOT  20  1  5   1 35
  3506. action ACOMMABOUTTOSHOOT 20 1 5 1 30
  3507. action ACOMMDYING  30  8  1  1  12
  3508. action ACOMMDEAD   38  1  1  1  1
  3509.  
  3510.       
  3511. move COMMGETUPVELS 128 -64
  3512. move COMMGETVELS 128 64
  3513. move COMMSLOW 64 24
  3514. move COMMSTOPPED
  3515.  
  3516. ai AICOMMWAIT ACOMMBREETH COMMSTOPPED faceplayerslow
  3517. ai AICOMMGET ACOMMGET COMMGETVELS seekplayer
  3518. ai AICOMMSHOOT ACOMMSHOOT COMMSTOPPED faceplayerslow
  3519. ai AICOMMABOUTTOSHOOT ACOMMABOUTTOSHOOT COMMSTOPPED faceplayerslow
  3520. ai AICOMMSPIN ACOMMSPIN COMMGETVELS spin
  3521. ai AICOMMDYING ACOMMDYING COMMSTOPPED faceplayer
  3522. ai AICOMMSHRUNK ACOMMGET COMMSLOW furthestdir
  3523.  
  3524. state checkcommhitstate
  3525.  
  3526.     ifhitweapon
  3527.     {
  3528.         state mass_jibs
  3529.         guts JIBS6 2
  3530.  
  3531.         ifdead
  3532.         {
  3533.             state dead_mass_jibs
  3534.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ACOMMFROZEN strength 0 break }
  3535.  
  3536.             addkills 1
  3537.  
  3538.             ifwasweapon RADIUSEXPLOSION { spawn BLOODPOOL sound SQUISHED state standard_jibs state delete_enemy }
  3539.             else ifwasweapon RPG { sound SQUISHED spawn BLOODPOOL state standard_jibs state delete_enemy }
  3540.  
  3541.             sound COMM_DYING
  3542.             ai AICOMMDYING
  3543.         }
  3544.         else
  3545.         {
  3546.             soundonce COMM_PAIN
  3547.             ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AICOMMSHRUNK }
  3548.             else ifrnd 24 ai AICOMMABOUTTOSHOOT
  3549.         }
  3550.     }
  3551. ends
  3552.  
  3553. actor COMMANDERSTAYPUT COMMANDERSTRENGTH cactor COMMANDER ai AICOMMABOUTTOSHOOT enda
  3554. actor COMMANDER COMMANDERSTRENGTH
  3555.  
  3556.     state checksquished
  3557.  
  3558.     ifaction ACOMMFROZEN
  3559.     {
  3560.         fall
  3561.  
  3562.         ifcount THAWTIME { getlastpal ai AICOMMWAIT }
  3563.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  3564.  
  3565.         ifhitweapon
  3566.         {
  3567.             ifwasweapon FREEZEBLAST { strength 0 break }
  3568.             addkills 1
  3569.  
  3570.             ifrnd 84 spawn BLOODPOOL
  3571.             lotsofglass 30
  3572.             sound GLASS_BREAKING
  3573.             killit
  3574.         }
  3575.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3576.         break
  3577.     }
  3578.     ifai 0 ai AICOMMSHOOT
  3579.     else ifai AICOMMWAIT { ifcount 20 { ifcansee { ifcanshoottarget { ifrnd 96 ai AICOMMGET else ai AICOMMABOUTTOSHOOT } } else ai AICOMMGET } }
  3580.     else ifai AICOMMABOUTTOSHOOT
  3581.     {
  3582.         ifactioncount 2 { ifcansee ai AICOMMSHOOT else { ai AICOMMGET break } }
  3583.         soundonce COMM_ATTACK
  3584.     }
  3585.     else ifai AICOMMSHOOT
  3586.     {
  3587.         ifcanshoottarget
  3588.         {
  3589.             ifcount 24 ifrnd 16 ai AICOMMWAIT
  3590.             ifactioncount 2 { shoot RPG resetactioncount }
  3591.         }
  3592.         else ai AICOMMGET
  3593.     }
  3594.     else ifai AICOMMSHRUNK
  3595.     {
  3596.         ifcount SHRUNKDONECOUNT ai AICOMMGET
  3597.         else ifcount SHRUNKCOUNT sizeto 48 40
  3598.         else state genericshrunkcode
  3599.     }
  3600.     else ifai AICOMMGET
  3601.     {
  3602.         ifnotmoving ifrnd 4 operate
  3603.         ifpdistl 1024 ifp palive { sound COMM_SPIN ai AICOMMSPIN break }
  3604.  
  3605.         ifcansee
  3606.         {
  3607.             ifp phigher move COMMGETUPVELS getv geth faceplayer
  3608.             else move COMMGETVELS getv geth faceplayer
  3609.         }
  3610.         ifactioncount 8 ifrnd 2 ai AICOMMABOUTTOSHOOT
  3611.     }
  3612.     else ifai AICOMMSPIN
  3613.     {
  3614.         soundonce COMM_SPIN
  3615.         ifcount 16
  3616.         {
  3617.             ifpdistl 1280 { addphealth CAPTSPINNINGPLAYER sound DUKE_GRUNT palfrom 32 16 resetcount }
  3618.             else ifpdistg 2300 ai AICOMMWAIT
  3619.         }
  3620.         ifactioncount 52 ai AICOMMWAIT
  3621.         ifnotmoving ifrnd 32 operate
  3622.     }
  3623.  
  3624.     ifai AICOMMDYING
  3625.     {
  3626.         fall
  3627.         strength 0
  3628.  
  3629.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  3630.             { sound SQUISHED spawn BLOODPOOL state standard_jibs state delete_enemy }
  3631.  
  3632.         ifaction ACOMMDYING
  3633.             ifactioncount 8 { iffloordistl 8 sound THUD cstat 0 action ACOMMDEAD }
  3634.     }
  3635.     else
  3636.     {
  3637.         ifrnd 2 soundonce COMM_ROAM
  3638.         state checkcommhitstate
  3639.     }
  3640. enda
  3641.  
  3642.  
  3643.