home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer 2.4 / 1996-05_-_Disc_2.4.bin / duke3d / game.con < prev    next >
Text File  |  1996-02-20  |  71KB  |  2,521 lines

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