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