home *** CD-ROM | disk | FTP | other *** search
/ Duke Xtreme / DKXTRM.iso / DKXTRM / PACK13 / DKEXGAME.CON < prev    next >
Text File  |  1997-02-18  |  172KB  |  6,610 lines

  1. // Revision = 5
  2. /*
  3. --------------------------------------------------------------------------------
  4. Duke Nukem 3D GAME.CON file.
  5. By Todd Replogle
  6. (c) 1996 3D Realms Entertainment
  7. --------------------------------------------------------------------------------
  8.  
  9.  
  10. IMPORTANT NOTICE IF YOU USE MODIFIED .CON FILES
  11.  
  12. If you are playing a MULTIPLAY game (Dukematch or Co-op) and you are
  13. using *modified* .CON files (USER.CON, GAME.CON, DEFS.CON), then each
  14. multiplayer must be using the EXACT SAME .CON files, or the game will
  15. get out of sync and/or develop interesting problems.
  16.  
  17. 3D Realms encourages you to experiment freely with the parameters
  18. contained in this file, and to share your discoveries with the rest
  19. of the world.  However, BE ADVISED that 3D Realms does NOT offer 
  20. any technical support on how to use this file or other user-modifiable 
  21. features of this game.  Do NOT call 3D Realms or Apogee Software 
  22. for advice or help with this subject.  
  23.  
  24. You make modifications to this and other files at your own risk. 
  25. It is recommended that you first make a backup copy of this, or
  26. any .CON files before making any changes.
  27.  
  28. AGAIN IMPORTANT NOTICE!!!!
  29. THIS CON FILE HAS BEEN MODIFIED SPECIFICALLY FOR THE
  30. DUKE NUKEM 3D CONTROL CENTER UNDER THE DUKE EXTREME 
  31. PROJECT. THE CONTENTS WITH REGARD TO THE ORIGINAL FILE 
  32. REMAIN INTACT AND THE COPYRIGHT OF THE ORIGINAL COPYRIGHT
  33. HOLDER, IE. MODIFICATION ARE USED WITH PERMISSION.  FURTHERMORE,
  34. THE CONTENTS OF THIS FILE AND SOURCE CODE GENERATED AS A CONSEQUENCE
  35. OF USING THE CONTROL CENTER IS AGAIN COPYRIGHTED WORK, COPYRIGHT 1996.
  36. YOU MAY NOT USE OR REDISTRIBUTE THESE MODIFICATIONS.
  37.  
  38. --------------------------------------------------------------------------------
  39.  
  40. */
  41.  
  42. include DN3DDEFS.CON
  43. include DN3DUSER.CON
  44.  
  45.  
  46. state extra_monster_gore
  47. ifrnd MONSTER_GOREFREQ_JIBS1A  guts JIBS1 MONSTER_GOREJIBS1A
  48. ifrnd MONSTER_GOREFREQ_JIBS1A  guts JIBS2 MONSTER_GOREJIBS2A
  49. ifrnd MONSTER_GOREFREQ_JIBS1A  guts JIBS3 MONSTER_GOREJIBS3A
  50. ifrnd MONSTER_GOREFREQ_JIBS1A  guts JIBS4 MONSTER_GOREJIBS4A
  51. ifrnd MONSTER_GOREFREQ_JIBS1A  guts JIBS5 MONSTER_GOREJIBS5A
  52. ifrnd MONSTER_GOREFREQ_JIBS1A  guts JIBS6 MONSTER_GOREJIBS6A
  53.  
  54. ifrnd MONSTER_GOREFREQ_BLOODSPLATA shoot BLOODSPLAT1
  55. ifrnd MONSTER_GOREFREQ_BLOODSPLATA shoot BLOODSPLAT2
  56. ifrnd MONSTER_GOREFREQ_BLOODSPLATA shoot BLOODSPLAT3
  57. ifrnd MONSTER_GOREFREQ_BLOODSPLATA shoot BLOODSPLAT4
  58. ifrnd MONSTER_GOREFREQ_BLOODPOOLA  spawn BLOODPOOL
  59.  
  60.  
  61. ifrnd MONSTER_GOREFREQ_CRAPPING spawn FECES
  62.  
  63. ends
  64.  
  65.  
  66. state random_explosion_sounds
  67.         ifrnd 128  sound PIPEBOMB_EXPLODE else
  68.         ifrnd 128 sound RPG_EXPLODE else
  69.         sound LASERTRIP_EXPLODE
  70.  
  71. ends
  72.  
  73. state random_duke_grunts
  74.  
  75.             ifrnd 64  sound DUKE_LONGTERM_PAIN  else
  76.             ifrnd 64  sound DUKE_GRUNT   else
  77.             ifrnd 64   sound DUKE_LONGTERM_PAIN2  else
  78.             ifrnd 64 sound DUKE_LONGTERM_PAIN3 else
  79.             ifrnd 64 sound DUKE_LONGTERM_PAIN4 else
  80.             ifrnd 64 soundonce DUKE_KILLED3
  81.             else ifrnd 64 soundonce DUKE_GASP 
  82.             else ifrnd 64 soundonce DUKE_SEARCH else
  83.             sound DUKE_LONGTERM_PAIN
  84. ends
  85.  
  86.  
  87.  
  88.  
  89. definequote 124 INVINCIBLE!!
  90. definequote 125 NOT INVINCIBLE!!
  91.  
  92.  
  93.  
  94.  
  95.  
  96. // BLOCKINSERT: SUNSHARK_MOREGORE - sshkgore!
  97.  
  98.  
  99.  
  100. state corpseexplodingstate
  101.     ifrnd 8 
  102.         ifrnd CORPSE_EXPLODE_FREQUENCY 
  103.         {
  104.          spawn EXPLOSION2
  105.          hitradius 2648  WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  106.                      debris SCRAP2 10
  107.          guts JIBS1 EXPLODING_JIBS1_AMOUNT
  108.          guts JIBS2 EXPLODING_JIBS1_AMOUNT
  109.          guts JIBS3 EXPLODING_JIBS1_AMOUNT
  110.          guts JIBS4 EXPLODING_JIBS2_AMOUNT
  111.          guts JIBS5 EXPLODING_JIBS2_AMOUNT
  112.          guts JIBS6 EXPLODING_JIBS2_AMOUNT
  113.          state random_explosion_sounds
  114.                     killit
  115.         break
  116.         }
  117. ends
  118.  
  119.  
  120.  
  121.  
  122.  
  123. state shootstatuedebris
  124.     debris SCRAP1 STATUEMAKER_DEBRIS_AMOUNT1
  125.     debris SCRAP2 STATUEMAKER_DEBRIS_AMOUNT1
  126.     debris SCRAP3 STATUEMAKER_DEBRIS_AMOUNT1
  127.     debris SCRAP4 STATUEMAKER_DEBRIS_AMOUNT2
  128.     debris SCRAP5 STATUEMAKER_DEBRIS_AMOUNT2
  129.     debris SCRAP6  STATUEMAKER_DEBRIS_AMOUNT2
  130.     lotsofglass STATUEMAKER_DEBRIS_AMOUNT2
  131. ends
  132.  
  133.  
  134.  
  135.  
  136. state explodethegoodies
  137.  hitradius EXPLOSIVE_GOODIES_HITRADIUS  WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  138.                             spawn EXPLOSION2
  139.                             debris SCRAP2 EXPLOSIVEGOODIES_NUMSCRAPS2
  140.                  debris SCRAP3 EXPLOSIVEGOODIES_NUMSCRAPS3
  141.                  debris SCRAP1 EXPLOSIVEGOODIES_NUMSCRAPS1
  142.                  debris SCRAP4 EXPLOSIVEGOODIES_NUMSCRAPS4
  143.                             state random_explosion_sounds
  144.                 ifrnd 32 wackplayer
  145.                 sound DUKE_GRUNT
  146.                 palfrom 24 10
  147.                 ifrnd 128 killit
  148. ends
  149.  
  150. state explosive_goodies
  151.     ifpdistl EXPLOSIVEGOODIES_RETREIVE_DISTANCE
  152.          { 
  153.           ifactor AIRTANK {  ifrnd AIRTANK_EXP_FREQ  
  154.                      ifrnd AIRTANK_EXP_FREQ   { state explodethegoodies } } else
  155.         ifactor JETPACK {  ifrnd JETPACK_EXP_FREQ  
  156.                      ifrnd JETPACK_EXP_FREQ   { state explodethegoodies } } else
  157.         ifactor DEVISTATORAMMO {  ifrnd DEVISTATORAMMO_EXP_FREQ  
  158.                      ifrnd DEVISTATORAMMO_EXP_FREQ { state explodethegoodies } } else
  159.         ifactor RPGAMMO { ifrnd RPGAMMO_EXP_FREQ  
  160.                  ifrnd RPGAMMO_EXP_FREQ { state explodethegoodies } } else
  161.         ifactor HBOMBAMMO {  ifrnd HBOMBAMMO_EXP_FREQ 
  162.                        ifrnd HBOMBAMMO_EXP_FREQ { state explodethegoodies } }  else
  163.         ifactor ATOMICHEALTH { ifrnd  ATOMICHEALTH_EXP_FREQ 
  164.                                   ifrnd  ATOMICHEALTH_EXP_FREQ { state explodethegoodies } } else
  165.         ifactor RPGSPRITE { ifrnd RPGSPRITE_EXP_FREQ 
  166.                  ifrnd RPGSPRITE_EXP_FREQ { state explodethegoodies } } else
  167.         ifactor TRIPBOMBSPRITE { ifrnd TRIPBOMBSPRITE_EXP_FREQ  
  168.                      ifrnd TRIPBOMBSPRITE_EXP_FREQ { state explodethegoodies } } else
  169.         ifactor DEVISTATORSPRITE { ifrnd DEVISTATORSPRITE_EXP_FREQ  
  170.                       ifrnd DEVISTATORSPRITE_EXP_FREQ { state explodethegoodies } }
  171.         }
  172. ends
  173.  
  174.  
  175.  
  176.  
  177. definequote 130 YOU ARE BLEEDING!
  178. definequote 131 HURRY, FIND HEALTH!
  179. definequote 132 IT MUST BE THAT TIME OF MONTH
  180.  
  181.  
  182.  
  183.  
  184. define FART_SOUND 311
  185. definesound FART_SOUND     fart1.voc   FECALMAT_FART_SOUND_VAR1    FECALMAT_FART_SOUND_VAR2   3  0   FECALMAT_FART_SOUND_VOL
  186. definequote 133 THIS SMELLS!!!!
  187. definequote 134 YUCK RAW SEWAGE _ RUN!!
  188. definequote 135 CRAP - BLOW IT UP!
  189.  
  190. state killfeces
  191.     shoot BLOODSPLAT1
  192.     shoot BLOODSPLAT2
  193.     guts JIBS6 20
  194.     ifrnd 32 spawn BLOODPOOL
  195.     killit
  196. ends
  197.  
  198. state explodefeces
  199.     
  200.             hitradius FECALMATER_EXPLODE_RADIUS  WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  201.             spawn EXPLOSION2
  202.             sound PIPEBOMB_EXPLODE
  203.             ifrnd FECAL_EXPLODING_KILLIT_FREQ ifrnd FECAL_EXPLODING_KILLIT_FREQ state killfeces
  204. ends
  205.  
  206.  
  207. define DUKE_FART_SOUND 315
  208. definesound DUKE_FART_SOUND fart2.voc 0 0 3 0 0
  209.  
  210.  
  211. //
  212. //
  213. //
  214. //
  215. //
  216. //
  217. //
  218. //
  219. //
  220. //
  221. //
  222.  
  223.  
  224.  
  225.  
  226. state genericshrunkcode
  227.     ifcount 32 { ifpdistl SQUISHABLEDISTANCE pstomp }
  228.     else { sizeto 9 8 spawn FRAMEEFFECT1 }
  229. ends
  230.  
  231. move SHUTTLEVELS 16
  232.  
  233. actor SPACESHUTTLE TOUGH
  234.   //  ifmove 0 { move SHUTTLEVELS getv geth }
  235. enda
  236.  
  237. actor SATELLITE TOUGH
  238.   //  ifmove 0 { move SHUTTLEVELS getv geth }
  239.   //  ifcount 120 move SHUTTLEVELS getv geth randomangle
  240. enda
  241.  
  242. action ASHARKCRUZING 0 8 5 1 24
  243. action ASHARKFLEE    0 8 5 1 10
  244. action ASHARKATACK   0 8 5 1 6
  245. action ASHARKSHRUNK  0 8 5 1 24
  246. action ASHARKFROZEN  0 1 5 1 24
  247.  
  248. move SHARKVELS SHARK_STANDARD_CRUISEVEL
  249. move SHARKFASTVELS SHARK_STANDARD_FASTVEL
  250. move SHARKFLEEVELS SHARK_STANDARD_FLEEVEL
  251.  
  252. actor SHARK SHARKSTRENGTH ASHARKCRUZING SHARKVELS randomangle geth
  253.     ifaction ASHARKSHRUNK
  254.     {
  255.         ifcount SHRUNKDONECOUNT action ASHARKCRUZING
  256.         else ifcount SHRUNKCOUNT sizeto 24 24
  257.         else state genericshrunkcode
  258.     }
  259.     else ifaction ASHARKFROZEN
  260.     {
  261.         fall
  262.  
  263.         ifcount THAWTIME { action ASHARKFLEE getlastpal }
  264.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  265.  
  266.         ifhitweapon
  267.         {
  268.             ifwasweapon FREEZEBLAST { strength 0 break }
  269.             lotsofglass 30
  270.             sound GLASS_BREAKING
  271.             killit
  272.         }
  273.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  274.         break
  275.     }
  276.     else ifaction ASHARKFLEE
  277.     {
  278.         ifcount 16 ifrnd 48 { action ASHARKCRUZING move SHARKVELS randomangle geth }
  279.     }
  280.     else ifaction ASHARKCRUZING
  281.     {
  282.         ifcansee ifcount 48 ifrnd 2 { action ASHARKATACK move SHARKFASTVELS faceplayerslow getv break }
  283.         ifcount 32 ifnotmoving
  284.         {
  285.             ifrnd 128 move SHARKVELS randomangle geth
  286.             else move SHARKFASTVELS randomangle geth
  287.         }
  288.     }
  289.     else ifaction ASHARKATACK
  290.     {
  291.         ifcount 4
  292.         {
  293.             ifpdistl 1280
  294.             {
  295.                 ifp palive ifcanshoottarget
  296.                 {
  297.                     sound DUKE_GRUNT
  298.                     palfrom 32 32
  299.                     addphealth SHARKBITESTRENGTH
  300.                 }
  301.                 action ASHARKFLEE
  302.                 move SHARKFLEEVELS fleeenemy
  303.             }
  304.         }
  305.         else ifnotmoving
  306.             { ifcount 32 { action ASHARKCRUZING move SHARKVELS randomangle geth } }
  307.         else ifcount 48 ifrnd 2
  308.             { action ASHARKCRUZING move SHARKFASTVELS randomangle geth }
  309.     }
  310.  
  311.     ifhitweapon
  312.     {
  313.  
  314.        // BLOCKINSERT: SUNSHARK_MOREGORE_STATECALL - sshkgore!
  315.  
  316.         ifdead
  317.             { sound SQUISHED guts JIBS6 5 killit }
  318.         else
  319.         {
  320.             ifwasweapon SHRINKSPARK
  321.             {
  322.                 action ASHARKSHRUNK
  323.                 sound ACTOR_SHRINKING
  324.             }
  325.             else ifwasweapon FREEZEBLAST
  326.             {
  327.                 action ASHARKFROZEN
  328.                 sound SOMETHINGFROZE
  329.                 move 0
  330.             }
  331.             else move SHARKVELS randomangle geth
  332.         }
  333.     }
  334. enda
  335.  
  336.  
  337. action BLIMPWAITTORESPAWN
  338.  
  339. state blimphitstate
  340.     cstat 0
  341.     spawn FIRSTGUNSPRITE
  342.     spawn EXPLOSION2
  343.  
  344.     debris SCRAP1 BLIMP_SCRAP1            // Weapons and ammo!
  345.     debris SCRAP2 BLIMP_SCRAP2
  346.     debris SCRAP3 BLIMP_SCRAP3
  347.     debris SCRAP4 BLIMP_SCRAP4
  348.     debris SCRAP5 BLIMP_SCRAP5
  349.  
  350. debris SCRAP1 SUNBLIMPGOODIES_SCRAP1            // Weapons and ammo!
  351.     debris  SCRAP2 SUNBLIMPGOODIES_SCRAP2
  352.     debris  SCRAP3 SUNBLIMPGOODIES_SCRAP3
  353.     debris  SCRAP4 SUNBLIMPGOODIES_SCRAP1
  354.     debris  SCRAP5 SUNBLIMPGOODIES_SCRAP2
  355.    
  356.  
  357.  
  358.  
  359.     sound PIPEBOMB_EXPLODE
  360.     ifrespawn { action BLIMPRESPAWNTIME move 0 cstat 32768 }
  361.     else killit
  362. ends
  363.  
  364. actor BLIMP 1
  365.  
  366.     ifaction BLIMPWAITTORESPAWN
  367.     {
  368.         ifcount RESPAWNACTORTIME
  369.         {
  370.             action 0
  371.             cstat 0
  372.             move 0
  373.         }
  374.         break
  375.     }
  376.  
  377.     ifhitweapon
  378.     {
  379.         ifwasweapon RADIUSEXPLOSION state blimphitstate
  380.         ifwasweapon RPG state blimphitstate
  381.         strength 1
  382.     }
  383. enda
  384.  
  385.  
  386.  
  387. state rats
  388.  
  389.    
  390.  
  391. ifrnd MORERAT_FREQ1 spawn RAT
  392.     ifrnd MORERAT_FREQ1 spawn RAT
  393.     ifrnd MORERAT_FREQ1 spawn RAT
  394.     ifrnd MORERAT_FREQ1 spawn RAT
  395.     ifrnd MORERAT_FREQ1 spawn RAT
  396.     ifrnd MORERAT_FREQ1 spawn RAT
  397.     ifrnd MORERAT_FREQ1 spawn RAT
  398.     ifrnd MORERAT_FREQ1 spawn RAT
  399.  
  400.     ifrnd MORERAT_FREQ2 spawn RAT
  401.     ifrnd MORERAT_FREQ2 spawn RAT
  402.     ifrnd MORERAT_FREQ2 spawn RAT
  403.     ifrnd MORERAT_FREQ2 spawn RAT
  404.     ifrnd MORERAT_FREQ2 spawn RAT
  405.     ifrnd MORERAT_FREQ2 spawn RAT
  406.     ifrnd MORERAT_FREQ2 spawn RAT
  407.     ifrnd MORERAT_FREQ2 spawn RAT
  408.     ifrnd MORERAT_FREQ2 spawn RAT
  409.     ifrnd MORERAT_FREQ2 spawn RAT
  410.     ifrnd MORERAT_FREQ2 spawn RAT
  411.      ifrnd MORERAT_FREQ2 spawn RAT
  412.     ifrnd MORERAT_FREQ2 spawn RAT
  413.     ifrnd MORERAT_FREQ2 spawn RAT
  414.     ifrnd MORERAT_FREQ2 spawn RAT
  415.     ifrnd MORERAT_FREQ2 spawn RAT
  416.     ifrnd MORERAT_FREQ2 spawn RAT
  417.     ifrnd MORERAT_FREQ2 spawn RAT
  418.  
  419.  
  420.  
  421.  
  422.     ifrnd RAT_FREQ1 spawn RAT
  423.     ifrnd RAT_FREQ1 spawn RAT
  424.     ifrnd RAT_FREQ1 spawn RAT
  425.     ifrnd RAT_FREQ1 spawn RAT
  426.     ifrnd RAT_FREQ1 spawn RAT
  427.     ifrnd  RAT_FREQ1 spawn RAT
  428.     ifrnd  RAT_FREQ1 spawn RAT
  429.     ifrnd  RAT_FREQ1 spawn RAT
  430.  
  431.  
  432. ends
  433.  
  434. move RESPAWN_ACTOR_FLAG
  435.  
  436.  
  437. // BLOCKINSERT: SUNBURSTINGRATS_INSERTBLOCK22 - sburrats!
  438.  
  439.  
  440.  
  441. // BLOCKINSERT: SUNBURSTINGRATS_INSERTBLOCK33 - sburrats!
  442.  
  443. move RATMOVEMENT 80 0
  444. move RATMOVEMENT_ROMCAN 80 0 
  445. move RATMOVEMENT_DEVII 80 0 
  446.  
  447. actor RAT
  448.  
  449.  
  450.  
  451. ifspritepal 1 spritepal 1 else ifspritepal 2 spritepal 2 else ifspritepal 3 spritepal 3 else spritepal 0
  452.  
  453.  
  454.      ifspawnedby EXPLOSION2
  455.          {     
  456.             cstat 32768 
  457.             move RATMOVEMENT DEVII_GROUNDBURSTSIZE geth randomangle
  458.             spritepal 1
  459.             stopsound RATTY
  460.             
  461.         }
  462.  
  463.  
  464.      ifspawnedby SMALLSMOKE
  465.          {      
  466.             cstat 32768 
  467.             move RATMOVEMENT DEVII_GROUNDBURSTSIZE geth randomangle
  468.             spritepal 8 
  469.             stopsound RATTY
  470.          }
  471.  
  472.     
  473.      ifspritepal 1   
  474.         {  ifrnd DEVII_EXPLOSION_FREQUENCY
  475.              ifrnd DEVII_EXPLOSION_FREQUENCY
  476.              {
  477.                 stopsound RATTY        
  478.  
  479.                                hitradius DEVII_BLAST_RADIUS WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  480.  
  481.                         ifrnd DEVII_SHOOTBOOMFREQ1 { move DEVII_GROUNDBURSTSIZE getv randomangle shoot MORTER }
  482.                 ifrnd DEVII_SHOOTBOOMFREQ2 { move DEVII_GROUNDBURSTSIZE 0 randomangle shoot COOLEXPLOSION1 }
  483.                 ifrnd DEVII_SHOOTBOOMFREQ1 { move DEVII_GROUNDBURSTSIZE getv  randomangle shoot MORTER }
  484.                 ifrnd DEVII_SHOOTBOOMFREQ2 { move DEVII_GROUNDBURSTSIZE 0 randomangle shoot COOLEXPLOSION1 }
  485.  
  486.                             debris SCRAP1 DEVII_SECONDARYDEBRISNUM1
  487.                 debris SCRAP2 DEVII_SECONDARYDEBRISNUM2
  488.                 debris SCRAP3 DEVII_SECONDARYDEBRISNUM1
  489.                 debris SCRAP4 DEVII_SECONDARYDEBRISNUM2
  490.                             
  491.                  spawn EXPLOSION2
  492.                 spawn BURNING
  493.                           state random_explosion_sounds
  494.                            killit
  495.  
  496.                             break 
  497.             }
  498.             ifrnd 64 spawn SMALLSMOKE
  499.                                } 
  500.  
  501.     
  502.     ifspritepal 8 { ifrnd ROMCAN_EXPOSLOSION_FREQUENCY 
  503.              ifrnd ROMCAN_EXPOSLOSION_FREQUENCY
  504.              { 
  505.                 stopsound RATTY
  506.                            ifhitspace
  507.                  {
  508.                     sound PIPEBOMB_EXPLODE
  509.  
  510.                     ifrnd 3 {  spawn EXPLOSION2
  511.                         hitradius DEVII_BLAST_RADIUS WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  512.                         state random_explosion_sounds
  513.                         }
  514.                         
  515.                     spawn FIRE
  516.  
  517.                     killit
  518.                     break
  519.                 }
  520.  
  521.                 
  522.             }
  523.             ifrnd 64 spawn SMALLSMOKE
  524.         }
  525.     
  526.     resetactioncount
  527.  
  528.  
  529.  
  530.  
  531. ifspawnedby EXPLOSION2BOT { cstat 32768 stopsound RATTY spritepal 2 move RATMOVEMENT MEGABOMB_SECONDARY_SPREAD geth randomangle } 
  532.  
  533. ifrnd MEGABOMB_SECONDARY_DETONATE_FREQ ifrnd MEGABOMB_SECONDARY_DETONATE_FREQ
  534.              { 
  535.                  ifspritepal 2      {
  536.                         stopsound RATTY
  537.                         spawn EXPLOSION2
  538.                                      spawn FIRE2
  539.                         state random_explosion_sounds
  540.                                       hitradius MEGABOMB_SECONDARY_BLASTRADIUS WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  541.                         debris SCRAP1 MEGABOMB_SECONDARY_DEBRISNUM1
  542.                         debris SCRAP2 MEGABOMB_SECONDARY_DEBRISNUM2
  543.                         debris SCRAP3 MEGABOMB_SECONDARY_DEBRISNUM3
  544.                         debris SCRAP4 MEGABOMB_SECONDARY_DEBRISNUM4
  545.                         ifrnd MEGABOMB_SECONDARY_MORTERSHOOTFREQ {  shoot MORTER }
  546.                                         ifrnd MEGABOMB_SECONDARY_FIRELASERSHOOTFREQ {  shoot FIRELASER }
  547.                         ifrnd  MEGABOMB_SECONDARY_COOLEXPLOSION1FREQ {  shoot COOLEXPLOSION1 }
  548.                         ifrnd  MEGABOMB_SECONDARY_RPGSHOOTFREQ {  shoot RPG }
  549.                                     
  550.                             killit
  551.                                         break 
  552.                           }    
  553.                                } 
  554. resetactioncount
  555.  
  556.  
  557.  
  558.  
  559. // BLOCKINSERT: SUNBURSTINGRATS_INSERTBLOCK11 - sburrats!
  560.  
  561.  
  562. enda
  563.  
  564.  
  565.  
  566. action RUBCANDENT 1 1 1 1 1
  567. action RUBCAN
  568.  
  569.  
  570. state hit_duke_ricochet
  571.  
  572.                     sound DUKE_LONGTERM_PAIN    // Sound a pain
  573.                     palfrom 32 33               // palette the screen
  574.                     addphealth HEALTHDEDUCT               // deduct 5 points of health
  575.                     ifrnd HEADFREQ wackplayer        // wack player on head
  576.  
  577. ends
  578.  
  579.  
  580. actor RUBBERCAN WEAK
  581.     ifaction RUBCANDENT { ifactioncount 6 { strength 0 action RUBCAN break } }
  582.     else ifhitweapon
  583.     {
  584.         ifwasweapon RADIUSEXPLOSION
  585.                 { 
  586.       state rats
  587.                   ifrnd 48 spawn BURNING
  588.                   ifrnd RICOFREQ {
  589.                            sound PISTOL_RICOCHET        // sound a ricochet 50 % of the time.
  590.                            ifrnd RICOHITFREQ state hit_duke_ricochet
  591.                            }
  592.                   debris SCRAP2 60
  593.                   debris SCRAP3 72
  594.                   killit }
  595.         else
  596.           ifwasweapon SHOTSPARK1
  597.            {
  598.                 action RUBCANDENT                       // Dent the can
  599.                 ifrnd RICOFREQ {
  600.                            sound PISTOL_RICOCHET        // sound a ricochet 50 % of the time.
  601.                            ifrnd RICOHITFREQ state hit_duke_ricochet
  602.                            }
  603.                 ifrnd DEBRISFREQ lotsofglass NUMGLASS
  604.                 ifrnd DEBRISFREQ debris SCRAP1 NUMDEBRIS1
  605.                 ifrnd DEBRISFREQ debris SCRAP2 NUMDEBRIS2
  606.                 ifrnd DEBRISFREQ debris SCRAP3 NUMDEBRIS3
  607.                 ifrnd DEBRISFREQ debris SCRAP4 NUMDEBRIS4
  608.                 ifrnd DEBRISFREQ debris SCRAP5 NUMDEBRIS5
  609.                 ifrnd DEBRISFREQ debris SCRAP6 NUMDEBRIS6
  610.     ifrnd RUBBER_SHOOT_MORTER_FREQ  { move 0 0 randomangle shoot MORTER }
  611.            }
  612.            else action RUBCANDENT
  613.     }
  614.  enda
  615.  
  616.  
  617.  
  618. state headhitstate
  619. // Unrem the following line to involving screen tilting during
  620. // low player hitpoint damage.
  621.  
  622.  
  623. // wackplayer
  624.  
  625.  
  626. ends
  627.  
  628.  
  629. action EXPBARRELFRAME         0   2   1   1   15
  630.  
  631. // OLD BARREL CODE WAS HERE
  632.  
  633.  
  634. action BURNING_FLAME    0   12   1   1   2
  635. move BURNING_VELS 
  636.  
  637. state burningstate
  638.  
  639.     ifgapzl 16 break
  640.     ifspawnedby RAT { sizeto 52 52 } else ifpdistg 10240 break
  641.  
  642.     ifcount 128
  643.     {
  644.         ifspawnedby TIRE
  645.         {
  646.             ifactioncount 512
  647.             {
  648.                 sizeto 16 16
  649.                 killit
  650.             }
  651.             ifrnd 16 sizeto 64 48
  652.         }
  653.         else
  654.         {
  655.             sizeto 8 8 sizeto 8 8
  656.             ifactioncount 192 killit
  657.         }
  658.     }
  659.     else
  660.     {
  661.         ifmove 0 move BURNING_VELS
  662.  
  663.         ifspawnedby BOX
  664.             { sizeto 32 32 ifcount 32 { spawn SMALLSMOKE killit } }
  665.         else ifspawnedby TREE1 sizeto 96 96
  666.         else ifspawnedby TREE2 sizeto 96 96
  667.         else ifspawnedby APLAYER { sizeto 40 40 sizeto 40 40 }
  668.         else sizeto 52 52
  669.         ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 24 16 }
  670.     }
  671.  
  672. ends
  673.  
  674. actor BURNING WEAK BURNING_FLAME
  675.     state burningstate
  676. enda
  677.  
  678. actor BURNING2 WEAK BURNING_FLAME
  679.     state burningstate
  680. enda
  681.  
  682.  
  683. define BLOODYFOUNTAIN_SPIT 310
  684. definesound BLOODYFOUNTAIN_SPIT  bspit.voc         BLDFOUN_RANDOMPITVAR1    BLDFOUN_RANDOMPITVAR2   3  0  0
  685.  
  686.  
  687.  
  688. action TOILETWATERFRAMES 0 4 1 1 1
  689. actor TOILETWATER 0 TOILETWATERFRAMES
  690.  
  691.  
  692.     spritepal 10
  693.  
  694.         ifrnd BLOODY_FOUNTAIN_SPLATFREQ
  695.     
  696.      {
  697.         move 0 0 randomangle
  698.         shoot BLOODSPLAT1
  699.         move 0 0 randomangle
  700.         shoot BLOODSPLAT2
  701.         move  0 0 faceplayer
  702.         ifrnd BLOODY_FOUNTAIN_JIBSFREQ guts JIBS6 BLOODY_FOUNTAIN_JIBSAMOUNT
  703.         
  704.     }        
  705.     
  706.     ifrnd BLOODY_FOUNTAIN_SPITFREQ { move  0 0 faceplayer  sound BLOODYFOUNTAIN_SPIT shoot SPIT }
  707.  
  708.  
  709.  
  710.  
  711.     ifpdistl 8192
  712.     {
  713.         soundonce WATER_GURGLE
  714.         ifspawnedby TOILET sizeto 34 34
  715.         else
  716.         {
  717.             ifspawnedby WATERFOUNTAINBROKE
  718.                 sizeto 6 15
  719.             else ifspawnedby TOILETWATER { } else sizeto 24 32
  720.         }
  721.  
  722.         ifp palive ifpdistl RETRIEVEDISTANCE ifp pfacing ifactioncount 32
  723.             ifphealthl MAXPLAYERHEALTH ifhitspace ifcansee
  724.         {
  725.             addphealth DRINK_TOILETWATER_HEALTHGAIN
  726.             globalsound DUKE_DRINKING
  727.             resetactioncount
  728.         }
  729.     }
  730. enda
  731.  
  732. action WOODENHORSEFRAME  0   1   4
  733. action WOODENFALLFRAME  122  1   5
  734.  
  735. actor HORSEONSIDE WEAKEST cactor WOODENHORSE action WOODENFALLFRAME enda
  736. actor WOODENHORSE WEAK WOODENHORSEFRAME
  737.     fall
  738.     ifhitweapon
  739.     {
  740.         ifdead
  741.         {
  742.             debris SCRAP1 4
  743.             debris SCRAP2 3
  744.             killit
  745.         }
  746.         else action WOODENFALLFRAME
  747.     }
  748. enda
  749.  
  750. state steamcode
  751.     ifpdistl 8192 soundonce STEAM_HISSING
  752.  
  753.     ifcount 20
  754.     {
  755.       ifspawnedby FECES { ifrnd 16 killit else move 0 0 -faceplayer }
  756.         resetcount
  757.         ifp palive ifpdistl 1024
  758.         {
  759.             addphealth STEAM_HURT_HEALTHDEDUCT
  760.             palfrom 16 16
  761.         }
  762.     }
  763.     else
  764.     {
  765.         
  766.           
  767.       ifspawnedby STEAM break ifspawnedby CEILINGSTEAM break
  768.       
  769.         sizeto 24 24
  770.     }
  771. ends
  772.  
  773. action STEAMFRAMES      0       5       1       1       1
  774. actor STEAM 0 STEAMFRAMES
  775.     state steamcode
  776. enda
  777.  
  778. actor CEILINGSTEAM 0 STEAMFRAMES
  779.     state steamcode
  780. enda
  781.  
  782. actor WATERBUBBLEMAKER 0 0 randomangle
  783.     ifpdistl 3084 ifrnd 24 spawn WATERBUBBLE
  784. enda
  785.  
  786. action BUBBLE
  787. action CRACKEDBUBBLE    1
  788. move BUBMOVE           -10 -36
  789. move BUBMOVEFAST           -10 -52
  790.  
  791. actor WATERBUBBLE 0 BUBBLE BUBMOVE getv geth randomangle
  792.  
  793.     ifaction CRACKEDBUBBLE
  794.     {
  795.         ifinwater ifrnd 192 killit
  796.         ifactioncount 7 killit
  797.     }
  798.     else
  799.     {
  800.         ifcount 4
  801.         {
  802.             ifrnd 192 move BUBMOVE getv geth randomangle
  803.             else move BUBMOVEFAST getv geth randomangle
  804.             resetcount
  805.         }
  806.  
  807.         ifonwater
  808.         {
  809.             iffloordistl 8 action CRACKEDBUBBLE
  810.         }
  811.         else ifactioncount 40 action CRACKEDBUBBLE
  812.     }
  813. enda
  814.  
  815. define CLOUD_BURST_SOUND 316
  816. definesound CLOUD_BURST_SOUND cldbust.voc 0 0 128 0 0 
  817.  
  818.  
  819.  
  820. move DUMMYMOVERPGFIRESTROM 10 0
  821.  
  822. state devistatorii
  823.     ifrnd DEVII_SATEXPL_FREQ1  { spawn RAT }
  824.     ifrnd DEVII_SATEXPL_FREQ1  { spawn RAT }
  825.     ifrnd DEVII_SATEXPL_FREQ1  { spawn RAT }
  826.     ifrnd DEVII_SATEXPL_FREQ2  { spawn RAT }
  827.     ifrnd DEVII_SATEXPL_FREQ2  { spawn RAT }
  828.     ifrnd DEVII_SATEXPL_FREQ2  { spawn RAT }
  829.     ifrnd DEVII_SATEXPL_FREQ2  { spawn RAT }
  830.     ifrnd DEVII_SATEXPL_FREQ3  { spawn RAT }
  831.     ifrnd DEVII_SATEXPL_FREQ3  { spawn RAT }
  832.     ifrnd DEVII_SATEXPL_FREQ3  { spawn RAT }
  833.     ifrnd DEVII_SATEXPL_FREQ3  { spawn RAT }
  834.     ifrnd DEVII_SATEXPL_FREQ3  { spawn RAT }
  835.  
  836.     ifrnd DEVII_SPONTMORTFREQ ifrnd DEVII_SPONTMORTFREQ { move DUMMYMOVERPGFIRESTROM geth getv randomangle shoot MORTER  }
  837.  
  838.       ifrnd DEVII_SATEXPL_DEBRIS_FREQ debris SCRAP1  DEVII_SATEXPL_NUMDEBRIS1
  839.     ifrnd DEVII_SATEXPL_DEBRIS_FREQ debris  SCRAP2  DEVII_SATEXPL_NUMDEBRIS2
  840.     ifrnd DEVII_SATEXPL_DEBRIS_FREQ debris  SCRAP3  DEVII_SATEXPL_NUMDEBRIS1
  841.     ifrnd DEVII_SATEXPL_DEBRIS_FREQ debris SCRAP4   DEVII_SATEXPL_NUMDEBRIS2
  842.     ifrnd DEVII_SATEXPL_DEBRIS_FREQ  lotsofglass   DEVII_SATEXPL_NUMGLASS
  843. ends
  844.  
  845. state romancandle
  846.  
  847.                 ifrnd ROMCAN_FIREBALLEXPL_FREQ1     ifrnd ROMCAN_FIREBALLEXPL_FREQ1 { 
  848.              ifrnd ROMCAN_FIREBALLEXPL_FREQ1 spawn RAT spawn EXPLOSION2BOT sound  CLOUD_BURST_SOUND }
  849.        ifrnd ROMCAN_FIREBALLEXPL_FREQ1     ifrnd ROMCAN_FIREBALLEXPL_FREQ1 { 
  850.              ifrnd ROMCAN_FIREBALLEXPL_FREQ1 spawn RAT spawn EXPLOSION2BOT sound  CLOUD_BURST_SOUND }
  851.        ifrnd ROMCAN_FIREBALLEXPL_FREQ1     ifrnd ROMCAN_FIREBALLEXPL_FREQ1 { 
  852.              ifrnd ROMCAN_FIREBALLEXPL_FREQ1 spawn RAT spawn EXPLOSION2BOT sound  CLOUD_BURST_SOUND }
  853.     ifrnd ROMCAN_FIREBALLEXPL_FREQ2     ifrnd ROMCAN_FIREBALLEXPL_FREQ2  {
  854.              ifrnd ROMCAN_FIREBALLEXPL_FREQ2 spawn RAT spawn EXPLOSION2BOT sound  CLOUD_BURST_SOUND  }
  855.     ifrnd ROMCAN_FIREBALLEXPL_FREQ2     ifrnd ROMCAN_FIREBALLEXPL_FREQ2  {
  856.              ifrnd ROMCAN_FIREBALLEXPL_FREQ2 spawn RAT spawn EXPLOSION2BOT sound  CLOUD_BURST_SOUND  }
  857.     ifrnd ROMCAN_FIREBALLEXPL_FREQ2     ifrnd ROMCAN_FIREBALLEXPL_FREQ2  {
  858.              ifrnd ROMCAN_FIREBALLEXPL_FREQ2 spawn RAT spawn EXPLOSION2BOT sound  CLOUD_BURST_SOUND  }
  859.     ifrnd ROMCAN_FIREBALLEXPL_FREQ2     ifrnd ROMCAN_FIREBALLEXPL_FREQ2  {
  860.              ifrnd ROMCAN_FIREBALLEXPL_FREQ2 spawn RAT spawn EXPLOSION2BOT sound  CLOUD_BURST_SOUND  }
  861.     ifrnd ROMCAN_FIREBALLEXPL_FREQ3   ifrnd ROMCAN_FIREBALLEXPL_FREQ3  {
  862.              ifrnd ROMCAN_FIREBALLEXPL_FREQ3 spawn RAT spawn EXPLOSION2BOT sound  CLOUD_BURST_SOUND  }
  863.     ifrnd ROMCAN_FIREBALLEXPL_FREQ3   ifrnd ROMCAN_FIREBALLEXPL_FREQ3  {
  864.              ifrnd ROMCAN_FIREBALLEXPL_FREQ3 spawn RAT spawn EXPLOSION2BOT sound  CLOUD_BURST_SOUND  }
  865.     ifrnd ROMCAN_FIREBALLEXPL_FREQ3   ifrnd ROMCAN_FIREBALLEXPL_FREQ3  {
  866.              ifrnd ROMCAN_FIREBALLEXPL_FREQ3 spawn RAT spawn EXPLOSION2BOT sound  CLOUD_BURST_SOUND  }
  867.     ifrnd ROMCAN_FIREBALLEXPL_FREQ3   ifrnd ROMCAN_FIREBALLEXPL_FREQ3  {
  868.              ifrnd ROMCAN_FIREBALLEXPL_FREQ3 spawn RAT spawn EXPLOSION2BOT sound  CLOUD_BURST_SOUND  }
  869.     ifrnd ROMCAN_FIREBALLEXPL_FREQ3   ifrnd ROMCAN_FIREBALLEXPL_FREQ3  {
  870.              ifrnd ROMCAN_FIREBALLEXPL_FREQ3 spawn RAT spawn EXPLOSION2BOT sound  CLOUD_BURST_SOUND  }
  871. ends
  872.  
  873.  
  874.  
  875.  
  876.  
  877.  
  878. move SMOKEVEL 8 -16
  879. move ENGINE_SMOKE 64 -64
  880. move SMOKESHOOTOUT -192
  881. action SMOKEFRAMES 0 4 1 1 10
  882. actor SMALLSMOKE 0 SMOKEFRAMES
  883.     ifmove 0
  884.     {
  885.         ifspawnedby RECON
  886.             move SMOKESHOOTOUT geth
  887.         else ifspawnedby SECTOREFFECTOR
  888.             move ENGINE_SMOKE geth getv
  889.         else move SMOKEVEL geth getv faceplayer
  890.         ifspawnedby RPG
  891.         cstat 2
  892.     }
  893.  
  894.  
  895.  
  896. ifspawnedby RPG {     ifhitspace  { ifrnd ROMCAN_COLORFLAMESPAWN_FREQ state romancandle  } }
  897.  
  898.     
  899.  
  900.  
  901.  
  902.     ifpdistl SMALLSMOKE_RPGTRAIL_DISTANCE ifspawnedby RPG killit 
  903.     ifactioncount SMALLSMOKE_RPGTRAIL_DURATION killit
  904.  
  905.  
  906.  
  907.  
  908. enda
  909.  
  910. action BARREL_DENTING  2 2 1 1 6
  911. action BARREL_DENTED   1
  912. action BARREL_DENTED2  2
  913.  
  914. move SPAWNED_BLOOD
  915.  
  916.  
  917. // DO NOTHING
  918.  
  919.  
  920.  
  921.  
  922.  
  923. // DO NOTHING
  924.  
  925.  
  926.  
  927.  
  928.  
  929. actor NUKEBARREL MEDIUMSTRENGTH
  930.     ifsquished
  931.     {
  932.         debris SCRAP1 32
  933.         spawn BLOODPOOL
  934.         spawn OOZ
  935.         killit
  936.     }
  937.     fall
  938.     ifaction BARREL_DENTING
  939.     {
  940.         ifactioncount 2
  941.         {
  942.             debris SCRAP1 10
  943.             ifrnd 2 spawn BLOODPOOL
  944.             killit
  945.         }
  946.     }
  947.     else ifhitweapon
  948.     {
  949.         ifdead
  950.         {
  951.             sound VENT_BUST
  952.  
  953.             ifrnd 128
  954.                 spawn BLOODPOOL
  955.             action BARREL_DENTING
  956.         }
  957.         else
  958.         {
  959.             ifaction 0
  960.                 action BARREL_DENTED
  961.             else ifaction BARREL_DENTED
  962.             {
  963.                 action BARREL_DENTED2
  964.                 spawn BLOODPOOL
  965.             }
  966.             else ifaction BARREL_DENTED2
  967.                 action BARREL_DENTING
  968.         }
  969.     }
  970. enda
  971.  
  972.  
  973.  
  974. state burningbarrelcode
  975.     fall
  976.     ifcount 32
  977.     {
  978.         resetcount
  979.         ifp palive ifpdistl BURNINGBAREEL_HURTDISTANCE ifp phigher
  980.         {
  981.             addphealth BURNINGBARREL_HEALTHDEDUCT
  982.             palfrom 16 16
  983.             ifrnd 128 sound DUKE_LONGTERM_PAIN
  984.         }
  985.     }
  986.     ifhitweapon
  987.     {
  988.         sound VENT_BUST
  989.         debris SCRAP1 10
  990.         ifrnd 128 spawn BURNING
  991.         else spawn BURNING2
  992.         killit
  993.     }
  994. ends
  995.  
  996. actor FIREBARREL state burningbarrelcode enda
  997. actor FIREVASE state burningbarrelcode enda
  998.  
  999. action SHRINKERFRAMES 0 4 1 1 10
  1000. actor SHRINKEREXPLOSION 0 SHRINKERFRAMES
  1001.     ifactioncount 4 
  1002.     {
  1003.     killit
  1004.     }
  1005. enda
  1006.  
  1007.  
  1008. // BLOCKINSERT: SUNRPGFIRESTORM_BLOCK22 - srpgfire!
  1009.  
  1010.  
  1011.  
  1012. state megabombfirestorm
  1013.  
  1014.     ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ1  spawn RAT
  1015.     ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ1  spawn RAT
  1016.     
  1017.     ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ2  spawn RAT
  1018.     ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ2 spawn RAT
  1019.     
  1020.     ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ3  spawn RAT
  1021.     ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ3 spawn RAT
  1022.     
  1023.  
  1024.     ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ4 spawn RAT
  1025.     ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ4 spawn RAT
  1026.  
  1027.       debris SCRAP1 MEGABOMB_PRIMARY_NUMDEBRIS1
  1028.     debris SCRAP2 MEGABOMB_PRIMARY_NUMDEBRIS2
  1029.     debris SCRAP3  MEGABOMB_PRIMARY_NUMDEBRIS3
  1030.     debris SCRAP4  MEGABOMB_PRIMARY_NUMDEBRIS4
  1031.     lotsofglass  MEGABOMB_PRIMARY_NUMGLASS
  1032.     
  1033.     ifrnd MEGABOMB_PRIMARY_SHOOTMORTER1 { move  10 0 randomangle shoot MORTER }
  1034.     ifrnd MEGABOMB_PRIMARY_SHOOTMORTER1 { move  10 0 randomangle shoot MORTER }
  1035.     ifrnd MEGABOMB_PRIMARY_SHOOTMORTER2  { move  10 0 randomangle shoot MORTER }
  1036.     ifrnd MEGABOMB_PRIMARY_SHOOTMORTER2  { move  10 0 randomangle shoot MORTER }
  1037.     ifrnd MEGABOMB_PRIMARY_SHOOTMORTER3  { move  10 0 randomangle shoot MORTER }
  1038.     ifrnd MEGABOMB_PRIMARY_SHOOTMORTER3 { move  10 0 randomangle shoot MORTER }
  1039.  
  1040. ends
  1041.  
  1042.  
  1043.  
  1044. action EXPLOSION_BALLFRAMES -328 12 1 1 6
  1045. action EXPLOSION_BALLFRAMES2 -328 10 1 1 6
  1046.  
  1047. move BALLMOVE FIREBALL_SIDESPEED   FIREBALL_DOWNSPEED
  1048. move BALLMOVEUA FIREBALL_SIDESPEED FIREBALL_DOWNSPEED
  1049.  
  1050. action EXPLOSION_FRAMES 0 20 1 1  4
  1051. actor EXPLOSION2 1 EXPLOSION_FRAMES
  1052.  
  1053.  
  1054. ifactioncount DEVII_DELAYCOUNT {  ifspawnedby RPG {  ifhitspace state devistatorii } }
  1055.     
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.     ifactioncount 20 killit
  1062.  
  1063. enda
  1064.  
  1065. actor EXPLOSION2BOT 1 EXPLOSION_FRAMES
  1066.  
  1067. ifspawnedby SMALLSMOKE 
  1068.         {    
  1069.              sizeto ROMCAN_CLOUDBURSTSIZE  ROMCAN_CLOUDBURSTSIZE
  1070.             
  1071.              ifaction EXPLOSION_FRAMES 
  1072.                  { 
  1073.                     action EXPLOSION_BALLFRAMES  
  1074.                     move BALLMOVEUA geth getv randomangle 
  1075.                     ifrnd 64 spritepal 2 else
  1076.                     ifrnd 64 spritepal 1 else
  1077.                      ifrnd 64 spritepal 10 else
  1078.                      ifrnd 64 spritepal 8 else
  1079.                      ifrnd 64 spritepal 6 else
  1080.                      ifrnd 64 spritepal 7 
  1081.                     
  1082.                  }
  1083.             
  1084.              ifactioncount 6
  1085.  
  1086.                  ifpdistg ROMAN_CANDLE_PLAYERSAFEDIST
  1087.  
  1088.                      ifrnd ROMCAN_CLOUDBURSTSHOOTMORTERFREQ  
  1089.                          ifrnd ROMCAN_CLOUDBURSTSHOOTMORTERFREQ shoot MORTER
  1090.  
  1091.                                           iffloordistl 16 { ifrnd ROMCAN_EXPOSLOSION_FREQUENCY  
  1092.                         spawn FIRE
  1093.                              killit } else ifactioncount 16 resetactioncount
  1094.          }    
  1095.  
  1096.  
  1097.  
  1098. ifactioncount MEGABOMB_DELAY_COUNT { ifspawnedby HEAVYHBOMB { state megabombfirestorm } }
  1099.  
  1100.  
  1101. ifspawnedby LIZTROOP 
  1102.         {               sizeto 7 7
  1103.             ifaction EXPLOSION_FRAMES 
  1104.                  { 
  1105.                     action EXPLOSION_BALLFRAMES  
  1106.                     move BALLMOVEUA getv geth randomangle 
  1107.                  }
  1108.  
  1109.                           iffloordistl 16  killit else ifactioncount 16 resetactioncount
  1110.          }    
  1111.  
  1112.  
  1113.     ifactioncount 20 killit
  1114.  
  1115. enda
  1116.  
  1117. action FFLAME_FR 0 16 1 1 1
  1118. action FFLAME 0 1 1 1 1
  1119.  
  1120. actor FLOORFLAME 0 FFLAME_FR
  1121.         ifaction FFLAME_FR
  1122.         {
  1123.                 ifpdistl 1024 hitradius 1024 WEAKEST WEAKEST WEAKEST WEAKEST
  1124.                 ifactioncount 16
  1125.                     action FFLAME
  1126.         }
  1127.         ifaction FFLAME ifrnd 4
  1128.         {
  1129.              action FFLAME_FR
  1130.              sound CAT_FIRE
  1131.              resetactioncount
  1132.         }
  1133.  
  1134. enda
  1135.  
  1136.  
  1137.  
  1138. action ASATNSPIN   0 5 1 1 TURRET_STANDARD_SPIN_SPEED
  1139. action ASATSHOOTING -10 3 5 1 40
  1140. action ASATWAIT 0 1 5 1 1
  1141. move TURRVEL
  1142.  
  1143. actor ROTATEGUN ROTTURRETSTRENGTH
  1144. // ASATSHOOTING TURRVEL faceplayer
  1145.  
  1146.     ifaction 0
  1147.     {
  1148.         action ASATSHOOTING
  1149.         move TURRVEL faceplayer
  1150.     }
  1151.     else ifaction ASATNSPIN
  1152.         { ifactioncount TURRET_STANDARD_SPIN_TIME { action ASATWAIT move TURRVEL faceplayer } }
  1153.     else ifaction ASATSHOOTING
  1154.     {
  1155.         ifactioncount 12 { ifrnd TURRET_STANDARD_STOPATTACK_FREQ action ASATWAIT }
  1156.         ifcount 32 resetcount
  1157.         else ifcount 16 { ifcount 17 { } else { sound PRED_ATTACK shoot FIRELASER } }
  1158.         else ifcount 4 { ifcount 5 { } else { ifcansee ifcanshoottarget { sound PRED_ATTACK shoot FIRELASER } } }
  1159.     }
  1160.     else ifaction ASATWAIT
  1161.         { ifactioncount 64 ifrnd TURRET_STANDARD_ATTACK_FREQ ifp palive ifcansee { action ASATSHOOTING move TURRVEL faceplayer } }
  1162.     ifhitweapon { ifdead { addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit }
  1163.         else { action ASATNSPIN debris SCRAP1 4 } move 0 }
  1164.  
  1165. enda
  1166.  
  1167. state checkforcefieldshootback
  1168.  ifrnd FORCEFIELD_SHOOT_FIRELASER shoot FIRELASER else
  1169.  ifrnd FORCEFIELD_SHOOT_COOLEXPLOSION1 shoot COOLEXPLOSION1 else
  1170.  ifrnd FORCEFIELD_SHOOT_RPG shoot RPG else
  1171.  ifrnd FORCEFIELD_SHOOT_MORTER shoot MORTER
  1172. ends
  1173.  
  1174.  
  1175. action RIP_F 0 8 1 1 1
  1176. actor FORCERIPPLE 0 RIP_F
  1177.     ifactioncount 5 ifrnd FORCEFEILD_SHOOTBACK_FREQ state checkforcefieldshootback
  1178.         
  1179.     ifactioncount 8 killit
  1180. enda
  1181.  
  1182. action TRANSFOWARD 0  6  1  1  2
  1183. action TRANSBACK   5  6  1 -1  2
  1184. actor TRANSPORTERSTAR 0 TRANSFOWARD
  1185.     ifaction TRANSFOWARD
  1186.     {
  1187.         ifactioncount 6
  1188.             action TRANSBACK
  1189.     }
  1190.     else
  1191.         ifactioncount 6 killit
  1192. enda
  1193.  
  1194. action BEAMFOWARD  0  4  1  1  9
  1195. actor TRANSPORTERBEAM 0 BEAMFOWARD
  1196.     sizeto 32 64 sizeto 32 64 sizeto 32 64
  1197.     ifactioncount 4 killit
  1198. enda
  1199.  
  1200. state getcode
  1201.     ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
  1202.     else globalsound DUKE_GET
  1203.     palfrom 16 0 32
  1204.     ifrespawn
  1205.     {
  1206.         move RESPAWN_ACTOR_FLAG
  1207.         spawn RESPAWNMARKERRED
  1208.         cstat 32768
  1209.     }
  1210.     else killit
  1211. ends
  1212.  
  1213. state randgetweapsnds
  1214.     ifrnd 64 globalsound DUKE_GETWEAPON1
  1215.     else ifrnd 96 globalsound DUKE_GETWEAPON2
  1216.     else ifrnd 128 globalsound DUKE_GETWEAPON3
  1217.     else ifrnd 140 globalsound DUKE_GETWEAPON4
  1218.     else globalsound DUKE_GETWEAPON6
  1219. ends
  1220.  
  1221. state getweaponcode
  1222.  
  1223.     state randgetweapsnds
  1224.  
  1225.     palfrom 32 0 32
  1226.     ifgotweaponce 1 break
  1227.     ifrespawn
  1228.     {
  1229.         move RESPAWN_ACTOR_FLAG
  1230.         spawn RESPAWNMARKERRED
  1231.         cstat 32768
  1232.     }
  1233.     else killit
  1234. ends
  1235.  
  1236.  
  1237. state respawnit
  1238.     ifcount RESPAWNITEMTIME { spawn TRANSPORTERSTAR move 0 cstat 0 sound TELEPORTER }
  1239. ends
  1240.  
  1241. state quikget
  1242.     ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
  1243.     else globalsound DUKE_GET
  1244.     palfrom 16 0 32
  1245.     killit
  1246. ends
  1247.  
  1248. state quikweaponget
  1249.     state randgetweapsnds
  1250.     palfrom 32 0 32
  1251.     ifgotweaponce 1 break
  1252.     killit
  1253. ends
  1254.  
  1255. actor STEROIDS
  1256.     fall
  1257.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1258.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE
  1259.         ifpinventory GET_STEROIDS STEROID_AMOUNT ifcanseetarget
  1260.     {
  1261.         addinventory GET_STEROIDS STEROID_AMOUNT quote 37 state getcode
  1262.         ifspawnedby STEROIDS state getcode
  1263.         else state quikget
  1264.     }
  1265. enda
  1266.  
  1267. actor HEATSENSOR
  1268.     fall
  1269.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1270.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HEATS HEAT_AMOUNT
  1271.         ifcanseetarget
  1272.     {
  1273.         addinventory GET_HEATS HEAT_AMOUNT quote 101 state getcode
  1274.         ifspawnedby HEATSENSOR state getcode
  1275.         else state quikget
  1276.     }
  1277. enda
  1278.  
  1279. actor BOOTS
  1280.     fall
  1281.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1282.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BOOTS BOOT_AMOUNT
  1283.         ifcanseetarget
  1284.     {
  1285.         addinventory GET_BOOTS BOOT_AMOUNT quote 6
  1286.         ifspawnedby BOOTS state getcode
  1287.         else state quikget
  1288.     }
  1289. enda
  1290.  
  1291. actor SHIELD
  1292.     fall
  1293.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1294.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SHIELD PSHIELD_AMOUNTXYZ
  1295.         ifcanseetarget
  1296.     {
  1297.         ifspawnedby PIGCOP
  1298.         {
  1299.             ifrnd 128 addinventory GET_SHIELD PIG_SHIELD_AMOUNT1
  1300.             else addinventory GET_SHIELD PIG_SHIELD_AMOUNT2
  1301.             quote 104
  1302.             sound KICK_HIT palfrom 24 0 32 killit
  1303.         }
  1304.         else addinventory GET_SHIELD PSHIELD_AMOUNTXYZ quote 38
  1305.         ifspawnedby SHIELD state getcode
  1306.         else state quikget
  1307.     }
  1308. enda
  1309.  
  1310. actor AIRTANK
  1311.     fall
  1312.  
  1313.     state explosive_goodies
  1314.  
  1315.  
  1316.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1317.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SCUBA SCUBA_AMOUNT
  1318.         ifcanseetarget
  1319.     {
  1320.         addinventory GET_SCUBA SCUBA_AMOUNT quote 39 state getcode
  1321.         ifspawnedby AIRTANK state getcode
  1322.         else state quikget
  1323.     }
  1324. enda
  1325.  
  1326. action HOLODUKE_FRAMES 0 4 1 1 8
  1327. actor HOLODUKE 0 HOLODUKE_FRAMES
  1328.     fall
  1329.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1330.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HOLODUKE HOLODUKE_AMOUNT
  1331.         ifcanseetarget
  1332.     {
  1333.         addinventory GET_HOLODUKE HOLODUKE_AMOUNT quote 51 state getcode
  1334.         ifspawnedby HOLODUKE state getcode
  1335.         else state quikget
  1336.     }
  1337. enda
  1338.  
  1339. actor JETPACK
  1340.     fall
  1341.  
  1342.     state explosive_goodies
  1343.  
  1344.  
  1345.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1346.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_JETPACK JETPACK_AMOUNT ifcanseetarget
  1347.     {
  1348.         addinventory GET_JETPACK JETPACK_AMOUNT quote 41 state getcode
  1349.         ifspawnedby JETPACK state getcode
  1350.         else state quikget
  1351.     }
  1352. enda
  1353.  
  1354. actor ACCESSCARD
  1355.     fall
  1356.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1357.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1358.     {
  1359.         ifpinventory GET_ACCESS 0 break
  1360.         addinventory GET_ACCESS 1
  1361.         quote 43
  1362.         state getcode
  1363.     }
  1364. enda
  1365.  
  1366. // test boss_recod
  1367.  
  1368.  
  1369. actor AMMO
  1370.     fall
  1371.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1372.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  1373.     {
  1374.         addammo PISTOL_WEAPON PISTOLAMMOAMOUNT quote 65
  1375.         ifspawnedby AMMO state getcode
  1376.         else state quikget
  1377.     }
  1378. enda
  1379.  
  1380. actor FREEZEAMMO
  1381.     fall
  1382.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1383.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  1384.     {
  1385.         addammo FREEZE_WEAPON FREEZEAMMOAMOUNT quote 66
  1386.         ifspawnedby FREEZEAMMO state getcode
  1387.         else state quikget
  1388.     }
  1389. enda
  1390.  
  1391.  
  1392.  
  1393. actor SHOTGUNAMMO
  1394.     fall
  1395.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1396.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  1397.     {
  1398.         addammo SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 69
  1399.         ifspawnedby SHOTGUNAMMO state getcode
  1400.         else state quikget
  1401.     }
  1402. enda
  1403.  
  1404. actor AMMOLOTS
  1405.     fall
  1406.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1407.     else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
  1408.     {
  1409.         addammo PISTOL_WEAPON 48 quote 65
  1410.         ifspawnedby AMMOLOTS state getcode
  1411.         else state quikget
  1412.     }
  1413. enda
  1414.  
  1415. actor CRYSTALAMMO
  1416.     fall
  1417.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1418.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1419.     {
  1420.         addammo SHRINKER_WEAPON CRYSTALAMMOAMOUNT quote 78
  1421.         ifspawnedby CRYSTALAMMO state getcode
  1422.         else state quikget
  1423.     }
  1424. enda
  1425.  
  1426. actor BATTERYAMMO
  1427.     fall
  1428.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1429.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1430.     {
  1431.         addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT quote 63
  1432.         ifspawnedby BATTERYAMMO state getcode
  1433.         else state quikget
  1434.     }
  1435. enda
  1436.  
  1437. actor DEVISTATORAMMO
  1438.     fall
  1439.  
  1440. state explosive_goodies
  1441.  
  1442.  
  1443.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1444.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1445.     {
  1446.         addammo DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 14
  1447.         ifspawnedby DEVISTATORAMMO state getcode
  1448.         else state quikget
  1449.     }
  1450. enda
  1451.  
  1452. actor RPGAMMO
  1453.     fall
  1454.  
  1455. state explosive_goodies
  1456.  
  1457.  
  1458.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1459.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1460.     {
  1461.         addammo RPG_WEAPON RPGAMMOBOX quote 64
  1462.         ifspawnedby RPGAMMO state getcode
  1463.         else state quikget
  1464.     }
  1465. enda
  1466.  
  1467. actor HBOMBAMMO
  1468.     fall
  1469.  
  1470. state explosive_goodies
  1471.  
  1472.  
  1473.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1474.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1475.     {
  1476.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  1477.  
  1478.         addweapon HANDBOMB_WEAPON 1 quote 55
  1479.         addammo HANDBOMB_WEAPON HANDBOMBBOX
  1480.  
  1481.         ifspawnedby HBOMBAMMO state getweaponcode
  1482.         else state quikweaponget
  1483.     }
  1484. enda
  1485.  
  1486. actor RPGSPRITE
  1487.     fall
  1488.  
  1489. state explosive_goodies
  1490.  
  1491.  
  1492.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1493.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1494.     {
  1495.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  1496.  
  1497.         addweapon RPG_WEAPON RPGAMMOBOX quote 56
  1498.         ifspawnedby RPGSPRITE state getweaponcode
  1499.         else state quikweaponget
  1500.     }
  1501. enda
  1502.  
  1503. // 531.89 GTE.
  1504. // IMA.
  1505. // PO BOX 4629
  1506. // Rocford ill, 61110-4629
  1507. // Ms. Lee
  1508.  
  1509. actor SHOTGUNSPRITE
  1510.     fall
  1511.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1512.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1513.     {
  1514.         ifspawnedby PIGCOP
  1515.         {
  1516.             addweapon SHOTGUN_WEAPON 0
  1517.             ifrnd 64 addammo SHOTGUN_WEAPON 4
  1518.             else ifrnd 64 addammo SHOTGUN_WEAPON 3
  1519.             else ifrnd 64 addammo SHOTGUN_WEAPON 2
  1520.             else addammo SHOTGUN_WEAPON 1
  1521.         }
  1522.         else
  1523.         {
  1524.             ifgotweaponce 0 break // Multiplayer only
  1525.             addweapon SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 57
  1526.         }
  1527.         ifspawnedby SHOTGUNSPRITE state getweaponcode
  1528.         else state quikweaponget
  1529.     }
  1530. enda
  1531.  
  1532.  
  1533.  
  1534. actor SIXPAK
  1535.     fall
  1536.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1537.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH ifcanseetarget
  1538.     {
  1539.         addphealth 30 quote 62
  1540.         ifspawnedby SIXPAK state getcode
  1541.         else state quikget
  1542.     }
  1543. enda
  1544.  
  1545. actor COLA
  1546.     fall
  1547.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1548.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH // ifcanseetarget
  1549.     {
  1550.         addphealth 10 quote 61
  1551.         ifspawnedby COLA state getcode
  1552.         else state quikget
  1553.     }
  1554. enda
  1555.  
  1556. actor ATOMICHEALTH
  1557.     fall
  1558.  
  1559. state explosive_goodies
  1560.  
  1561.  
  1562.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1563.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1564.         ifphealthl MAXPLAYERATOMICHEALTH
  1565.     {
  1566.         addphealth 50 quote 19
  1567.         ifspawnedby ATOMICHEALTH state getcode
  1568.         else state quikget
  1569.     }
  1570. enda
  1571.  
  1572.  
  1573.  
  1574.  
  1575. actor FIRSTAID
  1576.     fall
  1577.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1578.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6
  1579.         ifpinventory GET_FIRSTAID FIRSTAID_AMOUNT ifcanseetarget
  1580.     {
  1581.         addinventory GET_FIRSTAID FIRSTAID_AMOUNT quote 3
  1582.  
  1583.         ifspawnedby FIRSTAID state getcode
  1584.         else state quikget
  1585.     }
  1586. enda
  1587.  
  1588.  
  1589. actor FIRSTGUNSPRITE
  1590.     fall
  1591.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1592.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1593.     {
  1594.         ifgotweaponce 0 break
  1595.  
  1596.         addweapon PISTOL_WEAPON 48
  1597.         ifspawnedby FIRSTGUNSPRITE state getweaponcode
  1598.         else state quikweaponget
  1599.     }
  1600. enda
  1601.  
  1602.  
  1603. actor TRIPBOMBSPRITE
  1604.     fall
  1605.  
  1606. state explosive_goodies
  1607.  
  1608.  
  1609.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1610.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1611.     {
  1612.         ifgotweaponce 0 break
  1613.  
  1614.         addweapon TRIPBOMB_WEAPON 1
  1615.         quote 58
  1616.         ifspawnedby TRIPBOMBSPRITE state getweaponcode
  1617.         else state quikweaponget
  1618.     }
  1619. enda
  1620.  
  1621. actor CHAINGUNSPRITE
  1622.     fall
  1623.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1624.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1625.     {
  1626.         ifgotweaponce 0 break
  1627.  
  1628.         addweapon CHAINGUN_WEAPON 50 quote 54
  1629.         ifspawnedby CHAINGUNSPRITE state getweaponcode
  1630.         else state quikweaponget
  1631.     }
  1632. enda
  1633.  
  1634.  
  1635.  
  1636. actor SHRINKERSPRITE
  1637.     fall
  1638.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1639.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1640.     {
  1641.         ifgotweaponce 0 break
  1642.  
  1643.         addweapon SHRINKER_WEAPON 10 quote 60
  1644.         ifspawnedby SHRINKERSPRITE state getweaponcode
  1645.         else state quikweaponget
  1646.     }
  1647. enda
  1648.  
  1649. actor FREEZESPRITE
  1650.     fall
  1651.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1652.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1653.     {
  1654.         ifgotweaponce 0 break
  1655.  
  1656.         addweapon FREEZE_WEAPON FREEZEAMMOAMOUNT quote 59
  1657.         ifspawnedby FREEZESPRITE state getweaponcode
  1658.         else state quikweaponget
  1659.     }
  1660. enda
  1661.  
  1662. actor DEVISTATORSPRITE
  1663.     fall
  1664.  
  1665. // BLOCKINSERT: SUNEXPLODINGGOODIES_BLOCKJJ - sexpgood!
  1666.  
  1667.     ifmove RESPAWN_ACTOR_FLAG state respawnit
  1668.     else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
  1669.     {
  1670.         ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
  1671.  
  1672.         addweapon DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 87
  1673.         ifspawnedby DEVISTATORSPRITE state getweaponcode
  1674.         else state quikweaponget
  1675.     }
  1676. enda
  1677.  
  1678.  
  1679. state firestate
  1680.  
  1681.     ifgapzl 16 break
  1682.     ifinwater killit
  1683.     ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 32 32 }
  1684.     
  1685.     
  1686.  
  1687.     ifactor FIRE ifspawnedby FIRE break
  1688.     else ifactor FIRE2 ifspawnedby FIRE2 break 
  1689.     
  1690.     else 
  1691.     
  1692.   ifspawnedby EXPLOSION2BOT
  1693.      {        fall      
  1694.         ifspritepal 0 { sizeto 48 48  spritepal 5 }
  1695.                        ifrnd 32 ifrnd 32 ifspritepal 7 sizeto 16 16 else ifspritepal 2 sizeto 24 24 else ifspritepal 1 sizeto 20 20  else ifspritepal 8 sizeto 64 64 else 
  1696.                      ifspritepal 10 sizeto 24 24
  1697.           ifrnd 2  spritepal 7   else ifrnd 2 spritepal 2 else ifrnd 2 spritepal 1 else ifrnd 2 spritepal 8 else ifrnd 2 spritepal 10
  1698.                      ifspritepal 7 ifrnd 4 killit
  1699.         
  1700.     } else
  1701.  
  1702.  
  1703.   ifspawnedby RAT
  1704.      {    fall          
  1705.         ifspritepal 0 { sizeto 48 48  spritepal 5 }
  1706.                        ifrnd 32 ifrnd 32 ifspritepal 7 sizeto 16 16 else ifspritepal 2 sizeto 24 24 else ifspritepal 1 sizeto 20 20  else ifspritepal 8 sizeto 64 64 else
  1707.                          ifspritepal 10 sizeto 24 24
  1708.           ifrnd 2  spritepal 7   else ifrnd 2 spritepal 2 else ifrnd 2 spritepal 1 else ifrnd 2 spritepal 8 else ifrnd 2 spritepal 10
  1709.          ifspritepal 7 ifrnd 4 killit                     
  1710.          
  1711.     } 
  1712.   
  1713.          
  1714.  
  1715.      ifspritepal 0 
  1716.         { 
  1717.         iffloordistl 128
  1718.             {
  1719.                 ifcount 32 sizeto 8 8
  1720.                 ifcount 64 killit
  1721.             }
  1722.             else killit
  1723.         }
  1724.         
  1725.  
  1726. ends
  1727.  
  1728. action FIRE_FRAMES     -1 14 1 1 1
  1729. move FIREVELS
  1730. actor FIRE WEAK FIRE_FRAMES FIREVELS state firestate enda
  1731. actor FIRE2 WEAK FIRE_FRAMES FIREVELS state firestate enda
  1732.  
  1733.  
  1734.  
  1735.  
  1736.  
  1737. actor FECES
  1738.     
  1739.     ifspawnedby LIZTROOP sizeto TROOPER_FECESIZE TROOPER_FECESIZE else
  1740.     ifspawnedby LIZMAN sizeto LIZMAN_FECESIZE LIZMAN_FECESIZE else
  1741.     ifspawnedby OCTABRAIN sizeto OCTABRAIN_FECESIZE OCTABRAIN_FECESIZE else
  1742.     ifspawnedby PIGCOP sizeto PIGCOP_FECESIZE PIGCOP_FECESIZE
  1743.  
  1744.  // BLOCKINSERT: PIGCOPEXTRAGOREBLOCK3 - piggore1!
  1745.  
  1746.         
  1747.        ifcount 24
  1748.     {
  1749.     fall
  1750.         
  1751.     cstat 257
  1752. strength 1
  1753. ifpdistl SUNFECAL_FECE_TOXICITY_DIST 
  1754.     {
  1755.         ifrnd SUNFECAL_FECE_TOXICITY_FREQ 
  1756.         {
  1757.             sound  FART_SOUND
  1758.             ifrnd FECAL_SPAWN_FIRE spawn FIRE else
  1759.             ifrnd FECAL_SPAWN_STEAM spawn STEAM
  1760.             ifrnd SUNFECAL_FECE_SOUND_SMELLS
  1761.             
  1762.             {
  1763.             
  1764.                 ifrnd 64 { soundonce DUKE_KILLED3 quote 133 }
  1765.                 else ifrnd 64 { soundonce DUKE_GASP  quote 134 }
  1766.                 else ifrnd 64 { soundonce DUKE_SEARCH quote 135 }
  1767.                 sound DUKE_LONGTERM_PAIN
  1768.                 addphealth SUNFECAL_FECE_TOXICITY_STRENGTH
  1769.             }
  1770.         }
  1771.     }
  1772.  ifrnd FECALMATTER_RATSPAWNFREQ ifrnd FECALMATTER_RATSPAWNFREQ { spawn RAT sound FART_SOUND }
  1773.  ifhitweapon { ifwasweapon RADIUSEXPLOSION { state killfeces } else ifwasweapon RPG { state killfeces } }
  1774.  ifrnd FECALMATTER_EXPLODE_FREQ ifrnd FECALMATTER_EXPLODE_FREQ state explodefeces
  1775.  
  1776.   
  1777.        ifp phigher { } else ifpdistl RETRIEVEDISTANCE
  1778.         {
  1779.             soundonce DUKE_STEPONFECES
  1780.             sound STEPNIT
  1781.             spawn BLOODPOOL   // Will be brown
  1782.             killit
  1783.         }
  1784.     }
  1785.     else sizeto REG_FECESIZE REG_FECESIZE
  1786. enda
  1787.  
  1788. state drop_ammo ifrnd SPAWNAMMOODDS_AMMO spawn AMMO ends
  1789. state drop_battery ifrnd SPAWNAMMOODDS_BATTERYAMMO spawn BATTERYAMMO ends
  1790. state drop_sgshells ifrnd SPAWNAMMOODDS_SHOTGUNAMMO spawn SHOTGUNAMMO ends
  1791. state drop_shotgun ifrnd SPAWNAMMOODDS_SHOTGUNSPRITE spawn SHOTGUNSPRITE ends
  1792. state drop_chaingun
  1793.     ifrnd SPAWNAMMOODDS
  1794.     {
  1795.         ifrnd 32 spawn CHAINGUNSPRITE
  1796.         else spawn BATTERYAMMO
  1797.     }
  1798. ends
  1799.  
  1800. state jib_sounds
  1801.     ifrnd SWEARFREQUENCY
  1802.     {
  1803.         ifrnd SOUND_JIBACTOR_FREQ1 globalsound JIBBED_ACTOR1
  1804.         else ifrnd SOUND_JIBACTOR_FREQ1 globalsound JIBBED_ACTOR2
  1805.         else ifrnd SOUND_JIBACTOR_FREQ1 globalsound JIBBED_ACTOR3
  1806.         else ifrnd SOUND_JIBACTOR_FREQ1 globalsound JIBBED_ACTOR5
  1807.         else ifrnd SOUND_JIBACTOR_FREQ1 globalsound JIBBED_ACTOR6
  1808.         else ifrnd SOUND_JIBACTOR_FREQ2 globalsound JIBBED_ACTOR10
  1809.         else ifrnd SOUND_JIBACTOR_FREQ2 globalsound JIBBED_ACTOR7
  1810.         else ifrnd SOUND_JIBACTOR_FREQ2 globalsound JIBBED_ACTOR4
  1811.         else ifrnd SOUND_JIBACTOR_FREQ2 globalsound JIBBED_ACTOR8
  1812.         else ifrnd SOUND_JIBACTOR_FREQ3 globalsound JIBBED_ACTOR13
  1813.         else ifrnd SOUND_JIBACTOR_FREQ3 globalsound JIBBED_ACTOR9
  1814.         else ifrnd SOUND_JIBACTOR_FREQ3 globalsound JIBBED_ACTOR11
  1815.         else ifrnd SOUND_JIBACTOR_FREQ3 globalsound JIBBED_ACTOR12
  1816.     }
  1817. ends
  1818.  
  1819. state standard_jibs
  1820.     guts JIBS2 STND_JIBS_2
  1821.     guts JIBS3 STND_JIBS_3
  1822.     guts JIBS4 STND_JIBS_4
  1823.     guts JIBS5 STND_JIBS_5
  1824.     guts JIBS6 STND_JIBS_6
  1825.     ifrnd BLOOD_FREQ { guts JIBS1 STND_JIBS_2 spawn BLOODPOOL }               // spine
  1826.     state jib_sounds
  1827. ends
  1828.  
  1829. action FEMSHRUNK
  1830. action FEMFROZEN1 1
  1831. action FEMFROZEN2
  1832. action FEMDANCE1 19 1 1 1 16
  1833. action FEMDANCE3 19 1 1 1 26
  1834. action FEMDANCE2 20 2 1 1 DANCERCONTROL_SPEED
  1835.  
  1836. action FEMANIMATE
  1837.  
  1838.  
  1839. action ADANCERSTATUE           20    1   1  10
  1840. action ADANCERSTATUEFALL   20    1   1  10
  1841.  
  1842. state checkdancerfall
  1843.  
  1844. iffloordistl 8 {  fall  } else { fall action ADANCERSTATUEFALL }
  1845.  
  1846. ends
  1847.  
  1848.  
  1849. state breakdancerstatue
  1850.     iffloordistl 128 {
  1851.     sound GLASS_BREAKING
  1852.     addkills 1
  1853.     state shootstatuedebris
  1854.     killit
  1855.     break
  1856.     }
  1857. ends
  1858.  
  1859. state checkdancerstatuehit
  1860.   ifdead
  1861.     {
  1862.  
  1863.  
  1864.         ifwasweapon RPG { sound SQUISHED state shootstatuedebris killit }
  1865.         else ifwasweapon RADIUSEXPLOSION {  sound SQUISHED state shootstatuedebris  addkills 1 state drop_ammo  killit } else { strength 1 }
  1866.        
  1867.     }
  1868.     else
  1869.     {
  1870.         state shootstatuedebris
  1871.         ifwasweapon SHOTSPARK1 sound  PISTOL_RICOCHET
  1872.        
  1873.     }
  1874. ends
  1875.  
  1876.  
  1877. state femcode
  1878.  
  1879.     ifactor NAKED1 { } else ifactor FEM6 { } else
  1880.     {
  1881.         fall
  1882.         ifactor BLOODYPOLE ifhitweapon ifdead
  1883.             { state standard_jibs killit }
  1884.     }
  1885.  
  1886.     ifaction FEMSHRUNK
  1887.     {
  1888.         ifcount SHRUNKDONECOUNT action FEMANIMATE
  1889.         else ifcount SHRUNKCOUNT sizeto 40 40
  1890.         else state genericshrunkcode
  1891.     }
  1892.  
  1893.     
  1894.     else ifaction FEMDANCE1 { ifactioncount 2 action FEMDANCE2 }
  1895.     else ifaction FEMDANCE2 { ifactioncount DANCERCONTROL_TIME action FEMDANCE3 }
  1896.     else ifaction FEMDANCE3 { ifactioncount 2 action FEMANIMATE }
  1897.  
  1898. else ifaction ADANCERSTATUE 
  1899.     {
  1900.                 ifactioncount 10 resetactioncount
  1901.       ifhitweapon state checkdancerstatuehit
  1902.     break
  1903.     }
  1904. else ifaction ADANCERSTATUEFALL
  1905.     {
  1906.           iffloordistl 16  state breakdancerstatue
  1907.           break
  1908.     }
  1909.  
  1910.  
  1911.     else ifaction FEMFROZEN1
  1912.     {
  1913.         ifcount THAWTIME { action FEMANIMATE getlastpal }
  1914.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1915.  
  1916.         ifhitweapon
  1917.         {
  1918.             ifwasweapon FREEZEBLAST { strength 0 break }
  1919.             lotsofglass 30
  1920.             sound GLASS_BREAKING
  1921.             respawnhitag
  1922.             ifrnd 84 spawn BLOODPOOL
  1923.             killit
  1924.         }
  1925.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1926.         break
  1927.     }
  1928.     else ifaction FEMFROZEN2
  1929.     {
  1930.         ifcount THAWTIME { action FEMANIMATE getlastpal }
  1931.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  1932.  
  1933.         ifhitweapon
  1934.         {
  1935.             ifwasweapon FREEZEBLAST { strength 0 break }
  1936.             lotsofglass 30
  1937.  
  1938.             sound GLASS_BREAKING
  1939.             ifrnd 84 spawn BLOODPOOL
  1940.             respawnhitag
  1941.  
  1942.             ifrnd 128 sound DUKE_HIT_STRIPPER1
  1943.             else sound DUKE_HIT_STRIPPER2
  1944.  
  1945.             killit
  1946.         }
  1947.         else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  1948.         break
  1949.     }
  1950.  
  1951.     ifhitweapon
  1952.     {
  1953.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING count 0 action FEMSHRUNK break }
  1954.  
  1955.         ifdead
  1956.         {
  1957.             ifwasweapon FREEZEBLAST
  1958.             {
  1959.  
  1960.     ifhitspace ifactor FEM1 { sound SOMETHINGFROZE spritepal 7 move 0 action ADANCERSTATUE state checkdancerfall strength DANCERSTATUESTRENGTH break } else        
  1961.         {
  1962.  
  1963.  
  1964.  
  1965.                 ifaction FEMSHRUNK break
  1966.  
  1967.                 ifactor NAKED1 action FEMFROZEN2
  1968.                 else ifactor FEM5 action FEMFROZEN2
  1969.                 else ifactor FEM6 action FEMFROZEN2
  1970.                 else ifactor FEM8 action FEMFROZEN2
  1971.                 else ifactor FEM9 action FEMFROZEN2
  1972.                 else ifactor PODFEM1 action FEMFROZEN2
  1973.                 else action FEMFROZEN1
  1974.  
  1975.                 move 0
  1976.                 spritepal 1
  1977.                 strength 0
  1978.  
  1979.                 sound SOMETHINGFROZE
  1980.  
  1981.                 break
  1982.  
  1983. }
  1984.  
  1985.             }
  1986.  
  1987.             ifrnd 128 sound DUKE_HIT_STRIPPER1
  1988.             else sound DUKE_HIT_STRIPPER2
  1989.  
  1990.             respawnhitag
  1991.             state standard_jibs
  1992.  
  1993.             shoot BLOODSPLAT1
  1994.             shoot BLOODSPLAT2
  1995.             shoot BLOODSPLAT3
  1996.             shoot BLOODSPLAT4
  1997.             spawn BLOODPOOL
  1998.  
  1999.             ifactor FEM1 money 5
  2000.             else ifactor FEM2 { money 7 cactor BARBROKE cstat 0 }
  2001.             else ifactor FEM3 money 4
  2002.             else ifactor FEM7 money 8
  2003.  
  2004.             ifactor FEM5 { strength TOUGH cactor BLOODYPOLE }
  2005.             else ifactor FEM6 { cstat 0 cactor FEM6PAD }
  2006.             else ifactor FEM8 { strength TOUGH cactor BLOODYPOLE }
  2007.             else
  2008.             {
  2009.                 spritepal 6
  2010.                 soundonce LADY_SCREAM
  2011.                 ifactor NAKED1 debris SCRAP3 18
  2012.                 else ifactor PODFEM1 debris SCRAP3 18
  2013.                 killit
  2014.             }
  2015.         }
  2016.         else
  2017.         {
  2018.             sound SQUISHED
  2019.             guts JIBS6 1
  2020.             ifactor FEM8 break
  2021.             soundonce LADY_SCREAM
  2022.         }
  2023.     }
  2024. ends
  2025.  
  2026. state killme
  2027.     ifp pfacing ifpdistl 1280 ifhitspace soundonce KILLME
  2028. ends
  2029.  
  2030. state tipme
  2031.     ifp pfacing ifpdistl 1280 ifhitspace
  2032.     {
  2033.         tip
  2034.  
  2035.     addphealth DANCER_TIP_HEALTHAMOUNT 
  2036.     ifrnd DANCER_SND1_FREQ soundonce DUKE_PISSRELIEF else
  2037.     ifrnd DANCER_SND2_FREQ soundonce DUKE_USEMEDKIT else
  2038.     ifrnd DANCER_SND3_FREQ soundonce DUKE_GETWEAPON1 else
  2039.     soundonce JIBBED_ACTOR3
  2040.     ifpdistl  DANCER_TIP_DUKEHURTDIST {
  2041.  
  2042.      pstomp 
  2043.     quote 122
  2044.     addphealth -15
  2045.      ifrnd 36 {
  2046.         hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  2047.         spawn EXPLOSION2
  2048.         money 5
  2049.                     debris SCRAP2 2
  2050.                     sound PIPEBOMB_EXPLODE
  2051.         addphealth -10
  2052.         }
  2053.  
  2054.          
  2055.          }
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.         ifrnd 128 soundonce DUKE_TIP1
  2062.         else soundonce DUKE_TIP2
  2063.         ifactor FEM1 action FEMDANCE1
  2064.     }
  2065. ends
  2066.  
  2067. actor FEM1 TOUGH FEMANIMATE state tipme state femcode enda
  2068. actor FEM2 TOUGH FEMANIMATE state tipme state femcode enda
  2069. actor FEM3 TOUGH FEMANIMATE state tipme state femcode enda
  2070. actor FEM4 TOUGH FEMANIMATE state femcode enda
  2071. actor FEM5 TOUGH FEMANIMATE state killme state femcode enda
  2072. actor FEM6 TOUGH FEMANIMATE state killme state femcode enda
  2073. actor FEM7 TOUGH FEMANIMATE state tipme state femcode enda
  2074. actor FEM8 TOUGH FEMANIMATE state femcode enda
  2075. actor FEM9 TOUGH FEMANIMATE state femcode enda
  2076. actor NAKED1 TOUGH FEMANIMATE state killme state femcode enda
  2077. actor PODFEM1 TOUGH FEMANIMATE state killme state femcode enda
  2078. actor BLOODYPOLE TOUGH state femcode enda
  2079.  
  2080. actor STATUEFLASH fall // state statuehit
  2081.     ifcount 32 cactor STATUE
  2082. enda
  2083.  
  2084. actor STATUE fall
  2085.     ifp pfacing ifpdistl 1280 ifhitspace { cactor STATUEFLASH move 0 }
  2086. enda
  2087.  
  2088. actor MIKE
  2089.     ifp pfacing ifpdistl 1280 ifhitspace mikesnd
  2090. enda
  2091.  
  2092. state troop_body_jibs
  2093.     ifrnd TROOPER_HEAD_JIBFREQ guts HEADJIB1 1
  2094.     ifrnd TROOPER_LEG_JIBFREQ guts LEGJIB1 2
  2095.     ifrnd TROOPER_ARM_JIBFREQ guts ARMJIB1 1
  2096.     ifrnd TROOPER_BLOODPOOL_FREQ spawn BLOODPOOL
  2097. ends
  2098.  
  2099. state liz_body_jibs
  2100. ifrnd LIZMAN_HEAD_JIBFREQ guts LIZMANHEAD1 1
  2101.     ifrnd LIZMAN_LEG_JIBFREQ guts LIZMANLEG1 2
  2102.     ifrnd LIZMAN_ARM_JIBFREQ guts LIZMANARM1 1
  2103.     ifrnd LIZMAN_BLOODPOOL_FREQ spawn BLOODPOOL
  2104. ends
  2105.  
  2106. state delete_enemy killit ends
  2107.  
  2108.  
  2109. action BLOODFRAMES 0 4 1 1 15
  2110. actor BLOOD 0 BLOODFRAMES
  2111.     sizeto 72 72 sizeto 72 72 sizeto 72 72
  2112.     ifpdistg 3144 killit
  2113.     ifactioncount 4 killit
  2114. enda
  2115.  
  2116. action EGGOPEN1 1 1 1 1 4
  2117. action EGGOPEN2 2 1 1 1 4
  2118. action EGGOPEN3 2 1 1 1 4
  2119. action EGGWAIT  0
  2120. action EGGFROZEN 1
  2121. action EGGSHRUNK 1
  2122.  
  2123. actor EGG TOUGH
  2124.     ifaction 0
  2125.     {
  2126.         ifcount 64
  2127.         {
  2128.             ifrnd 128 { action EGGWAIT move 0 }
  2129.             else
  2130.             {
  2131.                 sound SLIM_HATCH
  2132.                 action EGGOPEN1
  2133.             }
  2134.         }
  2135.     }
  2136.     else ifaction EGGOPEN1 ifactioncount 4 action EGGOPEN2
  2137.     else ifaction EGGOPEN2 ifactioncount 4 { spawn GREENSLIME action EGGOPEN3 }
  2138.     else ifaction EGGSHRUNK
  2139.     {
  2140.         ifcount SHRUNKDONECOUNT action EGGOPEN2
  2141.         else ifcount SHRUNKCOUNT sizeto 48 40
  2142.         else state genericshrunkcode
  2143.     }
  2144.     else ifaction EGGFROZEN
  2145.     {
  2146.         ifcount THAWTIME { action 0 getlastpal }
  2147.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  2148.  
  2149.         ifhitweapon
  2150.         {
  2151.             ifwasweapon FREEZEBLAST { strength 0 break }
  2152.             lotsofglass 30
  2153.  
  2154.             sound GLASS_BREAKING
  2155.             ifrnd 84 spawn BLOODPOOL
  2156.  
  2157.             addkills 1
  2158.             killit
  2159.         }
  2160.  
  2161.         // ifp pducking
  2162.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  2163.  
  2164.         break
  2165.     }
  2166.  
  2167.     ifhitweapon
  2168.     {
  2169.         ifwasweapon SHRINKSPARK { move 0 sound ACTOR_SHRINKING action EGGSHRUNK break }
  2170.  
  2171.         ifdead
  2172.         {
  2173.             ifwasweapon FREEZEBLAST
  2174.                 { sound SOMETHINGFROZE spritepal 1 move 0 action EGGFROZEN strength 0 break }
  2175.  
  2176.             addkills 1
  2177.  
  2178.             sound SQUISHED
  2179.  
  2180.             state standard_jibs
  2181.             state delete_enemy
  2182.         }
  2183.     }
  2184.     else ifaction EGGWAIT
  2185.     {
  2186.         ifcount 512 ifrnd 2
  2187.         {
  2188.             ifaction EGGSHRUNK break
  2189.             sound SLIM_HATCH
  2190.             action EGGOPEN1
  2191.         }
  2192.     }
  2193.  
  2194. enda
  2195.  
  2196. actor KNEE KNEE_WEAPON_STRENGTH enda
  2197. actor SPIT SPIT_WEAPON_STRENGTH enda
  2198. actor CHAINGUN CHAINGUN_WEAPON_STRENGTH enda
  2199. actor SHOTGUN SHOTGUN_WEAPON_STRENGTH enda
  2200. actor FIRELASER FIRELASER_WEAPON_STRENGTH enda
  2201. actor HEAVYHBOMB HANDBOMB_WEAPON_STRENGTH enda
  2202. actor BOUNCEMINE BOUNCEMINE_WEAPON_STRENGTH enda
  2203. actor MORTER MORTER_WEAPON_STRENGTH enda
  2204. actor SHRINKSPARK SHRINKER_WEAPON_STRENGTH enda
  2205. actor RPG RPG_WEAPON_STRENGTH enda
  2206. actor FREEZEBLAST FREEZETHROWER_WEAPON_STRENGTH enda
  2207. actor DEVISTATORBLAST FREEZETHROWER_WEAPON_STRENGTH enda
  2208. actor COOLEXPLOSION1 COOL_EXPLOSION_STRENGTH enda
  2209. actor TRIPBOMB TRIPBOMB_STRENGTH enda
  2210.  
  2211. action WEAP2FRAMES 0  4  1  1  1
  2212. actor SHOTSPARK1 PISTOL_WEAPON_STRENGTH WEAP2FRAMES
  2213.     ifdead killit
  2214.     ifactioncount 3 killit // was 4
  2215.     else
  2216.     {
  2217.         ifactioncount 3 { ifinwater spawn WATERBUBBLE }
  2218.         else ifcount 2 { } else ifonwater spawn WATERSPLASH2
  2219.     }
  2220. enda
  2221.  
  2222. state standard_pjibs
  2223.     guts JIBS1 DDPLAYER_JIBS1
  2224.     guts JIBS2 DDPLAYER_JIBS2
  2225.     guts JIBS3 DDPLAYER_JIBS3
  2226.     guts JIBS4 DDPLAYER_JIBS4
  2227.     guts JIBS5 DDPLAYER_JIBS5
  2228.     guts JIBS6 DDPLAYER_JIBS6
  2229.     guts DUKETORSO DDPLAYER_TORSO_JIB
  2230.     guts DUKELEG DDPLAYER_LEG_JIB
  2231.     guts DUKEGUN DDPLAYER_GUN_JIB
  2232.     ifrnd DDPLAYER_THROWMONEY_FREQ money DDPLAYER_THROWMONEY_AMMT
  2233. ends
  2234.  
  2235. move DUKENOTMOVING
  2236. state handle_dead_dukes
  2237.     fall
  2238.     ifmove 0     // 1st time initializiation...
  2239.     {
  2240.         ifrnd 128 cstat 4
  2241.         else cstat 0
  2242.         move DUKENOTMOVING
  2243.     }
  2244.  
  2245.     ifsquished
  2246.     {
  2247.         sound SQUISHED
  2248.         spawn OOZ
  2249.         killit
  2250.     }
  2251.     else ifcount 1024 ifpdistg 4096 killit
  2252.     else
  2253.     {
  2254.         strength 0
  2255.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  2256.         {
  2257.             state standard_jibs
  2258.             killit
  2259.         }
  2260.     }
  2261. ends
  2262.  
  2263. action PLYINGFRAMES 0 1 0 1 1
  2264. actor DUKELYINGDEAD 0 PLYINGFRAMES
  2265.     state handle_dead_dukes
  2266. enda
  2267.  
  2268. action PSTAND       0   1   5   1    1
  2269. action PEXPLODE     106   5   1   1   10
  2270. action PEXPLODEAD   113   1   1
  2271.  
  2272. action PJPHOUVER    15   1   5   1
  2273. action PWALK        20   4   5   1   16
  2274. action PRUN         20   4   5   1   10
  2275. action PWALKBACK    45   4   5  -1   16
  2276. action PRUNBACK     45   4   5  -1   10
  2277. action PJUMPING     50   4   5   1   30
  2278. action PFALLING     65   1   5
  2279. action PDUCKING     86   1   5
  2280. action PCRAWLING    86   3   5   1   20
  2281. action PAKICKING    40   2   5   1   25
  2282. action PFLINTCHING  106  1   1   1   10
  2283. action PTHROWNBACK  106  5   1   1   18
  2284. action PFROZEN       20  1   5
  2285. action PLYINGDEAD   113  1   1
  2286.  
  2287. action PSWIMMINGGO   375   1   5   1   10
  2288. action PSWIMMING     375   4   5   1   13
  2289. action PSWIMMINGWAIT 395   1   5   1   13
  2290. action PTREDWATER    395   2   5   1   17
  2291.  
  2292. // BLOCKINSERT: SUNAPLAYER_STATUEMAKER11  - sstatmk!
  2293.  
  2294.  
  2295. move PSTOPED
  2296. move PSHRINKING // used as a var only
  2297.  
  2298. state check_dead_thrown_back
  2299.     ifdead
  2300.     {
  2301.         strength 0
  2302.         action PTHROWNBACK
  2303.     }
  2304. ends
  2305.  
  2306. state check_pstandard
  2307.     ifp pwalking action PWALK
  2308.     else ifp pkicking action PAKICKING
  2309.     else ifp pwalkingback action PWALKBACK
  2310.     else ifp prunning action PRUN
  2311.     else ifp prunningback action PRUNBACK
  2312.     else ifp pjumping
  2313.         action PJUMPING
  2314.     else ifp pducking action PDUCKING
  2315. ends
  2316.  
  2317. state random_wall_jibs
  2318.     ifrnd RANDOM_WALLJIBS_FREQ1 shoot BLOODSPLAT1
  2319.     ifrnd RANDOM_WALLJIBS_FREQ2 shoot BLOODSPLAT2
  2320.     ifrnd RANDOM_WALLJIBS_FREQ3 shoot BLOODSPLAT3
  2321.     ifrnd RANDOM_WALLJIBS_FREQ4 shoot BLOODSPLAT4
  2322.     ifrnd RANDOM_WALLJIBS_FREQ5 shoot BLOODSPLAT1
  2323.     ifrnd RANDOM_WALLJIBS_FREQ6 shoot BLOODSPLAT1
  2324.     ifrnd RANDOM_WALLJIBS_FREQ7 shoot BLOODSPLAT2
  2325.     ifrnd RANDOM_WALLJIBS_FREQ8 shoot BLOODSPLAT3
  2326.     ifrnd RANDOM_WALLJIBS_FREQ9 shoot BLOODSPLAT4
  2327.     
  2328.     
  2329. ends
  2330.  
  2331.  
  2332. state checkplayerdump
  2333.     ifrnd PDUMP_FECES_FREQ spawn FECES else
  2334.     ifrnd PDUMP_FIRE_FREQ spawn FIRE2 else
  2335.     ifrnd PDUMP_TROOPER_FREQ spawn LIZTROOP else
  2336.     ifrnd PDUMP_LIZMAN_FREQ spawn LIZMAN else
  2337.     ifrnd PDUMP_RAT_FREQ { state rats soundonce DUKE_FART_SOUND }
  2338.  
  2339.     ifrnd PDUMP_FARTSOUND_FREQ  soundonce DUKE_FART_SOUND else
  2340.     ifrnd PDUMP_PISSSOUND_FREQ soundonce DUKE_PISSRELIEF 
  2341. ends
  2342.  
  2343.  
  2344. actor APLAYER 100 PSTAND 0 0
  2345.  
  2346.     ifaction 0 action PSTAND
  2347.  
  2348.     ifphealthl DHMINIMUMBLEEDHEALTH
  2349.   { 
  2350.     ifrnd DHBLEEDFREQUENCY ifrnd DHBLEEDFREQUENCY
  2351.           {
  2352.                    ifrnd DHSHOWBLOODPOOL spawn BLOODPOOL
  2353.                    ifrnd DHSHOWDUKELEG guts DUKELEG DHNUMDUKELEGS
  2354.                   ifrnd DHSHOWJIBS2 guts JIBS2 DHNUMJIBS2
  2355.             ifrnd DHSHOOTBLOODSPLATFREQ 
  2356.                 {
  2357.                     state random_wall_jibs
  2358.                     ifrnd 96 shoot BLOODSPLAT1
  2359.                 }
  2360.                     addphealth DHLOSEHEALTH
  2361.             ifrnd 32 wackplayer
  2362.             palfrom 32 16
  2363.                    
  2364.             state random_duke_grunts
  2365.  
  2366.             ifrnd 64 quote 130 else
  2367.             ifrnd 64 quote 131 else
  2368.             ifrnd 64 quote 132
  2369.  
  2370.             
  2371.             
  2372.         
  2373.             
  2374.            }
  2375.    }
  2376.  
  2377.  
  2378.     ifdead
  2379.     {
  2380.         ifsquished palfrom 32 63 63 63
  2381.         else fall
  2382.  
  2383.         ifactioncount 7 { move 0 } else ifactioncount 6
  2384.         {
  2385.             ifmultiplayer { }
  2386.             else
  2387.             {
  2388.                 ifrnd 32 sound DUKE_KILLED5
  2389.                 else ifrnd 32 sound DUKE_KILLED3
  2390.                 else ifrnd 32 sound DUKE_KILLED1
  2391.                 else ifrnd 32 sound DUKE_KILLED2
  2392.             }
  2393.         }
  2394.  
  2395.         ifaction PLYINGDEAD
  2396.         {
  2397.             ifactioncount 3 move PSTOPED
  2398.             quote 13
  2399.             ifhitspace
  2400.             {
  2401.                 action PSTAND
  2402.                 spawn DUKELYINGDEAD
  2403.                 resetplayer
  2404.             }
  2405.             break
  2406.         }
  2407.         else ifaction PTHROWNBACK
  2408.         {
  2409.             ifactioncount 5
  2410.             {
  2411.                 spawn BLOODPOOL
  2412.                 action PLYINGDEAD
  2413.             }
  2414.             else ifactioncount 1 move 0
  2415.             break
  2416.         }
  2417.  
  2418.         else ifaction PFROZEN
  2419.  
  2420.  
  2421.         {
  2422.             cstat 257
  2423.  
  2424.             palfrom 16 0 0 24
  2425.  
  2426.             ifhitweapon
  2427.             {
  2428.                 ifwasweapon FREEZEBLAST break
  2429.                 lotsofglass 60
  2430.                 ifrnd 84 spawn BLOODPOOL
  2431.  
  2432.                 getlastpal
  2433.                 sound GLASS_BREAKING
  2434.                 spawn ATOMICHEALTH
  2435.                 cstat 32768
  2436.                 action PLYINGDEAD
  2437.                 break
  2438.             }
  2439.  
  2440.             ifactioncount THAWTIME { getlastpal strength 1 move 0 action PSTAND }
  2441.             else ifactioncount FROZENDRIPTIME { ifrnd 32 spawn WATERDRIP }
  2442.  
  2443.             ifp pfacing   // assumes some other player
  2444.                 ifpdistl FROZENQUICKKICKDIST pkick
  2445.  
  2446.             break
  2447.         }
  2448.         else ifaction PEXPLODEAD
  2449.         {
  2450.             quote 13
  2451.             ifhitspace
  2452.             {
  2453.                 action PSTAND
  2454.                 resetplayer
  2455.             }
  2456.             break
  2457.         }
  2458.         else ifaction PEXPLODE
  2459.         {
  2460.             ifactioncount 5
  2461.             {
  2462.                 action PEXPLODEAD
  2463.                 spawn BLOODPOOL
  2464.             }
  2465.             break
  2466.         }
  2467.  
  2468.         else ifp pshrunk
  2469.         {
  2470.             state standard_pjibs
  2471.             spawn BLOODPOOL
  2472.  
  2473.             sound SQUISHED
  2474.             sound DUKE_DEAD
  2475.  
  2476.             cstat 32768                 // Hide the sprite
  2477.  
  2478.             action PLYINGDEAD
  2479.         }
  2480.  
  2481.         else
  2482.         {
  2483.             ifinwater
  2484.             {
  2485.                 action PLYINGDEAD
  2486.                 spawn WATERBUBBLE
  2487.                 spawn WATERBUBBLE
  2488.             }
  2489.             else
  2490.             {
  2491.                 action PEXPLODE
  2492.                 state standard_pjibs
  2493.                 cstat 32768
  2494.                 sound SQUISHED
  2495.                 sound DUKE_DEAD
  2496.             }
  2497.         }
  2498.         break
  2499.     }
  2500.  
  2501.     ifsquished
  2502.     {
  2503.         strength -1
  2504.         sound SQUISHED
  2505.         spawn OOZ
  2506.         break
  2507.     }
  2508.  
  2509.     ifp ponsteroids
  2510.     {
  2511.         ifp pstanding { }
  2512.         else spawn FRAMEEFFECT1
  2513.       
  2514.  
  2515.           
  2516.                spritepal 19
  2517.  
  2518.                cstat 0
  2519.  
  2520.                sizeto DUKEINVINCE_SIZEX  DUKEINVINCE_SIZEY  // make duke grow 
  2521.     spawn FRAMEEFFECT1
  2522.     ifcount 32 { sound DUKE_HARTBEAT palfrom 20 0 35 quote 124  resetcount }
  2523.  
  2524.               
  2525.  
  2526.         
  2527.  
  2528.  
  2529.  
  2530.  
  2531.     }
  2532.  
  2533.  
  2534.          
  2535.           else 
  2536.               ifspritepal 19 {  ifcount 64  { {  spritepal 0 quote 125 cstat 256   } }
  2537.     else { sizeto  42 36 spawn FRAMEEFFECT1  } }
  2538.         
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.     ifmove PSHRINKING
  2545.     {
  2546.         ifcount 32
  2547.         {
  2548.             ifcount SHRUNKDONECOUNT move 0
  2549.             else ifcount SHRUNKCOUNT
  2550.             {
  2551.                 sizeto 42 36
  2552.                 ifgapzl 24
  2553.                 {
  2554.                     strength 0
  2555.                     sound SQUISHED
  2556.                     palfrom 48 64
  2557.                     break
  2558.                 }
  2559.             }
  2560.             else ifp ponsteroids count SHRUNKCOUNT
  2561.         }
  2562.         else
  2563.         {
  2564.             ifp ponsteroids count SHRUNKCOUNT
  2565.             else { sizeto 8 9 spawn FRAMEEFFECT1 }
  2566.         }
  2567.     }
  2568.  
  2569.     else ifhitweapon
  2570.     {
  2571.         ifdead { ifmultiplayer sound DUKE_KILLED4 }
  2572.         else
  2573.         {
  2574.             ifmultiplayer
  2575.             {
  2576.                 ifphealthl YELLHURTSOUNDSTRENGTHMP
  2577.                 {
  2578.                     ifrnd 64 sound DUKE_LONGTERM_PAIN2
  2579.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN3
  2580.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN4
  2581.                     else sound DUKE_DEAD
  2582.                 }
  2583.                 else
  2584.                 {
  2585.                     ifrnd 64 sound DUKE_LONGTERM_PAIN5
  2586.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN6
  2587.                     else ifrnd 64 sound DUKE_LONGTERM_PAIN7
  2588.                     else sound DUKE_LONGTERM_PAIN8
  2589.                 }
  2590.             }
  2591.             else
  2592.             {
  2593.                 ifphealthl YELLHURTSOUNDSTRENGTH
  2594.                 {
  2595.                     ifrnd 74 sound DUKE_LONGTERM_PAIN2
  2596.                     else ifrnd 8 sound DUKE_LONGTERM_PAIN3
  2597.                     else sound DUKE_LONGTERM_PAIN4
  2598.                 }
  2599.                 ifrnd 128 sound DUKE_LONGTERM_PAIN
  2600.             }
  2601.         }
  2602.         ifstrength TOUGH
  2603.         {
  2604.             state headhitstate
  2605.             sound DUKE_GRUNT
  2606.             ifp pstanding action PFLINTCHING
  2607.         }
  2608.  
  2609.         ifwasweapon RPG
  2610.         {
  2611.             ifrnd 32 spawn BLOOD
  2612.             ifdead state standard_pjibs
  2613.             palfrom 48 52
  2614.             break
  2615.         }
  2616.         ifwasweapon RADIUSEXPLOSION
  2617.         {
  2618.             ifrnd 32 spawn BLOOD
  2619.             ifdead state standard_pjibs
  2620.             palfrom 48 52
  2621.             break
  2622.         }
  2623.         ifwasweapon FIREEXT
  2624.         {
  2625.             ifrnd 32 spawn BLOOD
  2626.             ifdead state standard_pjibs
  2627.             palfrom 48 52
  2628.             break
  2629.         }
  2630.  
  2631.         ifwasweapon SHRINKSPARK
  2632.         {
  2633.             palfrom 48 0 48
  2634.             move PSHRINKING // used as a var only.
  2635.             sound ACTOR_SHRINKING
  2636.             break
  2637.         }
  2638.  
  2639.         ifwasweapon SHOTSPARK1 palfrom 24 48
  2640.         else ifwasweapon FREEZEBLAST
  2641.         {
  2642.  
  2643.  
  2644.  
  2645.             palfrom 48 0 0 48
  2646.             ifdead 
  2647.     
  2648.             
  2649.  
  2650.  
  2651.  
  2652.     { 
  2653.     sound SOMETHINGFROZE 
  2654.     spritepal 1 
  2655.     action PFROZEN
  2656.     break
  2657.      }
  2658.  
  2659.  
  2660.  
  2661.  
  2662.         }
  2663.         else ifwasweapon COOLEXPLOSION1 palfrom 48 48 0 48
  2664.         else ifwasweapon KNEE palfrom 16 32
  2665.         else ifwasweapon FIRELASER palfrom 32 32
  2666.         state check_dead_thrown_back
  2667.         state random_wall_jibs
  2668.  
  2669.         break
  2670.     }
  2671.  
  2672.     ifaction PFLINTCHING
  2673.     {
  2674.         ifactioncount 2 action PSTAND
  2675.         break
  2676.     }
  2677.  
  2678.     ifinwater
  2679.     {
  2680.         ifaction PTREDWATER
  2681.         {
  2682.             ifp pwalking prunning action PSWIMMINGGO
  2683.         }
  2684.         else ifp pstanding pwalkingback prunningback action PTREDWATER
  2685.         else
  2686.         {
  2687.             ifaction PSWIMMING
  2688.             {
  2689.                 ifrnd 4 spawn WATERBUBBLE
  2690.                 ifactioncount 4
  2691.                     action PSWIMMINGWAIT
  2692.             }
  2693.             else ifaction PSWIMMINGWAIT
  2694.             {
  2695.                 ifactioncount 2
  2696.                     action PSWIMMINGGO
  2697.             }
  2698.             else ifaction PSWIMMINGGO
  2699.             {
  2700.                 ifactioncount 2
  2701.                     action PSWIMMING
  2702.             }
  2703.             else action PTREDWATER
  2704.         }
  2705.  
  2706.         ifrnd 4 spawn WATERBUBBLE // For effect
  2707.  
  2708.         break
  2709.     }
  2710.     else ifp pjetpack
  2711.     {
  2712.       ifrnd PLAYER_JETPACK_FECESFREQ spawn FECES
  2713.     
  2714.     
  2715.               ifaction PJPHOUVER
  2716.         {
  2717.  
  2718.             ifactioncount 4 ifhitspace state checkplayerdump
  2719.  
  2720.     
  2721.             ifactioncount 4
  2722.                 resetactioncount
  2723.         }
  2724.         else action PJPHOUVER
  2725.         break
  2726.     }
  2727.     else
  2728.     {
  2729.         ifaction PTREDWATER action PSTAND
  2730.         ifaction PSWIMMING action PSTAND
  2731.         ifaction PSWIMMINGWAIT action PSTAND
  2732.         ifaction PSWIMMINGGO action PSTAND
  2733.         ifaction PJPHOUVER action PFALLING
  2734.     }
  2735.  
  2736.     ifaction PFALLING
  2737.     {
  2738.         ifp ponground
  2739.             action PSTAND
  2740.         else
  2741.         {
  2742.             ifp pfalling break
  2743.             else state check_pstandard
  2744.         }
  2745.     }
  2746.  
  2747.     ifaction PDUCKING
  2748.     {
  2749.         ifgapzl 48
  2750.         {
  2751.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  2752.         }
  2753.         else ifp pducking
  2754.         {
  2755.             ifp pwalking pwalkingback prunning prunningback action PCRAWLING
  2756.         }
  2757.         else
  2758.         {
  2759.             ifp pstanding action PSTAND
  2760.             else state check_pstandard
  2761.         }
  2762.     }
  2763.  
  2764.     else ifaction PCRAWLING
  2765.     {
  2766.         ifgapzl 48
  2767.         {
  2768.             ifp pstanding action PCRAWLING
  2769.         }
  2770.         else ifp pducking
  2771.         {
  2772.             ifp pstanding action PDUCKING
  2773.         }
  2774.         else
  2775.         {
  2776.             ifp pstanding action PSTAND
  2777.             else state check_pstandard
  2778.         }
  2779.     }
  2780.     else ifgapzl 48 action PDUCKING
  2781.  
  2782.     else ifaction PJUMPING
  2783.     {
  2784.         ifp ponground action PSTAND
  2785.         else ifactioncount 4 ifp pfalling action PFALLING
  2786.     }
  2787.  
  2788.     ifp pfalling action PFALLING
  2789.     else ifaction PSTAND state check_pstandard
  2790.     else ifaction PAKICKING
  2791.     {
  2792.         ifactioncount 2 action PSTAND
  2793.         break
  2794.     }
  2795.     else ifaction PWALK
  2796.     {
  2797.         ifp pfalling action PFALLING
  2798.         else ifp pstanding action PSTAND
  2799.         else ifp prunning action PRUN
  2800.         else ifp pwalkingback action PWALKBACK
  2801.         else ifp prunningback action PRUNBACK
  2802.         else ifp pjumping
  2803.             action PJUMPING
  2804.         else ifp pducking action PDUCKING
  2805.     }
  2806.  
  2807.     else ifaction PRUN
  2808.     {
  2809.         ifp pstanding action PSTAND
  2810.         else ifp pwalking action PWALK
  2811.         else ifp pwalkingback action PWALKBACK
  2812.         else ifp prunningback action PRUNBACK
  2813.         else ifp pjumping
  2814.             action PJUMPING
  2815.         else ifp pducking action PDUCKING
  2816.     }
  2817.  
  2818.     else ifaction PWALKBACK
  2819.     {
  2820.         ifp pstanding action PSTAND
  2821.         else ifp pwalking action PWALK
  2822.         else ifp prunning action PRUN
  2823.         else ifp prunningback action PRUNBACK
  2824.         else ifp pjumping
  2825.             action PJUMPING
  2826.         else ifp pducking action PDUCKING
  2827.     }
  2828.  
  2829.     else ifaction PRUNBACK
  2830.     {
  2831.         ifp pstanding action PSTAND
  2832.         else ifp pwalking action PWALK
  2833.         else ifp prunning action PRUN
  2834.         else ifp pwalkingback action PWALKBACK
  2835.         else ifp pjumping
  2836.             action PJUMPING
  2837.         else ifp pducking action PDUCKING
  2838.     }
  2839.  
  2840.  
  2841.  
  2842. enda
  2843.  
  2844.  
  2845. // BLOCKINSERT: SUNORGANTIC_MONSTERBLOCK - sorgant!
  2846.  
  2847.  
  2848.  
  2849.  
  2850. state rf
  2851.     ifrnd 128 cstat 4
  2852.     else cstat 0
  2853. ends
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859. //
  2860. //
  2861. //      TROOP/LIZTROOP CODE
  2862. //
  2863. //
  2864.  
  2865. action ATROOPSTAND       0    1    5    1    1
  2866. action ATROOPSTAYSTAND  -2    1    5    1    1
  2867. action ATROOPWALKING     0    4    5    1   12
  2868. action ATROOPWALKINGBACK 15   4    5   -1   12
  2869. action ATROOPRUNNING     0    4    5    1    8
  2870. action ATROOPSHOOT      35    1    5    1   30
  2871. action ATROOPJETPACK    40    1    5    1    1
  2872. action ATROOPJETPACKILL 40    2    5    1   50
  2873. action ATROOPFLINTCH    50    1    1    1    6
  2874. action ATROOPDYING      50    5    1    1   16
  2875. action ATROOPDEAD       54
  2876. action ATROOPPLAYDEAD   54
  2877. action ATROOPSUFFERDEAD 58    2    1   -4   24
  2878. action ATROOPSUFFERING  59    2    1    1   21
  2879. action ATROOPDUCK       64    1    5    1    3
  2880. action ATROOPDUCKSHOOT  64    2    5    1   25
  2881. action ATROOPABOUTHIDE  74    1    1    1   25
  2882. action ATROOPHIDE       79    1    1    1   25
  2883. action ATROOPREAPPEAR   74    1    1    1   25
  2884. action ATROOPFROZEN      0    1    5
  2885.  
  2886. action ATROOPSTATUE      0    1    5
  2887. action ATROOPSTATUEFALL 0 1 5
  2888.  
  2889. state checktrooperfall
  2890.  
  2891. iffloordistl 8 { fall  } else { fall action ATROOPSTATUEFALL }
  2892.  
  2893. ends
  2894.  
  2895.  
  2896. state breaktrooperstatue
  2897.     iffloordistl 128 {
  2898.     sound GLASS_BREAKING
  2899.     addkills 1
  2900.     state shootstatuedebris
  2901.     killit
  2902.     break
  2903.     }
  2904. ends
  2905.  
  2906. state checktrooperstatuehit
  2907.   ifdead
  2908.     {
  2909.  
  2910.  
  2911.         ifwasweapon RPG { sound SQUISHED state shootstatuedebris killit }
  2912.         else ifwasweapon RADIUSEXPLOSION {  sound SQUISHED state shootstatuedebris  addkills 1 state drop_ammo  killit } else { strength 1 }
  2913.        
  2914.     }
  2915.     else
  2916.     {
  2917.         state shootstatuedebris
  2918.         ifwasweapon SHOTSPARK1 sound  PISTOL_RICOCHET
  2919.        
  2920.     }
  2921. ends
  2922.  
  2923.  
  2924. move TROOPWALKVELS TROOPER_STANDARD_WALKVEL
  2925. move TROOPWALKVELSBACK TROOPER_STANDARD_WALKVEL_BACK
  2926. move TROOPJETPACKVELS TROOPER_STANDARD_JETPACKVEL_HORZ TROOPER_STANDARD_JETPACKVEL_VERT
  2927. move TROOPJETPACKILLVELS 192 -38
  2928. move TROOPRUNVELS TROOPER_STANDARD_RUNVEL
  2929. move TROOPSTOPPED
  2930. move DONTGETUP
  2931. move SHRUNKVELS 32
  2932.  
  2933. ai AITROOPSEEKENEMY  ATROOPWALKING   TROOPWALKVELS seekplayer
  2934. ai AITROOPSEEKPLAYER ATROOPWALKING   TROOPWALKVELS seekplayer
  2935. ai AITROOPFLEEING    ATROOPWALKING   TROOPWALKVELS fleeenemy
  2936. ai AITROOPFLEEINGBACK ATROOPWALKINGBACK   TROOPWALKVELSBACK faceplayer
  2937. ai AITROOPDODGE      ATROOPWALKING   TROOPRUNVELS  dodgebullet
  2938. ai AITROOPSHOOTING   ATROOPSHOOT     TROOPSTOPPED  faceplayer
  2939. ai AITROOPDUCKING    ATROOPDUCK      TROOPSTOPPED  faceplayer
  2940. ai AITROOPJETPACK    ATROOPJETPACK   TROOPJETPACKVELS seekplayer
  2941. ai AITROOPSHRUNK     ATROOPWALKING   SHRUNKVELS fleeenemy
  2942. ai AITROOPHIDE       ATROOPABOUTHIDE TROOPSTOPPED faceplayer
  2943.  
  2944.  
  2945. define JETFALL_WISTLE 310
  2946. definesound  JETFALL_WISTLE  trfall.voc   0   0  10  0   100
  2947.  
  2948. action SUFFERINGTROOPFATACTION      50    1    1    1    6
  2949. action AJETPACKRPGUP              40    2    5    1   50
  2950. action AJETPACKRPGDN             40    2    5    1   50
  2951.  
  2952. move  JETPACKRPGUPVEL  0  -200
  2953. move  JETPACKRPGDNVEL  250  200
  2954. move  SUFFERINGTROOPFATVEL  -150  -150
  2955.  
  2956. ai AISUFFERINGTROOPFAT  SUFFERINGTROOPFATACTION  SUFFERINGTROOPFATVEL  faceplayer
  2957. ai AIJETPACKRPGHITUP  AJETPACKRPGUP   JETPACKRPGUPVEL spin
  2958. ai AIJETPACKRPGHITDN  AJETPACKRPGDN  JETPACKRPGDNVEL spin
  2959.  
  2960. state  jetpackupcheck
  2961.    ifactioncount 25 {  globalsound  JETFALL_WISTLE  ai AIJETPACKRPGHITDN } else
  2962.    iffloordistl 4000 { } else { globalsound  JETFALL_WISTLE ai AIJETPACKRPGHITDN }
  2963. ends
  2964.  
  2965. state  jetpackdncheck
  2966.                 
  2967.     iffloordistl 32
  2968.         {
  2969.         
  2970.         stopsound  JETFALL_WISTLE
  2971.                   spawn EXPLOSION2
  2972.                   sound RPG_EXPLODE
  2973.                    guts JIBS1 SUFFERTROOP_FAT1_JIBS1
  2974.                    guts JIBS2 SUFFERTROOP_FAT1_JIBS2
  2975.                    guts JIBS6 SUFFERTROOP_FAT1_JIBS6
  2976.                   spawn BLOODPOOL
  2977.                   spawn BLOODSPLAT1
  2978.                   spawn BLOODSPLAT2
  2979.                   debris SCRAP1 14
  2980.         ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ  {  spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
  2981.         ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ  {  spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
  2982.         ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ {  spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
  2983.         ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ  {  spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
  2984.         ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ  {  spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
  2985.                   hitradius SUFFERINGTROOPER_EXPLOS_HITRAD WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  2986.                    killit
  2987.         } else
  2988.         {
  2989.             ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ_DN  {  spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
  2990.             ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ_DN  {  spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
  2991.             ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ_DN {  spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
  2992.         }
  2993. ends
  2994.  
  2995. state sufferingtrooperfat
  2996.  
  2997.  ifpdistg SUFFERINGTROOPFAT_DISTTOP 
  2998.  {
  2999.           sound DRON_ATTACK1
  3000.           spawn EXPLOSION2
  3001.           sound RPG_EXPLODE
  3002.           sound LIZARD_BEG
  3003.           guts JIBS1 SUFFERTROOP_FAT1_JIBS1
  3004.           guts JIBS2 SUFFERTROOP_FAT1_JIBS2
  3005.            guts JIBS6 SUFFERTROOP_FAT1_JIBS6
  3006.           spawn BLOODPOOL
  3007.           spawn BLOODSPLAT1
  3008.           spawn BLOODSPLAT2
  3009.           debris SCRAP1 14
  3010.           hitradius SUFFERINGTROOPER_EXPLOS_HITRAD WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  3011.  
  3012.            killit
  3013.           }
  3014. ends
  3015.  
  3016.  
  3017.  
  3018. // BLOCKINSERT: SUNTROOPER_STATUEMAKER55  - sstatmk!
  3019.  
  3020. state troophidestate
  3021.     ifaction ATROOPREAPPEAR
  3022.     {
  3023.         ifactioncount 2 { sound TELEPORTER ai AITROOPSHOOTING cstat 257 }
  3024.         else { sizeto 41 40 sizeto 41 40 sizeto 41 40 sizeto 41 40 spawn FRAMEEFFECT1 }
  3025.     }
  3026.     else ifaction ATROOPWALKING
  3027.     {
  3028.         ifpdistl 2448 ifpdistg 1024
  3029.         {
  3030.             ifceilingdistl 48 break
  3031.             ifp pfacing break
  3032.  
  3033.             ifgapzl 64 { } else ifawayfromwall { spawn TRANSPORTERSTAR action ATROOPREAPPEAR move 0 break }
  3034.         }
  3035.     }
  3036.     else ifaction ATROOPHIDE
  3037.     {
  3038.         ifactioncount 2
  3039.         {
  3040.             spawn TRANSPORTERSTAR
  3041.             sound TELEPORTER
  3042.             action ATROOPWALKING move TROOPWALKVELS faceplayer
  3043.             cstat 32768
  3044.         }
  3045.         else
  3046.         {
  3047.             sizeto 0 40
  3048.             sizeto 0 40
  3049.             sizeto 0 40
  3050.             sizeto 0 40
  3051.             spawn FRAMEEFFECT1
  3052.         }
  3053.     }
  3054.     else ifaction ATROOPABOUTHIDE ifactioncount 2 { action ATROOPHIDE cstat 0 }
  3055. ends
  3056.  
  3057.  
  3058. state troopgunnashoot
  3059.     ifp palive
  3060.     {
  3061.         ifpdistl 1024 ai AITROOPSHOOTING
  3062.         else ifactornotstayput
  3063.         {
  3064.             ifactioncount 12 ifrnd 16 ifcanshoottarget
  3065.             {
  3066.                 ifspritepal 21 ifrnd 4 ifpdistg 4096 ai AITROOPHIDE
  3067.                 else
  3068.                 {
  3069.                     ifpdistl 1100 ai AITROOPFLEEING
  3070.                     else
  3071.                     {
  3072.                         ifpdistl 4096 ifcansee ifcanshoottarget ai AITROOPSHOOTING
  3073.                         else { move TROOPRUNVELS seekplayer action ATROOPRUNNING }
  3074.                     }
  3075.                 }
  3076.             }
  3077.         }
  3078.         else ifcount 26 ifrnd 32 ai AITROOPSHOOTING
  3079.     }
  3080. ends
  3081.  
  3082. state troopseekstate
  3083.     state troopgunnashoot
  3084.     ifinwater { ai AITROOPJETPACK break }
  3085.     ifcansee
  3086.     {
  3087.         ifmove TROOPRUNVELS ifpdistl 1596 ai AITROOPDUCKING
  3088.         ifp phigher { ifceilingdistl 128 { } else ifactornotstayput ai AITROOPJETPACK break }
  3089.         else ifrnd 2
  3090.         {
  3091.             ifspritepal 21 ifpdistg 1596 { ai AITROOPHIDE break }
  3092.             ifbulletnear { ifrnd 128 ai AITROOPDODGE else ai AITROOPDUCKING break }
  3093.         }
  3094.     }
  3095.     ifnotmoving { ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget ai AITROOPSHOOTING }
  3096.     ifrnd 1
  3097.     {
  3098.         ifrnd 128 soundonce PRED_ROAM
  3099.         else soundonce PRED_ROAM2
  3100.     }
  3101. ends
  3102.  
  3103. state troopduckstate
  3104.     ifaction ATROOPDUCK
  3105.         { ifactioncount 8 { ifp palive { ifrnd 128 action ATROOPDUCKSHOOT } else ifmove DONTGETUP break else ai AITROOPSEEKPLAYER } }
  3106.     else ifaction ATROOPDUCKSHOOT
  3107.     {
  3108.         ifcount 64
  3109.         {
  3110.             ifmove DONTGETUP resetcount
  3111.             else
  3112.             {
  3113.                 ifpdistl 1100
  3114.                     ai AITROOPFLEEING
  3115.                 else ai AITROOPSEEKPLAYER
  3116.             }
  3117.         }
  3118.         else ifactioncount 2 { ifcanshoottarget { sound PRED_ATTACK resetactioncount shoot FIRELASER } else ai AITROOPSEEKPLAYER }
  3119.     }
  3120. ends
  3121.  
  3122. state troopshootstate
  3123.     ifactioncount 2
  3124.     {
  3125.         ifcanshoottarget
  3126.         {
  3127.             shoot FIRELASER sound PRED_ATTACK resetactioncount
  3128.             ifrnd 128 ai AITROOPSEEKPLAYER
  3129.             ifcount 24
  3130.             {
  3131.                 ifrnd 96 ifpdistg 2048 ai AITROOPSEEKPLAYER
  3132.                 else
  3133.                 {
  3134.                     ifpdistg 1596 ai AITROOPFLEEING
  3135.                     else ai AITROOPFLEEINGBACK
  3136.                 }
  3137.             }
  3138.         }
  3139.         else ai AITROOPSEEKPLAYER
  3140.     }
  3141. ends
  3142.  
  3143. state troopfleestate
  3144.     ifactioncount 7
  3145.     {
  3146.         ifpdistg 3084 { ai AITROOPSEEKPLAYER break }
  3147.         else ifrnd 32 ifp palive ifcansee ifcanshoottarget { ifrnd 128 ai AITROOPDUCKING else ai AITROOPSHOOTING break }
  3148.     }
  3149.     ifnotmoving
  3150.     {
  3151.         ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget
  3152.             { ifrnd 128 ai AITROOPSHOOTING else ai AITROOPDUCKING }
  3153.     }
  3154. ends
  3155.  
  3156. state troopdying
  3157.     iffloordistl 32 { ifactioncount 5 { cstat 0 iffloordistl 8 sound THUD ifrnd 64 spawn BLOODPOOL state rf strength 0 move TROOPSTOPPED action ATROOPDEAD } break }
  3158.     else { state rf move 0 action ATROOPDYING }
  3159. ends
  3160.  
  3161. // BLOCKINSERT: TROOPERGOREMOREGORESTATE - TRGORE1!
  3162. // BLOCKINSERT: SUNTROOPER_MOREGORE - strgore1!
  3163.  
  3164.  
  3165. state checktroophit
  3166.     ifaction ATROOPSUFFERING { stopsound LIZARD_BEG sound PRED_DYING cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  3167.  
  3168. // BLOCKINSERT: TROOPERGORESTATECALL - TRGORE1!
  3169. // BLOCKINSERT: SUNTROOPER_MOREGORE_STATECALL - strgore1!
  3170. state extra_monster_gore
  3171.  
  3172.     ifdead
  3173.     {
  3174.         ifwasweapon FREEZEBLAST
  3175.            { 
  3176.  
  3177.     ifhitspace { sound SOMETHINGFROZE spritepal 7 move 0 action ATROOPSTATUE state checktrooperfall strength TROOPERSTATUESTRENGTH break } else        
  3178.         {
  3179.  
  3180.  
  3181.  
  3182.              sound SOMETHINGFROZE 
  3183.          spritepal 1 
  3184.          move 0 
  3185.          action 
  3186.          ATROOPFROZEN 
  3187.          strength 0 break 
  3188.  
  3189. }
  3190.           
  3191.  
  3192.             }
  3193.  
  3194.         state drop_ammo
  3195.         state random_wall_jibs
  3196.         addkills 1
  3197.  
  3198.  
  3199.  
  3200.  
  3201.  
  3202.  
  3203. ifwasweapon RPG 
  3204.   { sound SQUISHED 
  3205.     state troop_body_jibs 
  3206.     state standard_jibs 
  3207.     state delete_enemy } 
  3208. else 
  3209.   ifwasweapon RADIUSEXPLOSION
  3210.     { sound SQUISHED
  3211.       state troop_body_jibs
  3212.       state standard_jibs
  3213.       state delete_enemy }
  3214.  else 
  3215.       { sound PRED_DYING 
  3216.         ifrnd TROOPER_STANDARD_SUFFERING_FREQ iffloordistl 32 
  3217.             { sound LIZARD_BEG 
  3218.               spawn BLOODPOOL 
  3219.               strength 0 move 0 
  3220.               action ATROOPSUFFERING break } 
  3221.          action ATROOPDYING break 
  3222.       }
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.     }
  3229.     else
  3230.     {
  3231.         state random_wall_jibs
  3232.         sound PRED_PAIN
  3233.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AITROOPSHRUNK }
  3234.         else iffloordistl 32 ifrnd 96 action ATROOPFLINTCH
  3235.     }
  3236. ends
  3237.  
  3238. state troopjetpackstate
  3239.     ifhitweapon ifwasweapon RPG { ai AIJETPACKRPGHITUP break }
  3240.  
  3241.     ifrnd FLYINGTROOPER_FECEFREQ spawn FECES
  3242.     ifaction ATROOPJETPACKILL
  3243.     {
  3244.         ifcansee ifactioncount 2
  3245.         {
  3246.             resetactioncount
  3247.             sound PRED_ATTACK
  3248.             shoot FIRELASER
  3249.         }
  3250.  
  3251.         ifp phigher ai AITROOPJETPACK
  3252.         else ifinwater ai AITROOPJETPACK
  3253.         else ifcount 26 iffloordistl 32 ai AITROOPSEEKPLAYER
  3254.     }
  3255.     else ifcount 48 ifcansee
  3256.         { action ATROOPJETPACKILL move TROOPJETPACKILLVELS seekplayer }
  3257.     
  3258. ends
  3259.  
  3260. state checksquished
  3261.     ifsquished { addkills 1 sound SQUISHED state standard_jibs spawn OOZ state delete_enemy }
  3262. ends
  3263.  
  3264. state troopsufferingstate
  3265.     ifactioncount 2
  3266.     {
  3267.         ifrnd 24 spawn WATERDRIP
  3268.         ifactioncount TROOPER_SUFFERING_STANDARD_DURATION { stopsound LIZARD_BEG cstat 0 strength 0 action ATROOPSUFFERDEAD break }
  3269.     }
  3270.  
  3271.     ifhitweapon 
  3272.      { ifwasweapon KNEE 
  3273.           {
  3274.           ai  AISUFFERINGTROOPFAT break
  3275.           }
  3276.        else state checktroophit 
  3277.      }
  3278.  
  3279.  
  3280.  
  3281. ends
  3282.  
  3283. state troopshrunkstate
  3284.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  3285.     else ifcount SHRUNKCOUNT sizeto 48 40
  3286.     else state genericshrunkcode
  3287. ends
  3288.  
  3289.         
  3290.                                                                       
  3291. state GHOST_TROOPER_JIBS
  3292.  
  3293.     guts JIBS2 GHOST_TROOPER_JIB2
  3294.     guts JIBS3 GHOST_TROOPER_JIB3
  3295.     guts JIBS4 GHOST_TROOPER_JIB2
  3296.     guts JIBS5 GHOST_TROOPER_JIB3
  3297.     guts JIBS6 GHOST_TROOPER_JIB2
  3298.     ifrnd GHOST_TROOPER_SND1FREQ sound LIZARD_BEG else
  3299.     ifrnd GHOST_TROOPER_SND1FREQ sound SQUISHED else
  3300.     ifrnd GHOST_TROOPER_SND1FREQ sound PRED_DYING
  3301.  
  3302. ends 
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.  
  3309. state troopcode fall
  3310.  
  3311. // Thefty Trooper ***********************
  3312. ifpdistl TROOPER_THEFT_DISTANCE { ifrnd 10 ifrnd 10
  3313.     
  3314.      ifrnd STEROID_THEFT_FREQ { ifpinventory GET_STEROIDS 150000 { addinventory GET_STEROIDS 0
  3315.      } } else
  3316.      ifrnd  SHIELD_THEFT_FREQ { ifpinventory GET_SHIELD 150000 { addinventory GET_SHIELD  0
  3317.      } } else
  3318.      ifrnd  BOOT_THEFT_FREQ { ifpinventory GET_BOOTS 150000 { addinventory GET_BOOTS 0
  3319.      } } else
  3320.      ifrnd  SCUBA_THEFT_FREQ { ifpinventory GET_SCUBA 150000 { addinventory GET_SCUBA 0
  3321.      } } else
  3322.      ifrnd  JETPACK_THEFT_FREQ { ifpinventory GET_JETPACK 150000 { addinventory GET_JETPACK 0
  3323.      } }  else
  3324.      ifrnd  FIRSTAID_THEFT_FREQ { ifpinventory GET_FIRSTAID 150000 { addinventory GET_FIRSTAID 0
  3325.     quote 223 } }
  3326.  }
  3327.  
  3328.  
  3329.  
  3330.     ifinwater ifrnd 1 spawn WATERBUBBLE
  3331.     ifaction ATROOPSTAND 
  3332.         { 
  3333.         ifrnd 192 
  3334.         ai AITROOPSHOOTING 
  3335.         else ai AITROOPSEEKPLAYER 
  3336.         }
  3337.  
  3338.  
  3339. else ifaction ATROOPSTATUE 
  3340.     {
  3341.                 ifactioncount 10 resetactioncount
  3342.       ifhitweapon state checktrooperstatuehit
  3343.     break
  3344.     }
  3345. else ifaction ATROOPSTATUEFALL
  3346.     {
  3347.           iffloordistl 16  state breaktrooperstatue
  3348.           break
  3349.     }
  3350.  
  3351.  
  3352. else ifai AISUFFERINGTROOPFAT { state sufferingtrooperfat break }
  3353. else ifai AIJETPACKRPGHITUP      { state jetpackupcheck break }
  3354. else ifai AIJETPACKRPGHITDN     { state jetpackdncheck break }
  3355.  
  3356.  
  3357.     else ifaction ATROOPFROZEN
  3358.     {
  3359.         ifcount THAWTIME { ai AITROOPSEEKENEMY getlastpal }
  3360.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  3361.         ifhitweapon
  3362.         {
  3363.             ifwasweapon FREEZEBLAST { strength 0 break }
  3364.             addkills 1
  3365.  
  3366.             ifrnd 84 spawn BLOODPOOL
  3367.             lotsofglass 30
  3368.             sound GLASS_BREAKING
  3369.             killit
  3370.         }
  3371.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3372.         break
  3373.     }
  3374.     else ifaction ATROOPPLAYDEAD
  3375.     {
  3376.         ifhitweapon
  3377.         {
  3378.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  3379.             break
  3380.         }
  3381.         else state checksquished
  3382.  
  3383.         ifcount PLAYDEADTIME { addkills -1 soundonce PRED_ROAM cstat 257 strength 1 ai AITROOPSHOOTING }
  3384.         else ifp pfacing resetcount
  3385.  
  3386.         break
  3387.     }
  3388.     else ifaction ATROOPDEAD
  3389.     {
  3390.         strength 0
  3391.         ifrespawn ifcount RESPAWNACTORTIME { spawn TRANSPORTERSTAR cstat 257 strength TROOPSTRENGTH ai AITROOPSEEKENEMY }
  3392.  
  3393.  
  3394. state corpseexplodingstate
  3395.  
  3396.  
  3397. ifpdistl TOXICCORPSE_SMELLDIST 
  3398.     {
  3399.         ifrnd SUNTOXICCORSE_TOXICITY_FREQ 
  3400.         {
  3401.             ifrnd SUNTOXICCORSE_TOXICITY_SOUND_SMELLS
  3402.             {
  3403.             ifrnd 64 soundonce DUKE_KILLED3
  3404.             else ifrnd 64 soundonce DUKE_GASP 
  3405.             else ifrnd 64 soundonce DUKE_SEARCH
  3406.             sound DUKE_LONGTERM_PAIN
  3407.             }
  3408.             addphealth SUNTOXICCORSE_TOXICITY_STRENGTH
  3409.         }        
  3410.          else
  3411.          ifrnd  SUNTOXICCORSE_TOXICITY_FREQ_RESS 
  3412.                 { ifpinventory GET_FIRSTAID 150000 
  3413.             { 
  3414.             ifrnd 32 sound DUKE_KILLED1 else
  3415.             ifrnd 32 sound DUKE_HIT_STRIPPER1 else
  3416.             ifrnd 32 sound JIBBED_ACTOR4
  3417.             addinventory GET_FIRSTAID -20000
  3418.             spawn TRANSPORTERSTAR cstat 257 strength TROOPSTRENGTH ai AITROOPSEEKENEMY
  3419.             }
  3420.         }
  3421.     }
  3422.  
  3423.  
  3424.  
  3425.     cstat 257 
  3426.     ifspritepal 1 {
  3427.              ifrnd GHOOST_TROOPER_SPONTFREQ
  3428.                       ifrnd GHOOST_TROOPER_SPONTFREQ
  3429.                      ifrnd GHOOST_TROOPER_SPONTFREQ
  3430.                  { 
  3431.                     cstat 259 
  3432.                     ifrnd 156 spritepal 1 else spritepal 19
  3433.                     strength BLUEGHOST_TROOPSTRENGTH 
  3434.                     ai AITROOPSEEKENEMY  
  3435.                 }
  3436.           } 
  3437.  
  3438.     else
  3439.     ifspritepal 19  { 
  3440.             cstat 0
  3441.              ifrnd  GHOOST_TROOPER_REDSPONTFREQ
  3442.                     ifrnd  GHOOST_TROOPER_REDSPONTFREQ
  3443.                      ifrnd  GHOOST_TROOPER_REDSPONTFREQ    
  3444.                 { 
  3445.                                state GHOST_TROOPER_JIBS 
  3446.                 state GHOST_TROOPER_JIBS 
  3447.                 state GHOST_TROOPER_JIBS
  3448.                                       
  3449.                 hitradius EXPLODING_GHOST_RADIUS  WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  3450.                                            
  3451.                 spawn EXPLOSION2                                            
  3452.                                                     state random_explosion_sounds
  3453.                                                            killit
  3454.                 break
  3455.                  }
  3456.                 
  3457.                      }
  3458.  
  3459.     else
  3460.          {
  3461.               ifrnd GHOST_TROOPER_GENEXPLODEFREQ  
  3462.                      ifrnd GHOST_TROOPER_GENEXPLODEFREQ
  3463.                       ifrnd GHOST_TROOPER_GENEXPLODEFREQ
  3464.                 {
  3465.                     state GHOST_TROOPER_JIBS 
  3466.                                 state GHOST_TROOPER_JIBS 
  3467.                     state GHOST_TROOPER_JIBS 
  3468.                     spawn EXPLOSION2 
  3469.                     state random_explosion_sounds
  3470.                      cstat 259 
  3471.                     spritepal 1 
  3472.                     strength BLUEGHOST_TROOPSTRENGTH 
  3473.                     ai AITROOPSEEKENEMY
  3474.                     break 
  3475.                 }
  3476.         }    
  3477.  
  3478.  
  3479.  
  3480.  
  3481.         ifhitweapon
  3482.         {
  3483.             ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
  3484.  
  3485.            
  3486. else
  3487.     ifwasweapon SHRINKSPARK
  3488.         {
  3489.             ifspritepal 1 
  3490.             {
  3491.             ifrnd 196 {    
  3492.                     state GHOST_TROOPER_JIBS 
  3493.                     state GHOST_TROOPER_JIBS 
  3494.                     
  3495.                     spawn EXPLOSION2 
  3496.                     state random_explosion_sounds
  3497.                     killit 
  3498.                     break 
  3499.                 } 
  3500.                 else
  3501.                 {
  3502.                     state GHOST_TROOPER_JIBS 
  3503.                     state GHOST_TROOPER_JIBS 
  3504.                     state GHOST_TROOPER_JIBS 
  3505.                     spawn EXPLOSION2 
  3506.                     state random_explosion_sounds
  3507.                     cstat 259 
  3508.                     spritepal 1 
  3509.                     strength BLUEGHOST_TROOPSTRENGTH 
  3510.                     ai AITROOPSEEKENEMY
  3511.                     spawn LIZTROOP
  3512.                     break         
  3513.                 }
  3514.                 
  3515.             }
  3516.             
  3517.         }
  3518.     
  3519.     else
  3520.         {
  3521.             state GHOST_TROOPER_JIBS
  3522.  
  3523.             ifrnd GHOST_TROOPER_RESSURECT_BLUEFREQ 
  3524.             { ifspritepal 19 { } else
  3525.                  {  
  3526.                     cstat 259 
  3527.                     spritepal 1 
  3528.                     spawn TELEPORTER
  3529.                     strength BLUEGHOST_TROOPSTRENGTH 
  3530.                     ai AITROOPSEEKENEMY
  3531.                     break 
  3532.                   } 
  3533.             } else
  3534.             ifrnd GHOST_TROOPER_RESSURECT_REDFREQ
  3535.             {  ifspritepal 19 { } else 
  3536.                         {
  3537.                              cstat 259 
  3538.                              spritepal 19  
  3539.                              spawn TELEPORTER
  3540.                              strength REDGHOST_TROOPSTRENGTH 
  3541.                             ai AITROOPSEEKENEMY 
  3542.                             break
  3543.                         } 
  3544.             }
  3545.  
  3546.             ifrnd GHOST_TROOPER_GENEXPLODEFREQ 
  3547.                 ifspritepal 0 
  3548.                     {
  3549.                          ifrnd GHOST_TROOPER_GENEXPLODEFREQ
  3550.                             {
  3551.                             
  3552.                                  state GHOST_TROOPER_JIBS 
  3553.                                  state GHOST_TROOPER_JIBS 
  3554.                                  
  3555.                                               spawn EXPLOSION2 
  3556.                                 state random_explosion_sounds
  3557.                                  cstat 259 
  3558.                                 spritepal 1 
  3559.                                 strength BLUEGHOST_TROOPSTRENGTH 
  3560.                                 ai AITROOPSEEKENEMY
  3561.                                 break 
  3562.                             }
  3563.                     }
  3564.                 
  3565.                 else ifspritepal 19
  3566.                     { 
  3567.                      ifrnd GHOST_TROOPER_GENEXPLODEFREQ
  3568.                             {
  3569.                                  state GHOST_TROOPER_JIBS 
  3570.                                 state GHOST_TROOPER_JIBS 
  3571.                                  
  3572.                                                spawn EXPLOSION2 
  3573.                                 state random_explosion_sounds
  3574.                                  killit 
  3575.                                 break 
  3576.                             }
  3577.                     }
  3578.                             
  3579.  
  3580.             
  3581.         }
  3582.  
  3583.  
  3584.  
  3585.  
  3586.             break
  3587.         }
  3588.         else state checksquished
  3589.         break
  3590.     }
  3591.     else ifaction ATROOPSUFFERDEAD
  3592.     {
  3593.         ifactioncount 2
  3594.         {
  3595.             ifrnd 64 { resetcount action ATROOPPLAYDEAD }
  3596.             else { soundonce PRED_DYING action ATROOPDEAD }
  3597.         }
  3598.     }
  3599.     else ifaction ATROOPDYING { state troopdying break }
  3600.     else ifaction ATROOPSUFFERING
  3601.         { state troopsufferingstate ifhitweapon state checktroophit break }
  3602.      
  3603.     else ifaction ATROOPFLINTCH { ifactioncount 4 ai AITROOPSEEKENEMY }
  3604.     else
  3605.     {
  3606.         ifai AITROOPSEEKPLAYER state troopseekstate
  3607.         else ifai AITROOPJETPACK
  3608.         {
  3609.             state troopjetpackstate
  3610.             ifinwater { } else soundonce DUKE_JETPACK_IDLE
  3611.         }
  3612.         else ifai AITROOPSEEKENEMY state troopseekstate
  3613.         else ifai AITROOPSHOOTING state troopshootstate
  3614.         else ifai AITROOPFLEEING state troopfleestate
  3615.         else ifai AITROOPFLEEINGBACK state troopfleestate
  3616.         else ifai AITROOPDODGE state troopseekstate
  3617.         else ifai AITROOPDUCKING state troopduckstate
  3618.         else ifai AITROOPSHRUNK state troopshrunkstate
  3619.         else ifai AITROOPHIDE { state troophidestate break }
  3620.         
  3621.     }
  3622.  
  3623.  
  3624.  
  3625.     ifhitweapon state checktroophit else state checksquished
  3626. ends
  3627.  
  3628.  
  3629. actor LIZTROOPJETPACK TROOPSTRENGTH ai AITROOPJETPACK cactor LIZTROOP enda
  3630. actor LIZTROOPDUCKING TROOPSTRENGTH
  3631.     ai AITROOPDUCKING cactor LIZTROOP
  3632.     ifgapzl 48 move DONTGETUP
  3633. enda
  3634.  
  3635. actor LIZTROOPSHOOT TROOPSTRENGTH ATROOPSTAND ai AITROOPSHOOTING cactor LIZTROOP enda
  3636. actor LIZTROOPSTAYPUT TROOPSTRENGTH ATROOPSTAYSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  3637. actor LIZTROOPRUNNING TROOPSTRENGTH ATROOPSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
  3638. actor LIZTROOPONTOILET TROOPSTRENGTH ifcount 24 { sound FLUSH_TOILET operate ai AITROOPSEEKPLAYER cactor LIZTROOP } enda
  3639. actor LIZTROOP TROOPSTRENGTH ATROOPSTAND 
  3640.  
  3641.  
  3642.  
  3643.  
  3644.  
  3645. state troopcode 
  3646. enda
  3647.  
  3648.  
  3649.  
  3650.  
  3651.  
  3652. action ALIZWALKING       0     4    5    1    15
  3653. action ALIZRUNNING       0     4    5    1    11
  3654. action ALIZTHINK         20    2    5    1    40
  3655. action ALIZSCREAM        30    1    5    1    2
  3656. action ALIZJUMP          45    3    5    1    20
  3657. action ALIZFALL          55
  3658. action ALIZSHOOTING      70    2    5    1    7
  3659. action ALIZDYING         60    6    1    1    15
  3660. action ALIZLYINGDEAD     65    1
  3661. action ALIZFROZEN         0    1    5
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667. move LIZWALKVEL LIZMAN_STANDARD_WALKVEL
  3668. move LIZRUNVEL LIZMAN_STANDARD_RUNVEL
  3669.  
  3670. move LIZJUMPVEL 184
  3671. move LIZSTOP
  3672.  
  3673. ai AILIZGETENEMY ALIZWALKING LIZWALKVEL seekplayer
  3674. ai AILIZDODGE ALIZRUNNING LIZRUNVEL dodgebullet
  3675. ai AILIZCHARGEENEMY ALIZRUNNING LIZRUNVEL seekplayer
  3676. ai AILIZFLEENEMY ALIZWALKING LIZWALKVEL fleeenemy
  3677. ai AILIZSHOOTENEMY ALIZSHOOTING LIZSTOP faceplayer
  3678. ai AILIZJUMPENEMY ALIZJUMP LIZJUMPVEL jumptoplayer
  3679. ai AILIZTHINK ALIZTHINK LIZSTOP faceplayerslow
  3680. ai AILIZSHRUNK ALIZWALKING SHRUNKVELS fleeenemy
  3681. ai AILIZSPIT ALIZSCREAM LIZSTOP faceplayerslow
  3682. ai AILIZDYING ALIZDYING LIZSTOP faceplayer
  3683.  
  3684.  
  3685.  
  3686. action AENFORCERSTATUE      0    1    5
  3687. action AENFORCERSTATUEFALL 0 1 5
  3688.  
  3689. state checkenforcerfall
  3690.  
  3691. iffloordistl 8 { fall  } else { fall action ATROOPSTATUEFALL }
  3692.  
  3693. ends
  3694.  
  3695.  
  3696. state breakenforcerstatue
  3697.     iffloordistl 128 {
  3698.     sound GLASS_BREAKING
  3699.     lotsofglass 100
  3700.     addkills 1
  3701.     killit
  3702.     break
  3703.     }
  3704. ends
  3705.  
  3706. state checkenforcerstatuehit
  3707.   ifdead
  3708.     {
  3709.  
  3710.  
  3711.         ifwasweapon RPG { sound SQUISHED lotsofglass 50 killit }
  3712.         else ifwasweapon RADIUSEXPLOSION {      sound SQUISHED 
  3713.                                lotsofglass 100  
  3714.                                addkills 1 
  3715.                                state drop_ammo 
  3716.                     state shootstatuedebris
  3717.                                killit } else { strength 1 }
  3718.        
  3719.     }
  3720.     else
  3721.     {
  3722.         debris SCRAP1 5
  3723.         ifwasweapon SHOTSPARK1 sound  PISTOL_RICOCHET
  3724.        
  3725.     }
  3726. ends
  3727.  
  3728.  
  3729.  
  3730.  
  3731.  
  3732. state lizseekstate
  3733.  
  3734.     ifactornotstayput
  3735.     {
  3736.         ifcansee ifp palive ifpdistl 2048 ifcount 16 ifcanshoottarget { ai AILIZSHOOTENEMY break }
  3737.         ifai AILIZCHARGEENEMY
  3738.         {
  3739.             ifcount 72 ifcanshoottarget { ai AILIZSHOOTENEMY break }
  3740.             ifp phigher ifpdistg 2048 ifrnd 6 { ai AILIZJUMPENEMY break }
  3741.         }
  3742.         else ifpdistg 4096 { ifrnd 92 { ifcount 48 ifcanshoottarget ai AILIZSHOOTENEMY } else ifcount 24 { ai AILIZCHARGEENEMY break } }
  3743.  
  3744.         iffloordistl 16 { ifcount 48 ifnotmoving ifcansee { ai AILIZJUMPENEMY break } }
  3745.         else { ifpdistg 1280 ai AILIZJUMPENEMY break }
  3746.  
  3747.         ifrnd 4 ifnotmoving operate
  3748.         else ifrnd 1 ifbulletnear
  3749.         {
  3750.             ifgapzl 128 ai AILIZDODGE
  3751.             else ifactornotstayput { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
  3752.         }
  3753.     }
  3754.     else
  3755.     {
  3756.         ifactioncount 16 { ifp palive ifrnd 32 ifcansee ifcanshoottarget ai AILIZSHOOTENEMY }
  3757.         ifcount 16 ifrnd 32 move LIZWALKVEL randomangle geth
  3758.     }
  3759.  
  3760. ends
  3761.  
  3762. state lizshrunkstate
  3763.     ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
  3764.     else ifcount SHRUNKCOUNT sizeto 48 40
  3765.     else state genericshrunkcode
  3766. ends
  3767.  
  3768. state lizfleestate
  3769.     ifcount 16 { ifrnd 48 ifp palive ifcansee ai AILIZSPIT }
  3770.     else { iffloordistl 16 { } else ai AILIZGETENEMY break }
  3771. ends
  3772.  
  3773. state lizthinkstate
  3774.     ifrnd 8 soundonce CAPT_ROAM
  3775.     ifactioncount 3
  3776.     {
  3777.         ifrnd 32 ifp palive ifcansee ai AILIZSPIT
  3778.         else ifrnd 96 ai AILIZGETENEMY
  3779.     }
  3780.     else ifactioncount 2 ifrnd 1 spawn FECES
  3781.     ifrnd 1 ifbulletnear
  3782.     {
  3783.         ifgapzl 96 ai AILIZDODGE
  3784.         else { ifrnd 128 ai AILIZJUMPENEMY else ai AILIZDODGE }
  3785.     }
  3786. ends
  3787.  
  3788. state lizshootstate
  3789.     ifcount 20 ifrnd 8
  3790.     {
  3791.         ifcansee ifpdistl 2048 { ifrnd 128 ai AILIZFLEENEMY break }
  3792.         ifrnd 80 ai AILIZTHINK else ai AILIZGETENEMY
  3793.     }
  3794.     ifactioncount 2
  3795.     {
  3796.         ifcansee
  3797.         {
  3798.             ifcanshoottarget { sound CAPT_ATTACK shoot SHOTSPARK1 resetactioncount }
  3799.             else ai AILIZTHINK
  3800.         }
  3801.         else ai AILIZGETENEMY
  3802.     }
  3803. ends
  3804.  
  3805.  
  3806. // BLOCKINSERT: MOREENFOCERSTATEGORE1 - engore1!
  3807. // BLOCKINSERT: SUNEFORCER_MOREGORE - sengore!
  3808.  
  3809.  
  3810. state checklizhit
  3811.  
  3812.          spawn BLOOD
  3813.  
  3814.  
  3815. // BLOCKINSERT: MOREENFORCERGOREINSERT1 - engore1!
  3816. // BLOCKINSERT: SUNEFORCER_MOREGORE_STATECALL - sengore!
  3817.  
  3818. state extra_monster_gore
  3819.  
  3820.  
  3821.     ifai AILIZSHRUNK
  3822.         { addkills 1 sound SQUISHED state standard_jibs state delete_enemy }
  3823.     ifdead
  3824.     {
  3825.         
  3826.         ifwasweapon FREEZEBLAST 
  3827.         
  3828.         { 
  3829.  
  3830.     ifhitspace { sound SOMETHINGFROZE spritepal 7 move 0 action AENFORCERSTATUE state checkenforcerfall strength ENFORCERSTATUESTRENGTH  break } else        
  3831.         {
  3832.  
  3833.  
  3834.  
  3835.         sound SOMETHINGFROZE 
  3836.         spritepal 1 move 0 
  3837.         action ALIZFROZEN 
  3838.         strength 0 
  3839.         break 
  3840. }
  3841.  
  3842.  
  3843.         }
  3844.  
  3845.  
  3846.         state drop_chaingun
  3847.         addkills 1
  3848.  
  3849.         ifwasweapon RPG { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  3850.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
  3851.         else { state rf ai AILIZDYING ifrnd 64 spawn BLOODPOOL }
  3852.         sound CAPT_DYING
  3853.     }
  3854.     else
  3855.     {
  3856.         sound CAPT_PAIN
  3857.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AILIZSHRUNK break }
  3858.         state random_wall_jibs
  3859.         ifp palive ifcansee ifcanshoottarget { ai AILIZSHOOTENEMY break }
  3860.     }
  3861. ends
  3862.  
  3863. state lizjumpstate
  3864.     ifactioncount 1 { ifrnd LIZMAN_FECEFREQ spawn FECES }    
  3865.     ifaction ALIZFALL { iffloordistl 16 ai AILIZGETENEMY }
  3866.     else ifactioncount 3 action ALIZFALL
  3867. ends
  3868.  
  3869. state lizdyingstate
  3870.     ifaction ALIZLYINGDEAD
  3871.     {
  3872.         strength 0
  3873.         ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  3874.         ifcount RESPAWNACTORTIME ifrespawn
  3875.         {
  3876.             spawn TRANSPORTERSTAR cstat 257 strength LIZSTRENGTH ai AILIZGETENEMY
  3877.         }
  3878.     }
  3879.     else ifai AILIZDYING ifactioncount 6 { iffloordistl 8 sound THUD move LIZSTOP action ALIZLYINGDEAD }
  3880. ends
  3881.  
  3882. state lizdodgestate
  3883.     ifcount 13 ai AILIZGETENEMY
  3884. ends
  3885.  
  3886. actor LIZMANSTAYPUT LIZSTRENGTH ai AILIZGETENEMY cactor LIZMAN enda
  3887. actor LIZMANSPITTING LIZSTRENGTH ai AILIZSPIT cactor LIZMAN enda
  3888. actor LIZMANJUMP LIZSTRENGTH ai AILIZJUMPENEMY cactor LIZMAN enda
  3889.  
  3890. actor LIZMAN LIZSTRENGTH fall
  3891.     state checksquished
  3892.     ifai 0 ai AILIZGETENEMY
  3893.     else ifaction ALIZLYINGDEAD 
  3894.             { 
  3895.  
  3896. state corpseexplodingstate
  3897.  
  3898.  
  3899. ifpdistl TOXICCORPSE_SMELLDIST 
  3900.     {
  3901.         ifrnd SUNTOXICCORSE_TOXICITY_FREQ 
  3902.         {
  3903.             ifrnd SUNTOXICCORSE_TOXICITY_SOUND_SMELLS
  3904.             {
  3905.             ifrnd 64 soundonce DUKE_KILLED3
  3906.             else ifrnd 64 soundonce DUKE_GASP 
  3907.             else ifrnd 64 soundonce DUKE_SEARCH
  3908.             sound DUKE_LONGTERM_PAIN
  3909.             }
  3910.             addphealth SUNTOXICCORSE_TOXICITY_STRENGTH
  3911.             }
  3912.          else
  3913.          ifrnd  SUNTOXICCORSE_TOXICITY_FREQ_RESS { ifpinventory GET_FIRSTAID 150000 
  3914.             { 
  3915.             ifrnd 32 sound DUKE_KILLED1 else
  3916.             ifrnd 32 sound DUKE_HIT_STRIPPER1 else
  3917.             ifrnd 32 sound JIBBED_ACTOR4
  3918.             addinventory GET_FIRSTAID -20000
  3919.              spawn TRANSPORTERSTAR cstat 257 strength LIZSTRENGTH ai AILIZGETENEMY
  3920.             }
  3921.          }
  3922.     }
  3923.  
  3924.  
  3925.  
  3926.                    fall state lizdyingstate break 
  3927.              } 
  3928.  
  3929.      else ifaction AENFORCERSTATUE 
  3930.     {
  3931.                 ifactioncount 10 resetactioncount
  3932.       ifhitweapon state checkenforcerstatuehit
  3933.     break
  3934.     }
  3935. else ifaction AENFORCERSTATUEFALL
  3936.     {
  3937.           iffloordistl 16  state breakenforcerstatue
  3938.           break
  3939.     }
  3940.  
  3941.  
  3942.     else ifaction ALIZFROZEN
  3943.     {
  3944.         ifcount THAWTIME { ai AILIZGETENEMY getlastpal }
  3945.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  3946.  
  3947.         ifhitweapon
  3948.         {
  3949.             ifwasweapon FREEZEBLAST { strength 0 break }
  3950.             addkills 1
  3951.  
  3952.             ifrnd 84 spawn BLOODPOOL
  3953.             lotsofglass 30
  3954.             sound GLASS_BREAKING
  3955.             killit
  3956.         }
  3957.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  3958.         break
  3959.     }
  3960.  
  3961.     else ifai AILIZJUMPENEMY state lizjumpstate
  3962.     else
  3963.     {
  3964.         fall
  3965.         ifai AILIZGETENEMY state lizseekstate
  3966.         else ifai AILIZCHARGEENEMY state lizseekstate
  3967.         else ifai AILIZDODGE state lizdodgestate
  3968.         else ifai AILIZSHOOTENEMY state lizshootstate
  3969.         else ifai AILIZFLEENEMY state lizfleestate
  3970.         else ifai AILIZTHINK state lizthinkstate
  3971.         else ifai AILIZSHRUNK state lizshrunkstate
  3972.         else ifai AILIZDYING state lizdyingstate
  3973.         else ifai AILIZSPIT
  3974.             { ifcount 26 ai AILIZGETENEMY else ifcount 18 ifrnd 96 { shoot SPIT sound LIZARD_SPIT } }
  3975.     }
  3976.  
  3977.     ifai AILIZSHRUNK break
  3978.     ifhitweapon state checklizhit
  3979. enda
  3980.  
  3981. action DRONEFRAMES     0   1   7   1   1
  3982. action DRONESCREAM     0   1   7   1   1
  3983.  
  3984. move DRONERUNVELS DRONE_STANDARD_RUNVEL 64
  3985. move DRONERUNUPVELS 128 -64
  3986. move DRONEBULLVELS DRONE_STANDARD_BULLVEL -64
  3987. move DRONEBACKWARDS DRONE_STANDARD_RUNBACKVEL -64
  3988. move DRONERISE 32 DRONE_STANDARD_RISEVEL
  3989. move DRONESTOPPED -16
  3990.  
  3991. ai AIDRONEGETE DRONESCREAM DRONERUNVELS faceplayerslow getv
  3992. ai AIDRONEWAIT DRONEFRAMES DRONESTOPPED faceplayerslow
  3993. ai AIDRONEGETUP DRONESCREAM DRONERUNUPVELS faceplayer getv
  3994. ai AIDRONEPULLBACK DRONEFRAMES DRONEBACKWARDS faceplayerslow
  3995. ai AIDRONEHIT DRONESCREAM DRONEBACKWARDS faceplayer
  3996. ai AIDRONESHRUNK DRONEFRAMES SHRUNKVELS fleeenemy
  3997. ai AIDRONEDODGE DRONEFRAMES DRONEBULLVELS dodgebullet geth
  3998. ai AIDRONEDODGEUP DRONEFRAMES DRONERISE getv geth
  3999.  
  4000. move DRONECRAZYVELS 90  -64
  4001. move DRONESPINRISE  45  -72
  4002. action DRONECRAZY         0   1   7   1   5
  4003. action DRONESPINUP         0   1   7   1   5
  4004.  
  4005. ai AIDRONECRAZY  DRONECRAZY DRONECRAZYVELS  randomangle
  4006. ai AIDRONESPINUP DRONESPINUP DRONESPINRISE spin
  4007. state checkdronecrazy
  4008.  
  4009.             ifrnd 5
  4010.         {
  4011.                 addkills 1
  4012.                         debris SCRAP1 DRONE_FAT_DEBRIS1
  4013.                         debris SCRAP2 DRONE_FAT_DEBRIS1
  4014.                         debris SCRAP3 DRONE_FAT_DEBRIS1
  4015.                         spawn EXPLOSION2
  4016.                         sound RPG_EXPLODE
  4017.                         hitradius DRONE_FAT_BLASTRADIUS 15 20 25 30
  4018.                         killit
  4019.                 break
  4020.  
  4021.             }
  4022.         else  {     
  4023.         ifrnd 64 {  debris SCRAP1 DRONE_FAT_DEBRIS2   
  4024.             debris SCRAP3 DRONE_FAT_DEBRIS2  
  4025.             debris SCRAP4 DRONE_FAT_DEBRIS2  
  4026.             debris SCRAP5 DRONE_FAT_DEBRIS2
  4027.              lotsofglass  DRONE_FAT_GLASS }
  4028.  
  4029.          ifrnd DRONE_FAT_SPINSHOOTMORT_FREQ shoot MORTER  else move DRONECRAZYVELS randomangle
  4030.          resetactioncount
  4031.         }
  4032.  
  4033. ends
  4034.  
  4035. state checkdronespinup
  4036.  
  4037.             ifrnd 5
  4038.             {
  4039.                 addkills 1
  4040.                         debris SCRAP1 DRONE_FAT_DEBRIS1
  4041.                         debris SCRAP2 DRONE_FAT_DEBRIS1
  4042.                         debris SCRAP3 DRONE_FAT_DEBRIS1
  4043.                         spawn EXPLOSION2
  4044.                         sound RPG_EXPLODE
  4045.                         hitradius  DRONE_FAT_BLASTRADIUS 15 20 25 30
  4046.                         killit
  4047.                 break
  4048.  
  4049.             }
  4050.         else  {     
  4051.  
  4052.         ifrnd 64 {     debris SCRAP1 DRONE_FAT_DEBRIS2   
  4053.             debris SCRAP3 DRONE_FAT_DEBRIS2 
  4054.             debris SCRAP4 DRONE_FAT_DEBRIS2  
  4055.             debris SCRAP5 DRONE_FAT_DEBRIS2
  4056.              lotsofglass  DRONE_FAT_GLASS  
  4057.                      }
  4058.  
  4059.             ifrnd DRONE_FAT_SPINSHOOTMORT_FREQ shoot MORTER 
  4060.                 else move  DRONESPINRISE 72 - 64 spin
  4061.         
  4062.         }
  4063.  
  4064. ends
  4065.  
  4066.  
  4067.  
  4068.  
  4069. action ADRONESTATUE      0   1    7
  4070. action ADRONESTATUEFALL 0  1  7
  4071.  
  4072. state checkdronefall
  4073.  
  4074.  fall action ADRONESTATUEFALL move DRONESTOPPED spin
  4075.  
  4076. ends
  4077.  
  4078. state breakdronestatue
  4079.     iffloordistl 128 {
  4080.     sound GLASS_BREAKING
  4081.     state shootstatuedebris
  4082.     addkills 1
  4083.     killit
  4084.     break
  4085.     }
  4086. ends
  4087.  
  4088. state checkdronestatuehit
  4089.   ifdead
  4090.     {
  4091.        
  4092.     }
  4093.     else
  4094.     {
  4095.         state shootstatuedebris
  4096.        
  4097.     }
  4098. ends
  4099.  
  4100.  
  4101.  
  4102. state checkdronehitstate
  4103.  
  4104.     ifdead
  4105.     {
  4106.  
  4107. ifwasweapon RPG { 
  4108.     ifrnd 128 { strength 1 spritepal 10  action DRONECRAZY ai AIDRONECRAZY } 
  4109.         else
  4110.     ifrnd 128 {  
  4111.              addkills 1
  4112.                     debris SCRAP1 8
  4113.                     debris SCRAP2 4
  4114.                     debris SCRAP3 7
  4115.                     spawn EXPLOSION2
  4116.                     sound RPG_EXPLODE
  4117.                     hitradius DRONE_FAT_BLASTRADIUS 15 20 25 30
  4118.                     killit
  4119.         }
  4120.          else
  4121.     ifrnd 128 {
  4122.             strength 1     
  4123.             ai AIDRONESPINUP 
  4124.         } else strength 1
  4125.          
  4126.           break }  else ifrnd DRONE_FAT_FREQ ifdead  { strength 1 spritepal 10  action DRONECRAZY ai AIDRONECRAZY } 
  4127.  
  4128.  
  4129.  
  4130.     ifwasweapon FREEZEBLAST ifhitspace { sound SOMETHINGFROZE spritepal 7 move 0 action ADRONESTATUE state checkdronefall strength DRONESTATUESTRENGTH  break } else        
  4131.         {
  4132.  
  4133.  
  4134.         addkills 1
  4135.         debris SCRAP1 8
  4136.         debris SCRAP2 4
  4137.         debris SCRAP3 7
  4138.         spawn EXPLOSION2
  4139.         sound RPG_EXPLODE
  4140.         hitradius 2048 15 20 25 30
  4141.         killit
  4142. }
  4143.  
  4144.  
  4145.     }
  4146.     else
  4147.     {
  4148.         sound DRON_PAIN
  4149.         ifbulletnear
  4150.         {
  4151.             ifceilingdistl 64 ifrnd 48 ai AIDRONEDODGE
  4152.             ai AIDRONEDODGEUP
  4153.         }
  4154.         else ai AIDRONEGETE
  4155.     }
  4156. ends
  4157.  
  4158. state droneshrunkstate
  4159.     ifcount 24 state delete_enemy
  4160.     else sizeto 1 1
  4161. ends
  4162.  
  4163. state checkdronenearplayer
  4164.  
  4165.     ifp palive ifpdistl 1596
  4166.     {
  4167.         ifcount 8
  4168.         {
  4169.             addkills 1
  4170.             sound DRON_ATTACK2
  4171.             debris SCRAP1 8
  4172.             debris SCRAP2 4
  4173.             debris SCRAP3 7
  4174.             spawn EXPLOSION2
  4175.             sound RPG_EXPLODE
  4176.             hitradius 2048 15 20 25 30
  4177.             killit
  4178.         }
  4179.         else ifcount 3 { } else sound LASERTRIP_ARMING
  4180.     }
  4181.  
  4182. ends
  4183.  
  4184. state dronegetstate
  4185.     ifrnd 192
  4186.     {
  4187.         ifcansee
  4188.         {
  4189.             ifbulletnear { ai AIDRONEDODGE break }
  4190.             ifmove DRONEBULLVELS
  4191.             {
  4192.                 ifcount 64 ai AIDRONEPULLBACK
  4193.                 else ifnotmoving ifcount 16 ai AIDRONEPULLBACK
  4194.             }
  4195.             else ifcount 32
  4196.             {
  4197.                 ifp phigher move DRONEBULLVELS geth getv
  4198.                 else move DRONEBULLVELS geth
  4199.             }
  4200.         }
  4201.         else ifrnd 1 operate
  4202.     }
  4203. ends
  4204.  
  4205. state dronedodgestate
  4206.     ifai AIDRONEDODGEUP
  4207.     {
  4208.        ifcount 8 ai AIDRONEGETE
  4209.        else ifnotmoving ai AIDRONEGETE
  4210.     }
  4211.     else
  4212.     {
  4213.         ifcount 8 ai AIDRONEGETE
  4214.         else ifnotmoving ai AIDRONEGETE
  4215.     }
  4216. ends
  4217.  
  4218. actor DRONE DRONESTRENGTH
  4219.     state checksquished
  4220.     state checkdronenearplayer
  4221.  
  4222.     ifrnd 2 fall
  4223.     else soundonce DRON_JETSND
  4224.  
  4225.     ifaction 0 ai AIDRONEGETE
  4226.  
  4227. else ifaction ADRONESTATUE 
  4228.     {
  4229.        ifactioncount 10 resetactioncount
  4230.       ifhitweapon state checkdronestatuehit
  4231.     break
  4232.     }
  4233.  
  4234. else ifaction ADRONESTATUEFALL
  4235.     {
  4236.           iffloordistl  24  state breakdronestatue
  4237.           break
  4238.     }
  4239.  
  4240.  
  4241.  
  4242. else ifaction  DRONECRAZY { ai AIDRONECRAZY state checkdronecrazy  }
  4243. else ifai AIDRONESPINUP { state checkdronespinup }
  4244.  
  4245.  
  4246.  
  4247.     else ifai AIDRONEWAIT
  4248.     {
  4249.         ifactioncount 4 ifrnd 16
  4250.             ifcansee { sound DRON_ATTACK1 ifp phigher ai AIDRONEGETUP else ai AIDRONEGETE }
  4251.     }
  4252.     else ifai AIDRONEGETE state dronegetstate
  4253.     else ifai AIDRONEGETUP state dronegetstate
  4254.     else ifai AIDRONEPULLBACK { ifcount 32 ai AIDRONEWAIT }
  4255.     else ifai AIDRONEHIT { ifcount 8 ai AIDRONEWAIT }
  4256.     else ifai AIDRONESHRUNK state droneshrunkstate
  4257.     else ifai AIDRONEDODGE state dronedodgestate
  4258.     else ifai AIDRONEDODGEUP state dronedodgestate
  4259.  
  4260.     ifhitweapon state checkdronehitstate
  4261.  
  4262.     ifrnd 1 soundonce DRON_ROAM
  4263.  
  4264. enda
  4265.  
  4266.  
  4267.  
  4268. action AOCTAWALK        0   3   5   1   15
  4269. action AOCTASTAND       0   1   5   1   15
  4270. action AOCTASCRATCH     0   4   5   1   15
  4271. action AOCTAHIT        30   1   1   1   10
  4272. action AOCTASHOOT      20   1   5   1   10
  4273. action AOCTADYING      30   8   1   1   17
  4274. action AOCTADEAD       38   1   1   1    1
  4275. action AOCTAFROZEN      0   1   5
  4276.  
  4277. action AOCTABRAINSTATUE      0    1    5
  4278. action AOCTABRAINSTATUEFALL 0  1  5
  4279.  
  4280. state checkoctabrainfall
  4281.  
  4282. iffloordistl 8 { fall  } else { fall action AOCTABRAINSTATUEFALL }
  4283.  
  4284. ends
  4285.  
  4286. state breakoctabrainstatue
  4287.     iffloordistl 128 {
  4288.     sound GLASS_BREAKING
  4289.     state shootstatuedebris
  4290.     addkills 1
  4291.     killit
  4292.     break
  4293.     }
  4294. ends
  4295.  
  4296. state checkoctabrainstatuehit
  4297.   ifdead
  4298.     {
  4299.  
  4300.         ifwasweapon FREEZEBLAST { spritepal 0 sound SOMETHINGFROZE spritepal 1 move 0 action AOCTAFROZEN strength 0 break  }
  4301.          else { strength 1 }
  4302.        
  4303.     }
  4304.     else
  4305.     {
  4306.         state shootstatuedebris
  4307.         ifwasweapon SHOTSPARK1 sound  PISTOL_RICOCHET
  4308.        
  4309.     }
  4310. ends
  4311.  
  4312.  
  4313.  
  4314.  
  4315. move OCTAWALKVELS OCTABRAIN_STANDARD_WALKVEL_HORZ OCTABRAIN_STANDARD_WALKVEL_VERT
  4316. move OCTAUPVELS OCTABRAIN_STANDARD_WALKVEL_HORZ OCTABRAIN_STANDARD_FASTVEL_HORZ
  4317. move OCTASTOPPED 0 OCTABRAIN_STANDARD_WALKVEL_VERT
  4318. move OCTAINWATER OCTABRAIN_STANDARD_WALKVEL_HORZ 24
  4319.  
  4320. ai AIOCTAGETENEMY AOCTAWALK OCTAWALKVELS seekplayer
  4321. ai AIOCTASHOOTENEMY AOCTASHOOT OCTASTOPPED faceplayer
  4322. ai AIOCTASCRATCHENEMY AOCTASCRATCH OCTASTOPPED faceplayer
  4323. ai AIOCTAHIT AOCTAHIT OCTASTOPPED faceplayer
  4324. ai AIOCTASHRUNK AOCTAWALK SHRUNKVELS faceplayer
  4325. ai AIOCTADYING AOCTADYING OCTASTOPPED faceplayer
  4326.  
  4327. move OCTACRAZY  OCTA_FAT_CRAZYSPEED   0
  4328. move OCTACRAZYSTOP 0 -20
  4329. action AOCTABRAINCRAZY     0   4   5   1   15
  4330. action AOCTACRAZYSTOPPED 0   1   5
  4331. ai AIOCTABRAINCRAZY AOCTABRAINCRAZY OCTACRAZY spin
  4332. ai AIOCTACRAZYSTOPPED AOCTACRAZYSTOPPED OCTACRAZYSTOP spin
  4333.  
  4334. state checkcrazyoctabrain
  4335.     ifactioncount OCTA_FAT_SPUREXPL {  ifrnd 196 {
  4336.                                    spawn EXPLOSION2 
  4337.                 sound PIPEBOMB_EXPLODE
  4338.                 spawn FIRE 
  4339.                 spawn FECES  
  4340.                 resetactioncount 
  4341.                 } 
  4342.             else 
  4343.             
  4344.                 {
  4345.                      state standard_jibs 
  4346.                      spawn BLOODPOOL  
  4347.                     ai AIOCTACRAZYSTOPPED  
  4348.                 }
  4349.              }
  4350.  
  4351.          ifrnd 10 { spritepal 2 ifrnd 10  sound TURR_PAIN }  else
  4352.          ifrnd 10 { spritepal 1 ifrnd 10 sound OCTA_PAIN  } else
  4353.          ifrnd 10 { spritepal 10 ifrnd 10 sound OCTA_DYING } else
  4354.            ifrnd 10 { spritepal 8   ifrnd 10 sound OCTA_DYING } else
  4355.            ifrnd 10 { spritepal 6  ifrnd 10 sound OCTA_PAIN }  else
  4356.          ifrnd 10 { spritepal 7 ifrnd 10 sound OCTA_ROAM }
  4357.      spawn FRAMEEFFECT1
  4358. ends
  4359.  
  4360.  
  4361.  
  4362. // BLOCKINSERT: SUNOCTABRAIN_STATUEMAKER55 - sstatmk!
  4363.  
  4364.  
  4365. state octagetenemystate
  4366.  
  4367.     ifcansee
  4368.     {
  4369.         ifactioncount 32 { ifrnd 48 ifcanshoottarget { sound OCTA_ATTACK1 ai AIOCTASHOOTENEMY break } }
  4370.         else ifpdistl 1280 ai AIOCTASCRATCHENEMY
  4371.     }
  4372.  
  4373. ends
  4374.  
  4375. state octascratchenemystate
  4376.     ifpdistg 1280 ai AIOCTAGETENEMY
  4377.     else ifcount 32 { resetcount sound OCTA_ATTACK2 palfrom 8 32 addphealth OCTASCRATCHINGPLAYER }
  4378. ends
  4379.  
  4380. state octashootenemystate
  4381.     ifcount 25 { ifcount 27 ai AIOCTAGETENEMY }
  4382.     else ifcount 24 shoot COOLEXPLOSION1
  4383.     else ifactioncount 6 resetactioncount
  4384. ends
  4385.  
  4386.  
  4387.  
  4388. // BLOCKINSERT: SUNOCTABRAIN_MOREGORE- soctgore!
  4389.  
  4390. state checkoctahitstate
  4391.  
  4392. // BLOCKINSERT: SUNOCTABRAIN_MOREGORE_STATECALL - soctgore!
  4393. state extra_monster_gore
  4394.         
  4395.     ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIOCTASHRUNK }
  4396.     else
  4397.     {
  4398.         ifdead
  4399.         {
  4400.     
  4401. ifrnd OCTABRAINCRAZY_FREQ { ai AIOCTABRAINCRAZY break }
  4402.  
  4403.  
  4404.             ifwasweapon FREEZEBLAST
  4405.      { 
  4406.  
  4407.     ifhitspace { sound SOMETHINGFROZE spritepal 7 move 0 action AOCTABRAINSTATUE state checkoctabrainfall strength OCTABRAINSTATUESTRENGTH  break } else        
  4408.         {
  4409.  
  4410.  
  4411.  
  4412.         sound SOMETHINGFROZE 
  4413.         spritepal 1 
  4414.         move 0 
  4415.         action AOCTAFROZEN 
  4416.         strength 0 
  4417.         break 
  4418. }
  4419.  
  4420.     }
  4421.  
  4422.             addkills 1
  4423.             ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  4424.             else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  4425.             else { state rf ai AIOCTADYING }
  4426.             sound OCTA_DYING
  4427.         }
  4428.         else
  4429.         {
  4430.             ifwasweapon RPG
  4431.             {
  4432.                 sound OCTA_DYING
  4433.                 addkills 1
  4434.                 state standard_jibs
  4435.                 killit
  4436.             }
  4437.             sound OCTA_PAIN spawn BLOOD
  4438.             ifrnd 64 ai AIOCTAHIT
  4439.  
  4440.         }
  4441.     }
  4442.     state random_wall_jibs
  4443. ends
  4444.  
  4445. state octashrunkstate
  4446.     ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
  4447.     else ifcount SHRUNKCOUNT sizeto 48 40
  4448.     else state genericshrunkcode
  4449. ends
  4450.  
  4451. state octadyingstate
  4452.     ifactioncount 8 { ifrnd 64 spawn BLOODPOOL move OCTASTOPPED action AOCTADEAD break }
  4453.     else ifactioncount 5 { } else ifactioncount 4 iffloordistl 8 sound THUD
  4454. ends
  4455.  
  4456. actor OCTABRAINSTAYPUT OCTASTRENGTH ai AIOCTAGETENEMY cactor OCTABRAIN enda
  4457.  
  4458. actor OCTABRAIN OCTASTRENGTH fall
  4459.  
  4460.     state checksquished
  4461.  
  4462.     ifai 0 ai AIOCTAGETENEMY
  4463.  
  4464.     else ifai AIOCTABRAINCRAZY { state checkcrazyoctabrain break }
  4465. else ifai AIOCTACRAZYSTOPPED {
  4466.                  sizeto OCTA_FAT_SPINDNSIZE OCTA_FAT_SPINDNSIZE
  4467.                   spawn FRAMEEFFECT1
  4468.                   ifactioncount OCTA_FAT_SPINTIME  { 
  4469.                         spawn EXPLOSION2
  4470.                                 sound RPG_EXPLODE
  4471.                                 hitradius OCTA_FAT_HITRADIUS 15 20 25 30
  4472.                                 killit
  4473.  
  4474.                          } 
  4475.             
  4476.                      break }
  4477.  
  4478.  
  4479.     else ifaction AOCTADEAD
  4480.  
  4481.     {
  4482.  
  4483.  
  4484.         state corpseexplodingstate
  4485.  
  4486.  
  4487.  
  4488.  
  4489.         strength 0
  4490.         ifcount RESPAWNACTORTIME ifrespawn
  4491.             { addkills -1 spawn TRANSPORTERSTAR cstat 257 strength OCTASTRENGTH ai AIOCTAGETENEMY }
  4492.         ifhitweapon ifwasweapon RADIUSEXPLOSION { state standard_jibs killit }
  4493.         break
  4494.     }
  4495.  
  4496. else ifaction AOCTABRAINSTATUE 
  4497.     {
  4498.        ifactioncount 10 resetactioncount
  4499.       ifhitweapon state checkoctabrainstatuehit
  4500.     break
  4501.     }
  4502.  
  4503. else ifaction AOCTABRAINSTATUEFALL
  4504.     {
  4505.           iffloordistl 16  state breakoctabrainstatue
  4506.           break
  4507.     }
  4508.  
  4509.  
  4510.  
  4511.     else ifaction AOCTAFROZEN
  4512.     {
  4513.         ifcount THAWTIME { ai AIOCTAGETENEMY getlastpal }
  4514.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  4515.  
  4516.         ifhitweapon
  4517.         {
  4518.             addkills 1
  4519.             ifwasweapon FREEZEBLAST { strength 0 break }
  4520.  
  4521.             lotsofglass 30
  4522.             ifrnd 84 spawn BLOODPOOL
  4523.             sound GLASS_BREAKING
  4524.             killit
  4525.         }
  4526.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  4527.         break
  4528.     }
  4529.     else
  4530.     {
  4531.         ifrnd 1 soundonce OCTA_ROAM
  4532.  
  4533.         ifai AIOCTAGETENEMY state octagetenemystate
  4534.         else ifai AIOCTAHIT { ifcount 8 ai AIOCTASHOOTENEMY }
  4535.         else ifai AIOCTADYING { state octadyingstate break }
  4536.         else ifai AIOCTASCRATCHENEMY state octascratchenemystate
  4537.         else ifai AIOCTASHOOTENEMY state octashootenemystate
  4538.         else ifai AIOCTASHRUNK state octashrunkstate
  4539.  
  4540.         ifmove OCTAUPVELS { } else ifp phigher move OCTAUPVELS seekplayer
  4541.         else ifmove OCTAINWATER { } else ifinwater move OCTAINWATER seekplayer
  4542.  
  4543.         ifhitweapon state checkoctahitstate
  4544.     }
  4545. enda
  4546.  
  4547. // BLOCKINSERT: PIGCOPEXTRAGOREBLOCK2 - piggore1!
  4548.  
  4549. action APIGWALK         0  4 5 1 20
  4550. action APIGRUN          0  4 5 1 11
  4551. action APIGSHOOT        30 2 5 1 58
  4552. action APIGCOCK         25 1 5 1 16
  4553. action APIGSTAND        30 1 5 1 1
  4554. action APIGDIVE         40 2 5 1 40
  4555. action APIGDIVESHOOT    45 2 5 1 58
  4556. action APIGDYING        55 5 1 1 15
  4557. action APIGHIT          55 1 1 1 10
  4558. action APIGDEAD         60 1 1 1 1
  4559. action APIGFROZEN        0 1 5
  4560.  
  4561. action APIGCOPSTATUE      0    1    5
  4562.  
  4563. state checkpigcopstatuehit
  4564.   ifdead
  4565.     {
  4566.  
  4567.        
  4568.       
  4569.  
  4570.         ifwasweapon SHOTSPARK1 { sound SQUISHED state shootstatuedebris state drop_ammo   addkills 1 killit }
  4571.          else { strength 1 }
  4572.        
  4573.     }
  4574.     else
  4575.     {
  4576.         state shootstatuedebris
  4577.         ifwasweapon SHOTSPARK1 sound  PISTOL_RICOCHET
  4578.        
  4579.     }
  4580. ends
  4581.  
  4582.  
  4583.  
  4584. move PIGWALKVELS PIGCOP_STANDARD_WALKVEL
  4585. move PIGRUNVELS PIGCOP_STANDARD_RUNVEL
  4586. move PIGSTOPPED
  4587.  
  4588. ai AIPIGSEEKENEMY APIGWALK PIGWALKVELS seekplayer
  4589. ai AIPIGSHOOTENEMY APIGSHOOT PIGSTOPPED faceplayer
  4590. ai AIPIGFLEEENEMY APIGWALK PIGWALKVELS fleeenemy
  4591. ai AIPIGSHOOT APIGSHOOT PIGSTOPPED faceplayer
  4592. ai AIPIGDODGE APIGRUN PIGRUNVELS dodgebullet
  4593. ai AIPIGCHARGE APIGRUN PIGRUNVELS seekplayer
  4594. ai AIPIGDIVING APIGDIVE PIGSTOPPED faceplayer
  4595. ai AIPIGDYING APIGDYING PIGSTOPPED faceplayer
  4596. ai AIPIGSHRINK APIGWALK SHRUNKVELS fleeenemy
  4597. ai AIPIGHIT APIGHIT PIGSTOPPED faceplayer
  4598.  
  4599.  
  4600.  
  4601. // PIG COP FATALITY ******START
  4602. move PIGSPINVEL 100 -132
  4603. move PIGSPINVELDN  150 180
  4604. move PIGBACKKNEEKICK -250 0
  4605. action SPINPIG 0 1 5 12
  4606. ai AISPINPIG SPINPIG PIGSPINVEL spin
  4607. ai AISPINPIGDN SPINPIG PIGSPINVELDN spin
  4608. ai AIMOVEPIGBACK SPINPIG PIGBACKKNEEKICK 258 + 1
  4609.  
  4610. state movepigback
  4611.     
  4612.         ifactioncount PIGFAT_MOVEBACK_DUR { state standard_jibs
  4613.         spawn BLOODPOOL
  4614.         shoot BLOODSPLAT1
  4615.         shoot BLOODSPLAT2
  4616.         shoot BLOODSPLAT3
  4617.         shoot BLOODSPLAT4
  4618.         guts JIBS6 10
  4619.         spawn EXPLOSION2
  4620.         hitradius PIGFATAL_HITRADIUS  WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  4621.         state random_explosion_sounds
  4622.         killit
  4623.         break  }
  4624.         ifrnd 8 { state standard_jibs state extra_monster_gore }
  4625. ends
  4626.  
  4627. state explodingspinningpig
  4628.     spawn EXPLOSION2
  4629.     state random_explosion_sounds
  4630.                 iffloordistl 16 spawn FIRE2
  4631.     hitradius PIGFATAL_HITRADIUS  WEAKEST WEAK MEDIUMSTRENGTH TOUGH
  4632.     state standard_jibs
  4633.     state extra_monster_gore
  4634.        killit
  4635. ends
  4636.  
  4637. state spinningpig
  4638.     ifrnd 5
  4639.     {
  4640.         sound PIG_DYING    
  4641.     }
  4642.     ifactioncount PIGCOPFATAL_SPINDURATION_SOLID { cstat 259 }
  4643.     ifactioncount PIGCOPFATAL_SPINDURATION_MAKESOUND { sound PIG_DYING }
  4644.     ifactioncount  PIGCOPFATAL_SPINDURATION_EXPLODING 
  4645.             { 
  4646.                 state explodingspinningpig
  4647.              }
  4648.                 else
  4649.         ifhitweapon {           sound PIG_DYING
  4650.                                ifwasweapon RPG { state explodingspinningpig  }
  4651.                   } 
  4652.     iffloordistl PIGFAT_SPINUPDISTANCE
  4653.         { 
  4654.             ifai AISPINPIGDN iffloordistl 48 
  4655.                 { 
  4656.                      ifactioncount PIGCOPFATAL_SPINDURATION_EXPLODING  state explodingspinningpig
  4657.                 }
  4658.          }
  4659.      else { resetactioncount ai AISPINPIGDN  }
  4660.  
  4661.     
  4662. ends
  4663.  
  4664.  
  4665.  
  4666. // PIG COP FATALITY ******END
  4667.  
  4668.  
  4669.  
  4670.  
  4671. // BLOCKINSERT: SUNPIGCOP_STATUEMAKER55  - sstatmk!
  4672.  
  4673. state pigseekenemystate
  4674.  
  4675.     ifai AIPIGCHARGE
  4676.     {
  4677.         ifcansee ifpdistl 3084
  4678.         {
  4679.             ifnotmoving ai AIPIGSEEKENEMY
  4680.             else ai AIPIGDIVING
  4681.         }
  4682.         break
  4683.     }
  4684.     else iffloordistl 32
  4685.     {
  4686.         ifpdistg 4096 { ifactornotstayput ai AIPIGCHARGE }
  4687.         ifrnd 8 { ifbulletnear ai AIPIGDODGE }
  4688.     }
  4689.  
  4690.     ifrnd 128 ifcansee
  4691.     {
  4692.         ifai AIPIGDODGE { ifcount 32 ai AIPIGCHARGE break }
  4693.         iffloordistl 32
  4694.         {
  4695.             ifpdistl 1024 ifp palive ifcanshoottarget
  4696.                 { ai AIPIGSHOOTENEMY break }
  4697.             ifcount 48 { ifrnd 8 ifp palive ifcanshoottarget { ifrnd 192 ai AIPIGSHOOTENEMY else ai AIPIGDIVING break } }
  4698.         }
  4699.     }
  4700. ends
  4701.  
  4702.  
  4703. state pigshootenemystate
  4704. //    ifcansee
  4705.     {
  4706.         ifcount 12 { } else ifcount 11
  4707.         {
  4708.             ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  4709.             else ai AIPIGSEEKENEMY
  4710.         }
  4711.         ifcount 25 { } else ifcount 24 { action APIGCOCK sound SHOTGUN_COCK }
  4712.         ifcount 48 { } else ifcount 47
  4713.         {
  4714.             ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  4715.             else ai AIPIGSEEKENEMY
  4716.         }
  4717.         ifcount 60 { } else ifcount 59 { action APIGCOCK sound SHOTGUN_COCK }
  4718.         ifcount 72
  4719.         {
  4720.             ifrnd 64 resetcount
  4721.             else
  4722.             {
  4723.                 ifpdistl 768 ai AIPIGFLEEENEMY
  4724.                 else ai AIPIGSEEKENEMY
  4725.             }
  4726.         }
  4727.         ifaction APIGCOCK ifactioncount 2 action APIGSHOOT
  4728.     }
  4729.     else ai AIPIGSEEKENEMY
  4730. ends
  4731.  
  4732. state pigfleeenemystate
  4733.     ifactioncount 8 ai AIPIGSEEKENEMY
  4734.     else ifnotmoving ai AIPIGSEEKENEMY
  4735. ends
  4736.  
  4737. state pigdivestate
  4738.     ifaction APIGDIVESHOOT
  4739.     {
  4740.         ifcansee
  4741.         {
  4742.             ifcount 12 { } else ifcount 11
  4743.             {
  4744.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  4745.                 else ai AIPIGSEEKENEMY
  4746.             }
  4747.             ifcount 25 { } else ifcount 24 { sound SHOTGUN_COCK }
  4748.             ifcount 48 { } else ifcount 47
  4749.             {
  4750.                 ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
  4751.                 else ai AIPIGSEEKENEMY
  4752.             }
  4753.             ifcount 60 { } else ifcount 59
  4754.             {
  4755.                 sound SHOTGUN_COCK
  4756.                 ifgapzl 32 ai AIPIGDIVING
  4757.                 else
  4758.                 {
  4759.                     ifpdistl 4096 ai AIPIGFLEEENEMY
  4760.                     else ai AIPIGSEEKENEMY
  4761.                 }
  4762.             }
  4763.         }
  4764.         else ifgapzl PIGCOP_STANDARD_DIVE_FREQ ai AIPIGDIVING else ai AIPIGSEEKENEMY
  4765.     }
  4766.     else ifactioncount 2 ifp palive { resetcount action APIGDIVESHOOT }
  4767. ends
  4768.  
  4769.  
  4770. // BLOCKINSERT: SUNPIGCOP_MOREGORE - spiggore!
  4771.  
  4772. state checkpighitstate
  4773.     spawn BLOOD
  4774.  
  4775.  
  4776.     // BLOCKINSERT: PIGCOPEXTRAGOREBLOCK1 - piggore1!
  4777.     // BLOCKINSERT: SUNPIGCOP_MOREGORE_STATECALL - spiggore!
  4778.  
  4779.     state extra_monster_gore
  4780.     
  4781.     ifdead
  4782.     {
  4783.         state random_wall_jibs
  4784.         ifrnd 16 spawn SHIELD else state drop_shotgun
  4785.        
  4786.         ifwasweapon FREEZEBLAST 
  4787.     {
  4788.  
  4789.     ifhitspace { sound SOMETHINGFROZE spritepal 7 move 0 action APIGCOPSTATUE strength PIGCOPSTATUESTRENGTH break } else        
  4790.         {
  4791.  
  4792.  
  4793.  
  4794.         sound SOMETHINGFROZE 
  4795.         spritepal 1 
  4796.         move 0 
  4797.         action APIGFROZEN 
  4798.         strength 0 
  4799.         break 
  4800. }
  4801.                
  4802.     }
  4803.  
  4804.         addkills 1
  4805.         ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
  4806.         else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
  4807.  
  4808.  
  4809.  
  4810. ifrnd PIGCOP_PERFORMSFATALITY_FREQ 
  4811.     {  
  4812.       ifrnd 128 { ai AIMOVEPIGBACK action SPINPIG } else { ai AISPINPIG action SPINPIG }
  4813.     }
  4814.      else 
  4815.     {  ai AIPIGDYING sound PIG_DYING }
  4816.  
  4817.  
  4818.  
  4819.  
  4820.     }
  4821.     else
  4822.     {
  4823.         sound PIG_PAIN
  4824.         state random_wall_jibs
  4825.  
  4826.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIPIGSHRINK }
  4827.         else ifrnd 64 ai AIPIGHIT
  4828.         else ifrnd 64 ai AIPIGSHOOTENEMY
  4829.         else ifrnd 64 { ai AIPIGDIVING action APIGDIVESHOOT }
  4830.     }
  4831. ends
  4832.  
  4833. state pigshrinkstate
  4834.     ifcount SHRUNKDONECOUNT ai AIPIGSEEKENEMY
  4835.     else ifcount SHRUNKCOUNT sizeto 48 40
  4836.     else state genericshrunkcode
  4837. ends
  4838.  
  4839. state pigdyingstate
  4840.     ifactioncount 5 { ifrnd 64 spawn BLOODPOOL state rf iffloordistl 8 sound THUD action APIGDEAD move PIGSTOPPED break }
  4841. ends
  4842.  
  4843.  
  4844.  
  4845. actor PIGCOPDIVE PIGCOPSTRENGTH ai AIPIGDIVING action APIGDIVESHOOT cactor PIGCOP enda
  4846. actor PIGCOPSTAYPUT PIGCOPSTRENGTH ai AIPIGSEEKENEMY cactor PIGCOP enda
  4847. actor PIGCOP PIGCOPSTRENGTH APIGSTAND fall
  4848.     state checksquished
  4849.     ifaction APIGSTAND ai AIPIGSEEKENEMY
  4850.     else ifaction APIGDEAD
  4851.     {
  4852.  
  4853.  
  4854.         state corpseexplodingstate
  4855.  
  4856.  
  4857.  
  4858.          ifrespawn ifcount RESPAWNACTORTIME
  4859.             { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH ai AIPIGSEEKENEMY }
  4860.         else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  4861.     }
  4862.     else ifaction APIGFROZEN
  4863.     {
  4864.         ifcount THAWTIME { ai AIPIGSEEKENEMY getlastpal }
  4865.         else ifcount FROZENDRIPTIME ifrnd 8 spawn WATERDRIP
  4866.  
  4867.         ifhitweapon
  4868.         {
  4869.             ifwasweapon FREEZEBLAST { strength 0 break }
  4870.             addkills 1
  4871.  
  4872.             lotsofglass 30
  4873.             ifrnd 84 spawn BLOODPOOL
  4874.             sound GLASS_BREAKING
  4875.             killit
  4876.         }
  4877.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  4878.         break
  4879.     }
  4880.  
  4881. else ifaction APIGCOPSTATUE 
  4882.     {
  4883.          ifactioncount 10 resetactioncount
  4884.       ifhitweapon state checkpigcopstatuehit
  4885.     break
  4886.     }
  4887.  
  4888.  
  4889.  
  4890.     else ifai AIPIGDYING state pigdyingstate
  4891.     else ifai AIPIGHIT { ifactioncount 3 ai AIPIGSEEKENEMY }
  4892.     else ifai AIPIGSHRINK state pigshrinkstate
  4893.     else
  4894.     {
  4895.         ifai AIPIGSEEKENEMY state pigseekenemystate
  4896.         else ifai AIPIGDODGE state pigseekenemystate
  4897.         else ifai AIPIGSHOOTENEMY state pigshootenemystate
  4898.         else ifai AIPIGFLEEENEMY state pigfleeenemystate
  4899.         else ifai AIPIGDIVING state pigdivestate
  4900.         else ifai AIPIGCHARGE state pigseekenemystate
  4901.  
  4902. else ifai AISPINPIG  state spinningpig
  4903. else ifai AISPINPIGDN state spinningpig
  4904. else ifai AIMOVEPIGBACK { spawn FRAMEEFFECT1 state movepigback }
  4905.  
  4906.  
  4907.  
  4908.  
  4909.         ifhitweapon state checkpighitstate
  4910.         ifrnd 1
  4911.         {
  4912.             ifrnd 32 soundonce PIG_ROAM
  4913.             else ifrnd 64 soundonce PIG_ROAM2
  4914.             else soundonce PIG_ROAM3
  4915.         }
  4916.     }
  4917. enda
  4918.  
  4919.  
  4920.  
  4921.  
  4922. action ABOSS1WALK                0  4  5  1  12
  4923. action ABOSS1FROZEN              30 1  5
  4924. action ABOSS1RUN                 0  6  5  1  5
  4925. action ABOSS1SHOOT               30 2  5  1  4
  4926. action ABOSS1LOB                 40 2  5  1  35
  4927. action ABOSS1DYING              50 5  1  1  50
  4928. action BOSS1FLINTCH             50 1  1  1  1
  4929. action ABOSS1DEAD               55
  4930.  
  4931. move PALBOSS1SHRUNKRUNVELS BOSS1_STANDARD_PALSHRUNKVEL
  4932. move PALBOSS1RUNVELS BOSS1_STANDARD_PALRUNVEL
  4933. move BOSS1WALKVELS BOSS1_STANDARD_WALKVEL
  4934. move BOSS1RUNVELS BOSS1_STANDARD_RUNVEL
  4935. move BOSS1STOPPED
  4936.  
  4937. ai AIBOSS1SEEKENEMY ABOSS1WALK BOSS1WALKVELS seekplayer
  4938. ai AIBOSS1RUNENEMY ABOSS1RUN BOSS1RUNVELS faceplayer
  4939. ai AIBOSS1SHOOTENEMY ABOSS1SHOOT BOSS1STOPPED faceplayer
  4940. ai AIBOSS1LOBBED ABOSS1LOB BOSS1STOPPED faceplayer // faceplayersmart
  4941. ai AIBOSS1DYING ABOSS1DYING BOSS1STOPPED faceplayer
  4942. ai AIBOSS1PALSHRINK ABOSS1WALK PALBOSS1SHRUNKRUNVELS furthestdir
  4943.  
  4944. state boss1palshrunkstate
  4945.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  4946.     else ifcount SHRUNKCOUNT sizeto 40 40
  4947.     else state genericshrunkcode
  4948. ends
  4949.  
  4950. state checkboss1seekstate
  4951.     ai AIBOSS1SEEKENEMY
  4952.     ifspritepal 0 { } else     // a fake way of doing a ifspritepal NOT.
  4953.         move PALBOSS1RUNVELS seekplayer
  4954. ends
  4955.  
  4956. state boss1runenemystate
  4957.     ifpdistl 2048 { ifp palive ai AIBOSS1SHOOTENEMY break }
  4958.     else ifcansee { ifactioncount 6 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS1SEEKENEMY } }
  4959.     else ai AIBOSS1SEEKENEMY
  4960. ends
  4961.  
  4962. state boss1seekenemystate
  4963.     ifrnd 2 soundonce BOS1_ROAM
  4964.     else ifactioncount 6 { resetactioncount sound BOS1_WALK }
  4965.  
  4966.     ifpdistl 2548 ifp palive { ai AIBOSS1SHOOTENEMY break }
  4967.  
  4968.     ifcansee ifcount 32
  4969.     {
  4970.         ifrnd 32 { ifp palive ifcanshoottarget ai AIBOSS1SHOOTENEMY }
  4971.         else ifpdistg 2548 ifrnd 192
  4972.             ifcanshoottarget
  4973.             {
  4974.                 ifrnd 64
  4975.                 {
  4976.                     ai AIBOSS1RUNENEMY
  4977.                     ifspritepal 0 { } else move PALBOSS1RUNVELS seekplayer
  4978.                 }
  4979.                 else ai AIBOSS1LOBBED
  4980.             }
  4981.     }
  4982.  
  4983. ends
  4984.  
  4985. state boss1dyingstate
  4986.   ifaction ABOSS1DEAD
  4987.   {
  4988.       ifspritepal 0 break
  4989.       ifrespawn ifcount RESPAWNACTORTIME
  4990.           { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss1seekstate }
  4991.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  4992.   }
  4993.   ifactioncount 5 { iffloordistl 8 sound THUD action ABOSS1DEAD cstat 0 ifspritepal 0 endofgame 52 }
  4994. ends
  4995.  
  4996. state boss1lobbedstate
  4997.     ifcansee
  4998.     {
  4999.         ifactioncount 2
  5000.         {
  5001.             resetactioncount
  5002.             sound BOS1_ATTACK2
  5003.             shoot MORTER
  5004.         }
  5005.         else ifcount 64 ifrnd 16 state checkboss1seekstate
  5006.     }
  5007.     else state checkboss1seekstate
  5008. ends
  5009.  
  5010. state boss1shootenemy
  5011.     ifcount 72 state checkboss1seekstate
  5012.     else ifaction ABOSS1SHOOT ifactioncount 2
  5013.     {
  5014.         sound BOS1_ATTACK1
  5015.         shoot SHOTSPARK1
  5016.         shoot SHOTSPARK1
  5017.         shoot SHOTSPARK1
  5018.         shoot SHOTSPARK1
  5019.         shoot SHOTSPARK1
  5020.         shoot SHOTSPARK1
  5021.         resetactioncount
  5022.     }
  5023. ends
  5024.  
  5025.  
  5026. // BLOCKINSERT: SUNBOSS1_MOREGORE - sb1gore!
  5027.  
  5028.  
  5029. state checkboss1hitstate
  5030.     ifrnd 2 spawn BLOODPOOL
  5031.  
  5032. // BLOCKINSERT: SUNBOSS1_MOREGORE_STATECALL - sb1gore!
  5033.  
  5034. state extra_monster_gore
  5035.  
  5036.     ifdead
  5037.     {
  5038.         ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
  5039.         else
  5040.         {
  5041.             ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
  5042.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS1FROZEN strength 0 break }
  5043.         }
  5044.  
  5045.         sound BOS1_DYING
  5046.  
  5047.         addkills 1
  5048.         ai AIBOSS1DYING
  5049.     }
  5050.     else
  5051.     {
  5052.         ifrnd 32 { action BOSS1FLINTCH move 0 }
  5053.  
  5054.         ifspritepal 0 { }
  5055.         else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS1PALSHRINK break }
  5056.  
  5057.         soundonce BOS1_PAIN
  5058.  
  5059.         debris SCRAP1 1
  5060.         guts JIBS6 1
  5061.     }
  5062. ends
  5063.  
  5064. state boss1code
  5065.  
  5066.     ifaction ABOSS1FROZEN
  5067.     {
  5068.         ifcount THAWTIME { ai AIBOSS1SEEKENEMY spritepal 21 }
  5069.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  5070.  
  5071.         ifhitweapon
  5072.         {
  5073.             ifwasweapon FREEZEBLAST { strength 0 break }
  5074.             addkills 1
  5075.             lotsofglass 30
  5076.  
  5077.             ifrnd 84 spawn BLOODPOOL
  5078.             sound GLASS_BREAKING
  5079.             killit
  5080.         }
  5081.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  5082.         break
  5083.     }
  5084.     ifai 0 { ifspritepal 0 ai AIBOSS1RUNENEMY else { strength BOSS1PALSTRENGTH ai AIBOSS1SHOOTENEMY } }
  5085.     else ifaction BOSS1FLINTCH { ifactioncount 3 ai AIBOSS1SHOOTENEMY }
  5086.     else ifai AIBOSS1SEEKENEMY state boss1seekenemystate
  5087.     else ifai AIBOSS1RUNENEMY state boss1runenemystate
  5088.     else ifai AIBOSS1SHOOTENEMY state boss1shootenemy
  5089.     else ifai AIBOSS1LOBBED state boss1lobbedstate
  5090.     else ifai AIBOSS1PALSHRINK state boss1palshrunkstate
  5091.  
  5092.     ifai AIBOSS1DYING state boss1dyingstate
  5093.     else
  5094.     {
  5095.         ifhitweapon state checkboss1hitstate
  5096.         else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth BOSS1_STANDARD_HEALTHDAM palfrom 63 63 }
  5097.     }
  5098. ends
  5099.  
  5100.  
  5101.  
  5102. actor BOSS1STAYPUT BOSS1STRENGTH cactor BOSS1 enda
  5103. actor BOSS1 BOSS1STRENGTH fall state boss1code enda
  5104.  
  5105.  
  5106. action ABOSS2WALK                0  4  5  1  30
  5107. action ABOSS2FROZEN              0  1  5
  5108. action ABOSS2RUN                 0  4  5  1  15
  5109. action ABOSS2SHOOT               20 2  5  1  15
  5110. action ABOSS2LOB                 30 2  5  1  105
  5111. action ABOSS2DYING              40 8  1  1  35
  5112. action BOSS2FLINTCH             40 1  1  1  1
  5113. action ABOSS2DEAD               48
  5114.  
  5115. move PALBOSS2SHRUNKRUNVELS BOSS2_STANDARD_PALSHRUNKVEL
  5116. move PALBOSS2RUNVELS BOSS2_STANDARD_PALRUNVEL
  5117. move BOSS2WALKVELS BOSS2_STANDARD_WALKVEL
  5118. move BOSS2RUNVELS BOSS2_STANDARD_RUNVEL
  5119. move BOSS2STOPPED
  5120.  
  5121. ai AIBOSS2SEEKENEMY ABOSS2WALK BOSS2WALKVELS seekplayer
  5122. ai AIBOSS2RUNENEMY ABOSS2RUN BOSS2RUNVELS faceplayer
  5123. ai AIBOSS2SHOOTENEMY ABOSS2SHOOT BOSS2STOPPED faceplayer
  5124. ai AIBOSS2LOBBED ABOSS2LOB BOSS2STOPPED faceplayer
  5125. ai AIBOSS2DYING ABOSS2DYING BOSS2STOPPED faceplayer
  5126. ai AIBOSS2PALSHRINK ABOSS2WALK PALBOSS2SHRUNKRUNVELS furthestdir
  5127.  
  5128. state boss2palshrunkstate
  5129.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  5130.     else ifcount SHRUNKCOUNT sizeto 40 40
  5131.     else state genericshrunkcode
  5132. ends
  5133.  
  5134. state checkboss2seekstate
  5135.     ai AIBOSS2SEEKENEMY
  5136.     ifspritepal 0 { } else     // a fake way of doing a ifspritepal NOT.
  5137.         move PALBOSS2RUNVELS seekplayer
  5138. ends
  5139.  
  5140. state boss2runenemystate
  5141.     ifcansee
  5142.     {
  5143.         ifactioncount 3 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS2SEEKENEMY }
  5144.         ifcount 48 ifrnd 2 { ifp palive { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY } break }
  5145.     }
  5146.     else ai AIBOSS2SEEKENEMY
  5147. ends
  5148.  
  5149. state boss2seekenemystate
  5150.     ifrnd 2 soundonce BOS2_ROAM
  5151.     else ifactioncount 3 { resetactioncount sound BOS1_WALK }
  5152.  
  5153.     ifcansee ifcount 32 ifp palive ifrnd 48 ifcanshoottarget
  5154.     {
  5155.         ifrnd 64 ifpdistg 4096
  5156.         {
  5157.             ai AIBOSS2RUNENEMY
  5158.             ifspritepal 0 { }
  5159.             else move PALBOSS2RUNVELS seekplayer
  5160.             break
  5161.         }
  5162.  
  5163.         ifpdistl 10240 { ifrnd 128 { sound BOS2_ATTACK ai AIBOSS2LOBBED } }
  5164.         else { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY }
  5165.     }
  5166. ends
  5167.  
  5168. state boss2dyingstate
  5169.   ifaction ABOSS2DEAD
  5170.   {
  5171.       ifspritepal 0 break
  5172.       ifrespawn ifcount RESPAWNACTORTIME
  5173.           { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss2seekstate }
  5174.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  5175.   }
  5176.   ifactioncount 8 { iffloordistl 8 sound THUD action ABOSS2DEAD cstat 0 ifspritepal 0 endofgame 52 }
  5177. ends
  5178.  
  5179. state boss2lobbedstate
  5180.     ifcansee
  5181.     {
  5182.         ifactioncount 2 resetactioncount
  5183.         else ifactioncount 1 { ifrnd 128 shoot COOLEXPLOSION1 }
  5184.         else ifcount 64 ifrnd 16 state checkboss2seekstate
  5185.     }
  5186.     else state checkboss2seekstate
  5187. ends
  5188.  
  5189. state boss2shootenemy
  5190.     ifcount 72 state checkboss2seekstate
  5191.     else ifaction ABOSS2SHOOT ifactioncount 2
  5192.     {
  5193.         shoot RPG
  5194.         resetactioncount
  5195.     }
  5196. ends
  5197.  
  5198. // BLOCKINSERT: SUNBOSS2_MOREGORE - sb2gore!
  5199.  
  5200.  
  5201. state checkboss2hitstate
  5202.  
  5203. // BLOCKINSERT: SUNBOSS2_MOREGORE_STATECALL - sb2gore!
  5204.  
  5205.     state extra_monster_gore
  5206.     ifrnd 2 spawn BLOODPOOL
  5207.     ifdead
  5208.     {
  5209.         ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
  5210.         else
  5211.         {
  5212.             ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
  5213.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS2FROZEN strength 0 break }
  5214.         }
  5215.  
  5216.         sound BOS2_DYING
  5217.  
  5218.         addkills 1
  5219.  
  5220.         ai AIBOSS2DYING
  5221.     }
  5222.     else
  5223.     {
  5224.         ifrnd 144
  5225.         {
  5226.             ifrnd 32 { action BOSS2FLINTCH move 0 }
  5227.             else { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY }
  5228.         }
  5229.  
  5230.         ifspritepal 0 { }
  5231.         else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS2PALSHRINK break }
  5232.  
  5233.         soundonce BOS2_PAIN
  5234.  
  5235.         debris SCRAP1 1
  5236.         guts JIBS6 1
  5237.     }
  5238. ends
  5239.  
  5240.  
  5241.  
  5242.  
  5243.  
  5244.  
  5245. state boss2code
  5246.  
  5247.  
  5248.  
  5249.  
  5250.     ifaction ABOSS2FROZEN
  5251.     {
  5252.         ifcount THAWTIME { ai AIBOSS2SEEKENEMY spritepal 21 }
  5253.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  5254.  
  5255.         ifhitweapon
  5256.         {
  5257.             ifwasweapon FREEZEBLAST { strength 0 break }
  5258.             addkills 1
  5259.  
  5260.             lotsofglass 30
  5261.             sound GLASS_BREAKING
  5262.             ifrnd 84 spawn BLOODPOOL
  5263.             killit
  5264.         }
  5265.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  5266.         break
  5267.     }
  5268.     ifai 0 { ifspritepal 0 ai AIBOSS2RUNENEMY else { strength BOSS2PALSTRENGTH { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY } } }
  5269.     else ifaction BOSS2FLINTCH { ifactioncount 3 ai AIBOSS2SEEKENEMY }
  5270.     else ifai AIBOSS2SEEKENEMY state boss2seekenemystate
  5271.     else ifai AIBOSS2RUNENEMY state boss2runenemystate
  5272.     else ifai AIBOSS2SHOOTENEMY state boss2shootenemy
  5273.     else ifai AIBOSS2LOBBED state boss2lobbedstate
  5274.     else ifai AIBOSS2PALSHRINK state boss2palshrunkstate
  5275.  
  5276.     ifai AIBOSS2DYING state boss2dyingstate
  5277.     else
  5278.     {
  5279.         ifhitweapon state checkboss2hitstate
  5280.         else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth BOSS1_STANDARD_HEALTHDAM palfrom 63 63 }
  5281.     }
  5282.  
  5283.  
  5284. ends
  5285.  
  5286. actor BOSS2 BOSS2STRENGTH fall state boss2code enda
  5287.  
  5288.  
  5289. action ABOSS3WALK                0  4  5  1  30
  5290. action ABOSS3FROZEN              0  1  5
  5291. action ABOSS3RUN                 0  4  5  1  15
  5292. action ABOSS3LOB                20 4  5  1  50
  5293. action ABOSS3LOBBING            30 2  5  1  15
  5294. action ABOSS3DYING              40 8  1  1  20
  5295. action BOSS3FLINTCH             40 1  1  1  1
  5296. action ABOSS3DEAD               48
  5297.  
  5298. move PALBOSS3SHRUNKRUNVELS BOSS3_STANDARD_PALSHRUNKVEL
  5299. move PALBOSS3RUNVELS BOSS3_STANDARD_PALRUNVEL
  5300. move BOSS3WALKVELS BOSS3_STANDARD_WALKVEL
  5301. move BOSS3RUNVELS BOSS3_STANDARD_RUNVEL
  5302. move BOSS3STOPPED
  5303.  
  5304. ai AIBOSS3SEEKENEMY ABOSS3WALK BOSS3WALKVELS seekplayer
  5305. ai AIBOSS3RUNENEMY ABOSS3RUN BOSS3RUNVELS faceplayerslow
  5306. ai AIBOSS3LOBENEMY ABOSS3LOB BOSS3STOPPED faceplayer
  5307. ai AIBOSS3DYING ABOSS3DYING BOSS3STOPPED faceplayer
  5308. ai AIBOSS3PALSHRINK ABOSS3WALK PALBOSS3SHRUNKRUNVELS faceplayer
  5309.  
  5310. state boss3palshrunkstate
  5311.     ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
  5312.     else ifcount SHRUNKCOUNT sizeto 40 40
  5313.     else state genericshrunkcode
  5314. ends
  5315.  
  5316. state checkboss3seekstate
  5317.     ai AIBOSS3SEEKENEMY
  5318.     ifspritepal 0 { } else     // a fake way of doing a ifspritepal NOT.
  5319.         move PALBOSS3RUNVELS seekplayer
  5320. ends
  5321.  
  5322. state boss3runenemystate
  5323.     ifcansee { ifactioncount 3 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS3SEEKENEMY } }
  5324.     else ai AIBOSS3SEEKENEMY
  5325. ends
  5326.  
  5327. state boss3seekenemystate
  5328.     ifrnd 2 soundonce BOS3_ROAM
  5329.     else ifactioncount 3 { resetactioncount sound BOS1_WALK }
  5330.  
  5331.     ifcansee ifcount 32 ifrnd 48 ifcanshoottarget
  5332.     {
  5333.         ifrnd 64
  5334.             ifpdistg 4096
  5335.             {
  5336.                 ai AIBOSS3RUNENEMY
  5337.                 ifspritepal 0 break
  5338.                 move PALBOSS3RUNVELS seekplayer
  5339.                 break
  5340.             }
  5341.  
  5342.         ifp palive
  5343.             ai AIBOSS3LOBENEMY
  5344.     }
  5345. ends
  5346.  
  5347. state boss3dyingstate
  5348.   ifaction ABOSS3DEAD
  5349.   {
  5350.       ifspritepal 0 break
  5351.       ifrespawn ifcount RESPAWNACTORTIME
  5352.           { spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss3seekstate }
  5353.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  5354.   }
  5355.   ifactioncount 8 { iffloordistl 8 sound THUD action ABOSS3DEAD cstat 0 ifspritepal 0 endofgame 52 }
  5356. ends
  5357.  
  5358. state boss3lobbedstate
  5359.     ifcansee
  5360.     {
  5361.         ifaction ABOSS3LOBBING
  5362.             ifactioncount 2
  5363.         {
  5364.             shoot RPG
  5365.             resetactioncount
  5366.             ifrnd 8 ai AIBOSS3SEEKENEMY
  5367.         }
  5368.  
  5369.         ifactioncount 3 { action ABOSS3LOBBING resetcount }
  5370.     }
  5371.     else state checkboss3seekstate
  5372. ends
  5373.  
  5374.  
  5375. // BLOCKINSERT: SUNBOSS3_MOREGORE - sb3gore!
  5376.  
  5377.  
  5378. state checkboss3hitstate
  5379.  
  5380. // BLOCKINSERT: SUNBOSS3_MOREGORE_STATECALL- sb3gore!
  5381.  
  5382.     state extra_monster_gore
  5383.     ifrnd 2 spawn BLOODPOOL
  5384.     ifdead
  5385.     {
  5386.         ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
  5387.         else
  5388.         {
  5389.             ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
  5390.             ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS3FROZEN strength 0 break }
  5391.         }
  5392.  
  5393.         addkills 1
  5394.         ai AIBOSS3DYING
  5395.  
  5396.         sound BOS3_DYING
  5397.         sound JIBBED_ACTOR9
  5398.  
  5399.     }
  5400.     else
  5401.     {
  5402.         ifrnd 32 { action BOSS3FLINTCH move 0 }
  5403.  
  5404.         ifspritepal 0 { }
  5405.         else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS3PALSHRINK break }
  5406.  
  5407.         soundonce BOS3_PAIN
  5408.  
  5409.         debris SCRAP1 1
  5410.         guts JIBS6 1
  5411.     }
  5412. ends
  5413.  
  5414. state boss3code
  5415.  
  5416.     ifaction ABOSS3FROZEN
  5417.     {
  5418.         ifhitweapon
  5419.         {
  5420.             ifwasweapon FREEZEBLAST { strength 0 break }
  5421.  
  5422.             addkills 1
  5423.             lotsofglass 30
  5424.  
  5425.             ifrnd 84 spawn BLOODPOOL
  5426.             sound GLASS_BREAKING
  5427.             killit
  5428.         }
  5429.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  5430.         break
  5431.     }
  5432.     ifai 0 { ifspritepal 0 ai AIBOSS3RUNENEMY else { strength BOSS3PALSTRENGTH ai AIBOSS3LOBENEMY } }
  5433.     else ifaction BOSS3FLINTCH { ifactioncount 3 ai AIBOSS3SEEKENEMY }
  5434.     else ifai AIBOSS3SEEKENEMY state boss3seekenemystate
  5435.     else ifai AIBOSS3RUNENEMY state boss3runenemystate
  5436.     else ifai AIBOSS3LOBENEMY state boss3lobbedstate
  5437.     else ifai AIBOSS3PALSHRINK state boss3palshrunkstate
  5438.  
  5439.     ifai AIBOSS3DYING state boss3dyingstate
  5440.     else
  5441.     {
  5442.         ifhitweapon state checkboss3hitstate
  5443.         else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth -1000 palfrom 63 63 }
  5444.     }
  5445. ends
  5446.  
  5447. actor BOSS3 BOSS3STRENGTH fall state boss3code enda
  5448.  
  5449.  
  5450. action ACOMMBREETH  0  3  5  1  40
  5451. action ACOMMFROZEN  0  1  5
  5452. action ACOMMSPIN   -5  1  5  1  12
  5453. action ACOMMGET     0  3  5  1  30
  5454. action ACOMMSHOOT  20  1  5   1 35
  5455. action ACOMMABOUTTOSHOOT 20 1 5 1 30
  5456. action ACOMMDYING  30  8  1  1  12
  5457. action ACOMMDEAD   38  1  1  1  1
  5458.  
  5459.  
  5460. move COMMGETUPVELS 128 -64
  5461. move COMMGETVELS ASSCOM_STANDARD_GETVEL 64
  5462. move COMMSLOW ASSCOM_STANDARD_SLOWVEL 24
  5463. move COMMSTOPPED
  5464.  
  5465. ai AICOMMWAIT ACOMMBREETH COMMSTOPPED faceplayerslow
  5466. ai AICOMMGET ACOMMGET COMMGETVELS seekplayer
  5467. ai AICOMMSHOOT ACOMMSHOOT COMMSTOPPED faceplayerslow
  5468. ai AICOMMABOUTTOSHOOT ACOMMABOUTTOSHOOT COMMSTOPPED faceplayerslow
  5469. ai AICOMMSPIN ACOMMSPIN COMMGETVELS spin
  5470. ai AICOMMDYING ACOMMDYING COMMSTOPPED faceplayer
  5471. ai AICOMMSHRUNK ACOMMGET COMMSLOW furthestdir
  5472.  
  5473.  
  5474. // BLOCKINSERT: SUNASSCOMM_MOREGORE - sascogore!
  5475.  
  5476. action AASSCOMMSTATUE      0    1    5
  5477. action AASSCOMMSTATUEFALL 0 1 5
  5478.  
  5479. state checkasscommfall
  5480.  
  5481. iffloordistl 8 { fall  } else { fall action AASSCOMMSTATUEFALL }
  5482.  
  5483. ends
  5484.  
  5485.  
  5486. state breakasscommstatue
  5487.     iffloordistl 128 {
  5488.     sound GLASS_BREAKING
  5489.     addkills 1
  5490.     state shootstatuedebris
  5491.     killit
  5492.     break
  5493.     }
  5494. ends
  5495.  
  5496. state checkasscommstatuehit
  5497.   ifdead
  5498.     {
  5499.  
  5500.  
  5501.         ifwasweapon RPG { sound SQUISHED state shootstatuedebris killit }
  5502.         else ifwasweapon RADIUSEXPLOSION {  sound SQUISHED state shootstatuedebris  addkills 1 state drop_ammo  killit } else { strength 1 }
  5503.        
  5504.     }
  5505.     else
  5506.     {
  5507.         debris SCRAP1 20
  5508.         ifwasweapon SHOTSPARK1 sound  PISTOL_RICOCHET
  5509.        
  5510.     }
  5511. ends
  5512.  
  5513.  
  5514. state checkcommhitstate
  5515.  
  5516.  
  5517.  
  5518.     ifhitweapon
  5519.     {
  5520.  
  5521.         // BLOCKINSERT: SUNASSCOMM_MOREGORE_STATECALL - sascogore!
  5522.       state extra_monster_gore 
  5523.  
  5524.         guts JIBS6 2
  5525.  
  5526.         ifdead
  5527.         {
  5528.  
  5529.  
  5530.             ifwasweapon FREEZEBLAST { 
  5531.  
  5532.         ifhitspace { sound SOMETHINGFROZE spritepal 7 move 0 action AASSCOMMSTATUE state checkasscommfall strength ASSCOMMSTATUESTRENGTH fall  break } else        
  5533.         {
  5534.  
  5535.  
  5536.  
  5537.         sound SOMETHINGFROZE spritepal 1 move 0 action ACOMMFROZEN strength 0 break 
  5538.  
  5539.     }
  5540.  
  5541.  
  5542.         }
  5543.             addkills 1
  5544.  
  5545.             ifwasweapon RADIUSEXPLOSION { spawn BLOODPOOL sound SQUISHED state standard_jibs state delete_enemy }
  5546.             else ifwasweapon RPG { sound SQUISHED spawn BLOODPOOL state standard_jibs state delete_enemy }
  5547.  
  5548.             sound COMM_DYING
  5549.             ai AICOMMDYING
  5550.         }
  5551.         else
  5552.         {
  5553.             soundonce COMM_PAIN
  5554.             ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AICOMMSHRUNK }
  5555.             else ifrnd 24 ai AICOMMABOUTTOSHOOT
  5556.         }
  5557.     }
  5558. ends
  5559.  
  5560. actor COMMANDERSTAYPUT COMMANDERSTRENGTH cactor COMMANDER ai AICOMMABOUTTOSHOOT enda
  5561. actor COMMANDER COMMANDERSTRENGTH
  5562.  
  5563.     state checksquished
  5564.  
  5565. ifaction ACOMMDEAD {
  5566.  
  5567.      state corpseexplodingstate
  5568.  
  5569.  
  5570.     ifpdistl TOXICCORPSE_SMELLDIST 
  5571.     {
  5572.         ifrnd SUNTOXICCORSE_TOXICITY_FREQ 
  5573.         {
  5574.             ifrnd SUNTOXICCORSE_TOXICITY_SOUND_SMELLS
  5575.             {
  5576.             ifrnd 64 soundonce DUKE_KILLED3
  5577.             else ifrnd 64 soundonce DUKE_GASP 
  5578.             else ifrnd 64 soundonce DUKE_SEARCH
  5579.             sound DUKE_LONGTERM_PAIN
  5580.             }
  5581.             addphealth SUNTOXICCORSE_TOXICITY_STRENGTH
  5582.             }
  5583.          else
  5584.          ifrnd  SUNTOXICCORSE_TOXICITY_FREQ_RESS { ifpinventory GET_FIRSTAID 150000 
  5585.             { 
  5586.             ifrnd 32 sound DUKE_KILLED1 else
  5587.             ifrnd 32 sound DUKE_HIT_STRIPPER1 else
  5588.             ifrnd 32 sound JIBBED_ACTOR4
  5589.             addinventory GET_FIRSTAID -20000
  5590.              spawn TRANSPORTERSTAR cstat 257 strength COMMANDERSTRENGTH  ai AICOMMGET
  5591.             }
  5592.         }
  5593.     }
  5594.  
  5595.  
  5596.  
  5597.  
  5598. else ifaction AASSCOMMSTATUE 
  5599.     {
  5600.                 ifactioncount 10 resetactioncount
  5601.       ifhitweapon state checkasscommstatuehit
  5602.     break
  5603.     }
  5604. else ifaction ATROOPSTATUEFALL
  5605.     {
  5606.           iffloordistl 16  state breakasscommstatue
  5607.           break
  5608.     }
  5609.  
  5610.  
  5611.     ifaction ACOMMFROZEN
  5612.     {
  5613.         fall
  5614.  
  5615.         ifcount THAWTIME { getlastpal ai AICOMMWAIT }
  5616.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  5617.  
  5618.         ifhitweapon
  5619.         {
  5620.             ifwasweapon FREEZEBLAST { strength 0 break }
  5621.             addkills 1
  5622.  
  5623.             ifrnd 84 spawn BLOODPOOL
  5624.             lotsofglass 30
  5625.             sound GLASS_BREAKING
  5626.             killit
  5627.         }
  5628.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  5629.         break
  5630.     }
  5631.     ifai 0 ai AICOMMSHOOT
  5632.     else ifai AICOMMWAIT { ifcount 20 { ifcansee { ifcanshoottarget { ifrnd 96 ai AICOMMGET else ai AICOMMABOUTTOSHOOT } } else ai AICOMMGET } }
  5633.     else ifai AICOMMABOUTTOSHOOT
  5634.     {
  5635.         ifactioncount 2 { ifcansee ai AICOMMSHOOT else { ai AICOMMGET break } }
  5636.         soundonce COMM_ATTACK
  5637.     }
  5638.     else ifai AICOMMSHOOT
  5639.     {
  5640.         ifcanshoottarget
  5641.         {
  5642.             ifcount 24 ifrnd 16 ai AICOMMWAIT
  5643.             ifactioncount 2 { shoot RPG resetactioncount }
  5644.         }
  5645.         else ai AICOMMGET
  5646.     }
  5647.     else ifai AICOMMSHRUNK
  5648.     {
  5649.         ifcount SHRUNKDONECOUNT ai AICOMMGET
  5650.         else ifcount SHRUNKCOUNT sizeto 48 40
  5651.         else state genericshrunkcode
  5652.     }
  5653.     else ifai AICOMMGET
  5654.     {
  5655.         ifnotmoving ifrnd 4 operate
  5656.         ifpdistl 1024 ifp palive { sound COMM_SPIN ai AICOMMSPIN break }
  5657.  
  5658.         ifcansee
  5659.         {
  5660.             ifp phigher move COMMGETUPVELS getv geth faceplayer
  5661.             else move COMMGETVELS getv geth faceplayer
  5662.         }
  5663.         ifactioncount 8 ifrnd 2 ai AICOMMABOUTTOSHOOT
  5664.     }
  5665.     else ifai AICOMMSPIN
  5666.     {
  5667.         soundonce COMM_SPIN
  5668.         ifcount 16
  5669.         {
  5670.             ifpdistl 1280 { addphealth CAPTSPINNINGPLAYER sound DUKE_GRUNT palfrom 32 16 resetcount }
  5671.             else ifpdistg 2300 ai AICOMMWAIT
  5672.         }
  5673.         ifactioncount 52 ai AICOMMWAIT
  5674.         ifnotmoving ifrnd 32 operate
  5675.     }
  5676.  
  5677.     ifai AICOMMDYING
  5678.     {
  5679.         fall
  5680.         strength 0
  5681.  
  5682.         ifhitweapon ifwasweapon RADIUSEXPLOSION
  5683.             { sound SQUISHED spawn BLOODPOOL state standard_jibs state delete_enemy }
  5684.  
  5685.         ifaction ACOMMDYING
  5686.             ifactioncount 8 { iffloordistl 8 sound THUD cstat 0 action ACOMMDEAD }
  5687.     }
  5688.     else
  5689.     {
  5690.         ifrnd 2 soundonce COMM_ROAM
  5691.         state checkcommhitstate
  5692.     }
  5693. enda
  5694.  
  5695.  
  5696. define COBRA_SPIT 331
  5697. define COBRA_ROAM 332
  5698. define COBRA_BITE 333
  5699. definequote 151  YOU NEED TO BLOW IT UP!
  5700. definequote 152  SNAKE BITE!
  5701. definesound COBRA_SPIT  cspit.voc 0 0 255 0 COBRA_SOUND_VOL
  5702. definesound COBRA_ROAM cslith.voc 0 0 3 0 COBRA_SOUND_VOL
  5703. definesound COBRA_ROAM cslith.voc 255 255 3 0 COBRA_SOUND_VOL
  5704.  
  5705.  
  5706.  
  5707.  
  5708. action ACOBRAWALKING  2412  3  5   1  16
  5709. action ACOBRARUNNING  2412    3   5    1    12
  5710. action ACOBRATHINK       2412    3   5    1    20
  5711. action ACOBRAJUMP        2412    3   5    1    20
  5712. action ACOBRAFALL         2412    1   5
  5713. action ACOBRASHOOTING 2442    2   3    1    14
  5714. action ACOBRADYING      2452    6   1    1    25
  5715. action ACOBRALYINGDEAD 2457    1   1    1    10
  5716. action ACOBRAFROZEN 2432    1    5
  5717.  
  5718. move COBRAWALKVEL COBRA_WALKVEL
  5719. move COBRARUNVEL COBRA_RUNVEL
  5720. move COBRAJUMPVEL COBRA_JUMPVEL
  5721. move COBRASTOP
  5722.  
  5723. ai AICOBRAGETENEMY ACOBRAWALKING COBRAWALKVEL seekplayer
  5724. ai AICOBRADODGE ACOBRARUNNING COBRARUNVEL dodgebullet
  5725. ai AICOBRACHARGEENEMY ACOBRARUNNING COBRARUNVEL seekplayer
  5726. ai AICOBRAFLEENEMY ACOBRAWALKING COBRAWALKVEL fleeenemy
  5727. ai AICOBRASHOOTENEMY ACOBRASHOOTING COBRASTOP faceplayer
  5728. ai AICOBRAJUMPENEMY ACOBRAJUMP COBRAJUMPVEL jumptoplayer
  5729. ai AICOBRATHINK ACOBRATHINK COBRASTOP faceplayerslow
  5730. ai AICOBRASHRUNK ACOBRAWALKING SHRUNKVELS fleeenemy
  5731. ai AICOBRASPIT ACOBRASHOOTING COBRASTOP faceplayer
  5732. ai AICOBRADYING ACOBRADYING COBRASTOP faceplayer
  5733. ai AICOBRADEAD ACOBRALYINGDEAD COBRASTOP faceplayer
  5734. ai AICOBRASTARTUP ACOBRAWALKING  COBRASTOP faceplayer
  5735.  
  5736. action ACOBRASTATUE 2432 1 5
  5737. action ACOBRASTATUEFALL 2432 1 5
  5738.  
  5739. state checkcobrafall
  5740.  
  5741. iffloordistl 8 { fall  } else { fall action ACOBRAFALL }
  5742.  
  5743. ends
  5744.  
  5745.  
  5746.   state shootcobrastatuedebris
  5747.     debris SCRAP2 5
  5748.     debris SCRAP3 8
  5749.     debris SCRAP5 9
  5750.     lotsofglass 15
  5751. ends
  5752.  
  5753. state breakcobrastatue
  5754.     iffloordistl 128 {
  5755.     sound GLASS_BREAKING
  5756.     addkills 1
  5757.     state shootcobrastatuedebris
  5758.     killit
  5759.     break
  5760.     }
  5761. ends
  5762.  
  5763. state checkcobrastatuehit
  5764.   ifdead
  5765.     {
  5766.  
  5767.  
  5768.         ifwasweapon RPG { sound SQUISHED state shootcobrastatuedebris killit }
  5769.         else ifwasweapon RADIUSEXPLOSION {  sound SQUISHED state shootcobrastatuedebris  addkills 1 state drop_ammo  killit } else { cstat 257 state shootcobrastatuedebris quote 131 strength 1 }
  5770.        
  5771.     }
  5772.     else
  5773.     {
  5774.         state shootcobrastatuedebris
  5775.         ifwasweapon SHOTSPARK1 ifrnd 96 sound  PISTOL_RICOCHET
  5776.        
  5777.     }
  5778. ends
  5779.  
  5780.  
  5781. state COBRA_GORE_STATE
  5782.     ifrnd COBRA_BLOODPOOL_FREQ spawn BLOODPOOL
  5783.     ifrnd 64 guts JIBS3 5 else ifrnd 64 guts JIBS4 3 
  5784.     guts JIBS6 COBRA_GORE_AMOUNT
  5785. ends
  5786.  
  5787.  
  5788. state cobraseekstate
  5789.    
  5790.     ifactornotstayput
  5791.     {
  5792.             ifcansee ifp palive ifpdistl 2048 ifcount 16 ifcanshoottarget { 
  5793.           ifrnd 25 soundonce COBRA_ROAM  else ifrnd 15 soundonce CAPT_ROAM
  5794.         ai AICOBRASHOOTENEMY break }
  5795.     ifai AICOBRACHARGEENEMY
  5796.  
  5797.                 {     
  5798.             
  5799.             
  5800.                         ifcount 72 ifcanshoottarget { ai AICOBRASHOOTENEMY break }
  5801.              ifp phigher ifpdistg 2048 ifrnd 6 { ai AICOBRAJUMPENEMY break }
  5802.             
  5803.                 }
  5804.                 else
  5805.              ifpdistg 4096 
  5806.                 { 
  5807.                     ifrnd 92 
  5808.                         {
  5809.                              ifcount 48  ifcanshoottarget ai AICOBRASHOOTENEMY 
  5810.                         } 
  5811.                         else 
  5812.                             ifcount 24 { ai AICOBRACHARGEENEMY break } 
  5813.                 }
  5814.  
  5815.             iffloordistl 16 
  5816.         { 
  5817.             ifcount 48 ifnotmoving ifcansee { ifgapzl 96 { } else ai AICOBRAJUMPENEMY break }
  5818.          }
  5819.  
  5820.                 else 
  5821.             { ifpdistg 1280  ifgapzl 96 { } else ai AICOBRAJUMPENEMY break }
  5822.  
  5823.             ifrnd 4 ifnotmoving operate
  5824.  
  5825.             else ifrnd COBRA_DODGEBULLET_FREQ ifbulletnear
  5826.  
  5827.          {
  5828.                         ifgapzl 128 
  5829.                 ai AICOBRADODGE
  5830.                         else 
  5831.                 ifactornotstayput { ifrnd 32 ai AICOBRAJUMPENEMY else ai AICOBRADODGE }
  5832.                 }
  5833.     }
  5834.     else
  5835.     {
  5836.       ifactioncount 16 { ifp palive ifrnd 32 ifcansee ifcanshoottarget ai AICOBRASHOOTENEMY }
  5837.             ifcount 16 ifrnd 32 move COBRAWALKVEL randomangle geth
  5838.     }
  5839.  
  5840. ends
  5841.  
  5842. state cobrashrunkstate
  5843.     ifcount SHRUNKDONECOUNT ai AICOBRAGETENEMY
  5844.     else ifcount SHRUNKCOUNT  sizeto COBRA_SIZEX COBRA_SIZEY
  5845.     else { state genericshrunkcode sizeto 1 1  }
  5846. ends
  5847.  
  5848. state cobrafleestate
  5849.     ifcount 16 { ifrnd 48 ifp palive ifcansee ai AICOBRASPIT }
  5850.     else { iffloordistl 16 { } else ai AICOBRAGETENEMY break }
  5851. ends
  5852.  
  5853. state cobrathinkstate
  5854.      ifonwater { ifrnd 32 ai AICOBRAJUMPENEMY }
  5855.      ifinwater { ifrnd 32 ai AICOBRAJUMPENEMY }
  5856.    
  5857.   ifrnd 45 soundonce COBRA_ROAM
  5858.     ifactioncount 3
  5859.     {
  5860.         ifrnd 32 ifp palive ifcansee ai AICOBRASPIT
  5861.         else ifrnd 96 ai AICOBRAGETENEMY
  5862.     }
  5863.     else ifactioncount 2 ifrnd 1 spawn FECES
  5864.     ifrnd COBRA_DODGEBULLET_FREQ ifbulletnear
  5865.     {
  5866.         ifgapzl 96 ai AICOBRADODGE
  5867.         else { ifrnd 128 ai AICOBRAJUMPENEMY else ai AICOBRADODGE }
  5868.     }
  5869. ends
  5870.  
  5871. state cobrashootstate
  5872.     ifcount 20 ifrnd 8
  5873.     {
  5874.         ifcansee ifpdistl 2048 { ifrnd 72 ai AICOBRAFLEENEMY break } else { ifrnd 18 { sound COBRA_BITE addphealth -6 ifrnd 96 quote 152 } }
  5875.         ifrnd 80 ai AICOBRATHINK else ai AICOBRAGETENEMY
  5876.     }
  5877.     ifactioncount 1   ifrnd COBRA_SHOOTLASER_FREQ shoot FIRELASER
  5878.     ifactioncount 2
  5879.     {
  5880.         ifcansee 
  5881.     ifpdistl 6048
  5882.                 {
  5883.                     ifcanshoottarget { 
  5884.  
  5885.             sound COBRA_SPIT
  5886.                 shoot SPIT
  5887.             
  5888.             resetactioncount 
  5889.         }
  5890.         else
  5891.         {
  5892.           ifrnd COBRA_SHOOTLASER_FREQ shoot FIRELASER
  5893.         ai AICOBRATHINK
  5894.         }
  5895.         }
  5896.         else ai AICOBRAGETENEMY
  5897.     }
  5898. ends
  5899.  
  5900. state checkcobrahit
  5901.    ifwasweapon FREEZEBLAST {  } else state COBRA_GORE_STATE
  5902.     ifai AICOBRASHRUNK
  5903.         { addkills 1 sound SQUISHED state standard_jibs state delete_enemy }
  5904.     ifdead
  5905.     {
  5906.         ifwasweapon FREEZEBLAST
  5907.          { 
  5908.  
  5909.         ifhitspace
  5910.              { 
  5911.                  sound SOMETHINGFROZE
  5912.                  spritepal 7 move 0 action ACOBRASTATUE state checkcobrafall strength 300 break
  5913.              }
  5914.              else        
  5915.  
  5916.             {
  5917.             sound SOMETHINGFROZE 
  5918.             spritepal 1 move 0 
  5919.             action ACOBRAFROZEN 
  5920.             strength 10 
  5921.             break
  5922.              } 
  5923.         }
  5924.  
  5925.       
  5926.         addkills 1
  5927.  
  5928.         ifwasweapon RPG { sound SQUISHED  state standard_jibs state delete_enemy }
  5929.         else ifwasweapon RADIUSEXPLOSION { sound SQUISHED  state standard_jibs state delete_enemy }
  5930.         else { state rf ai AICOBRADYING ifrnd 64 spawn BLOODPOOL }
  5931.         //  SOUND COBRA DYING
  5932.      sound CAPT_DYING
  5933.     }
  5934.     else
  5935.     {
  5936.         // SOUND COBRA PAIN
  5937.      sound CAPT_PAIN
  5938.         ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AICOBRASHRUNK break }
  5939.         state random_wall_jibs
  5940.         ifp palive ifcansee ifcanshoottarget { ai AICOBRASHOOTENEMY break }
  5941.     }
  5942. ends
  5943.  
  5944. state cobrajumpstate
  5945.     ifaction ACOBRAFALL { iffloordistl 24 ai AICOBRAGETENEMY }
  5946.     else ifactioncount 5 action ACOBRAFALL
  5947. ends
  5948.  
  5949. state cobradyingstate
  5950.  
  5951.     ifaction ACOBRALYINGDEAD
  5952.     {
  5953.         strength 0
  5954.         ifhitweapon { ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } } else 
  5955.          ifrespawn ifcount RESPAWNACTORTIME
  5956.             {
  5957.                 spawn TRANSPORTERSTAR cstat 257 strength COBRA_STRENGTH ai AICOBRAGETENEMY
  5958.     }
  5959.         }
  5960.     else ifai AICOBRADYING {  ifactioncount 6 { iffloordistl 8 sound THUD move COBRASTOP action ACOBRALYINGDEAD ai AICOBRADEAD break }  }
  5961.     ifactioncount 20 resetactioncount
  5962. ends
  5963.  
  5964. state cobradodgestate
  5965.     ifcount 13 ai AICOBRAGETENEMY
  5966. ends
  5967.  
  5968.  
  5969. actor NUKEBARRELDENTED COBRA_STRENGTH  fall
  5970.     state checksquished
  5971.     ifonwater { ifrnd 32 spawn WATERBUBBLE sizeto 0 0  break  } 
  5972.      ifinwater {  ifrnd 32 spawn WATERBUBBLE sizeto 0 0  break  }
  5973.     sizeto COBRA_SIZEX COBRA_SIZEY    
  5974.     ifai 0 ai AICOBRASTARTUP
  5975.     ifai AICOBRASTARTUP {  fall
  5976.     ifcount 1 { 
  5977.          ifrnd 2 
  5978.             {  
  5979.                 debris SCRAP2 4
  5980.                         debris SCRAP3 7
  5981.                         sound RPG_EXPLODE
  5982.                       }
  5983.              else 
  5984.             { 
  5985.                 spawn TRANSPORTERSTAR 
  5986.                 sound TELEPORTER
  5987.              } 
  5988.          } 
  5989.         
  5990.     ifcount 23  {    
  5991.             cstat 257
  5992.             ifrnd 10 spawn BURNING
  5993.              ai AICOBRAGETENEMY
  5994.              resetcount
  5995.          }
  5996.              }
  5997.     else ifaction ACOBRALYINGDEAD { fall state cobradyingstate break }
  5998.     else ifaction ACOBRASTATUE 
  5999.     {
  6000.                 ifactioncount 10 resetactioncount
  6001.       ifhitweapon state checkcobrastatuehit
  6002.     break
  6003.     }
  6004. else ifaction ACOBRASTATUEFALL
  6005.     {
  6006.           iffloordistl 16  state breakcobrastatue
  6007.           break
  6008.     }
  6009.     else ifaction ACOBRAFROZEN
  6010.     {
  6011.         ifcount COBRA_THAWTIME { ai AICOBRAGETENEMY getlastpal }
  6012.         else ifcount COBRA_FROZENDRIPTIME { ifactioncount 25 { spawn WATERDRIP resetactioncount } }
  6013.  
  6014.         ifhitweapon
  6015.         {
  6016.             ifwasweapon FREEZEBLAST { strength 0 break }
  6017.             addkills 1
  6018.  
  6019.             ifrnd 84 spawn BLOODPOOL
  6020.             lotsofglass 30
  6021.             sound GLASS_BREAKING
  6022.             killit
  6023.         }
  6024.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  6025.         break
  6026.     }
  6027.     else ifai AICOBRAJUMPENEMY state cobrajumpstate
  6028.     else
  6029.     {
  6030.         ifai AICOBRAGETENEMY state cobraseekstate
  6031.         else ifai AICOBRACHARGEENEMY state cobraseekstate
  6032.         else ifai AICOBRADODGE state cobradodgestate
  6033.         else ifai AICOBRASHOOTENEMY state cobrashootstate
  6034.         else ifai AICOBRAFLEENEMY state cobrafleestate
  6035.         else ifai AICOBRATHINK state cobrathinkstate
  6036.         else ifai AICOBRASHRUNK state cobrashrunkstate
  6037.         else ifai AICOBRADYING state cobradyingstate
  6038.         else ifai AICOBRADEAD state cobradyingstate
  6039.         else ifai AICOBRASPIT
  6040.                 {
  6041.          ifcount 26 ai AICOBRAGETENEMY
  6042.          else ifcount 18 ifrnd COBRA_ATTACKFREQ 
  6043.         {
  6044.              shoot SPIT  sound COBRA_SPIT
  6045.          } 
  6046.     }
  6047.     }
  6048.  
  6049.    
  6050.  
  6051.     ifai AICOBRASHRUNK break
  6052.     ifhitweapon state checkcobrahit
  6053.     
  6054. enda
  6055.  
  6056.  
  6057.  
  6058. definequote 132 BETTER TO BLOW IT UP!
  6059. define GROAM 321
  6060. definesound GROAM    GROAM.VOC             0   0   3   0   500
  6061. define GDYING 322
  6062. definesound GDYING    GROAM58.VOC             0   0   3   0  500
  6063. define GPAIN 323
  6064. definesound GPAIN    GPAIN.VOC             0   0   3   0   500
  6065. define GLOBB 324
  6066. definesound GPAIN   LOBB.VOC             0   0   3   0   500
  6067.  
  6068. action AGORILLAWALK                   2356  3  5  1 21
  6069. action AGORILLAFALL                   2356  3  5  1  18
  6070. action AGORILLAFROZEN                2376  1  5  1  18
  6071. action AGORILLARUN                   2356  3  5  1  18
  6072. action AGORILLALOB                    2387  2  3  1  23
  6073. action AGORILLADYING                  2401 5  1  1  30
  6074. action AGORILLADEAD                         2406
  6075. action AGORILLASTARTUP                  2356  3  5  1 21
  6076. move GORILLAWALKVELS SUN_GORILLA_WALKVEL 
  6077. move GORILLARUNVELS SUN_GORILLA_RUNVEL 
  6078. move GORILLASTOPPED
  6079.  
  6080. ai AIGORILLASEEKENEMY AGORILLAWALK GORILLAWALKVELS seekplayer
  6081. ai AIGORILLARUNENEMY AGORILLARUN GORILLARUNVELS faceplayer
  6082. ai AIGORILLALOBBED AGORILLALOB GORILLASTOPPED  faceplayer
  6083. ai AIGORILLADYING AGORILLADYING GORILLASTOPPED faceplayer
  6084. ai AIGORILLASHRUNK AGORILLAWALK GORILLAWALKVELS randomangle
  6085. ai AIGORILLASTARTUP AGORILLAWALK GORILLASTOPPED  faceplayer
  6086.  
  6087. action AGORILLASTATUE      2376    1    5
  6088. action AGORILLASTATUEFALL 2376 1 5
  6089.  
  6090. state checkgorillafall
  6091.  
  6092. iffloordistl 8 { fall  } else { fall action AGORILLAFALL }
  6093.  
  6094. ends
  6095.  
  6096.  
  6097.   state shootgorillastatuedebris
  6098.     debris SCRAP2 5
  6099.     debris SCRAP3 8
  6100.     debris SCRAP5 9
  6101.     lotsofglass 15
  6102. ends
  6103.  
  6104. state breakgorillastatue
  6105.     iffloordistl 128 {
  6106.     sound GLASS_BREAKING
  6107.     addkills 1
  6108.     state shootgorillastatuedebris
  6109.     killit
  6110.     break
  6111.     }
  6112. ends
  6113.  
  6114. state checkgorillastatuehit
  6115.   ifdead
  6116.     {
  6117.  
  6118.  
  6119.         ifwasweapon RPG { sound SQUISHED state shootgorillastatuedebris killit }
  6120.         else ifwasweapon RADIUSEXPLOSION {  sound SQUISHED state shootgorillastatuedebris  addkills 1 state drop_ammo  killit } else { cstat 257 state shootgorillastatuedebris quote 132 strength 1 }
  6121.        
  6122.     }
  6123.     else
  6124.     {
  6125.         state shootgorillastatuedebris
  6126.         ifwasweapon SHOTSPARK1 ifrnd 96 sound  PISTOL_RICOCHET
  6127.        
  6128.     }
  6129. ends
  6130.  
  6131.  
  6132. state gorillagore
  6133.     guts JIBS5 5
  6134.     guts JIBS6 8
  6135. ends
  6136.  
  6137. state gorillashrunkstate
  6138.     ifcount SHRUNKDONECOUNT ai AIGORILLASEEKENEMY
  6139.     else ifcount SHRUNKCOUNT  sizeto GORILLA_SIZEX GORILLA_SIZEY
  6140.     else { state genericshrunkcode sizeto 1 1  }
  6141. ends
  6142.  
  6143. state checkgorillaseekstate
  6144.     ai AIGORILLASEEKENEMY
  6145. ends
  6146.  
  6147. state gorillarunenemystate
  6148.     ifpdistl 2048 { ifp palive ai  AIGORILLALOBBED break }
  6149.     else ifcansee { ifactioncount 6 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIGORILLASEEKENEMY } }
  6150.     else ai AIGORILLASEEKENEMY
  6151. ends
  6152.  
  6153. state gorillaseekenemystate
  6154.       ifrnd 5 soundonce GROAM
  6155.  
  6156.  
  6157.     ifpdistl 2548 ifp palive { ai AIGORILLALOBBED break }
  6158.  
  6159.     ifcansee ifcount 32
  6160.     {
  6161.         ifrnd 24 { ifp palive ifcanshoottarget ai AIGORILLALOBBED }
  6162.         else ifpdistg 2548 ifrnd GORILLA_LOBFREQ
  6163.             ifcanshoottarget
  6164.             {
  6165.                 ifrnd 64
  6166.                 {
  6167.                     ai AIGORILLARUNENEMY
  6168.                   
  6169.                 }
  6170.                 else ai AIGORILLALOBBED
  6171.             }
  6172.     }
  6173.  
  6174. ends
  6175.  
  6176. state gorilladyingstate
  6177.   ifaction AGORILLADEAD
  6178.   {
  6179.       cstat 0
  6180.       ifrespawn ifcount RESPAWNACTORTIME
  6181.           { spawn TRANSPORTERSTAR cstat 257 strength GORILLATRENGTH state checkgorillaseekstate }
  6182.       else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
  6183.   }
  6184.   ifactioncount 5 { iffloordistl 8 sound THUD action AGORILLADEAD cstat 0  }
  6185. ends
  6186.  
  6187. state gorillalobbedstate
  6188.     ifcansee
  6189.     {
  6190.         ifactioncount 2
  6191.         {
  6192.             resetactioncount
  6193.             sound GLOBB
  6194.             shoot MORTER
  6195.         }
  6196.         else ifcount 64 ifrnd 16 state checkgorillaseekstate
  6197.     }
  6198.     else state checkgorillaseekstate
  6199. ends
  6200.  
  6201. state gorillashootenemy
  6202.     ifcount 72 state checkgorillaseekstate
  6203.     else ifactioncount 2
  6204.     {
  6205.         resetactioncount
  6206.     }
  6207. ends
  6208.  
  6209. state checkgorillahitstate
  6210.     ifrnd 2 spawn BLOODPOOL
  6211. ifwasweapon FREEZEBLAST {  } else state gorillagore
  6212.     ifdead
  6213.     {
  6214.          
  6215.              ifwasweapon FREEZEBLAST
  6216.          { 
  6217.  
  6218.         ifhitspace
  6219.              { 
  6220.                  sound SOMETHINGFROZE
  6221.                  spritepal 7 move 0 action AGORILLASTATUE state checkgorillafall strength 800 break
  6222.              } else        
  6223.  
  6224.             {
  6225.             sound SOMETHINGFROZE 
  6226.             spritepal 1 move 0 
  6227.             action AGORILLAFROZEN 
  6228.             strength 20
  6229.             break
  6230.              } 
  6231.         }
  6232.  
  6233.       sound GDYING
  6234.  
  6235.         addkills 1
  6236.         ai AIGORILLADYING
  6237.     }
  6238.     else
  6239.     {
  6240.         ifrnd 32 { move 0 }
  6241.  
  6242.         else  ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIGORILLASHRUNK break }
  6243.         soundonce GPAIN
  6244.         guts JIBS6 20
  6245.     }
  6246. ends
  6247.  
  6248. state gorillacode
  6249.     sizeto GORILLA_SIZEX GORILLA_SIZEY
  6250.     ifaction AGORILLADEAD { cstat 0  }   
  6251.   
  6252.     ifaction AGORILLAFROZEN
  6253.     {  
  6254.         ifcount THAWTIME { ai AIGORILLASEEKENEMY spritepal 21 }
  6255.         else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
  6256.  
  6257.         ifhitweapon
  6258.         {
  6259.             ifwasweapon FREEZEBLAST { strength 0 break }
  6260.             addkills 1
  6261.             lotsofglass 30
  6262.  
  6263.             ifrnd 84 spawn BLOODPOOL
  6264.             sound GLASS_BREAKING
  6265.             killit
  6266.         }
  6267.         ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
  6268.         break
  6269.     }
  6270.  
  6271.     ifai 0 ai  AIGORILLASTARTUP else
  6272.     ifai  AIGORILLASTARTUP {    sizeto GORILLA_SIZEX GORILLA_SIZEY
  6273.     ifcount 1 {                 cstat 0
  6274.             
  6275.                         spawn TRANSPORTERSTAR 
  6276.             sound TELEPORTER
  6277.          }
  6278.     
  6279.     
  6280.      ifcount 47
  6281.          {
  6282.              ifrnd 10 spawn BURNING
  6283.              cstat 257
  6284.              ai  AIGORILLASEEKENEMY
  6285.              resetcount 
  6286.         } 
  6287.      }
  6288.  
  6289.  else ifaction AGORILLASTATUE 
  6290.     {
  6291.                 ifactioncount 10 resetactioncount
  6292.       ifhitweapon state checkgorillastatuehit
  6293.     break
  6294.     }
  6295. else ifaction AGORILLASTATUEFALL
  6296.     {
  6297.           iffloordistl 16  state breakgorillastatue
  6298.           break
  6299.     }
  6300.     else ifai AIGORILLASEEKENEMY state gorillaseekenemystate
  6301.     else ifai AIGORILLARUNENEMY state gorillarunenemystate
  6302.     else ifai AIGORILLALOBBED state gorillalobbedstate
  6303.     else ifai AIGORILLASHRUNK state gorillashrunkstate
  6304.   
  6305.  
  6306.     ifai AIGORILLADYING state gorilladyingstate
  6307.     else
  6308.     {
  6309.         ifhitweapon state checkgorillahitstate
  6310.     }
  6311. ends
  6312.  
  6313.  
  6314. actor NUKEBARRELLEAKED  GORILLATRENGTH   fall    state gorillacode enda
  6315.  
  6316.  
  6317. action MINDLESSFRAMES     -298  1   5   1   1
  6318. action MINDLESSSCREAM     -298   1   5   1   1
  6319. action MINDLESSWAIT            -298 1 5 1 1 
  6320.  
  6321. define MM_ROAM 312
  6322. define MM_ATTK  313
  6323. define MM_ARM   314
  6324.  
  6325. definesound MM_ROAM mmroam1.voc 0 0 3 0 0
  6326. definesound MM_ATTK  mmatk.voc 0 0 3 0 0
  6327. definesound MM_ARM mmarm.voc 0 0 3 0 0 
  6328.  
  6329.  
  6330. move MINDLESSRUNVELS MINDLESS_RUNVEL 64
  6331. move MINDLESSRUNUPVELS MINDLESS_RUNVEL -64
  6332. move MINDLESSBULLVELS MINDLESS_RUNFASTVEL -64
  6333. move MINDLESSBACKWARDS -MINDLESS_RUNBACKVEL -64
  6334. move MINDLESSRISE 32 -16
  6335. move MINDLESSSTOPPED -32
  6336.  
  6337. ai AIMINDLESSGETE MINDLESSSCREAM MINDLESSRUNVELS faceplayerslow getv
  6338. ai AIMINDLESSWAIT MINDLESSFRAMES MINDLESSSTOPPED faceplayerslow
  6339. ai AIMINDLESSGETUP MINDLESSSCREAM MINDLESSRUNUPVELS faceplayer getv
  6340. ai AIMINDLESSPULLBACK MINDLESSFRAMES MINDLESSBACKWARDS faceplayerslow
  6341. ai AIMINDLESSHIT MINDLESSSCREAM MINDLESSBACKWARDS faceplayer
  6342. ai AIMINDLESSSHRUNK MINDLESSFRAMES SHRUNKVELS fleeenemy
  6343. ai AIMINDLESSDODGE MINDLESSFRAMES MINDLESSBULLVELS dodgebullet geth
  6344. ai AIMINDLESSDODGEUP MINDLESSFRAMES MINDLESSRISE getv geth
  6345.  
  6346. // HERE
  6347. move MINDLESSCRAZYVELS  MINDLESS_CRAZYVEL  -64
  6348. action MINDLESSCRAZY         -298   1   7   1   5
  6349. action MINDLESSSPINUP         -298   1   7   1   5
  6350.  
  6351. ai AIMINDLESSCRAZY  MINDLESSCRAZY MINDLESSCRAZYVELS  randomangle
  6352. ai AIMINDLESSSPINUP MINDLESSSPINUP MINDLESSRISE getv spin
  6353.  
  6354.  
  6355.  
  6356. state checkmindlessshootstate
  6357.  
  6358.  ifcansee  {
  6359.     sound MM_ATTK
  6360.     ifrnd  BARRELLATTACK_FREQ  ifrnd  BARRELLATTACK_FREQ { 
  6361.     ifrnd MINDLESS_SHOOTMORTERFREQ shoot MORTER else
  6362.     ifrnd MINDLESS_SHOOTRPGFREQ shoot RPG else
  6363.     ifrnd MINDLESS_SHOOTLASERFREQ shoot FIRELASER    }
  6364.     }
  6365.  
  6366. ends
  6367.  
  6368.  
  6369.  
  6370. state checkmindlesscrazy
  6371.  
  6372.             ifrnd CRAZYMINE_EXPLODE_FREQ
  6373.         {
  6374.                 addkills 1
  6375.                         debris SCRAP1 8
  6376.                         debris SCRAP2 4
  6377.                         debris SCRAP3 7
  6378.                         spawn EXPLOSION2
  6379.                         sound RPG_EXPLODE
  6380.                         hitradius CRAZYMINE_EXPLODE_RADIUS 15 20 25 30
  6381.                         killit
  6382.                 break
  6383.  
  6384.             }
  6385.         else  {     
  6386.          ifrnd 16 shoot MORTER else move MINDLESSCRAZYVELS spin
  6387.          resetactioncount
  6388.         }
  6389.  
  6390. ends
  6391.  
  6392.  
  6393.  
  6394. state checkmindlesshitstate
  6395.  
  6396.     ifdead
  6397.     {
  6398.  // HERE
  6399.          ifwasweapon RPG { 
  6400.     ifrnd 128 { strength 1 spritepal 10  action MINDLESSCRAZY ai AIMINDLESSCRAZY } 
  6401.         else
  6402.     ifrnd 128 {  
  6403.              addkills 1
  6404.                     debris SCRAP1 8
  6405.                     debris SCRAP2 4
  6406.                     debris SCRAP3 7
  6407.                     spawn EXPLOSION2
  6408.                     state random_explosion_sounds
  6409.                     hitradius MINDLESS_HITRADIUS 15 20 25 30
  6410.                     killit
  6411.         }
  6412.          else
  6413.     ifrnd 128 {
  6414.             strength 1     
  6415.             ai AIMINDLESSSPINUP 
  6416.         } else strength 1
  6417.            break 
  6418.         }   
  6419.     else
  6420.         {
  6421.            strength 1
  6422.         }
  6423.                        
  6424.     }
  6425.     else
  6426.     {
  6427.                // put a sound here
  6428.  
  6429.      ifspritepal 2 { ifrnd  MINDLESSDEACTIVATEPROB spritepal 8 } else spritepal 2 
  6430.                 ifbulletnear
  6431.         {
  6432.             ifceilingdistl 64 ifrnd 48 ai AIMINDLESSDODGE
  6433.             ai AIMINDLESSDODGEUP
  6434.         }
  6435.         else ai AIMINDLESSGETE
  6436.     }
  6437. ends
  6438.  
  6439. state mindlessshrunkstate
  6440.     ifcount 24 { action MINDLESSCRAZY ai AIMINDLESSCRAZY }
  6441.     else sizeto 6 6
  6442. ends
  6443.  
  6444. state checkmindlessnearplayer
  6445.  
  6446.     ifp palive ifpdistl MINDLESS_NEARP_DETDIST
  6447.     {
  6448.         ifcount 23
  6449.         {
  6450.     
  6451.             addkills 1
  6452.             debris SCRAP1 8
  6453.             debris SCRAP2 4
  6454.             debris SCRAP3 7
  6455.             spawn EXPLOSION2
  6456.             sound RPG_EXPLODE
  6457.             hitradius MINDLESS_HITRADIUS  15 20 25 30
  6458.             killit      
  6459.          }
  6460.         
  6461.            else {  ifcount 3 { } else 
  6462.          sound MM_ARM 
  6463.           ifcount 15 { } else 
  6464.          sound MM_ATTK }
  6465.     }
  6466.  
  6467. ends
  6468.  
  6469. state mindlessgetstate
  6470.     ifrnd 192
  6471.     {
  6472.         ifcansee
  6473.         {
  6474.             ifbulletnear { ai AIMINDLESSDODGE break }
  6475.             ifmove MINDLESSBULLVELS
  6476.             {
  6477.                 ifcount 64 ai AIMINDLESSPULLBACK
  6478.                 else ifnotmoving ifcount 16 ai AIMINDLESSPULLBACK
  6479.             }
  6480.             else ifcount 32
  6481.             {
  6482.                 ifp phigher move MINDLESSBULLVELS geth getv
  6483.                 else move MINDLESSBULLVELS geth
  6484.             }
  6485.         }
  6486.         else ifrnd 1 operate
  6487.     }
  6488. ends
  6489.  
  6490. state mindlessdodgestate
  6491.     ifai AIMINDLESSDODGEUP
  6492.     {
  6493.        ifcount 8 ai AIMINDLESSGETE
  6494.        else ifnotmoving ai AIMINDLESSGETE
  6495.     }
  6496.     else
  6497.     {
  6498.         ifcount 8 ai AIMINDLESSGETE
  6499.         else ifnotmoving ai AIMINDLESSGETE
  6500.     }
  6501. ends
  6502.  
  6503. actor EXPLODINGBARREL 100  
  6504.     state checksquished
  6505.     state checkmindlessnearplayer
  6506.  
  6507.          ifonwater  { ifrnd 196 ai AIMINDLESSGETUP else {   addkills 1
  6508.                     debris SCRAP1 8
  6509.                     debris SCRAP2 4
  6510.                     debris SCRAP3 7
  6511.                     spawn EXPLOSION2
  6512.                     state random_explosion_sounds
  6513.                     hitradius MINDLESS_HITRADIUS 15 20 25 30
  6514.                     killit  }  }
  6515.  
  6516.       ifaction 0 ifpdistg 1 { action MINDLESSWAIT spritepal 8  }
  6517.       sizeto 30 30 spawn FRAMEEFFECT1
  6518.     ifrnd 2 fall
  6519.     
  6520.  
  6521.     ifaction MINDLESSWAIT ai AIMINDLESSGETE
  6522.     else ifaction  MINDLESSCRAZY { ai AIMINDLESSCRAZY state checkmindlesscrazy  }
  6523.  
  6524.  
  6525.     else ifai AIMINDLESSWAIT
  6526.     {
  6527.         ifactioncount 4 ifrnd 16
  6528.             ifcansee {  ifp phigher ai AIMINDLESSGETUP else ai AIMINDLESSGETE }
  6529.     }
  6530.     else ifai AIMINDLESSGETE state mindlessgetstate
  6531.     else ifai AIMINDLESSGETUP state mindlessgetstate
  6532.     else ifai AIMINDLESSPULLBACK { ifcount 32 ai AIMINDLESSWAIT }
  6533.     else ifai AIMINDLESSHIT { ifcount 8 ai AIMINDLESSWAIT }
  6534.     else ifai AIMINDLESSSHRUNK state mindlessshrunkstate
  6535.     else ifai AIMINDLESSDODGE state mindlessdodgestate
  6536.     else ifai AIMINDLESSDODGEUP state mindlessdodgestate
  6537.  
  6538.         ifhitweapon state checkmindlesshitstate
  6539.         
  6540.          ifrnd 3 soundonce MM_ROAM
  6541.         ifspritepal 2 state checkmindlessshootstate
  6542.   
  6543. enda
  6544.  
  6545.  
  6546.  
  6547. // THIS IS THE END
  6548.  
  6549.  
  6550.  
  6551.  
  6552.  
  6553.  
  6554.  
  6555.  
  6556.  
  6557.  
  6558.  
  6559.  
  6560.  
  6561.  
  6562.  
  6563.  
  6564.  
  6565.  
  6566.  
  6567.  
  6568.  
  6569.  
  6570.  
  6571.  
  6572.  
  6573.  
  6574.  
  6575.  
  6576.  
  6577.  
  6578.  
  6579.  
  6580.  
  6581.  
  6582.  
  6583.  
  6584.  
  6585.  
  6586.  
  6587.  
  6588.  
  6589.  
  6590.  
  6591.  
  6592.  
  6593.  
  6594.  
  6595.  
  6596.  
  6597.  
  6598.  
  6599.  
  6600.  
  6601.  
  6602.  
  6603.  
  6604.  
  6605.  
  6606.  
  6607.  
  6608.  
  6609.