home *** CD-ROM | disk | FTP | other *** search
/ Hot Shareware 35 / hot35.iso / ficheros / VDUKE / TROOP.ZIP / GAME.con next >
Text File  |  1997-09-09  |  101KB  |  3,629 lines

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