home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 16 / XENIATGM16.iso / duke3d / dukecgw.zip / GAME.CON < prev    next >
Text File  |  1996-03-04  |  83KB  |  2,986 lines

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