home *** CD-ROM | disk | FTP | other *** search
/ Total Meltdown / dukenukemtotalmeltdown.img / doco / turdv1 / game.con < prev    next >
Text File  |  1996-05-25  |  104KB  |  3,789 lines

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