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