home *** CD-ROM | disk | FTP | other *** search
/ Hot Shareware 35 / hot35.iso / ficheros / VDUKE / INVISDK2.ZIP / INVISDK.GAM < prev    next >
Text File  |  1998-07-15  |  102KB  |  3,677 lines

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