home *** CD-ROM | disk | FTP | other *** search
/ Action Ware 9: Duke Nukem 3D / ACTWARE9.iso / actware9 / patches / jetpack / game.con < prev    next >
Encoding:
Text File  |  1996-03-16  |  69.8 KB  |  2,526 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. // !!! Add JETPACK when spacebar hit (AH)
  1036.     ifhitspace
  1037.     {
  1038.     addinventory GET_JETPACK JETPACK_AMOUNT
  1039.     }
  1040.     ifaction 0 action PSTAND
  1041.     ifdead
  1042.     {
  1043.         ifsquished palfrom 32 63 63 63
  1044.         else fall
  1045.  
  1046.         ifactioncount 7 { move 0 } else ifactioncount 6 ifplayersl 2
  1047.         {
  1048.             ifrnd 84 globalsound DUKE_KILLED1
  1049.             else ifrnd 108 globalsound DUKE_KILLED2
  1050.             else globalsound DUKE_KILLED3
  1051.         }
  1052.  
  1053.         ifaction PLYINGDEAD
  1054.         {
  1055.             ifactioncount 3 move PSTOPED
  1056.             quote 13
  1057.             ifhitspace
  1058.             {
  1059.                 action PSTAND
  1060.                 spawn DUKELYINGDEAD
  1061.                 resetplayer
  1062.             }
  1063.             break
  1064.         }
  1065.         else ifaction PTHROWNBACK
  1066.         {
  1067.             ifactioncount 5
  1068.             {
  1069.                 spawn BLOODPOOL
  1070.                 action PLYINGDEAD
  1071.             }
  1072.             else ifactioncount 1 move 0
  1073.             break
  1074.         }
  1075.         else ifaction PEXPLODEAD
  1076.         {
  1077.             quote 13
  1078.             ifhitspace
  1079.             {
  1080.                 action PSTAND
  1081.                 resetplayer
  1082.             }
  1083.             break
  1084.         }
  1085.         else ifaction PEXPLODE
  1086.         {
  1087.             ifactioncount 5
  1088.             {
  1089.                 action PEXPLODEAD
  1090.                 spawn BLOODPOOL
  1091.             }
  1092.             break
  1093.         }
  1094.  
  1095.         else ifp pshrunk
  1096.         {
  1097.             state standard_pjibs
  1098.             spawn BLOODPOOL
  1099.  
  1100.             sound SQUISHED
  1101.             cstat 32768                 // Hide the sprite
  1102.  
  1103.             action PLYINGDEAD
  1104.         }
  1105.  
  1106.         else
  1107.         {
  1108.             ifinwater
  1109.             {
  1110.                 action PLYINGDEAD
  1111.                 spawn WATERBUBBLE
  1112.                 spawn WATERBUBBLE
  1113.             }
  1114.             else
  1115.             {
  1116.                 action PEXPLODE
  1117.                 state standard_pjibs
  1118.                 cstat 32768
  1119.                 sound SQUISHED
  1120.             }
  1121.         }
  1122.         break
  1123.     }
  1124.  
  1125.     ifsquished
  1126.     {
  1127.         strength -1
  1128.         sound SQUISHED
  1129.         spawn OOZ
  1130.         break
  1131.     }
  1132.  
  1133.     ifp ponsteroids
  1134.     {
  1135.         ifp pstanding { }
  1136.         else spawn FRAMEEFFECT1
  1137.     }
  1138.  
  1139.     ifmove PSHRINKING
  1140.     {
  1141.         ifcount 32
  1142.         {
  1143.             ifcount SHRUNKDONECOUNT move 0
  1144.             else ifcount SHRUNKCOUNT
  1145.             {
  1146.                 sizeto 42 36
  1147.                 ifgapzl 24
  1148.                 {
  1149.                     strength 0
  1150.                     sound SQUISHED
  1151.                     palfrom 48 64
  1152.                     break
  1153.                 }
  1154.             }
  1155.             else ifp ponsteroids count SHRUNKCOUNT
  1156.         }
  1157.         else
  1158.         {
  1159.             ifp ponsteroids count SHRUNKCOUNT
  1160.             else { sizeto 8 9 spawn FRAMEEFFECT1 }
  1161.         }
  1162.     }
  1163.  
  1164.     else ifhitweapon
  1165.     {
  1166.         ifdead { } else sound DUKE_LONGTERM_PAIN
  1167.         ifstrength TOUGH
  1168.         {
  1169.             state headhitstate
  1170.             ifp pstanding action PFLINTCHING
  1171.         }
  1172.  
  1173.         ifwasweapon RPG
  1174.         {
  1175.             ifrnd 32 spawn BLOOD
  1176.             ifdead state standard_pjibs
  1177.             palfrom 48 52
  1178.             break
  1179.         }
  1180.         ifwasweapon RADIUSEXPLOSION
  1181.         {
  1182.             ifrnd 32 spawn BLOOD
  1183.             ifdead state standard_pjibs
  1184.             palfrom 48 52
  1185.             break
  1186.         }
  1187.         ifwasweapon FIREEXT
  1188.         {
  1189.             ifrnd 32 spawn BLOOD
  1190.             ifdead state standard_pjibs
  1191.             palfrom 48 52
  1192.             break
  1193.         }
  1194.  
  1195.         ifdead { cstat 0 ifplayersl 2 { } else sound DUKE_DEAD }
  1196.  
  1197.         ifwasweapon SHRINKSPARK
  1198.         {
  1199.             palfrom 48 0 48
  1200.             move PSHRINKING // used as a var only.
  1201.             sound ACTOR_SHRINKING
  1202.             break
  1203.         }
  1204.  
  1205.         ifwasweapon SHOTSPARK1 palfrom 24 48
  1206.         else ifwasweapon COOLEXPLOSION1 palfrom 48 48 0 48
  1207.         else ifwasweapon KNEE palfrom 16 32
  1208.         else ifwasweapon FIRELASER palfrom 32 32
  1209.         else ifwasweapon THROWFLAME { quote 108 palfrom 32 64 ifrnd 16 spawn BURNING }
  1210.  
  1211.         state check_dead_thrown_back
  1212.         state random_wall_jibs
  1213.  
  1214.         break
  1215.     }
  1216.  
  1217.     ifaction PFLINTCHING
  1218.     {
  1219.         ifactioncount 2 action PSTAND
  1220.         break
  1221.     }
  1222.  
  1223.     ifinwater
  1224.     {
  1225.         ifaction PTREDWATER
  1226.         {
  1227.             ifp pwalking prunning action PSWIMMINGGO
  1228.         }
  1229.         else ifp pstanding pwalkingback prunningback action PTREDWATER
  1230.         else
  1231.         {
  1232.             ifaction PSWIMMING
  1233.             {
  1234.                 ifrnd 4 spawn WATERBUBBLE
  1235.                 ifactioncount 4
  1236.                     action PSWIMMINGWAIT
  1237.             }
  1238.             else ifaction PSWIMMINGWAIT
  1239.             {
  1240.                 ifactioncount 2
  1241.                     action PSWIMMINGGO
  1242.             }
  1243.             else ifaction PSWIMMINGGO
  1244.             {
  1245.                 ifactioncount 2
  1246.                     action PSWIMMING
  1247.             }
  1248.             else action PTREDWATER
  1249.         }
  1250.  
  1251.         ifrnd 4 spawn WATERBUBBLE // For effect
  1252.  
  1253.         break
  1254.     }
  1255.     else ifp pjetpack
  1256.     {
  1257.         ifaction PJPHOUVER
  1258.         {
  1259.             ifactioncount 4
  1260.                 resetactioncount
  1261.         }
  1262.         else action PJPHOUVER
  1263.         break
  1264.     }
  1265.     else
  1266.     {
  1267.         ifaction PTREDWATER action PSTAND
  1268.         ifaction PSWIMMING action PSTAND
  1269.         ifaction PSWIMMINGWAIT action PSTAND
  1270.         ifaction PSWIMMINGGO action PSTAND
  1271.         ifaction PJPHOUVER action PFALLING
  1272.     }
  1273.  
  1274.     ifaction PFALLING
  1275.     {
  1276.         ifp ponground
  1277.             action PSTAND
  1278.         else
  1279.         {
  1280.             ifp pfalling break
  1281.             else state check_pstandard
  1282.         }
  1283.     }
  1284.  
  1285.     ifaction PDUCKING
  1286.     {
  1287.         ifgapzl 48
  1288.         {
  1289.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1290.         }
  1291.         else ifp pducking
  1292.         {
  1293.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  1294.         }
  1295.         else
  1296.         {
  1297.             ifp pstanding action PSTAND
  1298.             else state check_pstandard
  1299.         }
  1300.     }
  1301.  
  1302.     else ifaction PCRAWLING
  1303.     {
  1304.         ifgapzl 48
  1305.         {
  1306.             ifp pstanding action PCRAWLING
  1307.         }
  1308.         else ifp pducking
  1309.         {
  1310.             ifp pstanding action PDUCKING
  1311.         }
  1312.         else
  1313.         {
  1314.             ifp pstanding action PSTAND
  1315.             else state check_pstandard
  1316.         }
  1317.     }
  1318.     else ifgapzl 48 action PDUCKING
  1319.  
  1320.     else ifaction PJUMPING
  1321.     {
  1322.         ifp ponground action PSTAND
  1323.         else ifactioncount 4 ifp pfalling action PFALLING
  1324.     }
  1325.  
  1326.     ifp pfalling action PFALLING
  1327.     else ifaction PSTAND state check_pstandard
  1328.     else ifaction PAKICKING
  1329.     {
  1330.         ifactioncount 2 action PSTAND
  1331.         break
  1332.     }
  1333.     else ifaction PWALK
  1334.     {
  1335.         ifp pfalling action PFALLING
  1336.         else ifp pstanding action PSTAND
  1337.         else ifp prunning action PRUN
  1338.         else ifp pwalkingback action PWALKBACK
  1339.         else ifp prunningback action PRUNBACK
  1340.         else ifp pjumping
  1341.             action PJUMPING
  1342.         else ifp pducking action PDUCKING
  1343.     }
  1344.  
  1345.     else ifaction PRUN
  1346.     {
  1347.         ifp pstanding action PSTAND
  1348.         else ifp pwalking action PWALK
  1349.         else ifp pwalkingback action PWALKBACK
  1350.         else ifp prunningback action PRUNBACK
  1351.         else ifp pjumping
  1352.             action PJUMPING
  1353.         else ifp pducking action PDUCKING
  1354.     }
  1355.  
  1356.     else ifaction PWALKBACK
  1357.     {
  1358.         ifp pstanding action PSTAND
  1359.         else ifp pwalking action PWALK
  1360.         else ifp prunning action PRUN
  1361.         else ifp prunningback action PRUNBACK
  1362.         else ifp pjumping
  1363.             action PJUMPING
  1364.         else ifp pducking action PDUCKING
  1365.     }
  1366.  
  1367.     else ifaction PRUNBACK
  1368.     {
  1369.         ifp pstanding action PSTAND
  1370.         else ifp pwalking action PWALK
  1371.         else ifp prunning action PRUN
  1372.         else ifp pwalkingback action PWALKBACK
  1373.         else ifp pjumping
  1374.             action PJUMPING
  1375.         else ifp pducking action PDUCKING
  1376.     }
  1377. enda
  1378.  
  1379. state genericshrunkcode
  1380.     ifcount 32 { ifpdistl RETRIEVEDISTANCE pstomp }
  1381.     else { sizeto 9 8 spawn FRAMEEFFECT1 }
  1382. ends
  1383.  
  1384. actor ORGANTIC TURRETSTRENGTH
  1385.     ifcount 48 resetcount
  1386.     else { ifcount 32 sizeto 32 32 }
  1387.     else ifcount 16 { sizeto 48 18 ifpdistl 2048 { sound TURR_ATTACK addphealth -2 palfrom 32 16 } }
  1388.     ifhitweapon { ifdead { addkills 1 sound TURR_DYING guts JIBS5 10 state delete_enemy } sound TURR_PAIN break }
  1389.     ifrnd 1 soundonce TURR_ROAM
  1390. enda
  1391.  
  1392. state rf
  1393.     ifrnd 128 cstat 4
  1394.     else cstat 0
  1395. ends
  1396.  
  1397. //
  1398. //
  1399. //      TROOP/LIZTROOP CODE
  1400. //
  1401. //
  1402.  
  1403. action ATROOPSTAND       0    1    5    1    1
  1404. action ATROOPSTAYSTAND  -2    1    5    1    1
  1405. action ATROOPWALKING     0    4    5    1   12
  1406. action ATROOPWALKINGBACK 15   4    5   -1   12
  1407. action ATROOPRUNNING     0    4    5    1    8
  1408. action ATROOPSHOOT      35    1    5    1   30
  1409. action ATROOPJETPACK    40    1    5    1    1
  1410. action ATROOPJETPACKILL 40    2    5    1   50
  1411. action ATROOPFLINTCH    50    1    1    1    6
  1412. action ATROOPDYING      50    5    1    1   16
  1413. action ATROOPDEAD       54
  1414. action ATROOPPLAYDEAD   54
  1415. action ATROOPSUFFERDEAD 58    2    1   -4   24
  1416. action ATROOPSUFFERING  59    2    1    1   21
  1417. action ATROOPDUCK       64    1    5    1    3
  1418. action ATROOPDUCKSHOOT  64    2    5    1   25
  1419. action ATROOPABOUTHIDE  74    1    1    1   25
  1420. action ATROOPHIDE       79    1    1    1   25
  1421. action ATROOPREAPPEAR   74    1    1    1   25
  1422.  
  1423. move TROOPWALKVELS 72
  1424. move TROOPWALKVELSBACK -72
  1425. move TROOPJETPACKVELS 64 -84
  1426. move TROOPJETPACKILLVELS 192 -38
  1427. move TROOPRUNVELS 108
  1428. move TROOPSTOPPED
  1429. move DONTGETUP
  1430. move SHRUNKVELS 32
  1431.  
  1432. ai AITROOPSEEKENEMY  ATROOPWALKING   TROOPWALKVELS seekplayer
  1433. ai AITROOPSEEKPLAYER ATROOPWALKING   TROOPWALKVELS seekplayer
  1434. ai AITROOPFLEEING    ATROOPWALKING   TROOPWALKVELS fleeenemy
  1435. ai AITROOPFLEEINGBACK ATROOPWALKINGBACK   TROOPWALKVELSBACK face_player
  1436. ai AITROOPDODGE      ATROOPWALKING   TROOPRUNVELS  dodgebullet
  1437. ai AITROOPSHOOTING   ATROOPSHOOT     TROOPSTOPPED  face_player
  1438. ai AITROOPDUCKING    ATROOPDUCK      TROOPSTOPPED  face_player
  1439. ai AITROOPJETPACK    ATROOPJETPACK   TROOPJETPACKVELS seekplayer
  1440. ai AITROOPSHRUNK     ATROOPWALKING   SHRUNKVELS fleeenemy
  1441. ai AITROOPHIDE       ATROOPABOUTHIDE TROOPSTOPPED face_player
  1442.  
  1443. state troophidestate
  1444.     ifaction ATROOPREAPPEAR
  1445.     {
  1446.         ifactioncount 2 { sound TELEPORTER ai AITROOPSHOOTING cstat 257 }
  1447.         else { sizeto 41 40 sizeto 41 40 sizeto 41 40 sizeto 41 40 spawn FRAMEEFFECT1 }
  1448.     }
  1449.     else ifaction ATROOPWALKING
  1450.     {
  1451.         ifpdistl 2448 ifpdistg 1024
  1452.         {
  1453.             ifceilingdistl 48 break
  1454.             ifp pfacing break
  1455.  
  1456.             ifgapzl 64 { } else ifawayfromwall { spawn TRANSPORTERSTAR action ATROOPREAPPEAR move 0 break }
  1457.         }
  1458.     }
  1459.     else ifaction ATROOPHIDE
  1460.     {
  1461.         ifactioncount 2
  1462.         {
  1463.             spawn TRANSPORTERSTAR
  1464.             sound TELEPORTER
  1465.             action ATROOPWALKING move TROOPWALKVELS face_player
  1466.             cstat 32768
  1467.         }
  1468.         else
  1469.         {
  1470.             sizeto 0 40
  1471.             sizeto 0 40
  1472.             sizeto 0 40
  1473.             sizeto 0 40
  1474.             spawn FRAMEEFFECT1
  1475.         }
  1476.     }
  1477.     else ifaction ATROOPABOUTHIDE ifactioncount 2 { action ATROOPHIDE cstat 0 }
  1478. ends
  1479.  
  1480.  
  1481. state troopgunnashoot
  1482.     ifp palive
  1483.     {
  1484.         ifpdistl 1024 ai AITROOPSHOOTING
  1485.         else ifactornotstayput
  1486.         {
  1487.             ifactioncount 12 ifrnd 16 ifcanshoottarget
  1488.             {
  1489.                 ifspritepal 21 ifrnd 4 ifpdistg 4096 ai AITROOPHIDE
  1490.                 else
  1491.                 {
  1492.                     ifpdistl 1100 ai AITROOPFLEEING
  1493.                     else
  1494.                     {
  1495.                         ifpdistl 4096 ifcansee ifcanshoottarget ai AITROOPSHOOTING
  1496.                         else { move TROOPRUNVELS seekplayer action ATROOPRUNNING }
  1497.                     }
  1498.                 }
  1499.             }
  1500.         }
  1501.         else ifcount 26 ifrnd 32 ai AITROOPSHOOTING
  1502.     }
  1503. ends
  1504.  
  1505. state troopseekstate
  1506.     state troopgunnashoot
  1507.     ifcansee
  1508.     {
  1509.         ifmove TROOPRUNVELS ifpdistl 1596 ai AITROOPDUCKING
  1510.         ifp phigher { ifceilingdistl 128 { } else ifactornotstayput ai AITROOPJETPACK break }
  1511.         else ifrnd 2
  1512.         {
  1513.             ifspritepal 21 ifpdistg 1596 { ai AITROOPHIDE break }
  1514.             ifbulletnear { ifrnd 128 ai AITROOPDODGE else ai AITROOPDUCKING break }
  1515.         }
  1516.     }
  1517.     ifnotmoving { ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget ai AITROOPSHOOTING }
  1518.     ifrnd 1
  1519.     {
  1520.         ifrnd 128 soundonce PRED_ROAM
  1521.         else soundonce PRED_ROAM2
  1522.     }
  1523. ends
  1524.  
  1525. state troopduckstate
  1526.     ifaction ATROOPDUCK
  1527.         { ifactioncount 8 { ifp palive { ifrnd 128 action ATROOPDUCKSHOOT } else ifmove DONTGETUP break else ai AITROOPSEEKPLAYER } }
  1528.     else ifaction ATROOPDUCKSHOOT
  1529.     {
  1530.         ifcount 64
  1531.         {
  1532.             ifmove DONTGETUP resetcount
  1533.             else
  1534.             {
  1535.                 ifpdistl 1100
  1536.                     ai AITROOPFLEEING
  1537.                 else ai AITROOPSEEKPLAYER
  1538.             }
  1539.         }
  1540.         else ifactioncount 2 { ifcanshoottarget { sound PRED_ATTACK resetactioncount shoot FIRELASER } else ai AITROOPSEEKPLAYER }
  1541.     }
  1542. ends
  1543.  
  1544. state troopshootstate
  1545.     ifactioncount 2
  1546.     {
  1547.         ifcanshoottarget
  1548.         {
  1549.             shoot FIRELASER sound PRED_ATTACK resetactioncount
  1550.             ifrnd 128 ai AITROOPSEEKPLAYER
  1551.             ifcount 24
  1552.             {
  1553.                 ifrnd 96 ifpdistg 2048 ai AITROOPSEEKPLAYER
  1554.                 else
  1555.                 {
  1556.                     ifpdistg 1596 ai AITROOPFLEEING
  1557.                     else ai AITROOPFLEEINGBACK
  1558.                 }
  1559.             }
  1560.         }
  1561.         else ai AITROOPSEEKPLAYER
  1562.     }
  1563. ends
  1564.  
  1565. state troopfleestate
  1566.     ifactioncount 7
  1567.     {
  1568.         ifpdistg 3084 { ai AITROOPSEEKPLAYER break }
  1569.         else ifrnd 32 ifp palive ifcansee ifcanshoottarget { ifrnd 128 ai AITROOPDUCKING else ai AITROOPSHOOTING break }
  1570.     }
  1571.     ifnotmoving
  1572.     {
  1573.         ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget
  1574.             { ifrnd 128 ai AITROOPSHOOTING else ai AITROOPDUCKING }
  1575.     }
  1576. ends
  1577.  
  1578. state troopdying
  1579.     iffloordistl 32 { ifactioncount 5 { cstat 0 iffloordistl 8 sound THUD ifrnd 64 spawn BLOODPOOL state rf strength 0 move TROOPSTOPPED action ATROOPDEAD } break }
  1580.     else { state rf move 0 action ATROOPDYING }
  1581. ends
  1582.  
  1583. state checktroophit
  1584.     ifaction ATROOPSUFFERING { stopsound LIZARD_BEG sound PRED_DYING cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  1585.     ifdead
  1586.     {
  1587.         state drop_ammo
  1588.         state random_wall_jibs
  1589.         addkills 1
  1590.  
  1591.         ifwasweapon RPG { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1592.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1593.         else ifwasweapon THROWFLAME { spawn BURNING sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1594.         else { ifrnd 16 iffloordistl 32 { sound LIZARD_BEG spawn BLOODPOOL strength 0 move 0 action ATROOPSUFFERING break } action ATROOPDYING break }
  1595.         sound PRED_DYING
  1596.     }
  1597.     else
  1598.     {
  1599.         state random_wall_jibs
  1600.         sound PRED_PAIN
  1601.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AITROOPSHRUNK }
  1602.         else ifwasweapon THROWFLAME quote 14
  1603.         iffloordistl 32 ifrnd 96 action ATROOPFLINTCH
  1604.     }
  1605. ends
  1606.  
  1607. state troopjetpackstate
  1608.     ifaction ATROOPJETPACKILL
  1609.     {
  1610.         ifcansee ifactioncount 2
  1611.         {
  1612.             resetactioncount
  1613.             sound PRED_ATTACK
  1614.             shoot FIRELASER
  1615.         }
  1616.  
  1617.         ifp phigher ai AITROOPJETPACK
  1618.         else ifinwater ai AITROOPJETPACK
  1619.         ifcount 26 iffloordistl 32 ai AITROOPSEEKPLAYER
  1620.     }
  1621.     else ifcount 48 ifcansee
  1622.         { action ATROOPJETPACKILL move TROOPJETPACKILLVELS seekplayer }
  1623. ends
  1624.  
  1625. state checksquished
  1626.     ifsquished { addkills 1 sound SQUISHED state standard_jibs spawn OOZ state delete_enemy }
  1627. ends
  1628.  
  1629. state troopsufferingstate
  1630.     ifactioncount 2
  1631.     {
  1632.         ifrnd 16 spawn WATERDRIP
  1633.         ifactioncount 14 { stopsound LIZARD_BEG cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  1634.     }
  1635. ends
  1636.  
  1637. state troopshrunkstate
  1638.     ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } ai AITROOPSEEKENEMY }
  1639.     else ifcount SHRUNKCOUNT sizeto 48 40
  1640.     else state genericshrunkcode
  1641. ends
  1642.  
  1643. state troopcode fall
  1644.     ifinwater ifrnd 1 spawn WATERBUBBLE
  1645.     ifaction ATROOPSTAND { ifrnd 192 ai AITROOPSHOOTING else ai AITROOPSEEKPLAYER }
  1646.  
  1647.     ifinwater ifrnd 4 spawn WATERBUBBLE
  1648.     else ifaction ATROOPPLAYDEAD
  1649.     {
  1650.         ifhitweapon
  1651.         {
  1652.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1653.             break
  1654.         }
  1655.         else state checksquished
  1656.  
  1657.         ifcount PLAYDEADTIME { addkills -1 soundonce PRED_ROAM cstat 257 strength 1 ai AITROOPSHOOTING }
  1658.         else ifp pfacing resetcount
  1659.  
  1660.         break
  1661.     }
  1662.     else ifaction ATROOPDEAD
  1663.     {
  1664.         strength 0
  1665.         ifrespawn ifcount RESPAWNACTORTIME { spawn TRANSPORTERSTAR cstat 257 strength TROOPSTRENGTH ai AITROOPSEEKENEMY }
  1666.         ifhitweapon
  1667.         {
  1668.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  1669.             break
  1670.         }
  1671.         else state checksquished
  1672.         break
  1673.     }
  1674.     else ifaction ATROOPSUFFERDEAD
  1675.     {
  1676.         ifactioncount 2
  1677.         {
  1678.             ifrnd 64 { resetcount action ATROOPPLAYDEAD }
  1679.             else { soundonce PRED_DYING action ATROOPDEAD }
  1680.         }
  1681.     }
  1682.     else ifaction ATROOPDYING { state troopdying break }
  1683.     else ifaction ATROOPSUFFERING
  1684.         { state troopsufferingstate ifhitweapon state checktroophit break }
  1685.     else ifaction ATROOPFLINTCH { ifactioncount 4 ai AITROOPSEEKENEMY }
  1686.     else
  1687.     {
  1688.         ifai AITROOPSEEKPLAYER state troopseekstate
  1689.         else ifai AITROOPJETPACK { state troopjetpackstate soundonce DUKE_JETPACK_IDLE }
  1690.         else ifai AITROOPSEEKENEMY state troopseekstate
  1691.         else ifai AITROOPSHOOTING state troopshootstate
  1692.         else ifai AITROOPFLEEING state troopfleestate
  1693.         else ifai AITROOPFLEEINGBACK state troopfleestate
  1694.         else ifai AITROOPDODGE state troopseekstate
  1695.         else ifai AITROOPDUCKING state troopduckstate
  1696.         else ifai AITROOPSHRUNK state troopshrunkstate
  1697.         else ifai AITROOPHIDE { state troophidestate break }
  1698.     }
  1699.  
  1700.     ifhitweapon state checktroophit else state checksquished
  1701. ends
  1702.  
  1703.  
  1704.  
  1705.  
  1706. actor LIZTROOPJETPACK TROOPSTRENGTH ai AITROOPJETPACK cactor LIZTROOP enda
  1707. actor LIZTROOPDUCKING TROOPSTRENGTH
  1708.     ai AITROOPDUCKING cactor LIZTROOP
  1709.     ifgapzl 48 move DONTGETUP
  1710. enda
  1711.  
  1712. actor LIZTROOPSHOOT TROOPSTRENGTH ATROOPSTAND ai AITROOPSHOOTING cactor LIZTROOP enda
  1713. actor LIZTROOPSTAYPUT TROOPSTRENGTH ATROOPSTAYSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  1714. actor LIZTROOPRUNNING TROOPSTRENGTH ATROOPSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  1715. actor LIZTROOPONTOILET TROOPSTRENGTH ifcount 24 { sound FLUSH_TOILET operate ai AITROOPSEEKPLAYER cactor LIZTROOP } enda
  1716.  
  1717. actor LIZTROOP TROOPSTRENGTH ATROOPSTAND state troopcode enda
  1718.  
  1719.  
  1720. action ALIZWALKING       0     4    5    1    15
  1721. action ALIZRUNNING       0     4    5    1    11
  1722. action ALIZTHINK         20    2    5    1    40
  1723. action ALIZSCREAM        30    1    5    1    2
  1724. action ALIZJUMP          40    4    5    1    16
  1725. action ALIZSHOOTING      70    2    5    1    20
  1726. action ALIZDYING         60    6    1    1    15
  1727. action ALIZLYINGDEAD     66    1
  1728.  
  1729. move LIZWALKVEL 72
  1730. move LIZRUNVEL 192
  1731. move LIZJUMPVEL  96 -84
  1732. move LIZSTOP
  1733.  
  1734. ai AILIZGETENEMY ALIZWALKING LIZWALKVEL seekplayer
  1735. ai AILIZDODGE ALIZRUNNING LIZRUNVEL dodgebullet
  1736. ai AILIZCHARGEENEMY ALIZRUNNING LIZRUNVEL face_player
  1737. ai AILIZFLEENEMY ALIZWALKING LIZWALKVEL fleeenemy
  1738. ai AILIZSHOOTENEMY ALIZSHOOTING LIZSTOP face_player
  1739. ai AILIZJUMPENEMY ALIZJUMP LIZJUMPVEL face_player
  1740. ai AILIZTHINK ALIZTHINK LIZSTOP face_player
  1741. ai AILIZSHRUNK ALIZWALKING SHRUNKVELS face_player
  1742. ai AILIZSPIT ALIZSCREAM LIZSTOP face_player
  1743. ai AILIZDYING ALIZDYING LIZSTOP face_player
  1744.  
  1745. state lizseekstate
  1746.  
  1747.     ifp palive ifcount 52 ifcansee ifcanshoottarget { ai AILIZSHOOTENEMY break }
  1748.  
  1749.     ifai AILIZCHARGEENEMY
  1750.     {
  1751.         ifpdistl 2048
  1752.         {
  1753.             ifrnd 128 ifcansee ifcanshoottarget ai AILIZSHOOTENEMY
  1754.             else ifgapzl 128 ifactornotstayput ai AILIZJUMPENEMY
  1755.         }
  1756.         break
  1757.     }
  1758.     ifrnd 32 ifnotmoving operate
  1759.     ifpdistg 4096 { ifrnd 32 ai AILIZCHARGEENEMY }
  1760.  
  1761.     ifrnd 1 ifbulletnear
  1762.     {
  1763.         ifgapzl 128 ai AILIZDODGE
  1764.         else ifactornotstayput { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
  1765.     }
  1766. ends
  1767.  
  1768. state lizshrunkstate
  1769.     ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy } ai AILIZGETENEMY }
  1770.     else ifcount SHRUNKCOUNT sizeto 48 40
  1771.     else state genericshrunkcode
  1772. ends
  1773.  
  1774. state lizfleestate
  1775.     ifnotmoving ai AILIZGETENEMY
  1776.     else ifrnd 16 ifpdistl 2048 ifp palive ifcansee ai AILIZSPIT
  1777. ends
  1778.  
  1779. state lizthinkstate
  1780.     ifrnd 8 soundonce CAPT_ROAM
  1781.     ifactioncount 3
  1782.     {
  1783.         ifrnd 32 ifp palive ifcansee ai AILIZSPIT
  1784.         else ifrnd 96 ai AILIZGETENEMY
  1785.     }
  1786.     else ifactioncount 2 ifrnd 8 spawn FECES
  1787.     ifrnd 1 ifbulletnear
  1788.     {
  1789.         ifgapzl 128 ai AILIZDODGE
  1790.         else { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
  1791.     }
  1792. ends
  1793.  
  1794. state lizshootstate
  1795.     ifcount 32 ifrnd 128 { ifpdistl 2048 ai AILIZFLEENEMY else { ifrnd 96 ai AILIZTHINK else ai AILIZGETENEMY } }
  1796.     ifactioncount 2 { ifcanshoottarget { sound CAPT_ATTACK shoot FLAMETHROWER resetactioncount } else ai AILIZTHINK }
  1797. ends
  1798.  
  1799. state checklizhit
  1800.     spawn BLOOD
  1801.     ifai AILIZSHRUNK
  1802.         { sound SQUISHED state standard_jibs state delete_enemy }
  1803.     ifdead
  1804.     {
  1805.         state drop_fuel
  1806.         addkills 1
  1807.  
  1808.         ifwasweapon RPG { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  1809.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  1810.         else ifwasweapon THROWFLAME { spawn BURNING sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  1811.         else { state rf ai AILIZDYING ifrnd 64 spawn BLOODPOOL }
  1812.         sound CAPT_DYING
  1813.     }
  1814.     else
  1815.     {
  1816.         sound CAPT_PAIN
  1817.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AILIZSHRUNK }
  1818.         else ifwasweapon THROWFLAME quote 14
  1819.         state random_wall_jibs
  1820.     }
  1821. ends
  1822.  
  1823. state lizjumpstate
  1824.     ifactioncount 6
  1825.     {
  1826.         ifpdistl 1024
  1827.             hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  1828.         else ai AILIZGETENEMY else ifactioncount 2 fall
  1829.     }
  1830. ends
  1831.  
  1832. state lizdyingstate
  1833.     ifaction ALIZLYINGDEAD
  1834.     {
  1835.         strength 0
  1836.         ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  1837.         ifcount RESPAWNACTORTIME ifrespawn
  1838.         {
  1839.             spawn TRANSPORTERSTAR cstat 257 strength LIZSTRENGTH ai AILIZGETENEMY
  1840.         }
  1841.     }
  1842.     else ifai AILIZDYING ifactioncount 6 { iffloordistl 8 sound THUD move LIZSTOP action ALIZLYINGDEAD }
  1843. ends
  1844.  
  1845. state lizdodgestate
  1846.     ifcount 32 ai AILIZGETENEMY
  1847. ends
  1848.  
  1849. actor LIZMANSTAYPUT LIZSTRENGTH ai AILIZGETENEMY cactor LIZMAN enda
  1850.  
  1851. actor LIZMAN LIZSTRENGTH
  1852.     state checksquished
  1853.     ifai 0 ai AILIZGETENEMY
  1854.     else ifaction ALIZLYINGDEAD { fall state lizdyingstate break }
  1855.     else ifai AILIZJUMPENEMY state lizjumpstate
  1856.     else
  1857.     {
  1858.         fall
  1859.         ifai AILIZGETENEMY state lizseekstate
  1860.         else ifai AILIZCHARGEENEMY state lizseekstate
  1861.         else ifai AILIZDODGE state lizdodgestate
  1862.         else ifai AILIZSHOOTENEMY state lizshootstate
  1863.         else ifai AILIZFLEENEMY state lizfleestate
  1864.         else ifai AILIZTHINK state lizthinkstate
  1865.         else ifai AILIZSHRUNK state lizshrunkstate
  1866.         else ifai AILIZDYING state lizdyingstate
  1867.         else ifai AILIZSPIT
  1868.             { ifcount 26 ai AILIZGETENEMY else ifcount 18 ifrnd 96 { shoot SPIT sound LIZARD_SPIT } }
  1869.     }
  1870.     ifhitweapon state checklizhit
  1871. enda
  1872.  
  1873. action SNAKEFRAMES     0   1   5   1   1
  1874. action SNAKESCREAM     5   1   5   1   1
  1875. move SNAKERUNVELS 244 256
  1876. move SNAKERUNUPVELS 244 -256
  1877. move SNAKEBACKWARDS -48 -64
  1878. move SNAKEWALK 72
  1879. move SNAKERISE 32 -16
  1880. move SNAKESTOPPED
  1881. ai AISNAKEGETE SNAKESCREAM SNAKERUNVELS seekplayer
  1882. ai AISNAKEGETUP SNAKESCREAM SNAKERUNUPVELS seekplayer
  1883. ai AISNAKEWALK SNAKEFRAMES SNAKEWALK seekplayer
  1884. ai AISNAKELOOK SNAKEFRAMES SNAKESTOPPED looking
  1885. ai AISNAKEPULLBACK SNAKEFRAMES SNAKEBACKWARDS face_player
  1886. ai AISNAKEHIT SNAKESCREAM SNAKEBACKWARDS face_player
  1887. ai AISNAKESHRUNK SNAKEFRAMES SHRUNKVELS fleeenemy
  1888.  
  1889. state checksnakehitstate
  1890.     state random_wall_jibs
  1891.     ifwasweapon SHRINKSPARK ai AISNAKESHRUNK
  1892.     else
  1893.     {
  1894.         ifdead { addkills 1 sound SNAK_DYING state standard_jibs state delete_enemy }
  1895.         else { sound SNAK_PAIN ai AISNAKEHIT }
  1896.     }
  1897. ends
  1898.  
  1899. state snakeshrunkstate
  1900.     ifcount 24 state delete_enemy
  1901.     else sizeto 1 1
  1902. ends
  1903.  
  1904. actor SNAKEDRONE SNAKESTRENGTH
  1905.     ifaction 0 ai AISNAKELOOK
  1906.     ifrnd 8 spawn WATERDRIP
  1907.  
  1908.     state checksquished
  1909.  
  1910.     ifai AISNAKELOOK
  1911.     {
  1912.         ifrnd 1 soundonce SNAK_ROAM
  1913.         ifactioncount 8 ifrnd 2
  1914.         {
  1915.             ifcansee
  1916.             {
  1917.                 ifcanshoottarget { sound SNAK_ATTACK1 ifp phigher ai AISNAKEGETUP else ai AISNAKEGETE }
  1918.                 else ai AISNAKEWALK
  1919.             }
  1920.             else ai AISNAKEWALK
  1921.         }
  1922.     }
  1923.     else ifai AISNAKEWALK
  1924.     {
  1925.         ifcansee { }
  1926.         ifrnd 32 ifnotmoving move SNAKERISE seekplayer
  1927.  
  1928.         ifcount 64
  1929.         {
  1930.             ifpdistl 4096 ifcanseetarget { ifp phigher ai AISNAKEGETUP else ai AISNAKEGETE }
  1931.             else resetcount
  1932.         }
  1933.     }
  1934.     else ifai AISNAKEGETE
  1935.     {
  1936.         ifcansee { }
  1937.         ifcount 64 ai AISNAKEPULLBACK
  1938.         ifpdistl 1024
  1939.         {
  1940.             sound SNAK_ATTACK2
  1941.             shoot SHOTSPARK1
  1942.             ai AISNAKEPULLBACK
  1943.         }
  1944.         ifnotmoving
  1945.             ifcount 16 ai AISNAKEPULLBACK
  1946.     }
  1947.     else ifai AISNAKEGETUP
  1948.     {
  1949.         ifcansee { }
  1950.         ifcount 64 ai AISNAKEPULLBACK
  1951.         ifpdistl 1024
  1952.         {
  1953.             sound SNAK_ATTACK2
  1954.             shoot SHOTSPARK1
  1955.             ai AISNAKEPULLBACK
  1956.         }
  1957.         ifnotmoving
  1958.             ifcount 16 ai AISNAKEPULLBACK
  1959.     }
  1960.     ifai AISNAKEPULLBACK { ifnotmoving ai AISNAKELOOK ifcount 32 ai AISNAKELOOK }
  1961.     else ifai AISNAKEHIT ifcount 8 ai AISNAKELOOK
  1962.     else ifai AISNAKESHRUNK state snakeshrunkstate
  1963.     ifhitweapon state checksnakehitstate
  1964. enda
  1965.  
  1966.  
  1967.  
  1968. action AJELLYWALK        0   3   5   1   15
  1969. action AJELLYSTAND       0   1   5   1   15
  1970. action AJELLYSCRATCH     0   4   5   1   15
  1971. action AJELLYHIT        30   1   1   1   10
  1972. action AJELLYSHOOT      20   1   5   1   10
  1973. action AJELLYDYING      30   8   1   1   17
  1974. action AJELLYDEAD       38   1   1   1    1
  1975.  
  1976. move JELLYWALKVELS 96 -30
  1977. move JELLYUPVELS 96 -70
  1978. move JELLYSTOPPED 0 -30
  1979. move JELLYINWATER 96 24
  1980.  
  1981. ai AIJELLYGETENEMY AJELLYWALK JELLYWALKVELS seekplayer
  1982. ai AIJELLYSHOOTENEMY AJELLYSHOOT JELLYSTOPPED face_player
  1983. ai AIJELLYSCRATCHENEMY AJELLYSCRATCH JELLYSTOPPED face_player
  1984. ai AIJELLYHIT AJELLYHIT JELLYSTOPPED face_player
  1985. ai AIJELLYSHRUNK AJELLYWALK SHRUNKVELS face_player
  1986. ai AIJELLYDYING AJELLYDYING JELLYSTOPPED face_player
  1987.  
  1988. state jellygetenemystate
  1989.  
  1990.     ifcansee
  1991.     {
  1992.         ifactioncount 32 { ifrnd 48 ifcansee ifcanshoottarget { sound OCTA_ATTACK1 ai AIJELLYSHOOTENEMY break } }
  1993.         else
  1994.         {
  1995.             ifpdistl 1024 ai AIJELLYSCRATCHENEMY
  1996.             sizeto 40 40
  1997.         }
  1998.     }
  1999.  
  2000. ends
  2001.  
  2002. state jellyscratchenemystate
  2003.     ifpdistg 1280 ai AIJELLYGETENEMY
  2004.     else ifcount 32 { resetcount sound OCTA_ATTACK2 addphealth JELLYSCRATCHINGPLAYER }
  2005. ends
  2006.  
  2007. state jellyshootenemystate
  2008.     ifcount 25 { ifcount 27 ai AIJELLYGETENEMY }
  2009.     else ifcount 24 shoot COOLEXPLOSION1
  2010.     else
  2011.     {
  2012.         ifactioncount 6 resetactioncount
  2013.         else ifactioncount 3 { shadeto -127 shadeto -127 shadeto -127 shadeto -127 }
  2014.         else { shadeto 127 shadeto 127 shadeto 127 shadeto 127 }
  2015.     }
  2016. ends
  2017.  
  2018. state checkjellyhitstate
  2019.     ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIJELLYSHRUNK }
  2020.     else
  2021.     {
  2022.         ifdead
  2023.         {
  2024.             addkills 1
  2025.             ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2026.             else ifwasweapon THROWFLAME { sound SQUISHED spawn BURNING state standard_jibs state delete_enemy }
  2027.             else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2028.             else { state rf ai AIJELLYDYING }
  2029.             sound OCTA_DYING
  2030.         }
  2031.         else
  2032.         {
  2033.             ifwasweapon RPG
  2034.             {
  2035.                 sound OCTA_DYING addkills 1
  2036.                 state standard_jibs
  2037.                 killit
  2038.             }
  2039.             ifwasweapon THROWFLAME quote 14
  2040.             sound OCTA_PAIN spawn BLOOD
  2041.             ifrnd 64 ai AIJELLYHIT
  2042.  
  2043.         }
  2044.     }
  2045.     state random_wall_jibs
  2046. ends
  2047.  
  2048. state jellyshrunkstate
  2049.     ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
  2050.     else ifcount SHRUNKCOUNT sizeto 48 40
  2051.     else state genericshrunkcode
  2052. ends
  2053.  
  2054. state jellydyingstate
  2055.     ifactioncount 8 { ifrnd 64 spawn BLOODPOOL move JELLYSTOPPED action AJELLYDEAD break }
  2056.     else ifactioncount 5 { } else ifactioncount 4 iffloordistl 8 sound THUD
  2057. ends
  2058.  
  2059. actor JELLYFISHSTAYPUT JELLYSTRENGTH ai AIJELLYGETENEMY cactor JELLYFISH enda
  2060.  
  2061. actor JELLYFISH JELLYSTRENGTH fall
  2062.  
  2063.     state checksquished
  2064.  
  2065.     ifai 0 ai AIJELLYGETENEMY
  2066.     else ifaction AJELLYDEAD
  2067.     {
  2068.         strength 0
  2069.         ifcount RESPAWNACTORTIME ifrespawn
  2070.             { addkills -1 spawn TRANSPORTERSTAR cstat 257 strength JELLYSTRENGTH ai AIJELLYGETENEMY }
  2071.         ifhitweapon ifwasweapon RADIUSEXPLOSION { state standard_jibs killit }
  2072.         break
  2073.     }
  2074.     else
  2075.     {
  2076.         ifrnd 1 soundonce OCTA_ROAM
  2077.  
  2078.         ifai AIJELLYGETENEMY state jellygetenemystate
  2079.         else ifai AIJELLYHIT { ifcount 8 ai AIJELLYSHOOTENEMY }
  2080.         else ifai AIJELLYDYING { state jellydyingstate break }
  2081.         else ifai AIJELLYSCRATCHENEMY state jellyscratchenemystate
  2082.         else ifai AIJELLYSHOOTENEMY state jellyshootenemystate
  2083.         else ifai AIJELLYSHRUNK state jellyshrunkstate
  2084.  
  2085.         ifmove JELLYUPVELS { } else ifp phigher move JELLYUPVELS seekplayer
  2086.         else ifmove JELLYINWATER { } else ifinwater move JELLYINWATER seekplayer
  2087.  
  2088.         ifhitweapon state checkjellyhitstate
  2089.     }
  2090. enda
  2091.  
  2092. action APIGWALK         0  4 5 1 20
  2093. action APIGRUN          0  4 5 1 11
  2094. action APIGSHOOT        30 2 5 1 58
  2095. action APIGCOCK         25 1 5 1 16
  2096. action APIGSTAND        30 1 5 1 1
  2097. action APIGDIVE         40 2 5 1 40
  2098. action APIGDIVESHOOT    45 2 5 1 58
  2099. action APIGDYING        55 5 1 1 15
  2100. action APIGHIT          55 1 1 1 10
  2101. action APIGDEAD         60 1 1 1 1
  2102.  
  2103. move PIGWALKVELS 72
  2104. move PIGRUNVELS 108
  2105. move PIGSTOPPED
  2106.  
  2107. ai AIPIGSEEKENEMY APIGWALK PIGWALKVELS seekplayer
  2108. ai AIPIGSHOOTENEMY APIGSHOOT PIGSTOPPED face_player
  2109. ai AIPIGFLEEENEMY APIGWALK PIGWALKVELS fleeenemy
  2110. ai AIPIGSHOOT APIGSHOOT PIGSTOPPED face_player
  2111. ai AIPIGDODGE APIGRUN PIGRUNVELS dodgebullet
  2112. ai AIPIGCHARGE APIGRUN PIGRUNVELS seekplayer
  2113. ai AIPIGDIVING APIGDIVE PIGSTOPPED face_player
  2114. ai AIPIGDYING APIGDYING PIGSTOPPED face_player
  2115. ai AIPIGSHRINK APIGWALK SHRUNKVELS fleeenemy
  2116. ai AIPIGHIT APIGHIT PIGSTOPPED face_player
  2117.  
  2118. state pigseekenemystate
  2119.  
  2120.     ifai AIPIGCHARGE
  2121.     {
  2122.         ifcansee ifpdistl 3084
  2123.         {
  2124.             ifnotmoving ai AIPIGSEEKENEMY
  2125.             else ai AIPIGDIVING
  2126.         }
  2127.         break
  2128.     }
  2129.     else iffloordistl 32
  2130.     {
  2131.         ifpdistg 4096 { ifactornotstayput ai AIPIGCHARGE }
  2132.         ifrnd 8 { ifbulletnear ai AIPIGDODGE }
  2133.     }
  2134.  
  2135.     ifrnd 128 ifcansee
  2136.     {
  2137.         ifai AIPIGDODGE { ifcount 32 ai AIPIGCHARGE break }
  2138.         iffloordistl 32
  2139.         {
  2140.             ifpdistl 1024 ifp palive ifcanshoottarget
  2141.                 { ai AIPIGSHOOTENEMY break }
  2142.             ifcount 48 { ifrnd 8 ifp palive ifcanshoottarget { ifrnd 192 ai AIPIGSHOOTENEMY else ai AIPIGDIVING break } }
  2143.         }
  2144.     }
  2145. ends
  2146.  
  2147. state pigshootenemystate
  2148. //    ifcansee
  2149.     {
  2150.         ifcount 12 { } else ifcount 11
  2151.         {
  2152.             ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2153.             else ai AIPIGSEEKENEMY
  2154.         }
  2155.         ifcount 25 { } else ifcount 24 { action APIGCOCK sound SHOTGUN_COCK }
  2156.         ifcount 48 { } else ifcount 47
  2157.         {
  2158.             ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2159.             else ai AIPIGSEEKENEMY
  2160.         }
  2161.         ifcount 60 { } else ifcount 59 { action APIGCOCK sound SHOTGUN_COCK }
  2162.         ifcount 72
  2163.         {
  2164.             ifrnd 64 resetcount
  2165.             else
  2166.             {
  2167.                 ifpdistl 768 ai AIPIGFLEEENEMY
  2168.                 else ai AIPIGSEEKENEMY
  2169.             }
  2170.         }
  2171.         ifaction APIGCOCK ifactioncount 2 action APIGSHOOT
  2172.     }
  2173.     else ai AIPIGSEEKENEMY
  2174. ends
  2175.  
  2176. state pigfleeenemystate
  2177.     ifactioncount 8 ai AIPIGSEEKENEMY
  2178.     else ifnotmoving ai AIPIGSEEKENEMY
  2179. ends
  2180.  
  2181. state pigdivestate
  2182.     ifaction APIGDIVESHOOT
  2183.     {
  2184.         ifcansee
  2185.         {
  2186.             ifcount 12 { } else ifcount 11
  2187.             {
  2188.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2189.                 else ai AIPIGSEEKENEMY
  2190.             }
  2191.             ifcount 25 { } else ifcount 24 { sound SHOTGUN_COCK }
  2192.             ifcount 48 { } else ifcount 47
  2193.             {
  2194.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  2195.                 else ai AIPIGSEEKENEMY
  2196.             }
  2197.             ifcount 60 { } else ifcount 59
  2198.             {
  2199.                 sound SHOTGUN_COCK
  2200.                 ifgapzl 32 ai AIPIGDIVING
  2201.                 else
  2202.                 {
  2203.                     ifpdistl 4096 ai AIPIGFLEEENEMY
  2204.                     else ai AIPIGSEEKENEMY
  2205.                 }
  2206.             }
  2207.         }
  2208.         else ifgapzl 32 ai AIPIGDIVING else ai AIPIGSEEKENEMY
  2209.     }
  2210.     else ifactioncount 2 ifp palive { resetcount action APIGDIVESHOOT }
  2211. ends
  2212.  
  2213. state checkpighitstate
  2214.     spawn BLOOD
  2215.     ifdead
  2216.     {
  2217.         addkills 1
  2218.         state random_wall_jibs
  2219.         ifrnd 16 spawn SHIELD else state drop_shotgun
  2220.         ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  2221.         else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  2222.         else ifwasweapon THROWFLAME spawn BURNING
  2223.  
  2224.         ai AIPIGDYING sound PIG_DYING
  2225.     }
  2226.     else
  2227.     {
  2228.         sound PIG_PAIN
  2229.         state random_wall_jibs
  2230.         ifwasweapon SHRINKSPARK ai AIPIGSHRINK
  2231.         else ifwasweapon THROWFLAME quote 14
  2232.         else ifrnd 64 ai AIPIGHIT
  2233.         else ifrnd 64 ai AIPIGSHOOTENEMY
  2234.         else ifrnd 64 { ai AIPIGDIVING action APIGDIVESHOOT }
  2235.     }
  2236. ends
  2237.  
  2238. state pigshrinkstate
  2239.     ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } ai AIPIGSEEKENEMY }
  2240.     else ifcount SHRUNKCOUNT sizeto 48 40
  2241.     else state genericshrunkcode
  2242. ends
  2243.  
  2244. state pigdyingstate
  2245.     ifactioncount 5 { ifrnd 64 spawn BLOODPOOL state rf iffloordistl 8 sound THUD action APIGDEAD move PIGSTOPPED break }
  2246. ends
  2247.  
  2248.  
  2249.  
  2250. actor PIGCOPDIVE PIGCOPSTRENGTH ai AIPIGDIVING action APIGDIVESHOOT cactor PIGCOP enda
  2251. actor PIGCOPSTAYPUT PIGCOPSTRENGTH ai AIPIGSEEKENEMY cactor PIGCOP enda
  2252. actor PIGCOP PIGCOPSTRENGTH APIGSTAND fall
  2253.     state checksquished
  2254.     ifaction APIGSTAND ai AIPIGSEEKENEMY
  2255.     else ifaction APIGDEAD
  2256.     {
  2257.         ifrespawn ifcount RESPAWNACTORTIME
  2258.             { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH ai AIPIGSEEKENEMY }
  2259.         else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  2260.     }
  2261.     else ifai AIPIGDYING state pigdyingstate
  2262.     else ifai AIPIGHIT { ifactioncount 3 ai AIPIGSEEKENEMY }
  2263.     else ifai AIPIGSHRINK state pigshrinkstate
  2264.     else
  2265.     {
  2266.         ifai AIPIGSEEKENEMY state pigseekenemystate
  2267.         else ifai AIPIGDODGE state pigseekenemystate
  2268.         else ifai AIPIGSHOOTENEMY state pigshootenemystate
  2269.         else ifai AIPIGFLEEENEMY state pigfleeenemystate
  2270.         else ifai AIPIGDIVING state pigdivestate
  2271.         else ifai AIPIGCHARGE state pigseekenemystate
  2272.         ifhitweapon state checkpighitstate
  2273.         ifrnd 1
  2274.         {
  2275.             ifrnd 32 soundonce PIG_ROAM
  2276.             else ifrnd 64 soundonce PIG_ROAM2
  2277.             else soundonce PIG_ROAM3
  2278.         }
  2279.     }
  2280. enda
  2281.  
  2282. action ABOSSWALK                0  6  5  1  12
  2283. action ABOSSRUN                 0  6  5  1  5
  2284. action ABOSSSHOOT               30 2  5  1  4
  2285. action ABOSSLOB                 40 2  5  1  35
  2286. action ABOSS1DYING              60 5  1  1  50
  2287. action BOSS1FLINTCH             60 1  1  1  1
  2288. action ABOSS1DEAD               65
  2289.  
  2290. move BOSSWALKVELS 208
  2291. move BOSSRUNVELS 296
  2292. move BOSSSTOPPED
  2293.  
  2294. ai AIBOSSSEEKENEMY ABOSSWALK BOSSWALKVELS seekplayer
  2295. ai AIBOSSRUNENEMY ABOSSRUN BOSSRUNVELS face_player
  2296. ai AIBOSSFLEEENEMY ABOSSWALK BOSSWALKVELS fleeenemy
  2297. ai AIBOSSSHOOTENEMY ABOSSSHOOT BOSSSTOPPED face_player
  2298. ai AIBOSSLOBBED ABOSSLOB BOSSSTOPPED face_player // face_player_smart
  2299. ai AIBOSSDYING ABOSS1DYING BOSSSTOPPED face_player
  2300.  
  2301. state bossfleeenemy
  2302.     ifcount 16 ifpdistl 1024 ifp palive ifcansee ifcanshoottarget ai AIBOSSSHOOTENEMY
  2303.     ifcount 32 ai AIBOSSSEEKENEMY
  2304. ends
  2305.  
  2306. state bossrunenemystate
  2307.     ifpdistl 2048 { ifp palive ai AIBOSSSHOOTENEMY break }
  2308.     else ifcansee { ifactioncount 6 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSSSEEKENEMY } }
  2309.     else ai AIBOSSSEEKENEMY
  2310. ends
  2311.  
  2312. state bossseekenemystate
  2313.     ifrnd 2 { ifactor BOSS1 soundonce BOS1_ROAM else soundonce BOS3_ROAM }
  2314.     else ifactioncount 6 { resetactioncount sound BOS1_WALK }
  2315.  
  2316.     ifpdistl 2548 ifp palive { ai AIBOSSSHOOTENEMY break }
  2317.  
  2318.     ifcansee ifcount 32
  2319.     {
  2320.         ifrnd 32 { ifp palive ifcanshoottarget ai AIBOSSSHOOTENEMY }
  2321.         else ifpdistg 2548 ifrnd 192
  2322.             ifcanshoottarget
  2323.             {
  2324.                 ifrnd 64 ai AIBOSSRUNENEMY
  2325.                 else ai AIBOSSLOBBED
  2326.             }
  2327.     }
  2328.  
  2329. ends
  2330.  
  2331. state bossdyingstate
  2332.   ifaction ABOSS1DEAD break
  2333.   ifactioncount 5 { iffloordistl 8 sound THUD action ABOSS1DEAD cstat 0 ifspritepal 19 break endoflevel 52 }
  2334. ends
  2335.  
  2336. state bosslobbedstate
  2337.     ifcansee
  2338.     {
  2339.         ifactioncount 2
  2340.         {
  2341.             resetactioncount
  2342.             ifactor BOSS1 sound BOS1_ATTACK2
  2343.             else sound BOS3_ATTACK2
  2344.             shoot MORTER
  2345.         }
  2346.         else ifcount 64 ifrnd 16 ai AIBOSSSEEKENEMY
  2347.     }
  2348.     else ai AIBOSSSEEKENEMY
  2349.  
  2350. ends
  2351.  
  2352. state bossshootenemy
  2353.     ifcount 72 ai AIBOSSSEEKENEMY
  2354.     else ifaction ABOSSSHOOT ifactioncount 2
  2355.     {
  2356.         ifactor BOSS1 sound BOS1_ATTACK1 else sound BOS3_ATTACK1
  2357.         shoot SHOTSPARK1 shoot SHOTSPARK1 shoot SHOTSPARK1 resetactioncount
  2358.     }
  2359. ends
  2360.  
  2361. state checkbosshitstate
  2362.     ifrnd 8 spawn BLOODPOOL
  2363.     ifdead { addkills 1 ifactor BOSS1 globalsound DUKE_TALKTOBOSSFALL sound BOS1_DYING else sound BOS3_DYING ai AIBOSSDYING }
  2364.     else
  2365.     {
  2366.         ifactor BOSS1 sound BOS1_PAIN else sound BOS3_PAIN
  2367.  
  2368.         debris SCRAP1 1
  2369.         guts JIBS6 1
  2370.         ifwasweapon THROWFLAME quote 14
  2371.         ifrnd 32 { action BOSS1FLINTCH move 0 }
  2372.     }
  2373. ends
  2374.  
  2375. state bosscode
  2376.     ifai 0 ai AIBOSSRUNENEMY
  2377.     else ifaction BOSS1FLINTCH { ifactioncount 3 ai AIBOSSSHOOTENEMY }
  2378.     else ifai AIBOSSSEEKENEMY state bossseekenemystate
  2379.     else ifai AIBOSSRUNENEMY state bossrunenemystate
  2380.     else ifai AIBOSSFLEEENEMY state bossfleeenemy
  2381.     else ifai AIBOSSSHOOTENEMY state bossshootenemy
  2382.     else ifai AIBOSSLOBBED state bosslobbedstate
  2383.  
  2384.     ifai AIBOSSDYING state bossdyingstate
  2385.  
  2386.     ifhitweapon state checkbosshitstate
  2387. ends
  2388.  
  2389. actor BOSS1STAYPUT BOSS1STRENGTH cactor BOSS1 enda
  2390. actor BOSS1 BOSS1STRENGTH fall state bosscode enda
  2391. actor BOSS3 BOSS3STRENGTH fall state bosscode enda
  2392.  
  2393. action AFATBREETH  0  3  5  1  40
  2394. action AFATSPIN   25  3  1  1  10
  2395. action AFATGET     0  3  5  1  30
  2396. action AFATSHOOT  15  2  5  1  50
  2397. action AFATDYING  30  8  1  1  12
  2398. action AFATDEAD   38  1  1  1  1
  2399.  
  2400. move FATGETVELS 96
  2401. move FATSTOPPED
  2402.  
  2403. ai AIFATWAIT AFATBREETH FATSTOPPED face_player
  2404. ai AIFATGET AFATGET FATGETVELS face_player
  2405. ai AIFATSHOOT AFATSHOOT FATSTOPPED face_player
  2406. ai AIFATSPIN AFATSPIN FATGETVELS face_player
  2407. ai AIFATDYING AFATDYING FATSTOPPED face_player
  2408.  
  2409. actor FATGUY FATGUYSTRENGTH
  2410.  
  2411.     fall
  2412.     state checksquished
  2413.     ifai 0 ai AIFATWAIT
  2414.     else ifai AIFATWAIT { ifcount 64 { ifrnd 92 ai AIFATGET else ai AIFATSHOOT } }
  2415.     else ifai AIFATSHOOT
  2416.     {
  2417.         ifcount 32 { ifrnd 32 ai AIFATWAIT }
  2418.         else { ifactioncount 2 { sound COMM_ATTACK shoot RPG resetactioncount } }
  2419.     }
  2420.     else ifai AIFATDYING
  2421.     {
  2422.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  2423.             { sound SQUISHED state standard_jibs state delete_enemy }
  2424.         ifaction AFATDEAD break
  2425.         strength 0
  2426.         ifactioncount 8 { iffloordistl 8 sound THUD cstat 0 action AFATDEAD }
  2427.         break
  2428.     }
  2429.     else ifai AIFATGET { ifnotmoving ifrnd 32 operate ifpdistl 1596 { sound COMM_SPIN ai AIFATSPIN } }
  2430.     else ifai AIFATSPIN
  2431.     {
  2432.         soundonce COMM_SPIN
  2433.         ifcount 16 ifpdistl 1024 { addphealth CAPTSPINNINGPLAYER sound DUKE_GRUNT palfrom 32 16 resetcount }
  2434.         ifactioncount 32 ai AIFATWAIT
  2435.         ifnotmoving ifrnd 32 operate
  2436.  
  2437.     }
  2438.     ifhitweapon { ifdead { addkills 1 sound COMM_DYING ai AIFATDYING } else sound COMM_PAIN }
  2439.     ifrnd 1 soundonce COMM_ROAM
  2440. enda
  2441.  
  2442. move DUMMYWALK 144
  2443. move DUMMYSTOP
  2444. action ADUMMYDUKEWALK    0    4    5    1    20
  2445. action ADUMMYDUKESTAND -20    0    5    1    1
  2446. action ADUMMYDUKESHOOT -20    1    5    1    10
  2447. ai AIDUMMYFINDDUKE   ADUMMYDUKEWALK DUMMYWALK seekplayer
  2448. ai AIDUMMYHIDEDUKE   ADUMMYDUKEWALK DUMMYWALK seekplayer
  2449. ai AIDUMMYFLEEDUKE   ADUMMYDUKEWALK DUMMYWALK fleeplayer
  2450. ai AIDUMMYSHOOTDUKE  ADUMMYDUKESHOOT DUMMYSTOP face_player
  2451.  
  2452. state dummyshootstate
  2453.     ifactioncount 2 { resetactioncount shoot CHAINGUN }
  2454.     ifcount 48 { ifcansee { ifrnd 128 { cstat 32768 spawn TRANSPORTERSTAR ai AIDUMMYHIDEDUKE } else ai AIDUMMYFINDDUKE } else ai 0 }
  2455. ends
  2456.  
  2457. state dummyfindstate
  2458.     ifcansee ifpdistl 768 ai AIDUMMYSHOOTDUKE
  2459.     ifrnd 32 ifcount 64 ifcanseetarget ai AIDUMMYSHOOTDUKE
  2460. ends
  2461.  
  2462. state dummyfleestate
  2463.     ifcount 4 ifpdistl 1228 ifcanseetarget ai AIDUMMYSHOOTDUKE
  2464.     ifcount 32 ifcanseetarget ai AIDUMMYSHOOTDUKE else ai AIDUMMYFINDDUKE
  2465. ends
  2466.  
  2467. state dummyhidestate
  2468.     ifcount 4 ifpdistl 1228 ifcanseetarget { cstat 257 spawn TRANSPORTERBEAM ai AIDUMMYSHOOTDUKE }
  2469.     ifcount 32 ifcanseetarget { cstat 257 spawn TRANSPORTERBEAM ai AIDUMMYSHOOTDUKE }
  2470. ends
  2471.  
  2472. actor DUMMYDUKE BOSS2SMALLDUKESTRENGTH fall
  2473.     spritepal 7
  2474.     ifaction ADUMMYDUKESTAND
  2475.     {
  2476.         ifcount 64 ifcansee ai AIDUMMYFINDDUKE
  2477.         ifrnd 2 ifpdistl 2048 ifcanseetarget ai AIDUMMYSHOOTDUKE
  2478.     }
  2479.     else ifai 0 { ifmove 0 spawn TRANSPORTERBEAM action ADUMMYDUKESTAND move DUMMYSTOP looking }
  2480.     else ifai AIDUMMYFINDDUKE state dummyfindstate
  2481.     else ifai AIDUMMYHIDEDUKE state dummyhidestate
  2482.     else ifai AIDUMMYFLEEDUKE state dummyfleestate
  2483.     else ifai AIDUMMYSHOOTDUKE state dummyshootstate
  2484.     ifhitweapon { ifdead { addkills 1 sound SQUISHED state standard_jibs state delete_enemy break } else cstat 257 }
  2485. enda
  2486.  
  2487. move BIGWALK 64
  2488. move BIGSTOP
  2489. action ABIGDUKEWALK   -5    4    5    1    40
  2490. action ABIGDUKESTAND -25    0    5
  2491. action ABIGDUKESHOOT -25    1    5
  2492. ai AIBIGFINDDUKE   ABIGDUKEWALK BIGWALK seekplayer
  2493. ai AIBIGFLEEDUKE   ABIGDUKEWALK BIGWALK fleeplayer
  2494. ai AIBIGSHOOTDUKE  ABIGDUKESHOOT BIGSTOP face_player
  2495.  
  2496. state bigshootstate
  2497.     ifactioncount 2 { resetactioncount shoot CHAINGUN }
  2498.     ifcount 48 { ifcansee ai AIBIGFINDDUKE else ai 0 }
  2499. ends
  2500.  
  2501. state bigfindstate
  2502.     ifcansee ifpdistl 768 ai AIBIGSHOOTDUKE
  2503.     ifrnd 32 ifcount 64 ifcanseetarget ai AIBIGSHOOTDUKE
  2504. ends
  2505.  
  2506. state bigfleestate
  2507.     ifcount 4 ifpdistl 1228 ifcanseetarget ai AIBIGSHOOTDUKE
  2508.     ifcount 32 ifcanseetarget ai AIBIGSHOOTDUKE else ai AIBIGFINDDUKE
  2509. ends
  2510.  
  2511. actor BIGDUMMYDUKE BOSS2LARGEDUKESTRENGTH fall
  2512.     sizeto 96 96
  2513.     spritepal 7
  2514.     ifaction ABIGDUKESTAND
  2515.     {
  2516.         ifcount 64 ifcansee ai AIBIGFINDDUKE
  2517.         ifrnd 2 ifpdistl 2048 ifcanshoottarget ai AIBIGSHOOTDUKE
  2518.     }
  2519.     else ifai 0 { ifmove 0 spawn TRANSPORTERBEAM action ABIGDUKESTAND move BIGSTOP looking }
  2520.     else ifai AIBIGFINDDUKE state bigfindstate
  2521.     else ifai AIBIGFLEEDUKE state bigfleestate
  2522.     else ifai AIBIGSHOOTDUKE state bigshootstate
  2523.     ifhitweapon { sound SQUISHED state standard_jibs state delete_enemy break }
  2524. enda
  2525.  
  2526.