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