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