home *** CD-ROM | disk | FTP | other *** search
/ Duke!Zone / D3DZONE.iso / d3dzone / cons / coolcon.d! / GAME.CON < prev    next >
Encoding:
Text File  |  1994-05-28  |  95.9 KB  |  3,378 lines

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