home *** CD-ROM | disk | FTP | other *** search
/ Total Chaos Nukem 3D Pack / TotalChaosNukem3dPack.iso / duke / temp2 / ubduke10.zip / GAME-UB.CON < prev    next >
Text File  |  1996-05-01  |  101KB  |  3,625 lines

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