home *** CD-ROM | disk | FTP | other *** search
/ Come Get Some! / ComeGetSome.iso / confiles / burn / burngame.con < prev    next >
Text File  |  1996-05-31  |  100KB  |  3,601 lines

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