home *** CD-ROM | disk | FTP | other *** search
/ Total Meltdown / dukenukemtotalmeltdown.img / doco / cons / troopgor / goregame.con < prev    next >
Text File  |  1996-07-04  |  100KB  |  3,599 lines

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