home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 31 / CDASC_31_1996_juillet_aout.iso / vrac / bldclot4.zip / BLODCLOT.GAM < prev    next >
Text File  |  1996-05-09  |  105KB  |  3,722 lines

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