home *** CD-ROM | disk | FTP | other *** search
/ Action Ware 9: Duke Nukem 3D / ACTWARE9.iso / actware9 / patches / tripbomb / tripbo11.con < prev    next >
Encoding:
Text File  |  1996-03-20  |  68.7 KB  |  2,487 lines

  1.  
  2. /*
  3. --------------------------------------------------------------------------------
  4. Duke Nukem 3D Script Code.
  5. Todd Replogle.
  6. --------------------------------------------------------------------------------
  7. */
  8.  
  9. include defs.con
  10. include user.con
  11.  
  12. state rats
  13.     ifrnd 128 spawn RAT
  14.     ifrnd 128 spawn RAT
  15.     ifrnd 128 spawn RAT
  16.     ifrnd 128 spawn RAT
  17.     ifrnd 128 spawn RAT
  18.     ifrnd 128 spawn RAT
  19.     ifrnd 128 spawn RAT
  20.     ifrnd 128 spawn RAT
  21. ends
  22.  
  23. move RESPAWN_ACTOR_FLAG
  24.  
  25. action RUBCANDENT 1 1 1 1 1
  26. action RUBCAN
  27.  
  28. actor RUBBERCAN WEAK
  29.     ifaction RUBCANDENT { ifactioncount 16 { strength 0 action RUBCAN break } }
  30.     else ifhitweapon
  31.     {
  32.         ifwasweapon THROWFLAME { state rats ifrnd 48 spawn BURNING debris SCRAP3 4 /* spawn EXPLOSION2 */ killit }
  33.         else ifwasweapon RADIUSEXPLOSION { state rats ifrnd 48 spawn BURNING debris SCRAP3 12 /* spawn EXPLOSION2 */ killit }
  34.         else action RUBCANDENT
  35.     }
  36. enda
  37.  
  38. state headhitstate
  39.  
  40.  
  41. ends
  42.  
  43. action EXPBARRELFRAME         0   2   1   1   15
  44. actor EXPLODINGBARREL 26
  45.     fall
  46.     ifaction EXPBARRELFRAME
  47.     {
  48.         ifactioncount 2
  49.         {
  50.             hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  51.             spawn EXPLOSION2
  52.             debris SCRAP2 2
  53.             sound PIPEBOMB_EXPLODE
  54.             killit
  55.         }
  56.         break
  57.     }
  58.     ifsquished
  59.     {
  60.         debris SCRAP1 5
  61.         killit
  62.         break
  63.     }
  64.     ifhitweapon
  65.         action EXPBARRELFRAME
  66. enda
  67.  
  68. action BURNING_FLAME    0   12   1   1   2
  69. move BURNING_VELS 
  70.  
  71. state burningstate
  72.  
  73.     ifgapzl 16 break
  74.     ifpdistg 10240 break
  75. //    ifpdistl 8192 soundonce FLESH_BURNING
  76.  
  77.     ifcount 128
  78.     {
  79.         ifspawnedby TIRE
  80.         {
  81.             ifactioncount 512
  82.             {
  83.                 sizeto 16 16
  84.                 killit
  85.             }
  86.             ifrnd 16 sizeto 64 48
  87.         }
  88.         else
  89.         {
  90.             sizeto 8 8 sizeto 8 8
  91.             ifactioncount 192 killit
  92.         }
  93.     }
  94.     else
  95.     {
  96.         ifmove 0 move BURNING_VELS
  97.  
  98.         ifspawnedby BOX
  99.             { sizeto 32 32 ifcount 32 { spawn SMALLSMOKE killit } }
  100.         else ifspawnedby TREE1 sizeto 96 96
  101.         else ifspawnedby TREE2 sizeto 96 96
  102.         else ifspawnedby APLAYER { sizeto 40 40 sizeto 40 40 }
  103.         else sizeto 52 52
  104.         ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 24 16 }
  105.     }
  106.  
  107. ends
  108.  
  109. actor BURNING WEAK BURNING_FLAME
  110.     state burningstate
  111. enda
  112.  
  113. actor BURNING2 WEAK BURNING_FLAME
  114.     state burningstate
  115. enda
  116.  
  117. action TOILETWATERFRAMES 0 4 1 1 1
  118. actor TOILETWATER 0 TOILETWATERFRAMES
  119.     ifpdistl 8192
  120.     {
  121.         ifpdistl 6144 soundonce WATER_GURGLE
  122.         ifspawnedby TOILET
  123.             sizeto 34 34
  124.         else
  125.         {
  126.             ifspawnedby WATERFOUNTAINBROKE
  127.                 sizeto 6 15
  128.             else sizeto 24 32
  129.         }
  130.         ifp pdead break
  131.         else ifpdistl RETRIEVEDISTANCE ifp pfacing ifactioncount 32 ifphealthl MAXPLAYERHEALTH
  132.             ifhitspace ifcansee
  133.         {
  134.             addphealth 1
  135.             globalsound DUKE_DRINKING
  136.             resetactioncount
  137.         }
  138.     }
  139. enda
  140.  
  141. action WOODENHORSEFRAME  0   1   4
  142. action WOODENFALLFRAME  122  1   5
  143.  
  144. actor HORSEONSIDE WEAKEST cactor WOODENHORSE action WOODENFALLFRAME enda
  145. actor WOODENHORSE WEAK WOODENHORSEFRAME
  146.     fall
  147.     ifhitweapon
  148.     {
  149.         ifdead
  150.         {
  151.             debris SCRAP1 4
  152.             debris SCRAP2 3
  153.             killit
  154.         }
  155.         else action WOODENFALLFRAME
  156.     }
  157. enda
  158.  
  159. state steamcode
  160.     ifpdistl 5144 soundonce STEAM_HISSING
  161.  
  162.     ifcount 26        // Turn it on
  163.     {
  164.         resetcount
  165.         ifpdistl 844
  166.         {
  167.             addphealth -1
  168.             palfrom 16 16
  169.         }
  170.     }
  171.     else
  172.     {
  173.         ifspawnedby STEAM break ifspawnedby CEILINGSTEAM break
  174.         sizeto 24 24
  175.     }
  176. ends
  177.  
  178. actor STEAM
  179.     state steamcode
  180. enda
  181.  
  182. actor CEILINGSTEAM
  183.     state steamcode
  184. enda
  185.  
  186. actor WATERBUBBLEMAKER 0 0 random_angle
  187.     ifpdistl 2048 ifrnd 24 spawn WATERBUBBLE
  188. enda
  189.  
  190. action BUBBLE
  191. action CRACKEDBUBBLE    1
  192. move BUBMOVE           -10 -36
  193. move BUBMOVEFAST           -10 -52
  194.  
  195. actor WATERBUBBLE 0 BUBBLE BUBMOVE getv geth random_angle
  196.  
  197.     ifaction CRACKEDBUBBLE
  198.     {
  199.         ifinwater ifrnd 192 killit
  200.         ifactioncount 7 killit
  201.     }
  202.     else
  203.     {
  204.         ifcount 4
  205.         {
  206.             ifrnd 192 move BUBMOVE getv geth random_angle
  207.             else move BUBMOVEFAST getv geth random_angle
  208.             resetcount
  209.         }
  210.  
  211.         ifonwater
  212.         {
  213.             iffloordistl 8 action CRACKEDBUBBLE
  214.         }
  215.         else ifactioncount 40 action CRACKEDBUBBLE
  216.     }
  217. enda
  218.  
  219.  
  220. move SMOKEVEL 8 -16
  221. move ENGINE_SMOKE 64 -64
  222. move SMOKESHOOTOUT -192
  223. action SMOKEFRAMES 0 4 1 1 10
  224. actor SMALLSMOKE 0 SMOKEFRAMES
  225.     ifmove 0
  226.     {
  227.         ifspawnedby RECON
  228.             move SMOKESHOOTOUT geth
  229.         else ifspawnedby SECTOREFFECTOR
  230.             move ENGINE_SMOKE geth getv
  231.         else move SMOKEVEL geth getv face_player
  232.  
  233.     }
  234.     ifactioncount 4 killit
  235. enda
  236.  
  237. action BARREL_DENTING  2 2 1 1 6
  238. action BARREL_DENTED   1
  239. action BARREL_DENTED2  2
  240.  
  241. move SPAWNED_BLOOD
  242.  
  243. actor NUKEBARRELDENTED WEAK
  244.     cactor NUKEBARREL
  245.     action BARREL_DENTED
  246. enda
  247.  
  248. actor NUKEBARRELLEAKED WEAK
  249.     cactor NUKEBARREL
  250.     action BARREL_DENTED2
  251. enda
  252.  
  253. actor NUKEBARREL MEDIUMSTRENGTH
  254.     ifsquished
  255.     {
  256.         debris SCRAP1 32
  257.         spawn BLOODPOOL
  258.         spawn OOZ
  259.         killit
  260.     }
  261.     fall
  262.     ifaction BARREL_DENTING
  263.     {
  264.         ifactioncount 2
  265.         {
  266.             debris SCRAP1 10
  267.             ifrnd 2 spawn BLOODPOOL
  268.             killit
  269.         }
  270.     }
  271.     else ifhitweapon
  272.     {
  273.         ifdead
  274.         {
  275.             sound VENT_BUST
  276.  
  277.             ifrnd 128
  278.                 spawn BLOODPOOL
  279.             action BARREL_DENTING
  280.         }
  281.         else
  282.         {
  283.             ifaction 0
  284.                 action BARREL_DENTED
  285.             else ifaction BARREL_DENTED
  286.             {
  287.                 action BARREL_DENTED2
  288.                 spawn BLOODPOOL
  289.             }
  290.             else ifaction BARREL_DENTED2
  291.                 action BARREL_DENTING
  292.         }
  293.     }
  294. enda
  295.  
  296. actor FIREBARREL
  297.     fall
  298.     ifcount 32
  299.     {
  300.         resetcount
  301.         ifpdistl 1480 ifp phigher
  302.         {
  303.             addphealth -1
  304.             palfrom 16 16
  305.             ifrnd 96 sound DUKE_LONGTERM_PAIN
  306.         }
  307.     }
  308.     ifhitweapon
  309.     {
  310.         sound VENT_BUST
  311.         debris SCRAP1 10
  312.         ifrnd 128 spawn BURNING
  313.         else spawn BURNING2
  314.         killit
  315.     }
  316. enda
  317.  
  318. action SHRINKERFRAMES 0 4 1 1 10
  319. actor SHRINKEREXPLOSION 0 SHRINKERFRAMES
  320.     ifactioncount 4 killit
  321. enda
  322.  
  323. action EXPLOSION_FRAMES 0 20 1 1  4
  324. actor EXPLOSION2 1 EXPLOSION_FRAMES
  325. //    ifspawnedby FIREEXT spritepal 1
  326.     ifactioncount 20 killit
  327. enda
  328.  
  329. actor EXPLOSION2BOT 1 EXPLOSION_FRAMES
  330.     ifactioncount 20 killit
  331. enda
  332.  
  333. action FFLAME_FR 0 16 1 1 1
  334. action FFLAME 0 1 1 1 1
  335.  
  336. actor FLOORFLAME 0 FFLAME_FR
  337.         ifaction FFLAME_FR
  338.         {
  339.                 shadeto -127
  340.                 ifpdistl 1024 hitradius 1024 WEAKEST WEAKEST WEAKEST WEAKEST
  341.                 ifactioncount 16
  342.                     action FFLAME
  343.         }
  344.         ifaction FFLAME ifrnd 4
  345.         {
  346.              action FFLAME_FR
  347.              sound CAT_FIRE
  348.              resetactioncount
  349.         }
  350.  
  351. enda
  352.  
  353.  
  354.  
  355. action ASATNSPIN   0 5 1 1 4
  356. action ASATSHOOTING -10 3 5 1 40
  357. action ASATWAIT 0 1 5 1 1
  358. move TURRVEL
  359.  
  360. actor ROTATEGUN ROTTURRETSTRENGTH ASATWAIT TURRVEL face_player
  361.  
  362.     ifaction ASATNSPIN
  363.         { ifactioncount 32 { action ASATWAIT move TURRVEL face_player } }
  364.     else ifaction ASATSHOOTING
  365.     {
  366.         ifactioncount 12 { ifrnd 32 action ASATWAIT }
  367.         ifcount 32 resetcount
  368.         else ifcount 16 { ifcount 17 { } else { sound PRED_ATTACK shoot FIRELASER } }
  369.         else ifcount 4 { ifcount 5 { } else { sound PRED_ATTACK shoot FIRELASER } }
  370.     }
  371.     else ifaction ASATWAIT
  372.         { ifactioncount 64 ifrnd 32 ifp palive ifcansee { action ASATSHOOTING move TURRVEL face_player } }
  373.     ifhitweapon { ifdead { addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit }
  374.         else { action ASATNSPIN debris SCRAP1 4 } move 0 }
  375.  
  376. enda
  377.  
  378. action RIP_F 0 8 1 1 1
  379. actor FORCERIPPLE 0 RIP_F
  380.     ifactioncount 8 killit
  381.     ifrnd 16 sound SHORT_CIRCUIT
  382. enda
  383.  
  384. action TRANSFOWARD 0  6  1  1  2
  385. action TRANSBACK   5  6  1 -1  2
  386. actor TRANSPORTERSTAR 0 TRANSFOWARD
  387.     ifaction TRANSFOWARD
  388.     {
  389.         ifactioncount 6
  390.             action TRANSBACK
  391.     }
  392.     else
  393.         ifactioncount 6 killit
  394. enda
  395.  
  396. action BEAMFOWARD  0  4  1  1  9
  397. actor TRANSPORTERBEAM 0 BEAMFOWARD
  398.     sizeto 32 64 sizeto 32 64 sizeto 32 64
  399.     ifactioncount 4 killit
  400. enda
  401.  
  402. state getcode
  403.     globalsound DUKE_GET
  404.     palfrom 16 0 32
  405.     ifrespawn
  406.     {
  407.         move RESPAWN_ACTOR_FLAG
  408.         cstat 32768
  409.     }
  410.     else killit
  411. ends
  412.  
  413. state randgetweapsnds
  414.     ifrnd 32 globalsound DUKE_GETWEAPON1
  415.     else ifrnd 32 globalsound DUKE_GETWEAPON2
  416.     else ifrnd 32 globalsound DUKE_GETWEAPON3
  417.     else ifrnd 32 globalsound DUKE_GETWEAPON4
  418.     else globalsound DUKE_GET
  419. ends
  420.  
  421. state getweaponcode
  422.  
  423.     state randgetweapsnds
  424.  
  425.     palfrom 32 0 32
  426.     ifrespawn
  427.     {
  428.         move RESPAWN_ACTOR_FLAG
  429.         cstat 32768
  430.     }
  431.     else killit
  432. ends
  433.  
  434. state respawnit
  435.     ifcount RESPAWNITEMTIME { spawn TRANSPORTERSTAR move 0 cstat 0 sound TELEPORTER }
  436. ends
  437.  
  438.  
  439. state quikget
  440.     globalsound DUKE_GET
  441.     palfrom 16 0 32 killit
  442. ends
  443.  
  444. state quikweaponget
  445.     state randgetweapsnds
  446.     palfrom 32 0 32 killit
  447. ends
  448.  
  449. actor STEROIDS
  450.     fall
  451.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  452.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE
  453.     ifpinventory GET_STEROIDS STEROID_AMOUNT ifcanseetarget
  454.     {
  455.         addinventory GET_STEROIDS STEROID_AMOUNT quote 37 state getcode
  456.     }
  457. enda
  458.  
  459. actor HEATSENSOR
  460.     fall
  461.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  462.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  463.     {
  464.         addinventory GET_HEATS HEAT_AMOUNT quote 101 state getcode
  465.     }
  466. enda
  467.  
  468. actor BOOTS
  469.     fall
  470.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  471.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BOOTS BOOT_AMOUNT
  472.         ifcanseetarget
  473.     {
  474.         addinventory GET_BOOTS BOOT_AMOUNT quote 6 state getcode
  475.     }
  476. enda
  477.  
  478. actor SHIELD
  479.     fall
  480.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  481.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SHIELD SHIELD_AMOUNT
  482.         ifcanseetarget
  483.     {
  484.         ifspawnedby PIGCOP
  485.         {
  486.             ifrnd 128 addinventory GET_SHIELD PIG_SHIELD_AMOUNT1
  487.             else addinventory GET_SHIELD PIG_SHIELD_AMOUNT2
  488.             quote 104
  489.             sound KICK_HIT palfrom 24 0 32 killit
  490.         }
  491.         else addinventory GET_SHIELD SHIELD_AMOUNT quote 38
  492.         ifspawnedby SHIELD state getcode
  493.         else state quikget
  494.     }
  495. enda
  496.  
  497. actor BODYSUIT
  498.     fall
  499.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  500.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BSUIT BODYSUIT_AMOUNT ifcanseetarget
  501.     {
  502.         addinventory GET_BSUIT BODYSUIT_AMOUNT quote 42 state getcode
  503.     }
  504. enda
  505.  
  506. actor AIRTANK
  507.     fall
  508.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  509.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_SCUBA SCUBA_AMOUNT ifcanseetarget
  510.     {
  511.         addinventory GET_SCUBA SCUBA_AMOUNT quote 39 state getcode
  512.     }
  513. enda
  514.  
  515. action HOLODUKE_FRAMES 0 4 1 1 8
  516. actor HOLODUKE 0 HOLODUKE_FRAMES
  517.     fall
  518.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  519.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_HOLODUKE HOLODUKE_AMOUNT ifcanseetarget
  520.     {
  521.         addinventory GET_HOLODUKE HOLODUKE_AMOUNT quote 51 state getcode
  522.     }
  523. enda
  524.  
  525. actor JETPACK
  526.     fall
  527.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  528.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_JETPACK JETPACK_AMOUNT ifcanseetarget
  529.     {
  530.         addinventory GET_JETPACK JETPACK_AMOUNT quote 41 state getcode
  531.     }
  532. enda
  533.  
  534. actor ACCESSCARD
  535.     fall
  536.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  537.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  538.     {
  539.         ifpinventory GET_ACCESS 0 break
  540.         addinventory GET_ACCESS 1
  541.         quote 43
  542.         state getcode
  543.     }
  544. enda
  545.  
  546. // test boss_recod
  547.  
  548.  
  549. actor AMMO
  550.     fall
  551.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  552.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  553.     {
  554.         addammo PISTOL_WEAPON PISTOLAMMOAMOUNT quote 65
  555.         ifspawnedby AMMO state getcode
  556.         else state quikget
  557.     }
  558. enda
  559.  
  560. actor SHOTGUNAMMO
  561.     fall
  562.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  563.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  564.     {
  565.         addammo SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 69
  566.         ifspawnedby SHOTGUNAMMO state getcode
  567.         else state quikget
  568.     }
  569. enda
  570.  
  571. actor AMMOLOTS
  572.     fall
  573.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  574.     else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  575.     {
  576.         addammo PISTOL_WEAPON 48 quote 65
  577.         ifspawnedby AMMOLOTS state getcode
  578.         else state quikget
  579.     }
  580. enda
  581.  
  582. actor FUELCAN
  583.     fall
  584.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  585.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  586.     {
  587.         addammo FLAMETHROWER_WEAPON FUELAMMOAMOUNT quote 66
  588.         ifspawnedby FUELCAN state getcode
  589.         else state quikget
  590.     }
  591. enda
  592.  
  593. actor CRYSTALAMMO
  594.     fall
  595.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  596.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  597.     {
  598.         addammo SHRINKER_WEAPON CRYSTALAMMOAMOUNT quote 78
  599.         ifspawnedby CRYSTALAMMO state getcode
  600.         else state quikget
  601.     }
  602. enda
  603.  
  604. actor BATTERYAMMO
  605.     fall
  606.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  607.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  608.     {
  609.         addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT quote 63
  610.         ifspawnedby BATTERYAMMO state getcode
  611.         else state quikget
  612.     }
  613. enda
  614.  
  615. actor RPGAMMO
  616.     fall
  617.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  618.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  619.     {
  620.         addammo RPG_WEAPON RPGAMMOBOX quote 64
  621.         ifspawnedby RPGAMMO state getcode
  622.         else state quikget
  623.     }
  624. enda
  625.  
  626. actor HBOMBAMMO
  627.     fall
  628.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  629.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  630.     {
  631.         addweapon HANDBOMB_WEAPON 0
  632.         addammo HANDBOMB_WEAPON HANDBOMBBOX
  633.  
  634.         quote 55
  635.         ifspawnedby HBOMBAMMO state getweaponcode
  636.         else state quikweaponget
  637.     }
  638. enda
  639.  
  640. actor RPGSPRITE
  641.     fall
  642.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  643.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  644.     {
  645.         addweapon RPG_WEAPON RPGAMMOBOX quote 56
  646.         ifspawnedby RPGSPRITE state getweaponcode
  647.         else state quikweaponget
  648.     }
  649. enda
  650.  
  651. actor SHOTGUNSPRITE
  652.     fall
  653.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  654.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  655.     {
  656.         ifspawnedby PIGCOP
  657.         {
  658.             addweapon SHOTGUN_WEAPON 0
  659.             ifrnd 64 addammo SHOTGUN_WEAPON 4
  660.             else ifrnd 64 addammo SHOTGUN_WEAPON 3
  661.             else ifrnd 64 addammo SHOTGUN_WEAPON 2
  662.             else addammo SHOTGUN_WEAPON 1
  663.         }
  664.         else addweapon SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 57
  665.         ifspawnedby SHOTGUNSPRITE state getweaponcode
  666.         else state quikweaponget
  667.     }
  668. enda
  669.  
  670.  
  671.  
  672. actor SIXPAK
  673.     fall
  674.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  675.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH ifcanseetarget
  676.     {
  677.         addphealth 30 quote 62
  678.         ifspawnedby SIXPAK state getcode
  679.         else state quikget
  680.     }
  681. enda
  682.  
  683. actor COLA
  684.     fall
  685.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  686.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH // ifcanseetarget
  687.     {
  688.         addphealth 10 quote 61
  689.         ifspawnedby COLA state getcode
  690.         else state quikget
  691.     }
  692. enda
  693.  
  694. actor ATOMICHEALTH
  695.     fall
  696.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  697.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  698.         ifphealthl MAXPLAYERATOMICHEALTH
  699.     {
  700.         addphealth 50 quote 19
  701.         ifspawnedby ATOMICHEALTH state getcode
  702.         else state quikget
  703.     }
  704. enda
  705.  
  706.  
  707.  
  708.  
  709. actor FIRSTAID
  710.     fall
  711.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  712.     else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6
  713.         ifpinventory GET_FIRSTAID FIRSTAID_AMOUNT
  714.     ifcanseetarget
  715.     {
  716.         addinventory GET_FIRSTAID FIRSTAID_AMOUNT quote 3 state getcode
  717.     }
  718. enda
  719.  
  720.  
  721. actor FIRSTGUNSPRITE
  722.     fall
  723.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  724.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  725.     {
  726.         addweapon TRIPBOMB_WEAPON 1
  727.         ifspawnedby TRIPBOMBSPRITE state getweaponcode
  728.         else state quikweaponget
  729.     }
  730. enda
  731.  
  732. actor TRIPBOMBSPRITE
  733.     fall
  734.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  735.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  736.     {
  737.         addweapon TRIPBOMB_WEAPON 1
  738.         quote 58
  739.         state getweaponcode
  740.     }
  741. enda
  742.  
  743. actor CHAINGUNSPRITE
  744.     fall
  745.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  746.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  747.     {
  748.         addweapon CHAINGUN_WEAPON 50 quote 54
  749.         ifspawnedby CHAINGUNSPRITE state getweaponcode
  750.         else state quikweaponget
  751.     }
  752. enda
  753.  
  754.  
  755.  
  756. actor SHRINKERSPRITE
  757.     fall
  758.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  759.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  760.     {
  761.         addweapon SHRINKER_WEAPON 10 quote 60
  762.         ifspawnedby SHRINKERSPRITE state getweaponcode
  763.         else state quikweaponget
  764.     }
  765. enda
  766.  
  767. actor FLAMETHROWERSPRITE
  768.     fall
  769.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  770.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  771.     {
  772.         addweapon FLAMETHROWER_WEAPON 48 quote 59
  773.         ifspawnedby FLAMETHROWERSPRITE state getweaponcode
  774.         else state quikweaponget
  775.     }
  776. enda
  777.  
  778. state firestate
  779.  
  780.     ifgapzl 16 break
  781.     ifpdistg 10240 break
  782.     ifinwater killit
  783.  
  784.     ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 32 32 }
  785.  
  786.     ifactor FIRE ifspawnedby FIRE break
  787.     else ifactor FIRE2 ifspawnedby FIRE2 break
  788.  
  789.     iffloordistl 128
  790.     {
  791.         ifcount 32 sizeto 8 8
  792.         ifcount 64 killit
  793.     }
  794.     else killit
  795.  
  796. ends
  797.  
  798. action FIRE_FRAMES     -1 14 1 1 1
  799. move FIREVELS
  800. actor FIRE WEAK FIRE_FRAMES FIREVELS state firestate enda
  801. actor FIRE2 WEAK FIRE_FRAMES FIREVELS state firestate enda
  802.  
  803. actor FECES
  804.     ifcount 24
  805.     {
  806.         ifpdistl RETRIEVEDISTANCE
  807.         {
  808.             spawn BLOODPOOL   // Will be brown
  809.             killit
  810.         }
  811.     }
  812.     else sizeto 32 32
  813. enda
  814.  
  815. state drop_ammo ifrnd SPAWNAMMOODDS spawn AMMO ends
  816. state drop_battery ifrnd SPAWNAMMOODDS spawn BATTERYAMMO ends
  817. state drop_fuel ifrnd SPAWNAMMOODDS spawn FUELCAN ends
  818. state drop_sgshells ifrnd SPAWNAMMOODDS spawn SHOTGUNAMMO ends
  819. state drop_shotgun ifrnd SPAWNAMMOODDS spawn SHOTGUNSPRITE ends
  820.  
  821. // Shotgun 1-2 shotgun blasts.
  822.  
  823. state standard_jibs
  824.     guts JIBS2 1
  825.     guts JIBS3 2
  826.     guts JIBS4 3
  827.     guts JIBS5 2
  828.     guts JIBS6 3
  829.     ifrnd 16 guts JIBS1 1                // spine
  830.  
  831.     ifrnd 96
  832.     {
  833.         ifrnd 32 globalsound JIBBED_ACTOR1
  834.         else ifrnd 42 globalsound JIBBED_ACTOR2
  835.         else ifrnd 52 globalsound JIBBED_ACTOR3
  836.         else ifrnd 62 globalsound JIBBED_ACTOR5
  837.         else ifrnd 72 globalsound JIBBED_ACTOR6
  838.         else ifrnd 82  globalsound JIBBED_ACTOR7
  839.         else ifrnd 92 globalsound JIBBED_ACTOR4
  840.     }
  841. //    else sound SQUISHED
  842. ends
  843.  
  844. state troop_body_jibs
  845.     ifrnd 64 guts HEADJIB1 1
  846.     ifrnd 64 guts LEGJIB1 2
  847.     ifrnd 64 guts ARMJIB1 1
  848.     ifrnd 48 spawn BLOODPOOL
  849. ends
  850.  
  851. state liz_body_jibs
  852. ifrnd 64 guts LIZMANHEAD1 1
  853.     ifrnd 64 guts LIZMANLEG1 2
  854.     ifrnd 64 guts LIZMANARM1 1
  855.     ifrnd 48 spawn BLOODPOOL
  856. ends
  857.  
  858. state delete_enemy killit ends
  859.  
  860.  
  861. action BLOODFRAMES 0 4 1 1 15
  862. actor BLOOD 0 BLOODFRAMES
  863.     sizeto 72 72 sizeto 72 72 sizeto 72 72
  864.     ifpdistg 3144 killit
  865.     ifactioncount 4 killit
  866. enda
  867.  
  868. action EGGOPEN1 1 1 1 1 4
  869. action EGGOPEN2 2 1 1 1 4
  870. action EGGOPEN3 2 1 1 1 4
  871.  
  872. actor EGG TOUGH
  873.     ifaction EGGOPEN1 ifactioncount 4 action EGGOPEN2
  874.     ifaction EGGOPEN2 ifactioncount 4 { spawn GREENSLIME action EGGOPEN3 }
  875.     ifhitweapon { ifdead { addkills 1 state standard_jibs state delete_enemy } else ifaction 0 action EGGOPEN1 }
  876. enda
  877.  
  878. actor KNEE KNEE_WEAPON_STRENGTH enda
  879. actor SPIT SPIT_WEAPON_STRENGTH enda
  880. actor CHAINGUN CHAINGUN_WEAPON_STRENGTH enda
  881. actor SHOTGUN SHOTGUN_WEAPON_STRENGTH enda
  882. actor FIRELASER FIRELASER_WEAPON_STRENGTH enda
  883. actor HEAVYHBOMB HANDBOMB_WEAPON_STRENGTH enda
  884. actor BOUNCEMINE BOUNCEMINE_WEAPON_STRENGTH enda
  885. actor MORTER MORTER_WEAPON_STRENGTH enda
  886. actor SHRINKSPARK SHRINKER_WEAPON_STRENGTH enda
  887. actor RPG RPG_WEAPON_STRENGTH enda
  888. actor THROWFLAME FLAMETHROWER_WEAPON_STRENGTH enda
  889. actor COOLEXPLOSION1 COOL_EXPLOSION_STRENGTH enda
  890. actor TRIPBOMB TRIPBOMB_STRENGTH enda
  891.  
  892. action WEAP2FRAMES 0  4  1  1  6
  893. actor SHOTSPARK1 PISTOL_WEAPON_STRENGTH WEAP2FRAMES
  894.     ifdead killit
  895.     ifactioncount 4 killit
  896.     else
  897.     {
  898.         ifactioncount 3 { ifinwater spawn WATERBUBBLE }
  899.         else ifcount 2 { } else ifonwater spawn WATERSPLASH2
  900.     }
  901. enda
  902.  
  903. state standard_pjibs
  904.     guts JIBS1 1
  905.     guts JIBS3 2
  906.     guts JIBS4 1
  907.     guts JIBS5 1
  908.     guts JIBS6 2
  909.     guts DUKETORSO 1
  910.     guts DUKELEG 2
  911.     guts DUKEGUN 1
  912.     ifrnd 16 money 1
  913. ends
  914.  
  915. move DUKENOTMOVING
  916. state handle_dead_dukes
  917.     fall
  918.     ifmove 0     // 1st time initializiation...
  919.     {
  920.         ifrnd 128 cstat 4
  921.         else cstat 0
  922.         move DUKENOTMOVING
  923.     }
  924.  
  925.     ifsquished
  926.     {
  927.         sound SQUISHED
  928.         spawn OOZ
  929.         killit
  930.     }
  931.     else ifcount 1024 ifpdistg 4096 killit
  932.     else
  933.     {
  934.         strength 0
  935.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  936.         {
  937.             state standard_jibs
  938.             killit
  939.         }
  940.     }
  941. ends
  942.  
  943. action PLYINGFRAMES 0 1 0 1 1
  944. actor DUKELYINGDEAD 0 PLYINGFRAMES
  945.     state handle_dead_dukes
  946. enda
  947.  
  948. action PSTAND       0   1   5   1    1
  949. action PEXPLODE     106   5   1   1   10
  950. action PEXPLODEAD   113   1   1
  951.  
  952. action PJPHOUVER    15   1   5   1
  953. action PWALK        20   4   5   1   16
  954. action PRUN         20   4   5   1   10
  955. action PWALKBACK    45   4   5  -1   16
  956. action PRUNBACK     45   4   5  -1   10
  957. action PJUMPING     50   4   5   1   30
  958. action PFALLING     65   1   5
  959. action PDUCKING     86   1   5
  960. action PCRAWLING    86   3   5   1   20
  961. action PAKICKING    40   2   5   1   25
  962. action PFLINTCHING  106  1   1   1   10
  963. action PTHROWNBACK  106  5   1   1   18
  964. action PLYINGDEAD   113  1   1
  965.  
  966. action PSWIMMINGGO   375   1   5   1   10
  967. action PSWIMMING     375   4   5   1   13
  968. action PSWIMMINGWAIT 395   1   5   1   13
  969. action PTREDWATER    395   2   5   1   17
  970.  
  971. // move PHITHARD   0 -32
  972. move PSTOPED
  973. move PSHRINKING // used as a var only
  974.  
  975. state check_dead_thrown_back
  976.     ifdead
  977.     {
  978.         strength 0
  979.         action PTHROWNBACK
  980. //        move PHITHARD geth getv
  981.     }
  982. ends
  983.  
  984. state check_pstandard
  985.     ifp pwalking action PWALK
  986.     else ifp pkicking action PAKICKING
  987.     else ifp pwalkingback action PWALKBACK
  988.     else ifp prunning action PRUN
  989.     else ifp prunningback action PRUNBACK
  990.     else ifp pjumping
  991.         action PJUMPING
  992.     else ifp pducking action PDUCKING
  993. ends
  994.  
  995. state random_wall_jibs
  996.     ifrnd 96 shoot BLOODSPLAT1
  997.     ifrnd 96 shoot BLOODSPLAT2
  998.     ifrnd 96 shoot BLOODSPLAT3
  999.     ifrnd 96 shoot BLOODSPLAT4
  1000.     ifrnd 96 shoot BLOODSPLAT1
  1001. ends
  1002.  
  1003. actor APLAYER 100 PSTAND
  1004.  
  1005.     ifaction 0 action PSTAND
  1006.     ifdead
  1007.     {
  1008.         ifsquished palfrom 32 63 63 63
  1009.         else fall
  1010.  
  1011.         ifactioncount 7 { move 0 } else ifactioncount 6
  1012.         {
  1013.             ifrnd 84 globalsound DUKE_KILLED1
  1014.             else ifrnd 108 globalsound DUKE_KILLED2
  1015.             else globalsound DUKE_KILLED3
  1016.         }
  1017.  
  1018.         ifaction PLYINGDEAD
  1019.         {
  1020.             ifactioncount 3 move PSTOPED
  1021.             quote 13
  1022.             ifhitspace
  1023.             {
  1024.                 action PSTAND
  1025.                 spawn DUKELYINGDEAD
  1026.                 resetplayer
  1027.             }
  1028.             break
  1029.         }
  1030.         else ifaction PTHROWNBACK
  1031.         {
  1032.             ifactioncount 5
  1033.             {
  1034.                 spawn BLOODPOOL
  1035.                 action PLYINGDEAD
  1036.             }
  1037.             else ifactioncount 1 move 0
  1038.             break
  1039.         }
  1040.         else ifaction PEXPLODEAD
  1041.         {
  1042.             quote 13
  1043.             ifhitspace
  1044.             {
  1045.                 action PSTAND
  1046.                 resetplayer
  1047.             }
  1048.             break
  1049.         }
  1050.         else ifaction PEXPLODE
  1051.         {
  1052.             ifactioncount 5
  1053.             {
  1054.                 action PEXPLODEAD
  1055.                 spawn BLOODPOOL
  1056.             }
  1057.             break
  1058.         }
  1059.  
  1060.         else ifp pshrunk
  1061.         {
  1062.             state standard_pjibs
  1063.             spawn BLOODPOOL
  1064.  
  1065.             sound SQUISHED
  1066.             cstat 32768                 // Hide the sprite
  1067.  
  1068.             action PLYINGDEAD
  1069.         }
  1070.  
  1071.         else
  1072.         {
  1073.             ifinwater
  1074.             {
  1075.                 action PLYINGDEAD
  1076.                 spawn WATERBUBBLE
  1077.                 spawn WATERBUBBLE
  1078.             }
  1079.             else
  1080.             {
  1081.                 action PEXPLODE
  1082.                 state standard_pjibs
  1083.                 cstat 32768
  1084.                 sound SQUISHED
  1085.             }
  1086.         }
  1087.         break
  1088.     }
  1089.     ifsquished
  1090.     {
  1091.         strength -1
  1092.         sound SQUISHED
  1093.         spawn OOZ
  1094.         break
  1095.     }
  1096.  
  1097.     ifp ponsteroids
  1098.     {
  1099.         ifp pstanding { }
  1100.         else spawn FRAMEEFFECT1
  1101.     }
  1102.  
  1103.     ifmove PSHRINKING
  1104.     {
  1105.         ifcount 32
  1106.         {
  1107.             ifcount SHRUNKDONECOUNT move 0
  1108.             else ifcount SHRUNKCOUNT
  1109.             {
  1110.                 sizeto 42 36
  1111.                 ifgapzl 24
  1112.                 {
  1113.                     strength 0
  1114.                     sound SQUISHED
  1115.                     palfrom 48 64
  1116.                     break
  1117.                 }
  1118.             }
  1119.             else ifp ponsteroids count SHRUNKCOUNT
  1120.         }
  1121.         else
  1122.         {
  1123.             ifp ponsteroids count SHRUNKCOUNT
  1124.             else { sizeto 8 9 spawn FRAMEEFFECT1 }
  1125.         }
  1126.     }
  1127.  
  1128.     else ifhitweapon
  1129.     {
  1130.         ifdead cstat 0 else sound DUKE_LONGTERM_PAIN
  1131.  
  1132.         ifstrength TOUGH
  1133.         {
  1134.             state headhitstate
  1135.             ifp pstanding action PFLINTCHING
  1136.  
  1137.         }
  1138.  
  1139.         ifwasweapon RPG
  1140.         {
  1141.             ifrnd 32 spawn BLOOD
  1142.             ifdead state standard_pjibs
  1143.             palfrom 48 52
  1144.             break
  1145.         }
  1146.         ifwasweapon RADIUSEXPLOSION
  1147.         {
  1148.             ifrnd 32 spawn BLOOD
  1149.             ifdead state standard_pjibs
  1150.             palfrom 48 52
  1151.             break
  1152.         }
  1153.         ifwasweapon FIREEXT
  1154.         {
  1155.             ifrnd 32 spawn BLOOD
  1156.             ifdead state standard_pjibs
  1157.             palfrom 48 52
  1158.             break
  1159.         }
  1160.  
  1161.  
  1162.         ifwasweapon SHRINKSPARK
  1163.         {
  1164.             palfrom 48 0 48
  1165.             move PSHRINKING // used as a var only.
  1166.             sound ACTOR_SHRINKING
  1167.             break
  1168.         }
  1169.  
  1170.         ifwasweapon SHOTSPARK1 palfrom 24 48
  1171.         else ifwasweapon COOLEXPLOSION1 palfrom 48 48 0 48
  1172.         else ifwasweapon KNEE palfrom 16 32
  1173.         else ifwasweapon FIRELASER palfrom 32 32
  1174.         else ifwasweapon THROWFLAME { quote 108 palfrom 32 64 ifrnd 16 spawn BURNING }
  1175.  
  1176.         state check_dead_thrown_back
  1177.         state random_wall_jibs
  1178.  
  1179.         break
  1180.     }
  1181.  
  1182.     ifaction PFLINTCHING
  1183.     {
  1184.         ifactioncount 2 action PSTAND
  1185.         break
  1186.     }
  1187.  
  1188.     ifinwater
  1189.     {
  1190.         ifaction PTREDWATER
  1191.         {
  1192.             ifp pwalking prunning action PSWIMMINGGO
  1193.         }
  1194.         else ifp pstanding pwalkingback prunningback action PTREDWATER
  1195.         else
  1196.         {
  1197.             ifaction PSWIMMING
  1198.             {
  1199.                 ifrnd 4 spawn WATERBUBBLE
  1200.                 ifactioncount 4
  1201.                     action PSWIMMINGWAIT
  1202.             }
  1203.             else ifaction PSWIMMINGWAIT
  1204.             {
  1205.                 ifactioncount 2
  1206.                     action PSWIMMINGGO
  1207.             }
  1208.             else ifaction PSWIMMINGGO
  1209.             {
  1210.                 ifactioncount 2
  1211.                     action PSWIMMING
  1212.             }
  1213.             else action PTREDWATER
  1214.         }
  1215.  
  1216.         ifrnd 4 spawn WATERBUBBLE // For effect
  1217.  
  1218.         break
  1219.     }
  1220.     else ifp pjetpack
  1221.     {
  1222.         ifaction PJPHOUVER
  1223.         {
  1224.             ifactioncount 4
  1225.                 resetactioncount
  1226.         }
  1227.         else action PJPHOUVER
  1228.         break
  1229.     }
  1230.     else
  1231.     {
  1232.         ifaction PTREDWATER action PSTAND
  1233.         ifaction PSWIMMING action PSTAND
  1234.         ifaction PSWIMMINGWAIT action PSTAND
  1235.         ifaction PSWIMMINGGO action PSTAND
  1236.         ifaction PJPHOUVER action PFALLING
  1237.     }
  1238.  
  1239.     ifaction PFALLING
  1240.     {
  1241.         ifp ponground
  1242.             action PSTAND
  1243.         else
  1244.         {
  1245.             ifp pfalling break
  1246.             else state check_pstandard
  1247.         }
  1248.     }
  1249.  
  1250.     ifaction PDUCKING
  1251.     {
  1252.         ifgapzl 48
  1253.         {
  1254.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1255.         }
  1256.         else ifp pducking
  1257.         {
  1258.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1259.         }
  1260.         else
  1261.         {
  1262.             ifp pstanding action PSTAND
  1263.             else state check_pstandard
  1264.         }
  1265.     }
  1266.  
  1267.     else ifaction PCRAWLING
  1268.     {
  1269.         ifgapzl 48
  1270.         {
  1271.             ifp pstanding action PCRAWLING
  1272.         }
  1273.         else ifp pducking
  1274.         {
  1275.             ifp pstanding action PDUCKING
  1276.         }
  1277.         else
  1278.         {
  1279.             ifp pstanding action PSTAND
  1280.             else state check_pstandard
  1281.         }
  1282.     }
  1283.     else ifgapzl 48 action PDUCKING
  1284.  
  1285.     else ifaction PJUMPING
  1286.     {
  1287.         ifp ponground action PSTAND
  1288.         else ifactioncount 4 ifp pfalling action PFALLING
  1289.     }
  1290.  
  1291.     ifp pfalling action PFALLING
  1292.     else ifaction PSTAND state check_pstandard
  1293.     else ifaction PAKICKING
  1294.     {
  1295.         ifactioncount 2 action PSTAND
  1296.         break
  1297.     }
  1298.     else ifaction PWALK
  1299.     {
  1300.         ifp pfalling action PFALLING
  1301.         else ifp pstanding action PSTAND
  1302.         else ifp prunning action PRUN
  1303.         else ifp pwalkingback action PWALKBACK
  1304.         else ifp prunningback action PRUNBACK
  1305.         else ifp pjumping
  1306.             action PJUMPING
  1307.         else ifp pducking action PDUCKING
  1308.     }
  1309.  
  1310.     else ifaction PRUN
  1311.     {
  1312.         ifp pstanding action PSTAND
  1313.         else ifp pwalking action PWALK
  1314.         else ifp pwalkingback action PWALKBACK
  1315.         else ifp prunningback action PRUNBACK
  1316.         else ifp pjumping
  1317.             action PJUMPING
  1318.         else ifp pducking action PDUCKING
  1319.     }
  1320.  
  1321.     else ifaction PWALKBACK
  1322.     {
  1323.         ifp pstanding action PSTAND
  1324.         else ifp pwalking action PWALK
  1325.         else ifp prunning action PRUN
  1326.         else ifp prunningback action PRUNBACK
  1327.         else ifp pjumping
  1328.             action PJUMPING
  1329.         else ifp pducking action PDUCKING
  1330.     }
  1331.  
  1332.     else ifaction PRUNBACK
  1333.     {
  1334.         ifp pstanding action PSTAND
  1335.         else ifp pwalking action PWALK
  1336.         else ifp prunning action PRUN
  1337.         else ifp pwalkingback action PWALKBACK
  1338.         else ifp pjumping
  1339.             action PJUMPING
  1340.         else ifp pducking action PDUCKING
  1341.     }
  1342. enda
  1343.  
  1344. state genericshrunkcode
  1345.     ifcount 32 { ifpdistl RETRIEVEDISTANCE pstomp }
  1346.     else { sizeto 9 8 spawn FRAMEEFFECT1 }
  1347. ends
  1348.  
  1349. actor ORGANTIC TURRETSTRENGTH
  1350.     ifcount 48 resetcount
  1351.     else { ifcount 32 sizeto 32 32 }
  1352.     else ifcount 16 { sizeto 48 18 ifpdistl 2048 { sound TURR_ATTACK addphealth -2 palfrom 32 16 } }
  1353.     ifhitweapon { ifdead { addkills 1 sound TURR_DYING guts JIBS5 10 state delete_enemy } sound TURR_PAIN break }
  1354.     ifrnd 1 soundonce TURR_ROAM
  1355. enda
  1356.  
  1357. state rf
  1358.     ifrnd 128 cstat 4
  1359.     else cstat 0
  1360. ends
  1361.  
  1362. //
  1363. //
  1364. //      TROOP/LIZTROOP CODE
  1365. //
  1366. //
  1367.  
  1368. action ATROOPSTAND       0    1    5    1    1
  1369. action ATROOPSTAYSTAND  -2    1    5    1    1
  1370. action ATROOPWALKING     0    4    5    1   12
  1371. action ATROOPWALKINGBACK 15   4    5   -1   12
  1372. action ATROOPRUNNING     0    4    5    1    8
  1373. action ATROOPSHOOT      35    1    5    1   30
  1374. action ATROOPJETPACK    40    1    5    1    1
  1375. action ATROOPJETPACKILL 40    2    5    1   50
  1376. action ATROOPFLINTCH    50    1    1    1    6
  1377. action ATROOPDYING      50    5    1    1   16
  1378. action ATROOPDEAD       54
  1379. action ATROOPPLAYDEAD   54
  1380. action ATROOPSUFFERDEAD 58    2    1   -4   24
  1381. action ATROOPSUFFERING  59    2    1    1   21
  1382. action ATROOPDUCK       64    1    5    1    3
  1383. action ATROOPDUCKSHOOT  64    2    5    1   25
  1384. action ATROOPABOUTHIDE  74    1    1    1   25
  1385. action ATROOPHIDE       79    1    1    1   25
  1386. action ATROOPREAPPEAR   74    1    1    1   25
  1387.  
  1388. move TROOPWALKVELS 72
  1389. move TROOPWALKVELSBACK -72
  1390. move TROOPJETPACKVELS 64 -84
  1391. move TROOPJETPACKILLVELS 192 -38
  1392. move TROOPRUNVELS 108
  1393. move TROOPSTOPPED
  1394. move DONTGETUP
  1395. move SHRUNKVELS 32
  1396.  
  1397. ai AITROOPSEEKENEMY  ATROOPWALKING   TROOPWALKVELS seekplayer
  1398. ai AITROOPSEEKPLAYER ATROOPWALKING   TROOPWALKVELS seekplayer
  1399. ai AITROOPFLEEING    ATROOPWALKING   TROOPWALKVELS fleeenemy
  1400. ai AITROOPFLEEINGBACK ATROOPWALKINGBACK   TROOPWALKVELSBACK face_player
  1401. ai AITROOPDODGE      ATROOPWALKING   TROOPRUNVELS  dodgebullet
  1402. ai AITROOPSHOOTING   ATROOPSHOOT     TROOPSTOPPED  face_player
  1403. ai AITROOPDUCKING    ATROOPDUCK      TROOPSTOPPED  face_player
  1404. ai AITROOPJETPACK    ATROOPJETPACK   TROOPJETPACKVELS seekplayer
  1405. ai AITROOPSHRUNK     ATROOPWALKING   SHRUNKVELS fleeenemy
  1406. ai AITROOPHIDE       ATROOPABOUTHIDE TROOPSTOPPED face_player
  1407.  
  1408. state troophidestate
  1409.     ifaction ATROOPREAPPEAR
  1410.     {
  1411.         ifactioncount 2 { sound TELEPORTER ai AITROOPSHOOTING cstat 257 }
  1412.         else { sizeto 41 40 sizeto 41 40 sizeto 41 40 sizeto 41 40 spawn FRAMEEFFECT1 }
  1413.     }
  1414.     else ifaction ATROOPWALKING
  1415.     {
  1416.         ifpdistl 2448 ifpdistg 1024
  1417.         {
  1418.             ifceilingdistl 48 break
  1419.             ifp pfacing break
  1420.  
  1421.             ifgapzl 48 { } else ifcanshoottarget { spawn TRANSPORTERSTAR action ATROOPREAPPEAR move 0 break }
  1422.         }
  1423.     }
  1424.     else ifaction ATROOPHIDE
  1425.     {
  1426.         ifactioncount 2
  1427.         {
  1428.             spawn TRANSPORTERSTAR
  1429.             sound TELEPORTER
  1430.             action ATROOPWALKING move TROOPWALKVELS face_player
  1431.             cstat 32768
  1432.         }
  1433.         else
  1434.         {
  1435.             sizeto 0 40
  1436.             sizeto 0 40
  1437.             sizeto 0 40
  1438.             sizeto 0 40
  1439.             spawn FRAMEEFFECT1
  1440.         }
  1441.     }
  1442.     else ifaction ATROOPABOUTHIDE ifactioncount 2 { action ATROOPHIDE cstat 0 }
  1443. ends
  1444.  
  1445.  
  1446. state troopgunnashoot
  1447.     ifp palive
  1448.     {
  1449.         ifpdistl 1024 ai AITROOPSHOOTING
  1450.         else ifactornotstayput
  1451.         {
  1452.             ifactioncount 12 ifrnd 16 ifcanshoottarget
  1453.             {
  1454.                 ifspritepal 21 ifpdistg 4096 ai AITROOPHIDE
  1455.                 else
  1456.                 {
  1457.                     ifpdistl 1100 ai AITROOPFLEEING
  1458.                     else
  1459.                     {
  1460.                         ifpdistl 4096 ifcansee ifcanshoottarget ai AITROOPSHOOTING
  1461.                         else { move TROOPRUNVELS seekplayer action ATROOPRUNNING }
  1462.                     }
  1463.                 }
  1464.             }
  1465.         }
  1466.         else ifcount 26 ifrnd 32 ai AITROOPSHOOTING
  1467.     }
  1468. ends
  1469.  
  1470. state troopseekstate
  1471.     state troopgunnashoot
  1472.     ifcansee
  1473.     {
  1474.         ifmove TROOPRUNVELS ifpdistl 1596 ai AITROOPDUCKING
  1475.         ifp phigher { ifceilingdistl 128 { } else ifactornotstayput ai AITROOPJETPACK break }
  1476.         else ifrnd 2 ifbulletnear { ifrnd 128 ai AITROOPDODGE else ai AITROOPDUCKING }
  1477.         ifrnd 16 ifspritepal 21 ifpdistg 1596 ai AITROOPHIDE
  1478.     }
  1479.     ifnotmoving { ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget ai AITROOPSHOOTING }
  1480.     ifrnd 1
  1481.     {
  1482.         ifrnd 128 soundonce PRED_ROAM
  1483.         else soundonce PRED_ROAM2
  1484.     }
  1485. ends
  1486.  
  1487. state troopduckstate
  1488.     ifaction ATROOPDUCK
  1489.         { ifactioncount 8 { ifp palive { ifrnd 128 action ATROOPDUCKSHOOT } else ifmove DONTGETUP break else ai AITROOPSEEKPLAYER } }
  1490.     else ifaction ATROOPDUCKSHOOT
  1491.     {
  1492.         ifcount 64
  1493.         {
  1494.             ifmove DONTGETUP resetcount
  1495.             else
  1496.             {
  1497.                 ifpdistl 1100
  1498.                     ai AITROOPFLEEING
  1499.                 else ai AITROOPSEEKPLAYER
  1500.             }
  1501.         }
  1502.         else ifactioncount 2 { ifcanshoottarget { sound PRED_ATTACK resetactioncount shoot FIRELASER } else ai AITROOPSEEKPLAYER }
  1503.     }
  1504. ends
  1505.  
  1506. state troopshootstate
  1507.     ifactioncount 2
  1508.     {
  1509.         ifcanshoottarget
  1510.         {
  1511.             shoot FIRELASER sound PRED_ATTACK resetactioncount
  1512.             ifrnd 128 ai AITROOPSEEKPLAYER
  1513.             ifcount 24
  1514.             {
  1515.                 ifrnd 96 ifpdistg 2048 ai AITROOPSEEKPLAYER
  1516.                 else
  1517.                 {
  1518.                     ifpdistg 1596 ai AITROOPFLEEING
  1519.                     else ai AITROOPFLEEINGBACK
  1520.                 }
  1521.             }
  1522.         }
  1523.         else ai AITROOPSEEKPLAYER
  1524.     }
  1525. ends
  1526.  
  1527. state troopfleestate
  1528.     ifactioncount 7
  1529.     {
  1530.         ifpdistg 3084 { ai AITROOPSEEKPLAYER break }
  1531.         else ifrnd 32 ifp palive ifcansee ifcanshoottarget { ifrnd 128 ai AITROOPDUCKING else ai AITROOPSHOOTING break }
  1532.     }
  1533.     ifnotmoving
  1534.     {
  1535.         ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget
  1536.             { ifrnd 128 ai AITROOPSHOOTING else ai AITROOPDUCKING }
  1537.     }
  1538. ends
  1539.  
  1540. state troopdying
  1541.     iffloordistl 32 { ifactioncount 5 { cstat 0 iffloordistl 8 sound THUD ifrnd 64 spawn BLOODPOOL state rf strength 0 move TROOPSTOPPED action ATROOPDEAD } break }
  1542.     else { state rf move 0 action ATROOPDYING }
  1543. ends
  1544.  
  1545. state checktroophit
  1546.     ifaction ATROOPSUFFERING { stopsound LIZARD_BEG sound PRED_DYING cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  1547.     ifdead
  1548.     {
  1549.         state drop_ammo
  1550.         state random_wall_jibs
  1551.         addkills 1
  1552.  
  1553.         ifwasweapon RPG { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1554.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1555.         else ifwasweapon THROWFLAME { spawn BURNING sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1556.         else { ifrnd 64 iffloordistl 32 { sound LIZARD_BEG spawn BLOODPOOL strength 0 move 0 action ATROOPSUFFERING break } action ATROOPDYING break }
  1557.         sound PRED_DYING
  1558.     }
  1559.     else
  1560.     {
  1561.         state random_wall_jibs
  1562.         sound PRED_PAIN
  1563.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AITROOPSHRUNK }
  1564.         else ifwasweapon THROWFLAME quote 14
  1565.         iffloordistl 32 ifrnd 96 action ATROOPFLINTCH
  1566.     }
  1567. ends
  1568.  
  1569. state troopjetpackstate
  1570.     ifaction ATROOPJETPACKILL
  1571.     {
  1572.         ifcansee ifactioncount 2
  1573.         {
  1574.             resetactioncount
  1575.             sound PRED_ATTACK
  1576.             shoot FIRELASER
  1577.         }
  1578.  
  1579.         ifp phigher ai AITROOPJETPACK
  1580.         else ifinwater ai AITROOPJETPACK
  1581.         ifcount 26 iffloordistl 32 ai AITROOPSEEKPLAYER
  1582.     }
  1583.     else ifcount 48 ifcansee
  1584.         { action ATROOPJETPACKILL move TROOPJETPACKILLVELS seekplayer }
  1585. ends
  1586.  
  1587. state checksquished
  1588.     ifsquished { addkills 1 sound SQUISHED state standard_jibs spawn OOZ state delete_enemy }
  1589. ends
  1590.  
  1591. state troopsufferingstate
  1592.     ifactioncount 2
  1593.     {
  1594.         ifrnd 16 spawn WATERDRIP
  1595.         ifactioncount 14 { stopsound LIZARD_BEG cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  1596.     }
  1597. ends
  1598.  
  1599. state troopshrunkstate
  1600.     ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } ai AITROOPSEEKENEMY }
  1601.     else ifcount SHRUNKCOUNT sizeto 48 40
  1602.     else state genericshrunkcode
  1603. ends
  1604.  
  1605. state troopcode fall
  1606.     ifinwater ifrnd 1 spawn WATERBUBBLE
  1607.     ifaction ATROOPSTAND { ifrnd 192 ai AITROOPSHOOTING else ai AITROOPSEEKPLAYER }
  1608.  
  1609.     ifinwater ifrnd 4 spawn WATERBUBBLE
  1610.     else ifaction ATROOPPLAYDEAD
  1611.     {
  1612.         ifhitweapon
  1613.         {
  1614.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1615.             break
  1616.         }
  1617.         else state checksquished
  1618.  
  1619.         ifcount PLAYDEADTIME { addkills -1 soundonce PRED_ROAM cstat 257 strength 1 ai AITROOPSHOOTING }
  1620.         else ifp pfacing resetcount
  1621.  
  1622.         break
  1623.     }
  1624.     else ifaction ATROOPDEAD
  1625.     {
  1626.         strength 0
  1627.         ifrespawn ifcount RESPAWNACTORTIME { spawn TRANSPORTERSTAR cstat 257 strength TROOPSTRENGTH ai AITROOPSEEKENEMY }
  1628.         ifhitweapon
  1629.         {
  1630.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1631.             break
  1632.         }
  1633.         else state checksquished
  1634.         break
  1635.     }
  1636.     else ifaction ATROOPSUFFERDEAD
  1637.     {
  1638.         ifactioncount 2
  1639.         {
  1640.             ifrnd 64 { resetcount action ATROOPPLAYDEAD }
  1641.             else { soundonce PRED_DYING action ATROOPDEAD }
  1642.         }
  1643.     }
  1644.     else ifaction ATROOPDYING { state troopdying break }
  1645.     else ifaction ATROOPSUFFERING
  1646.         { state troopsufferingstate ifhitweapon state checktroophit break }
  1647.     else ifaction ATROOPFLINTCH { ifactioncount 4 ai AITROOPSEEKENEMY }
  1648.     else
  1649.     {
  1650.         ifai AITROOPSEEKPLAYER state troopseekstate
  1651.         else ifai AITROOPJETPACK { state troopjetpackstate soundonce DUKE_JETPACK_IDLE }
  1652.         else ifai AITROOPSEEKENEMY state troopseekstate
  1653.         else ifai AITROOPSHOOTING state troopshootstate
  1654.         else ifai AITROOPFLEEING state troopfleestate
  1655.         else ifai AITROOPFLEEINGBACK state troopfleestate
  1656.         else ifai AITROOPDODGE state troopseekstate
  1657.         else ifai AITROOPDUCKING state troopduckstate
  1658.         else ifai AITROOPSHRUNK state troopshrunkstate
  1659.         else ifai AITROOPHIDE { state troophidestate break }
  1660.     }
  1661.  
  1662.     ifhitweapon state checktroophit else state checksquished
  1663. ends
  1664.  
  1665.  
  1666.  
  1667.  
  1668. actor LIZTROOPJETPACK TROOPSTRENGTH ai AITROOPJETPACK cactor LIZTROOP enda
  1669. actor LIZTROOPDUCKING TROOPSTRENGTH
  1670.     ai AITROOPDUCKING cactor LIZTROOP
  1671.     ifgapzl 48 move DONTGETUP
  1672. enda
  1673.  
  1674. actor LIZTROOPSHOOT TROOPSTRENGTH ATROOPSTAND ai AITROOPSHOOTING cactor LIZTROOP enda
  1675. actor LIZTROOPSTAYPUT TROOPSTRENGTH ATROOPSTAYSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  1676. actor LIZTROOPRUNNING TROOPSTRENGTH ATROOPSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  1677. actor LIZTROOPONTOILET TROOPSTRENGTH ifcount 24 { sound FLUSH_TOILET operate ai AITROOPSEEKPLAYER cactor LIZTROOP } enda
  1678.  
  1679. actor LIZTROOP TROOPSTRENGTH ATROOPSTAND state troopcode enda
  1680.  
  1681.  
  1682. action ALIZWALKING       0     4    5    1    15
  1683. action ALIZRUNNING       0     4    5    1    11
  1684. action ALIZTHINK         20    2    5    1    40
  1685. action ALIZSCREAM        30    1    5    1    2
  1686. action ALIZJUMP          40    4    5    1    16
  1687. action ALIZSHOOTING      70    2    5    1    20
  1688. action ALIZDYING         60    6    1    1    15
  1689. action ALIZLYINGDEAD     66    1
  1690.  
  1691. move LIZWALKVEL 72
  1692. move LIZRUNVEL 192
  1693. move LIZJUMPVEL  96 -84
  1694. move LIZSTOP
  1695.  
  1696. ai AILIZGETENEMY ALIZWALKING LIZWALKVEL seekplayer
  1697. ai AILIZDODGE ALIZRUNNING LIZRUNVEL dodgebullet
  1698. ai AILIZCHARGEENEMY ALIZRUNNING LIZRUNVEL face_player
  1699. ai AILIZFLEENEMY ALIZWALKING LIZWALKVEL fleeenemy
  1700. ai AILIZSHOOTENEMY ALIZSHOOTING LIZSTOP face_player
  1701. ai AILIZJUMPENEMY ALIZJUMP LIZJUMPVEL face_player
  1702. ai AILIZTHINK ALIZTHINK LIZSTOP face_player
  1703. ai AILIZSHRUNK ALIZWALKING SHRUNKVELS face_player
  1704. ai AILIZSPIT ALIZSCREAM LIZSTOP face_player
  1705. ai AILIZDYING ALIZDYING LIZSTOP face_player
  1706.  
  1707. state lizseekstate
  1708.  
  1709.     ifp palive ifcount 52 ifcansee ifcanshoottarget { ai AILIZSHOOTENEMY break }
  1710.  
  1711.     ifai AILIZCHARGEENEMY
  1712.     {
  1713.         ifpdistl 2048
  1714.         {
  1715.             ifrnd 128 ifcansee ifcanshoottarget ai AILIZSHOOTENEMY
  1716.             else ifgapzl 128 ifactornotstayput ai AILIZJUMPENEMY
  1717.         }
  1718.         break
  1719.     }
  1720.     ifrnd 32 ifnotmoving operate
  1721.     ifpdistg 4096 { ifrnd 32 ai AILIZCHARGEENEMY }
  1722.  
  1723.     ifrnd 1 ifbulletnear
  1724.     {
  1725.         ifgapzl 128 ai AILIZDODGE
  1726.         else ifactornotstayput { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
  1727.     }
  1728. ends
  1729.  
  1730. state lizshrunkstate
  1731.     ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy } ai AILIZGETENEMY }
  1732.     else ifcount SHRUNKCOUNT sizeto 48 40
  1733.     else state genericshrunkcode
  1734. ends
  1735.  
  1736. state lizfleestate
  1737.     ifnotmoving ai AILIZGETENEMY
  1738.     else ifrnd 16 ifpdistl 2048 ifp palive ifcansee ai AILIZSPIT
  1739. ends
  1740.  
  1741. state lizthinkstate
  1742.     ifrnd 8 soundonce CAPT_ROAM
  1743.     ifactioncount 3
  1744.     {
  1745.         ifrnd 32 ifp palive ifcansee ai AILIZSPIT
  1746.         else ifrnd 96 ai AILIZGETENEMY
  1747.     }
  1748.     else ifactioncount 2 ifrnd 8 spawn FECES
  1749.     ifrnd 1 ifbulletnear
  1750.     {
  1751.         ifgapzl 128 ai AILIZDODGE
  1752.         else { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
  1753.     }
  1754. ends
  1755.  
  1756. state lizshootstate
  1757.     ifcount 32 ifrnd 128 { ifpdistl 2048 ai AILIZFLEENEMY else { ifrnd 96 ai AILIZTHINK else ai AILIZGETENEMY } }
  1758.     ifactioncount 2 { ifcanshoottarget { sound CAPT_ATTACK shoot FLAMETHROWER resetactioncount } else ai AILIZTHINK }
  1759. ends
  1760.  
  1761. state checklizhit
  1762.     spawn BLOOD
  1763.     ifai AILIZSHRUNK
  1764.         { sound SQUISHED state standard_jibs state delete_enemy }
  1765.     ifdead
  1766.     {
  1767.         state drop_fuel
  1768.         addkills 1
  1769.  
  1770.         ifwasweapon RPG { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  1771.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  1772.         else ifwasweapon THROWFLAME { spawn BURNING sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  1773.         else { state rf ai AILIZDYING ifrnd 64 spawn BLOODPOOL }
  1774.         sound CAPT_DYING
  1775.     }
  1776.     else
  1777.     {
  1778.         sound CAPT_PAIN
  1779.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AILIZSHRUNK }
  1780.         else ifwasweapon THROWFLAME quote 14
  1781.         state random_wall_jibs
  1782.     }
  1783. ends
  1784.  
  1785. state lizjumpstate
  1786.     ifactioncount 6
  1787.     {
  1788.         ifpdistl 1024
  1789.             hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  1790.         else ai AILIZGETENEMY else ifactioncount 2 fall
  1791.     }
  1792. ends
  1793.  
  1794. state lizdyingstate
  1795.     ifaction ALIZLYINGDEAD
  1796.     {
  1797.         strength 0
  1798.         ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  1799.         ifcount RESPAWNACTORTIME ifrespawn
  1800.         {
  1801.             spawn TRANSPORTERSTAR cstat 257 strength LIZSTRENGTH ai AILIZGETENEMY
  1802.         }
  1803.     }
  1804.     else ifai AILIZDYING ifactioncount 6 { iffloordistl 8 sound THUD move LIZSTOP action ALIZLYINGDEAD }
  1805. ends
  1806.  
  1807. state lizdodgestate
  1808.     ifcount 32 ai AILIZGETENEMY
  1809. ends
  1810.  
  1811. actor LIZMANSTAYPUT LIZSTRENGTH ai AILIZGETENEMY cactor LIZMAN enda
  1812.  
  1813. actor LIZMAN LIZSTRENGTH
  1814.     state checksquished
  1815.     ifai 0 ai AILIZGETENEMY
  1816.     else ifaction ALIZLYINGDEAD { fall state lizdyingstate break }
  1817.     else ifai AILIZJUMPENEMY state lizjumpstate
  1818.     else
  1819.     {
  1820.         fall
  1821.         ifai AILIZGETENEMY state lizseekstate
  1822.         else ifai AILIZCHARGEENEMY state lizseekstate
  1823.         else ifai AILIZDODGE state lizdodgestate
  1824.         else ifai AILIZSHOOTENEMY state lizshootstate
  1825.         else ifai AILIZFLEENEMY state lizfleestate
  1826.         else ifai AILIZTHINK state lizthinkstate
  1827.         else ifai AILIZSHRUNK state lizshrunkstate
  1828.         else ifai AILIZDYING state lizdyingstate
  1829.         else ifai AILIZSPIT
  1830.             { ifcount 26 ai AILIZGETENEMY else ifcount 18 ifrnd 96 { shoot SPIT sound LIZARD_SPIT } }
  1831.     }
  1832.     ifhitweapon state checklizhit
  1833. enda
  1834.  
  1835. action SNAKEFRAMES     0   1   5   1   1
  1836. action SNAKESCREAM     5   1   5   1   1
  1837. move SNAKERUNVELS 244 256
  1838. move SNAKERUNUPVELS 244 -256
  1839. move SNAKEBACKWARDS -48 -64
  1840. move SNAKEWALK 72
  1841. move SNAKERISE 32 -16
  1842. move SNAKESTOPPED
  1843. ai AISNAKEGETE SNAKESCREAM SNAKERUNVELS seekplayer
  1844. ai AISNAKEGETUP SNAKESCREAM SNAKERUNUPVELS seekplayer
  1845. ai AISNAKEWALK SNAKEFRAMES SNAKEWALK seekplayer
  1846. ai AISNAKELOOK SNAKEFRAMES SNAKESTOPPED looking
  1847. ai AISNAKEPULLBACK SNAKEFRAMES SNAKEBACKWARDS face_player
  1848. ai AISNAKEHIT SNAKESCREAM SNAKEBACKWARDS face_player
  1849. ai AISNAKESHRUNK SNAKEFRAMES SHRUNKVELS fleeenemy
  1850.  
  1851. state checksnakehitstate
  1852.     state random_wall_jibs
  1853.     ifwasweapon SHRINKSPARK ai AISNAKESHRUNK
  1854.     else
  1855.     {
  1856.         ifdead { addkills 1 sound SNAK_DYING state standard_jibs state delete_enemy }
  1857.         else { sound SNAK_PAIN ai AISNAKEHIT }
  1858.     }
  1859. ends
  1860.  
  1861. state snakeshrunkstate
  1862.     ifcount 24 state delete_enemy
  1863.     else sizeto 1 1
  1864. ends
  1865.  
  1866. actor SNAKEDRONE SNAKESTRENGTH
  1867.     ifaction 0 ai AISNAKELOOK
  1868.     ifrnd 8 spawn WATERDRIP
  1869.  
  1870.     state checksquished
  1871.  
  1872.     ifai AISNAKELOOK
  1873.     {
  1874.         ifrnd 1 soundonce SNAK_ROAM
  1875.         ifactioncount 8 ifrnd 2
  1876.         {
  1877.             ifcansee
  1878.             {
  1879.                 ifcanshoottarget { sound SNAK_ATTACK1 ifp phigher ai AISNAKEGETUP else ai AISNAKEGETE }
  1880.                 else ai AISNAKEWALK
  1881.             }
  1882.             else ai AISNAKEWALK
  1883.         }
  1884.     }
  1885.     else ifai AISNAKEWALK
  1886.     {
  1887.         ifcansee { }
  1888.         ifrnd 32 ifnotmoving move SNAKERISE seekplayer
  1889.  
  1890.         ifcount 64
  1891.         {
  1892.             ifpdistl 4096 ifcanseetarget { ifp phigher ai AISNAKEGETUP else ai AISNAKEGETE }
  1893.             else resetcount
  1894.         }
  1895.     }
  1896.     else ifai AISNAKEGETE
  1897.     {
  1898.         ifcansee { }
  1899.         ifcount 64 ai AISNAKEPULLBACK
  1900.         ifpdistl 1024
  1901.         {
  1902.             sound SNAK_ATTACK2
  1903.             shoot SHOTSPARK1
  1904.             ai AISNAKEPULLBACK
  1905.         }
  1906.         ifnotmoving
  1907.             ifcount 16 ai AISNAKEPULLBACK
  1908.     }
  1909.     else ifai AISNAKEGETUP
  1910.     {
  1911.         ifcansee { }
  1912.         ifcount 64 ai AISNAKEPULLBACK
  1913.         ifpdistl 1024
  1914.         {
  1915.             sound SNAK_ATTACK2
  1916.             shoot SHOTSPARK1
  1917.             ai AISNAKEPULLBACK
  1918.         }
  1919.         ifnotmoving
  1920.             ifcount 16 ai AISNAKEPULLBACK
  1921.     }
  1922.     ifai AISNAKEPULLBACK { ifnotmoving ai AISNAKELOOK ifcount 32 ai AISNAKELOOK }
  1923.     else ifai AISNAKEHIT ifcount 8 ai AISNAKELOOK
  1924.     else ifai AISNAKESHRUNK state snakeshrunkstate
  1925.     ifhitweapon state checksnakehitstate
  1926. enda
  1927.  
  1928.  
  1929.  
  1930. action AJELLYWALK        0   3   5   1   15
  1931. action AJELLYSTAND       0   1   5   1   15
  1932. action AJELLYSCRATCH     0   4   5   1   15
  1933. action AJELLYHIT        30   1   1   1   10
  1934. action AJELLYSHOOT      20   1   5   1   10
  1935. action AJELLYDYING      30   8   1   1   17
  1936. action AJELLYDEAD       38   1   1   1    1
  1937.  
  1938. move JELLYWALKVELS 96 -30
  1939. move JELLYUPVELS 96 -70
  1940. move JELLYSTOPPED 0 -30
  1941. move JELLYINWATER 96 24
  1942.  
  1943. ai AIJELLYGETENEMY AJELLYWALK JELLYWALKVELS seekplayer
  1944. ai AIJELLYSHOOTENEMY AJELLYSHOOT JELLYSTOPPED face_player
  1945. ai AIJELLYSCRATCHENEMY AJELLYSCRATCH JELLYSTOPPED face_player
  1946. ai AIJELLYHIT AJELLYHIT JELLYSTOPPED face_player
  1947. ai AIJELLYSHRUNK AJELLYWALK SHRUNKVELS face_player
  1948. ai AIJELLYDYING AJELLYDYING JELLYSTOPPED face_player
  1949.  
  1950. state jellygetenemystate
  1951.  
  1952.     ifcansee
  1953.     {
  1954.         ifactioncount 32 { ifrnd 48 ifcansee ifcanshoottarget { sound OCTA_ATTACK1 ai AIJELLYSHOOTENEMY break } }
  1955.         else
  1956.         {
  1957.             ifpdistl 1024 ai AIJELLYSCRATCHENEMY
  1958.             sizeto 40 40
  1959.         }
  1960.     }
  1961.  
  1962. ends
  1963.  
  1964. state jellyscratchenemystate
  1965.     ifpdistg 1280 ai AIJELLYGETENEMY
  1966.     else ifcount 32 { resetcount sound OCTA_ATTACK2 addphealth JELLYSCRATCHINGPLAYER }
  1967. ends
  1968.  
  1969. state jellyshootenemystate
  1970.     ifcount 25 { ifcount 27 ai AIJELLYGETENEMY }
  1971.     else ifcount 24 shoot COOLEXPLOSION1
  1972.     else
  1973.     {
  1974.         ifactioncount 6 resetactioncount
  1975.         else ifactioncount 3 { shadeto -127 shadeto -127 shadeto -127 shadeto -127 }
  1976.         else { shadeto 127 shadeto 127 shadeto 127 shadeto 127 }
  1977.     }
  1978. ends
  1979.  
  1980. state checkjellyhitstate
  1981.     ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIJELLYSHRUNK }
  1982.     else
  1983.     {
  1984.         ifdead
  1985.         {
  1986.             addkills 1
  1987.             ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  1988.             else ifwasweapon THROWFLAME { sound SQUISHED spawn BURNING state standard_jibs state delete_enemy }
  1989.             else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  1990.             else { state rf ai AIJELLYDYING }
  1991.             sound OCTA_DYING
  1992.         }
  1993.         else
  1994.         {
  1995.             ifwasweapon RPG
  1996.             {
  1997.                 sound OCTA_DYING addkills 1
  1998.                 state standard_jibs
  1999.                 killit
  2000.             }
  2001.             ifwasweapon THROWFLAME quote 14
  2002.             sound OCTA_PAIN spawn BLOOD
  2003.             ifrnd 64 ai AIJELLYHIT
  2004.  
  2005.         }
  2006.     }
  2007.     state random_wall_jibs
  2008. ends
  2009.  
  2010. state jellyshrunkstate
  2011.     ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
  2012.     else ifcount SHRUNKCOUNT sizeto 48 40
  2013.     else state genericshrunkcode
  2014. ends
  2015.  
  2016. state jellydyingstate
  2017.     ifactioncount 8 { ifrnd 64 spawn BLOODPOOL move JELLYSTOPPED action AJELLYDEAD break }
  2018.     else ifactioncount 5 { } else ifactioncount 4 iffloordistl 8 sound THUD
  2019. ends
  2020.  
  2021. actor JELLYFISHSTAYPUT JELLYSTRENGTH ai AIJELLYGETENEMY cactor JELLYFISH enda
  2022.  
  2023. actor JELLYFISH JELLYSTRENGTH fall
  2024.  
  2025.     state checksquished
  2026.  
  2027.     ifai 0 ai AIJELLYGETENEMY
  2028.     else ifaction AJELLYDEAD
  2029.     {
  2030.         strength 0
  2031.         ifcount RESPAWNACTORTIME ifrespawn
  2032.             { addkills -1 spawn TRANSPORTERSTAR cstat 257 strength JELLYSTRENGTH ai AIJELLYGETENEMY }
  2033.         ifhitweapon ifwasweapon RADIUSEXPLOSION { state standard_jibs killit }
  2034.         break
  2035.     }
  2036.     else
  2037.     {
  2038.         ifrnd 1 soundonce OCTA_ROAM
  2039.  
  2040.         ifai AIJELLYGETENEMY state jellygetenemystate
  2041.         else ifai AIJELLYHIT { ifcount 8 ai AIJELLYSHOOTENEMY }
  2042.         else ifai AIJELLYDYING { state jellydyingstate break }
  2043.         else ifai AIJELLYSCRATCHENEMY state jellyscratchenemystate
  2044.         else ifai AIJELLYSHOOTENEMY state jellyshootenemystate
  2045.         else ifai AIJELLYSHRUNK state jellyshrunkstate
  2046.  
  2047.         ifmove JELLYUPVELS { } else ifp phigher move JELLYUPVELS seekplayer
  2048.         else ifmove JELLYINWATER { } else ifinwater move JELLYINWATER seekplayer
  2049.  
  2050.         ifhitweapon state checkjellyhitstate
  2051.     }
  2052. enda
  2053.  
  2054. action APIGWALK         0  4 5 1 20
  2055. action APIGRUN          0  4 5 1 11
  2056. action APIGSHOOT        30 2 5 1 58
  2057. action APIGCOCK         25 1 5 1 16
  2058. action APIGSTAND        30 1 5 1 1
  2059. action APIGDIVE         40 2 5 1 40
  2060. action APIGDIVESHOOT    45 2 5 1 58
  2061. action APIGDYING        55 5 1 1 15
  2062. action APIGHIT          55 1 1 1 10
  2063. action APIGDEAD         60 1 1 1 1
  2064.  
  2065. move PIGWALKVELS 72
  2066. move PIGRUNVELS 108
  2067. move PIGSTOPPED
  2068.  
  2069. ai AIPIGSEEKENEMY APIGWALK PIGWALKVELS seekplayer
  2070. ai AIPIGSHOOTENEMY APIGSHOOT PIGSTOPPED face_player
  2071. ai AIPIGFLEEENEMY APIGWALK PIGWALKVELS fleeenemy
  2072. ai AIPIGSHOOT APIGSHOOT PIGSTOPPED face_player
  2073. ai AIPIGDODGE APIGRUN PIGRUNVELS dodgebullet
  2074. ai AIPIGCHARGE APIGRUN PIGRUNVELS seekplayer
  2075. ai AIPIGDIVING APIGDIVE PIGSTOPPED face_player
  2076. ai AIPIGDYING APIGDYING PIGSTOPPED face_player
  2077. ai AIPIGSHRINK APIGWALK SHRUNKVELS fleeenemy
  2078. ai AIPIGHIT APIGHIT PIGSTOPPED face_player
  2079.  
  2080. state pigseekenemystate
  2081.  
  2082.     ifai AIPIGCHARGE
  2083.     {
  2084.         ifcansee ifpdistl 3084
  2085.         {
  2086.             ifnotmoving ai AIPIGSEEKENEMY
  2087.             else ai AIPIGDIVING
  2088.         }
  2089.         break
  2090.     }
  2091.     else iffloordistl 32
  2092.     {
  2093.         ifpdistg 4096 { ifactornotstayput ai AIPIGCHARGE }
  2094.         ifrnd 8 { ifbulletnear ai AIPIGDODGE }
  2095.     }
  2096.  
  2097.     ifrnd 128 ifcansee
  2098.     {
  2099.         ifai AIPIGDODGE { ifcount 32 ai AIPIGCHARGE break }
  2100.         iffloordistl 32
  2101.         {
  2102.             ifpdistl 1024 ifp palive ifcanshoottarget
  2103.                 { ai AIPIGSHOOTENEMY break }
  2104.             ifcount 48 { ifrnd 8 ifp palive ifcanshoottarget { ifrnd 192 ai AIPIGSHOOTENEMY else ai AIPIGDIVING break } }
  2105.         }
  2106.     }
  2107. ends
  2108.  
  2109. state pigshootenemystate
  2110. //    ifcansee
  2111.     {
  2112.         ifcount 12 { } else ifcount 11
  2113.         {
  2114.             ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2115.             else ai AIPIGSEEKENEMY
  2116.         }
  2117.         ifcount 25 { } else ifcount 24 { action APIGCOCK sound SHOTGUN_COCK }
  2118.         ifcount 48 { } else ifcount 47
  2119.         {
  2120.             ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2121.             else ai AIPIGSEEKENEMY
  2122.         }
  2123.         ifcount 60 { } else ifcount 59 { action APIGCOCK sound SHOTGUN_COCK }
  2124.         ifcount 72
  2125.         {
  2126.             ifrnd 64 resetcount
  2127.             else
  2128.             {
  2129.                 ifpdistl 768 ai AIPIGFLEEENEMY
  2130.                 else ai AIPIGSEEKENEMY
  2131.             }
  2132.         }
  2133.         ifaction APIGCOCK ifactioncount 2 action APIGSHOOT
  2134.     }
  2135.     else ai AIPIGSEEKENEMY
  2136. ends
  2137.  
  2138. state pigfleeenemystate
  2139.     ifactioncount 8 ai AIPIGSEEKENEMY
  2140.     else ifnotmoving ai AIPIGSEEKENEMY
  2141. ends
  2142.  
  2143. state pigdivestate
  2144.     ifaction APIGDIVESHOOT
  2145.     {
  2146.         ifcansee
  2147.         {
  2148.             ifcount 12 { } else ifcount 11
  2149.             {
  2150.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2151.                 else ai AIPIGSEEKENEMY
  2152.             }
  2153.             ifcount 25 { } else ifcount 24 { sound SHOTGUN_COCK }
  2154.             ifcount 48 { } else ifcount 47
  2155.             {
  2156.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2157.                 else ai AIPIGSEEKENEMY
  2158.             }
  2159.             ifcount 60 { } else ifcount 59
  2160.             {
  2161.                 sound SHOTGUN_COCK
  2162.                 ifgapzl 32 ai AIPIGDIVING
  2163.                 else
  2164.                 {
  2165.                     ifpdistl 4096 ai AIPIGFLEEENEMY
  2166.                     else ai AIPIGSEEKENEMY
  2167.                 }
  2168.             }
  2169.         }
  2170.         else ifgapzl 32 ai AIPIGDIVING else ai AIPIGSEEKENEMY
  2171.     }
  2172.     else ifactioncount 2 ifp palive { resetcount action APIGDIVESHOOT }
  2173. ends
  2174.  
  2175. state checkpighitstate
  2176.     spawn BLOOD
  2177.     ifdead
  2178.     {
  2179.         addkills 1
  2180.         state random_wall_jibs
  2181.         ifrnd 16 spawn SHIELD else state drop_shotgun
  2182.         ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2183.         else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2184.         else ifwasweapon THROWFLAME spawn BURNING
  2185.  
  2186.         ai AIPIGDYING sound PIG_DYING
  2187.     }
  2188.     else
  2189.     {
  2190.         sound PIG_PAIN
  2191.         state random_wall_jibs
  2192.         ifwasweapon SHRINKSPARK ai AIPIGSHRINK
  2193.         else ifwasweapon THROWFLAME quote 14
  2194.         else ifrnd 64 ai AIPIGHIT
  2195.         else ifrnd 64 ai AIPIGSHOOTENEMY
  2196.         else ifrnd 64 { ai AIPIGDIVING action APIGDIVESHOOT }
  2197.     }
  2198. ends
  2199.  
  2200. state pigshrinkstate
  2201.     ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } ai AIPIGSEEKENEMY }
  2202.     else ifcount SHRUNKCOUNT sizeto 48 40
  2203.     else state genericshrunkcode
  2204. ends
  2205.  
  2206. state pigdyingstate
  2207.     ifactioncount 5 { ifrnd 64 spawn BLOODPOOL state rf iffloordistl 8 sound THUD action APIGDEAD move PIGSTOPPED break }
  2208. ends
  2209.  
  2210.  
  2211.  
  2212. actor PIGCOPDIVE PIGCOPSTRENGTH ai AIPIGDIVING action APIGDIVESHOOT cactor PIGCOP enda
  2213. actor PIGCOPSTAYPUT PIGCOPSTRENGTH ai AIPIGSEEKENEMY cactor PIGCOP enda
  2214. actor PIGCOP PIGCOPSTRENGTH APIGSTAND fall
  2215.     state checksquished
  2216.     ifaction APIGSTAND ai AIPIGSEEKENEMY
  2217.     else ifaction APIGDEAD
  2218.     {
  2219.         ifrespawn ifcount RESPAWNACTORTIME
  2220.             { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH ai AIPIGSEEKENEMY }
  2221.         else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  2222.     }
  2223.     else ifai AIPIGDYING state pigdyingstate
  2224.     else ifai AIPIGHIT { ifactioncount 3 ai AIPIGSEEKENEMY }
  2225.     else ifai AIPIGSHRINK state pigshrinkstate
  2226.     else
  2227.     {
  2228.         ifai AIPIGSEEKENEMY state pigseekenemystate
  2229.         else ifai AIPIGDODGE state pigseekenemystate
  2230.         else ifai AIPIGSHOOTENEMY state pigshootenemystate
  2231.         else ifai AIPIGFLEEENEMY state pigfleeenemystate
  2232.         else ifai AIPIGDIVING state pigdivestate
  2233.         else ifai AIPIGCHARGE state pigseekenemystate
  2234.         ifhitweapon state checkpighitstate
  2235.         ifrnd 1
  2236.         {
  2237.             ifrnd 32 soundonce PIG_ROAM
  2238.             else ifrnd 64 soundonce PIG_ROAM2
  2239.             else soundonce PIG_ROAM3
  2240.         }
  2241.     }
  2242. enda
  2243.  
  2244. action ABOSSWALK                0  6  5  1  12
  2245. action ABOSSRUN                 0  6  5  1  5
  2246. action ABOSSSHOOT               30 2  5  1  4
  2247. action ABOSSLOB                 40 2  5  1  35
  2248. action ABOSS1DYING              60 5  1  1  50
  2249. action BOSS1FLINTCH             60 1  1  1  1
  2250. action ABOSS1DEAD               65
  2251.  
  2252. move BOSSWALKVELS 208
  2253. move BOSSRUNVELS 296
  2254. move BOSSSTOPPED
  2255.  
  2256. ai AIBOSSSEEKENEMY ABOSSWALK BOSSWALKVELS seekplayer
  2257. ai AIBOSSRUNENEMY ABOSSRUN BOSSRUNVELS face_player
  2258. ai AIBOSSFLEEENEMY ABOSSWALK BOSSWALKVELS fleeenemy
  2259. ai AIBOSSSHOOTENEMY ABOSSSHOOT BOSSSTOPPED face_player
  2260. ai AIBOSSLOBBED ABOSSLOB BOSSSTOPPED face_player
  2261. ai AIBOSSDYING ABOSS1DYING BOSSSTOPPED face_player
  2262.  
  2263. state bossfleeenemy
  2264.     ifcount 16 ifpdistl 1024 ifp palive ifcansee ifcanshoottarget ai AIBOSSSHOOTENEMY
  2265.     ifcount 32 ai AIBOSSSEEKENEMY
  2266. ends
  2267.  
  2268. state bossrunenemystate
  2269.     ifpdistl 2048 { ifp palive ai AIBOSSSHOOTENEMY break }
  2270.     else ifcansee { ifactioncount 6 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSSSEEKENEMY } }
  2271.     else ai AIBOSSSEEKENEMY
  2272. ends
  2273.  
  2274. state bossseekenemystate
  2275.     ifrnd 2 { ifactor BOSS1 soundonce BOS1_ROAM else soundonce BOS3_ROAM }
  2276.     else ifactioncount 6 { resetactioncount sound BOS1_WALK }
  2277.  
  2278.     ifpdistl 2548 ifp palive { ai AIBOSSSHOOTENEMY break }
  2279.  
  2280.     ifcansee ifcount 32
  2281.     {
  2282.         ifrnd 32 { ifp palive ifcanshoottarget ai AIBOSSSHOOTENEMY }
  2283.         else ifpdistg 2548 ifrnd 192
  2284.             ifcanshoottarget
  2285.             {
  2286.                 ifrnd 64 ai AIBOSSRUNENEMY
  2287.                 else ai AIBOSSLOBBED
  2288.             }
  2289.     }
  2290.  
  2291. ends
  2292.  
  2293. state bossdyingstate
  2294.   ifaction ABOSS1DEAD break
  2295.   ifactioncount 5 { iffloordistl 8 sound THUD action ABOSS1DEAD endoflevel 52 }
  2296. ends
  2297.  
  2298. state bosslobbedstate
  2299.     ifcansee
  2300.     {
  2301.         ifactioncount 2
  2302.         {
  2303.             resetactioncount
  2304.             ifactor BOSS1 sound BOS1_ATTACK2
  2305.             else sound BOS3_ATTACK2
  2306.             shoot MORTER
  2307.         }
  2308.         else ifcount 64 ifrnd 16 ai AIBOSSSEEKENEMY
  2309.     }
  2310.     else ai AIBOSSSEEKENEMY
  2311.  
  2312. ends
  2313.  
  2314. state bossshootenemy
  2315.     ifcount 72 ai AIBOSSSEEKENEMY
  2316.     else ifaction ABOSSSHOOT ifactioncount 2
  2317.     {
  2318.         ifactor BOSS1 sound BOS1_ATTACK1 else sound BOS3_ATTACK1
  2319.         shoot SHOTSPARK1 shoot SHOTSPARK1 shoot SHOTSPARK1 resetactioncount
  2320.     }
  2321. ends
  2322.  
  2323. state checkbosshitstate
  2324.     ifrnd 8 spawn BLOODPOOL
  2325.     ifdead { addkills 1 ifactor BOSS1 globalsound DUKE_TALKTOBOSSFALL sound BOS1_DYING else sound BOS3_DYING ai AIBOSSDYING }
  2326.     else
  2327.     {
  2328.         ifactor BOSS1 sound BOS1_PAIN else sound BOS3_PAIN
  2329.  
  2330.         debris SCRAP1 1
  2331.         guts JIBS6 1
  2332.         ifwasweapon THROWFLAME quote 14
  2333.         ifrnd 32 { action BOSS1FLINTCH move 0 }
  2334.     }
  2335. ends
  2336.  
  2337. state bosscode
  2338.     ifai 0 ai AIBOSSRUNENEMY
  2339.     else ifaction BOSS1FLINTCH { ifactioncount 3 ai AIBOSSSHOOTENEMY }
  2340.     else ifai AIBOSSSEEKENEMY state bossseekenemystate
  2341.     else ifai AIBOSSRUNENEMY state bossrunenemystate
  2342.     else ifai AIBOSSFLEEENEMY state bossfleeenemy
  2343.     else ifai AIBOSSSHOOTENEMY state bossshootenemy
  2344.     else ifai AIBOSSLOBBED state bosslobbedstate
  2345.  
  2346.     ifai AIBOSSDYING state bossdyingstate
  2347.  
  2348.     ifhitweapon state checkbosshitstate
  2349. ends
  2350.  
  2351. actor BOSS1STAYPUT BOSS1STRENGTH cactor BOSS1 enda
  2352. actor BOSS1 BOSS1STRENGTH fall state bosscode enda
  2353. actor BOSS3 BOSS3STRENGTH fall state bosscode enda
  2354.  
  2355. action AFATBREETH  0  3  5  1  40
  2356. action AFATSPIN   25  3  1  1  10
  2357. action AFATGET     0  3  5  1  30
  2358. action AFATSHOOT  15  2  5  1  50
  2359. action AFATDYING  30  8  1  1  12
  2360. action AFATDEAD   38  1  1  1  1
  2361.  
  2362. move FATGETVELS 96
  2363. move FATSTOPPED
  2364.  
  2365. ai AIFATWAIT AFATBREETH FATSTOPPED face_player
  2366. ai AIFATGET AFATGET FATGETVELS face_player
  2367. ai AIFATSHOOT AFATSHOOT FATSTOPPED face_player
  2368. ai AIFATSPIN AFATSPIN FATGETVELS face_player
  2369. ai AIFATDYING AFATDYING FATSTOPPED face_player
  2370.  
  2371. actor FATGUY FATGUYSTRENGTH
  2372.  
  2373.     fall
  2374.     state checksquished
  2375.     ifai 0 ai AIFATWAIT
  2376.     else ifai AIFATWAIT { ifcount 64 { ifrnd 92 ai AIFATGET else ai AIFATSHOOT } }
  2377.     else ifai AIFATSHOOT
  2378.     {
  2379.         ifcount 32 { ifrnd 32 ai AIFATWAIT }
  2380.         else { ifactioncount 2 { sound COMM_ATTACK shoot RPG resetactioncount } }
  2381.     }
  2382.     else ifai AIFATDYING
  2383.     {
  2384.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  2385.             { sound SQUISHED state standard_jibs state delete_enemy }
  2386.         ifaction AFATDEAD break
  2387.         strength 0
  2388.         ifactioncount 8 { iffloordistl 8 sound THUD cstat 0 action AFATDEAD }
  2389.         break
  2390.     }
  2391.     else ifai AIFATGET { ifnotmoving ifrnd 32 operate ifpdistl 1596 { sound COMM_SPIN ai AIFATSPIN } }
  2392.     else ifai AIFATSPIN
  2393.     {
  2394.         soundonce COMM_SPIN
  2395.         ifcount 16 ifpdistl 1024 { addphealth CAPTSPINNINGPLAYER sound DUKE_GRUNT palfrom 32 16 resetcount }
  2396.         ifactioncount 32 ai AIFATWAIT
  2397.         ifnotmoving ifrnd 32 operate
  2398.  
  2399.     }
  2400.     ifhitweapon { ifdead { addkills 1 sound COMM_DYING ai AIFATDYING } else sound COMM_PAIN }
  2401.     ifrnd 1 soundonce COMM_ROAM
  2402. enda
  2403.  
  2404. move DUMMYWALK 144
  2405. move DUMMYSTOP
  2406. action ADUMMYDUKEWALK    0    4    5    1    20
  2407. action ADUMMYDUKESTAND -20    0    5    1    1
  2408. action ADUMMYDUKESHOOT -20    1    5    1    10
  2409. ai AIDUMMYFINDDUKE   ADUMMYDUKEWALK DUMMYWALK seekplayer
  2410. ai AIDUMMYHIDEDUKE   ADUMMYDUKEWALK DUMMYWALK seekplayer
  2411. ai AIDUMMYFLEEDUKE   ADUMMYDUKEWALK DUMMYWALK fleeplayer
  2412. ai AIDUMMYSHOOTDUKE  ADUMMYDUKESHOOT DUMMYSTOP face_player
  2413.  
  2414. state dummyshootstate
  2415.     ifactioncount 2 { resetactioncount shoot CHAINGUN }
  2416.     ifcount 48 { ifcansee { ifrnd 128 { cstat 32768 spawn TRANSPORTERSTAR ai AIDUMMYHIDEDUKE } else ai AIDUMMYFINDDUKE } else ai 0 }
  2417. ends
  2418.  
  2419. state dummyfindstate
  2420.     ifcansee ifpdistl 768 ai AIDUMMYSHOOTDUKE
  2421.     ifrnd 32 ifcount 64 ifcanseetarget ai AIDUMMYSHOOTDUKE
  2422. ends
  2423.  
  2424. state dummyfleestate
  2425.     ifcount 4 ifpdistl 1228 ifcanseetarget ai AIDUMMYSHOOTDUKE
  2426.     ifcount 32 ifcanseetarget ai AIDUMMYSHOOTDUKE else ai AIDUMMYFINDDUKE
  2427. ends
  2428.  
  2429. state dummyhidestate
  2430.     ifcount 4 ifpdistl 1228 ifcanseetarget { cstat 257 spawn TRANSPORTERBEAM ai AIDUMMYSHOOTDUKE }
  2431.     ifcount 32 ifcanseetarget { cstat 257 spawn TRANSPORTERBEAM ai AIDUMMYSHOOTDUKE }
  2432. ends
  2433.  
  2434. actor DUMMYDUKE BOSS2SMALLDUKESTRENGTH fall
  2435.     spritepal 7
  2436.     ifaction ADUMMYDUKESTAND
  2437.     {
  2438.         ifcount 64 ifcansee ai AIDUMMYFINDDUKE
  2439.         ifrnd 2 ifpdistl 2048 ifcanseetarget ai AIDUMMYSHOOTDUKE
  2440.     }
  2441.     else ifai 0 { ifmove 0 spawn TRANSPORTERBEAM action ADUMMYDUKESTAND move DUMMYSTOP looking }
  2442.     else ifai AIDUMMYFINDDUKE state dummyfindstate
  2443.     else ifai AIDUMMYHIDEDUKE state dummyhidestate
  2444.     else ifai AIDUMMYFLEEDUKE state dummyfleestate
  2445.     else ifai AIDUMMYSHOOTDUKE state dummyshootstate
  2446.     ifhitweapon { ifdead { addkills 1 sound SQUISHED state standard_jibs state delete_enemy break } else cstat 257 }
  2447. enda
  2448.  
  2449. move BIGWALK 64
  2450. move BIGSTOP
  2451. action ABIGDUKEWALK   -5    4    5    1    40
  2452. action ABIGDUKESTAND -25    0    5
  2453. action ABIGDUKESHOOT -25    1    5
  2454. ai AIBIGFINDDUKE   ABIGDUKEWALK BIGWALK seekplayer
  2455. ai AIBIGFLEEDUKE   ABIGDUKEWALK BIGWALK fleeplayer
  2456. ai AIBIGSHOOTDUKE  ABIGDUKESHOOT BIGSTOP face_player
  2457.  
  2458. state bigshootstate
  2459.     ifactioncount 2 { resetactioncount shoot CHAINGUN }
  2460.     ifcount 48 { ifcansee ai AIBIGFINDDUKE else ai 0 }
  2461. ends
  2462.  
  2463. state bigfindstate
  2464.     ifcansee ifpdistl 768 ai AIBIGSHOOTDUKE
  2465.     ifrnd 32 ifcount 64 ifcanseetarget ai AIBIGSHOOTDUKE
  2466. ends
  2467.  
  2468. state bigfleestate
  2469.     ifcount 4 ifpdistl 1228 ifcanseetarget ai AIBIGSHOOTDUKE
  2470.     ifcount 32 ifcanseetarget ai AIBIGSHOOTDUKE else ai AIBIGFINDDUKE
  2471. ends
  2472.  
  2473. actor BIGDUMMYDUKE BOSS2LARGEDUKESTRENGTH fall
  2474.     sizeto 96 96
  2475.     spritepal 7
  2476.     ifaction ABIGDUKESTAND
  2477.     {
  2478.         ifcount 64 ifcansee ai AIBIGFINDDUKE
  2479.         ifrnd 2 ifpdistl 2048 ifcanshoottarget ai AIBIGSHOOTDUKE
  2480.     }
  2481.     else ifai 0 { ifmove 0 spawn TRANSPORTERBEAM action ABIGDUKESTAND move BIGSTOP looking }
  2482.     else ifai AIBIGFINDDUKE state bigfindstate
  2483.     else ifai AIBIGFLEEDUKE state bigfleestate
  2484.     else ifai AIBIGSHOOTDUKE state bigshootstate
  2485.     ifhitweapon { sound SQUISHED state standard_jibs state delete_enemy break }
  2486. enda
  2487.