home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Duke Xtreme
/
DKXTRM.iso
/
DKXTRM
/
PACK13
/
DKEXGAME.CON
< prev
next >
Wrap
Text File
|
1997-02-18
|
172KB
|
6,610 lines
// Revision = 5
/*
--------------------------------------------------------------------------------
Duke Nukem 3D GAME.CON file.
By Todd Replogle
(c) 1996 3D Realms Entertainment
--------------------------------------------------------------------------------
IMPORTANT NOTICE IF YOU USE MODIFIED .CON FILES
If you are playing a MULTIPLAY game (Dukematch or Co-op) and you are
using *modified* .CON files (USER.CON, GAME.CON, DEFS.CON), then each
multiplayer must be using the EXACT SAME .CON files, or the game will
get out of sync and/or develop interesting problems.
3D Realms encourages you to experiment freely with the parameters
contained in this file, and to share your discoveries with the rest
of the world. However, BE ADVISED that 3D Realms does NOT offer
any technical support on how to use this file or other user-modifiable
features of this game. Do NOT call 3D Realms or Apogee Software
for advice or help with this subject.
You make modifications to this and other files at your own risk.
It is recommended that you first make a backup copy of this, or
any .CON files before making any changes.
AGAIN IMPORTANT NOTICE!!!!
THIS CON FILE HAS BEEN MODIFIED SPECIFICALLY FOR THE
DUKE NUKEM 3D CONTROL CENTER UNDER THE DUKE EXTREME
PROJECT. THE CONTENTS WITH REGARD TO THE ORIGINAL FILE
REMAIN INTACT AND THE COPYRIGHT OF THE ORIGINAL COPYRIGHT
HOLDER, IE. MODIFICATION ARE USED WITH PERMISSION. FURTHERMORE,
THE CONTENTS OF THIS FILE AND SOURCE CODE GENERATED AS A CONSEQUENCE
OF USING THE CONTROL CENTER IS AGAIN COPYRIGHTED WORK, COPYRIGHT 1996.
YOU MAY NOT USE OR REDISTRIBUTE THESE MODIFICATIONS.
--------------------------------------------------------------------------------
*/
include DN3DDEFS.CON
include DN3DUSER.CON
state extra_monster_gore
ifrnd MONSTER_GOREFREQ_JIBS1A guts JIBS1 MONSTER_GOREJIBS1A
ifrnd MONSTER_GOREFREQ_JIBS1A guts JIBS2 MONSTER_GOREJIBS2A
ifrnd MONSTER_GOREFREQ_JIBS1A guts JIBS3 MONSTER_GOREJIBS3A
ifrnd MONSTER_GOREFREQ_JIBS1A guts JIBS4 MONSTER_GOREJIBS4A
ifrnd MONSTER_GOREFREQ_JIBS1A guts JIBS5 MONSTER_GOREJIBS5A
ifrnd MONSTER_GOREFREQ_JIBS1A guts JIBS6 MONSTER_GOREJIBS6A
ifrnd MONSTER_GOREFREQ_BLOODSPLATA shoot BLOODSPLAT1
ifrnd MONSTER_GOREFREQ_BLOODSPLATA shoot BLOODSPLAT2
ifrnd MONSTER_GOREFREQ_BLOODSPLATA shoot BLOODSPLAT3
ifrnd MONSTER_GOREFREQ_BLOODSPLATA shoot BLOODSPLAT4
ifrnd MONSTER_GOREFREQ_BLOODPOOLA spawn BLOODPOOL
ifrnd MONSTER_GOREFREQ_CRAPPING spawn FECES
ends
state random_explosion_sounds
ifrnd 128 sound PIPEBOMB_EXPLODE else
ifrnd 128 sound RPG_EXPLODE else
sound LASERTRIP_EXPLODE
ends
state random_duke_grunts
ifrnd 64 sound DUKE_LONGTERM_PAIN else
ifrnd 64 sound DUKE_GRUNT else
ifrnd 64 sound DUKE_LONGTERM_PAIN2 else
ifrnd 64 sound DUKE_LONGTERM_PAIN3 else
ifrnd 64 sound DUKE_LONGTERM_PAIN4 else
ifrnd 64 soundonce DUKE_KILLED3
else ifrnd 64 soundonce DUKE_GASP
else ifrnd 64 soundonce DUKE_SEARCH else
sound DUKE_LONGTERM_PAIN
ends
definequote 124 INVINCIBLE!!
definequote 125 NOT INVINCIBLE!!
// BLOCKINSERT: SUNSHARK_MOREGORE - sshkgore!
state corpseexplodingstate
ifrnd 8
ifrnd CORPSE_EXPLODE_FREQUENCY
{
spawn EXPLOSION2
hitradius 2648 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
debris SCRAP2 10
guts JIBS1 EXPLODING_JIBS1_AMOUNT
guts JIBS2 EXPLODING_JIBS1_AMOUNT
guts JIBS3 EXPLODING_JIBS1_AMOUNT
guts JIBS4 EXPLODING_JIBS2_AMOUNT
guts JIBS5 EXPLODING_JIBS2_AMOUNT
guts JIBS6 EXPLODING_JIBS2_AMOUNT
state random_explosion_sounds
killit
break
}
ends
state shootstatuedebris
debris SCRAP1 STATUEMAKER_DEBRIS_AMOUNT1
debris SCRAP2 STATUEMAKER_DEBRIS_AMOUNT1
debris SCRAP3 STATUEMAKER_DEBRIS_AMOUNT1
debris SCRAP4 STATUEMAKER_DEBRIS_AMOUNT2
debris SCRAP5 STATUEMAKER_DEBRIS_AMOUNT2
debris SCRAP6 STATUEMAKER_DEBRIS_AMOUNT2
lotsofglass STATUEMAKER_DEBRIS_AMOUNT2
ends
state explodethegoodies
hitradius EXPLOSIVE_GOODIES_HITRADIUS WEAKEST WEAK MEDIUMSTRENGTH TOUGH
spawn EXPLOSION2
debris SCRAP2 EXPLOSIVEGOODIES_NUMSCRAPS2
debris SCRAP3 EXPLOSIVEGOODIES_NUMSCRAPS3
debris SCRAP1 EXPLOSIVEGOODIES_NUMSCRAPS1
debris SCRAP4 EXPLOSIVEGOODIES_NUMSCRAPS4
state random_explosion_sounds
ifrnd 32 wackplayer
sound DUKE_GRUNT
palfrom 24 10
ifrnd 128 killit
ends
state explosive_goodies
ifpdistl EXPLOSIVEGOODIES_RETREIVE_DISTANCE
{
ifactor AIRTANK { ifrnd AIRTANK_EXP_FREQ
ifrnd AIRTANK_EXP_FREQ { state explodethegoodies } } else
ifactor JETPACK { ifrnd JETPACK_EXP_FREQ
ifrnd JETPACK_EXP_FREQ { state explodethegoodies } } else
ifactor DEVISTATORAMMO { ifrnd DEVISTATORAMMO_EXP_FREQ
ifrnd DEVISTATORAMMO_EXP_FREQ { state explodethegoodies } } else
ifactor RPGAMMO { ifrnd RPGAMMO_EXP_FREQ
ifrnd RPGAMMO_EXP_FREQ { state explodethegoodies } } else
ifactor HBOMBAMMO { ifrnd HBOMBAMMO_EXP_FREQ
ifrnd HBOMBAMMO_EXP_FREQ { state explodethegoodies } } else
ifactor ATOMICHEALTH { ifrnd ATOMICHEALTH_EXP_FREQ
ifrnd ATOMICHEALTH_EXP_FREQ { state explodethegoodies } } else
ifactor RPGSPRITE { ifrnd RPGSPRITE_EXP_FREQ
ifrnd RPGSPRITE_EXP_FREQ { state explodethegoodies } } else
ifactor TRIPBOMBSPRITE { ifrnd TRIPBOMBSPRITE_EXP_FREQ
ifrnd TRIPBOMBSPRITE_EXP_FREQ { state explodethegoodies } } else
ifactor DEVISTATORSPRITE { ifrnd DEVISTATORSPRITE_EXP_FREQ
ifrnd DEVISTATORSPRITE_EXP_FREQ { state explodethegoodies } }
}
ends
definequote 130 YOU ARE BLEEDING!
definequote 131 HURRY, FIND HEALTH!
definequote 132 IT MUST BE THAT TIME OF MONTH
define FART_SOUND 311
definesound FART_SOUND fart1.voc FECALMAT_FART_SOUND_VAR1 FECALMAT_FART_SOUND_VAR2 3 0 FECALMAT_FART_SOUND_VOL
definequote 133 THIS SMELLS!!!!
definequote 134 YUCK RAW SEWAGE _ RUN!!
definequote 135 CRAP - BLOW IT UP!
state killfeces
shoot BLOODSPLAT1
shoot BLOODSPLAT2
guts JIBS6 20
ifrnd 32 spawn BLOODPOOL
killit
ends
state explodefeces
hitradius FECALMATER_EXPLODE_RADIUS WEAKEST WEAK MEDIUMSTRENGTH TOUGH
spawn EXPLOSION2
sound PIPEBOMB_EXPLODE
ifrnd FECAL_EXPLODING_KILLIT_FREQ ifrnd FECAL_EXPLODING_KILLIT_FREQ state killfeces
ends
define DUKE_FART_SOUND 315
definesound DUKE_FART_SOUND fart2.voc 0 0 3 0 0
//
//
//
//
//
//
//
//
//
//
//
state genericshrunkcode
ifcount 32 { ifpdistl SQUISHABLEDISTANCE pstomp }
else { sizeto 9 8 spawn FRAMEEFFECT1 }
ends
move SHUTTLEVELS 16
actor SPACESHUTTLE TOUGH
// ifmove 0 { move SHUTTLEVELS getv geth }
enda
actor SATELLITE TOUGH
// ifmove 0 { move SHUTTLEVELS getv geth }
// ifcount 120 move SHUTTLEVELS getv geth randomangle
enda
action ASHARKCRUZING 0 8 5 1 24
action ASHARKFLEE 0 8 5 1 10
action ASHARKATACK 0 8 5 1 6
action ASHARKSHRUNK 0 8 5 1 24
action ASHARKFROZEN 0 1 5 1 24
move SHARKVELS SHARK_STANDARD_CRUISEVEL
move SHARKFASTVELS SHARK_STANDARD_FASTVEL
move SHARKFLEEVELS SHARK_STANDARD_FLEEVEL
actor SHARK SHARKSTRENGTH ASHARKCRUZING SHARKVELS randomangle geth
ifaction ASHARKSHRUNK
{
ifcount SHRUNKDONECOUNT action ASHARKCRUZING
else ifcount SHRUNKCOUNT sizeto 24 24
else state genericshrunkcode
}
else ifaction ASHARKFROZEN
{
fall
ifcount THAWTIME { action ASHARKFLEE getlastpal }
else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
killit
}
else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
else ifaction ASHARKFLEE
{
ifcount 16 ifrnd 48 { action ASHARKCRUZING move SHARKVELS randomangle geth }
}
else ifaction ASHARKCRUZING
{
ifcansee ifcount 48 ifrnd 2 { action ASHARKATACK move SHARKFASTVELS faceplayerslow getv break }
ifcount 32 ifnotmoving
{
ifrnd 128 move SHARKVELS randomangle geth
else move SHARKFASTVELS randomangle geth
}
}
else ifaction ASHARKATACK
{
ifcount 4
{
ifpdistl 1280
{
ifp palive ifcanshoottarget
{
sound DUKE_GRUNT
palfrom 32 32
addphealth SHARKBITESTRENGTH
}
action ASHARKFLEE
move SHARKFLEEVELS fleeenemy
}
}
else ifnotmoving
{ ifcount 32 { action ASHARKCRUZING move SHARKVELS randomangle geth } }
else ifcount 48 ifrnd 2
{ action ASHARKCRUZING move SHARKFASTVELS randomangle geth }
}
ifhitweapon
{
// BLOCKINSERT: SUNSHARK_MOREGORE_STATECALL - sshkgore!
ifdead
{ sound SQUISHED guts JIBS6 5 killit }
else
{
ifwasweapon SHRINKSPARK
{
action ASHARKSHRUNK
sound ACTOR_SHRINKING
}
else ifwasweapon FREEZEBLAST
{
action ASHARKFROZEN
sound SOMETHINGFROZE
move 0
}
else move SHARKVELS randomangle geth
}
}
enda
action BLIMPWAITTORESPAWN
state blimphitstate
cstat 0
spawn FIRSTGUNSPRITE
spawn EXPLOSION2
debris SCRAP1 BLIMP_SCRAP1 // Weapons and ammo!
debris SCRAP2 BLIMP_SCRAP2
debris SCRAP3 BLIMP_SCRAP3
debris SCRAP4 BLIMP_SCRAP4
debris SCRAP5 BLIMP_SCRAP5
debris SCRAP1 SUNBLIMPGOODIES_SCRAP1 // Weapons and ammo!
debris SCRAP2 SUNBLIMPGOODIES_SCRAP2
debris SCRAP3 SUNBLIMPGOODIES_SCRAP3
debris SCRAP4 SUNBLIMPGOODIES_SCRAP1
debris SCRAP5 SUNBLIMPGOODIES_SCRAP2
sound PIPEBOMB_EXPLODE
ifrespawn { action BLIMPRESPAWNTIME move 0 cstat 32768 }
else killit
ends
actor BLIMP 1
ifaction BLIMPWAITTORESPAWN
{
ifcount RESPAWNACTORTIME
{
action 0
cstat 0
move 0
}
break
}
ifhitweapon
{
ifwasweapon RADIUSEXPLOSION state blimphitstate
ifwasweapon RPG state blimphitstate
strength 1
}
enda
state rats
ifrnd MORERAT_FREQ1 spawn RAT
ifrnd MORERAT_FREQ1 spawn RAT
ifrnd MORERAT_FREQ1 spawn RAT
ifrnd MORERAT_FREQ1 spawn RAT
ifrnd MORERAT_FREQ1 spawn RAT
ifrnd MORERAT_FREQ1 spawn RAT
ifrnd MORERAT_FREQ1 spawn RAT
ifrnd MORERAT_FREQ1 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd MORERAT_FREQ2 spawn RAT
ifrnd RAT_FREQ1 spawn RAT
ifrnd RAT_FREQ1 spawn RAT
ifrnd RAT_FREQ1 spawn RAT
ifrnd RAT_FREQ1 spawn RAT
ifrnd RAT_FREQ1 spawn RAT
ifrnd RAT_FREQ1 spawn RAT
ifrnd RAT_FREQ1 spawn RAT
ifrnd RAT_FREQ1 spawn RAT
ends
move RESPAWN_ACTOR_FLAG
// BLOCKINSERT: SUNBURSTINGRATS_INSERTBLOCK22 - sburrats!
// BLOCKINSERT: SUNBURSTINGRATS_INSERTBLOCK33 - sburrats!
move RATMOVEMENT 80 0
move RATMOVEMENT_ROMCAN 80 0
move RATMOVEMENT_DEVII 80 0
actor RAT
ifspritepal 1 spritepal 1 else ifspritepal 2 spritepal 2 else ifspritepal 3 spritepal 3 else spritepal 0
ifspawnedby EXPLOSION2
{
cstat 32768
move RATMOVEMENT DEVII_GROUNDBURSTSIZE geth randomangle
spritepal 1
stopsound RATTY
}
ifspawnedby SMALLSMOKE
{
cstat 32768
move RATMOVEMENT DEVII_GROUNDBURSTSIZE geth randomangle
spritepal 8
stopsound RATTY
}
ifspritepal 1
{ ifrnd DEVII_EXPLOSION_FREQUENCY
ifrnd DEVII_EXPLOSION_FREQUENCY
{
stopsound RATTY
hitradius DEVII_BLAST_RADIUS WEAKEST WEAK MEDIUMSTRENGTH TOUGH
ifrnd DEVII_SHOOTBOOMFREQ1 { move DEVII_GROUNDBURSTSIZE getv randomangle shoot MORTER }
ifrnd DEVII_SHOOTBOOMFREQ2 { move DEVII_GROUNDBURSTSIZE 0 randomangle shoot COOLEXPLOSION1 }
ifrnd DEVII_SHOOTBOOMFREQ1 { move DEVII_GROUNDBURSTSIZE getv randomangle shoot MORTER }
ifrnd DEVII_SHOOTBOOMFREQ2 { move DEVII_GROUNDBURSTSIZE 0 randomangle shoot COOLEXPLOSION1 }
debris SCRAP1 DEVII_SECONDARYDEBRISNUM1
debris SCRAP2 DEVII_SECONDARYDEBRISNUM2
debris SCRAP3 DEVII_SECONDARYDEBRISNUM1
debris SCRAP4 DEVII_SECONDARYDEBRISNUM2
spawn EXPLOSION2
spawn BURNING
state random_explosion_sounds
killit
break
}
ifrnd 64 spawn SMALLSMOKE
}
ifspritepal 8 { ifrnd ROMCAN_EXPOSLOSION_FREQUENCY
ifrnd ROMCAN_EXPOSLOSION_FREQUENCY
{
stopsound RATTY
ifhitspace
{
sound PIPEBOMB_EXPLODE
ifrnd 3 { spawn EXPLOSION2
hitradius DEVII_BLAST_RADIUS WEAKEST WEAK MEDIUMSTRENGTH TOUGH
state random_explosion_sounds
}
spawn FIRE
killit
break
}
}
ifrnd 64 spawn SMALLSMOKE
}
resetactioncount
ifspawnedby EXPLOSION2BOT { cstat 32768 stopsound RATTY spritepal 2 move RATMOVEMENT MEGABOMB_SECONDARY_SPREAD geth randomangle }
ifrnd MEGABOMB_SECONDARY_DETONATE_FREQ ifrnd MEGABOMB_SECONDARY_DETONATE_FREQ
{
ifspritepal 2 {
stopsound RATTY
spawn EXPLOSION2
spawn FIRE2
state random_explosion_sounds
hitradius MEGABOMB_SECONDARY_BLASTRADIUS WEAKEST WEAK MEDIUMSTRENGTH TOUGH
debris SCRAP1 MEGABOMB_SECONDARY_DEBRISNUM1
debris SCRAP2 MEGABOMB_SECONDARY_DEBRISNUM2
debris SCRAP3 MEGABOMB_SECONDARY_DEBRISNUM3
debris SCRAP4 MEGABOMB_SECONDARY_DEBRISNUM4
ifrnd MEGABOMB_SECONDARY_MORTERSHOOTFREQ { shoot MORTER }
ifrnd MEGABOMB_SECONDARY_FIRELASERSHOOTFREQ { shoot FIRELASER }
ifrnd MEGABOMB_SECONDARY_COOLEXPLOSION1FREQ { shoot COOLEXPLOSION1 }
ifrnd MEGABOMB_SECONDARY_RPGSHOOTFREQ { shoot RPG }
killit
break
}
}
resetactioncount
// BLOCKINSERT: SUNBURSTINGRATS_INSERTBLOCK11 - sburrats!
enda
action RUBCANDENT 1 1 1 1 1
action RUBCAN
state hit_duke_ricochet
sound DUKE_LONGTERM_PAIN // Sound a pain
palfrom 32 33 // palette the screen
addphealth HEALTHDEDUCT // deduct 5 points of health
ifrnd HEADFREQ wackplayer // wack player on head
ends
actor RUBBERCAN WEAK
ifaction RUBCANDENT { ifactioncount 6 { strength 0 action RUBCAN break } }
else ifhitweapon
{
ifwasweapon RADIUSEXPLOSION
{
state rats
ifrnd 48 spawn BURNING
ifrnd RICOFREQ {
sound PISTOL_RICOCHET // sound a ricochet 50 % of the time.
ifrnd RICOHITFREQ state hit_duke_ricochet
}
debris SCRAP2 60
debris SCRAP3 72
killit }
else
ifwasweapon SHOTSPARK1
{
action RUBCANDENT // Dent the can
ifrnd RICOFREQ {
sound PISTOL_RICOCHET // sound a ricochet 50 % of the time.
ifrnd RICOHITFREQ state hit_duke_ricochet
}
ifrnd DEBRISFREQ lotsofglass NUMGLASS
ifrnd DEBRISFREQ debris SCRAP1 NUMDEBRIS1
ifrnd DEBRISFREQ debris SCRAP2 NUMDEBRIS2
ifrnd DEBRISFREQ debris SCRAP3 NUMDEBRIS3
ifrnd DEBRISFREQ debris SCRAP4 NUMDEBRIS4
ifrnd DEBRISFREQ debris SCRAP5 NUMDEBRIS5
ifrnd DEBRISFREQ debris SCRAP6 NUMDEBRIS6
ifrnd RUBBER_SHOOT_MORTER_FREQ { move 0 0 randomangle shoot MORTER }
}
else action RUBCANDENT
}
enda
state headhitstate
// Unrem the following line to involving screen tilting during
// low player hitpoint damage.
// wackplayer
ends
action EXPBARRELFRAME 0 2 1 1 15
// OLD BARREL CODE WAS HERE
action BURNING_FLAME 0 12 1 1 2
move BURNING_VELS
state burningstate
ifgapzl 16 break
ifspawnedby RAT { sizeto 52 52 } else ifpdistg 10240 break
ifcount 128
{
ifspawnedby TIRE
{
ifactioncount 512
{
sizeto 16 16
killit
}
ifrnd 16 sizeto 64 48
}
else
{
sizeto 8 8 sizeto 8 8
ifactioncount 192 killit
}
}
else
{
ifmove 0 move BURNING_VELS
ifspawnedby BOX
{ sizeto 32 32 ifcount 32 { spawn SMALLSMOKE killit } }
else ifspawnedby TREE1 sizeto 96 96
else ifspawnedby TREE2 sizeto 96 96
else ifspawnedby APLAYER { sizeto 40 40 sizeto 40 40 }
else sizeto 52 52
ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 24 16 }
}
ends
actor BURNING WEAK BURNING_FLAME
state burningstate
enda
actor BURNING2 WEAK BURNING_FLAME
state burningstate
enda
define BLOODYFOUNTAIN_SPIT 310
definesound BLOODYFOUNTAIN_SPIT bspit.voc BLDFOUN_RANDOMPITVAR1 BLDFOUN_RANDOMPITVAR2 3 0 0
action TOILETWATERFRAMES 0 4 1 1 1
actor TOILETWATER 0 TOILETWATERFRAMES
spritepal 10
ifrnd BLOODY_FOUNTAIN_SPLATFREQ
{
move 0 0 randomangle
shoot BLOODSPLAT1
move 0 0 randomangle
shoot BLOODSPLAT2
move 0 0 faceplayer
ifrnd BLOODY_FOUNTAIN_JIBSFREQ guts JIBS6 BLOODY_FOUNTAIN_JIBSAMOUNT
}
ifrnd BLOODY_FOUNTAIN_SPITFREQ { move 0 0 faceplayer sound BLOODYFOUNTAIN_SPIT shoot SPIT }
ifpdistl 8192
{
soundonce WATER_GURGLE
ifspawnedby TOILET sizeto 34 34
else
{
ifspawnedby WATERFOUNTAINBROKE
sizeto 6 15
else ifspawnedby TOILETWATER { } else sizeto 24 32
}
ifp palive ifpdistl RETRIEVEDISTANCE ifp pfacing ifactioncount 32
ifphealthl MAXPLAYERHEALTH ifhitspace ifcansee
{
addphealth DRINK_TOILETWATER_HEALTHGAIN
globalsound DUKE_DRINKING
resetactioncount
}
}
enda
action WOODENHORSEFRAME 0 1 4
action WOODENFALLFRAME 122 1 5
actor HORSEONSIDE WEAKEST cactor WOODENHORSE action WOODENFALLFRAME enda
actor WOODENHORSE WEAK WOODENHORSEFRAME
fall
ifhitweapon
{
ifdead
{
debris SCRAP1 4
debris SCRAP2 3
killit
}
else action WOODENFALLFRAME
}
enda
state steamcode
ifpdistl 8192 soundonce STEAM_HISSING
ifcount 20
{
ifspawnedby FECES { ifrnd 16 killit else move 0 0 -faceplayer }
resetcount
ifp palive ifpdistl 1024
{
addphealth STEAM_HURT_HEALTHDEDUCT
palfrom 16 16
}
}
else
{
ifspawnedby STEAM break ifspawnedby CEILINGSTEAM break
sizeto 24 24
}
ends
action STEAMFRAMES 0 5 1 1 1
actor STEAM 0 STEAMFRAMES
state steamcode
enda
actor CEILINGSTEAM 0 STEAMFRAMES
state steamcode
enda
actor WATERBUBBLEMAKER 0 0 randomangle
ifpdistl 3084 ifrnd 24 spawn WATERBUBBLE
enda
action BUBBLE
action CRACKEDBUBBLE 1
move BUBMOVE -10 -36
move BUBMOVEFAST -10 -52
actor WATERBUBBLE 0 BUBBLE BUBMOVE getv geth randomangle
ifaction CRACKEDBUBBLE
{
ifinwater ifrnd 192 killit
ifactioncount 7 killit
}
else
{
ifcount 4
{
ifrnd 192 move BUBMOVE getv geth randomangle
else move BUBMOVEFAST getv geth randomangle
resetcount
}
ifonwater
{
iffloordistl 8 action CRACKEDBUBBLE
}
else ifactioncount 40 action CRACKEDBUBBLE
}
enda
define CLOUD_BURST_SOUND 316
definesound CLOUD_BURST_SOUND cldbust.voc 0 0 128 0 0
move DUMMYMOVERPGFIRESTROM 10 0
state devistatorii
ifrnd DEVII_SATEXPL_FREQ1 { spawn RAT }
ifrnd DEVII_SATEXPL_FREQ1 { spawn RAT }
ifrnd DEVII_SATEXPL_FREQ1 { spawn RAT }
ifrnd DEVII_SATEXPL_FREQ2 { spawn RAT }
ifrnd DEVII_SATEXPL_FREQ2 { spawn RAT }
ifrnd DEVII_SATEXPL_FREQ2 { spawn RAT }
ifrnd DEVII_SATEXPL_FREQ2 { spawn RAT }
ifrnd DEVII_SATEXPL_FREQ3 { spawn RAT }
ifrnd DEVII_SATEXPL_FREQ3 { spawn RAT }
ifrnd DEVII_SATEXPL_FREQ3 { spawn RAT }
ifrnd DEVII_SATEXPL_FREQ3 { spawn RAT }
ifrnd DEVII_SATEXPL_FREQ3 { spawn RAT }
ifrnd DEVII_SPONTMORTFREQ ifrnd DEVII_SPONTMORTFREQ { move DUMMYMOVERPGFIRESTROM geth getv randomangle shoot MORTER }
ifrnd DEVII_SATEXPL_DEBRIS_FREQ debris SCRAP1 DEVII_SATEXPL_NUMDEBRIS1
ifrnd DEVII_SATEXPL_DEBRIS_FREQ debris SCRAP2 DEVII_SATEXPL_NUMDEBRIS2
ifrnd DEVII_SATEXPL_DEBRIS_FREQ debris SCRAP3 DEVII_SATEXPL_NUMDEBRIS1
ifrnd DEVII_SATEXPL_DEBRIS_FREQ debris SCRAP4 DEVII_SATEXPL_NUMDEBRIS2
ifrnd DEVII_SATEXPL_DEBRIS_FREQ lotsofglass DEVII_SATEXPL_NUMGLASS
ends
state romancandle
ifrnd ROMCAN_FIREBALLEXPL_FREQ1 ifrnd ROMCAN_FIREBALLEXPL_FREQ1 {
ifrnd ROMCAN_FIREBALLEXPL_FREQ1 spawn RAT spawn EXPLOSION2BOT sound CLOUD_BURST_SOUND }
ifrnd ROMCAN_FIREBALLEXPL_FREQ1 ifrnd ROMCAN_FIREBALLEXPL_FREQ1 {
ifrnd ROMCAN_FIREBALLEXPL_FREQ1 spawn RAT spawn EXPLOSION2BOT sound CLOUD_BURST_SOUND }
ifrnd ROMCAN_FIREBALLEXPL_FREQ1 ifrnd ROMCAN_FIREBALLEXPL_FREQ1 {
ifrnd ROMCAN_FIREBALLEXPL_FREQ1 spawn RAT spawn EXPLOSION2BOT sound CLOUD_BURST_SOUND }
ifrnd ROMCAN_FIREBALLEXPL_FREQ2 ifrnd ROMCAN_FIREBALLEXPL_FREQ2 {
ifrnd ROMCAN_FIREBALLEXPL_FREQ2 spawn RAT spawn EXPLOSION2BOT sound CLOUD_BURST_SOUND }
ifrnd ROMCAN_FIREBALLEXPL_FREQ2 ifrnd ROMCAN_FIREBALLEXPL_FREQ2 {
ifrnd ROMCAN_FIREBALLEXPL_FREQ2 spawn RAT spawn EXPLOSION2BOT sound CLOUD_BURST_SOUND }
ifrnd ROMCAN_FIREBALLEXPL_FREQ2 ifrnd ROMCAN_FIREBALLEXPL_FREQ2 {
ifrnd ROMCAN_FIREBALLEXPL_FREQ2 spawn RAT spawn EXPLOSION2BOT sound CLOUD_BURST_SOUND }
ifrnd ROMCAN_FIREBALLEXPL_FREQ2 ifrnd ROMCAN_FIREBALLEXPL_FREQ2 {
ifrnd ROMCAN_FIREBALLEXPL_FREQ2 spawn RAT spawn EXPLOSION2BOT sound CLOUD_BURST_SOUND }
ifrnd ROMCAN_FIREBALLEXPL_FREQ3 ifrnd ROMCAN_FIREBALLEXPL_FREQ3 {
ifrnd ROMCAN_FIREBALLEXPL_FREQ3 spawn RAT spawn EXPLOSION2BOT sound CLOUD_BURST_SOUND }
ifrnd ROMCAN_FIREBALLEXPL_FREQ3 ifrnd ROMCAN_FIREBALLEXPL_FREQ3 {
ifrnd ROMCAN_FIREBALLEXPL_FREQ3 spawn RAT spawn EXPLOSION2BOT sound CLOUD_BURST_SOUND }
ifrnd ROMCAN_FIREBALLEXPL_FREQ3 ifrnd ROMCAN_FIREBALLEXPL_FREQ3 {
ifrnd ROMCAN_FIREBALLEXPL_FREQ3 spawn RAT spawn EXPLOSION2BOT sound CLOUD_BURST_SOUND }
ifrnd ROMCAN_FIREBALLEXPL_FREQ3 ifrnd ROMCAN_FIREBALLEXPL_FREQ3 {
ifrnd ROMCAN_FIREBALLEXPL_FREQ3 spawn RAT spawn EXPLOSION2BOT sound CLOUD_BURST_SOUND }
ifrnd ROMCAN_FIREBALLEXPL_FREQ3 ifrnd ROMCAN_FIREBALLEXPL_FREQ3 {
ifrnd ROMCAN_FIREBALLEXPL_FREQ3 spawn RAT spawn EXPLOSION2BOT sound CLOUD_BURST_SOUND }
ends
move SMOKEVEL 8 -16
move ENGINE_SMOKE 64 -64
move SMOKESHOOTOUT -192
action SMOKEFRAMES 0 4 1 1 10
actor SMALLSMOKE 0 SMOKEFRAMES
ifmove 0
{
ifspawnedby RECON
move SMOKESHOOTOUT geth
else ifspawnedby SECTOREFFECTOR
move ENGINE_SMOKE geth getv
else move SMOKEVEL geth getv faceplayer
ifspawnedby RPG
cstat 2
}
ifspawnedby RPG { ifhitspace { ifrnd ROMCAN_COLORFLAMESPAWN_FREQ state romancandle } }
ifpdistl SMALLSMOKE_RPGTRAIL_DISTANCE ifspawnedby RPG killit
ifactioncount SMALLSMOKE_RPGTRAIL_DURATION killit
enda
action BARREL_DENTING 2 2 1 1 6
action BARREL_DENTED 1
action BARREL_DENTED2 2
move SPAWNED_BLOOD
// DO NOTHING
// DO NOTHING
actor NUKEBARREL MEDIUMSTRENGTH
ifsquished
{
debris SCRAP1 32
spawn BLOODPOOL
spawn OOZ
killit
}
fall
ifaction BARREL_DENTING
{
ifactioncount 2
{
debris SCRAP1 10
ifrnd 2 spawn BLOODPOOL
killit
}
}
else ifhitweapon
{
ifdead
{
sound VENT_BUST
ifrnd 128
spawn BLOODPOOL
action BARREL_DENTING
}
else
{
ifaction 0
action BARREL_DENTED
else ifaction BARREL_DENTED
{
action BARREL_DENTED2
spawn BLOODPOOL
}
else ifaction BARREL_DENTED2
action BARREL_DENTING
}
}
enda
state burningbarrelcode
fall
ifcount 32
{
resetcount
ifp palive ifpdistl BURNINGBAREEL_HURTDISTANCE ifp phigher
{
addphealth BURNINGBARREL_HEALTHDEDUCT
palfrom 16 16
ifrnd 128 sound DUKE_LONGTERM_PAIN
}
}
ifhitweapon
{
sound VENT_BUST
debris SCRAP1 10
ifrnd 128 spawn BURNING
else spawn BURNING2
killit
}
ends
actor FIREBARREL state burningbarrelcode enda
actor FIREVASE state burningbarrelcode enda
action SHRINKERFRAMES 0 4 1 1 10
actor SHRINKEREXPLOSION 0 SHRINKERFRAMES
ifactioncount 4
{
killit
}
enda
// BLOCKINSERT: SUNRPGFIRESTORM_BLOCK22 - srpgfire!
state megabombfirestorm
ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ1 spawn RAT
ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ1 spawn RAT
ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ2 spawn RAT
ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ2 spawn RAT
ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ3 spawn RAT
ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ3 spawn RAT
ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ4 spawn RAT
ifrnd MEGABOMB_SPAWN_SECONDARY_FREQ4 spawn RAT
debris SCRAP1 MEGABOMB_PRIMARY_NUMDEBRIS1
debris SCRAP2 MEGABOMB_PRIMARY_NUMDEBRIS2
debris SCRAP3 MEGABOMB_PRIMARY_NUMDEBRIS3
debris SCRAP4 MEGABOMB_PRIMARY_NUMDEBRIS4
lotsofglass MEGABOMB_PRIMARY_NUMGLASS
ifrnd MEGABOMB_PRIMARY_SHOOTMORTER1 { move 10 0 randomangle shoot MORTER }
ifrnd MEGABOMB_PRIMARY_SHOOTMORTER1 { move 10 0 randomangle shoot MORTER }
ifrnd MEGABOMB_PRIMARY_SHOOTMORTER2 { move 10 0 randomangle shoot MORTER }
ifrnd MEGABOMB_PRIMARY_SHOOTMORTER2 { move 10 0 randomangle shoot MORTER }
ifrnd MEGABOMB_PRIMARY_SHOOTMORTER3 { move 10 0 randomangle shoot MORTER }
ifrnd MEGABOMB_PRIMARY_SHOOTMORTER3 { move 10 0 randomangle shoot MORTER }
ends
action EXPLOSION_BALLFRAMES -328 12 1 1 6
action EXPLOSION_BALLFRAMES2 -328 10 1 1 6
move BALLMOVE FIREBALL_SIDESPEED FIREBALL_DOWNSPEED
move BALLMOVEUA FIREBALL_SIDESPEED FIREBALL_DOWNSPEED
action EXPLOSION_FRAMES 0 20 1 1 4
actor EXPLOSION2 1 EXPLOSION_FRAMES
ifactioncount DEVII_DELAYCOUNT { ifspawnedby RPG { ifhitspace state devistatorii } }
ifactioncount 20 killit
enda
actor EXPLOSION2BOT 1 EXPLOSION_FRAMES
ifspawnedby SMALLSMOKE
{
sizeto ROMCAN_CLOUDBURSTSIZE ROMCAN_CLOUDBURSTSIZE
ifaction EXPLOSION_FRAMES
{
action EXPLOSION_BALLFRAMES
move BALLMOVEUA geth getv randomangle
ifrnd 64 spritepal 2 else
ifrnd 64 spritepal 1 else
ifrnd 64 spritepal 10 else
ifrnd 64 spritepal 8 else
ifrnd 64 spritepal 6 else
ifrnd 64 spritepal 7
}
ifactioncount 6
ifpdistg ROMAN_CANDLE_PLAYERSAFEDIST
ifrnd ROMCAN_CLOUDBURSTSHOOTMORTERFREQ
ifrnd ROMCAN_CLOUDBURSTSHOOTMORTERFREQ shoot MORTER
iffloordistl 16 { ifrnd ROMCAN_EXPOSLOSION_FREQUENCY
spawn FIRE
killit } else ifactioncount 16 resetactioncount
}
ifactioncount MEGABOMB_DELAY_COUNT { ifspawnedby HEAVYHBOMB { state megabombfirestorm } }
ifspawnedby LIZTROOP
{ sizeto 7 7
ifaction EXPLOSION_FRAMES
{
action EXPLOSION_BALLFRAMES
move BALLMOVEUA getv geth randomangle
}
iffloordistl 16 killit else ifactioncount 16 resetactioncount
}
ifactioncount 20 killit
enda
action FFLAME_FR 0 16 1 1 1
action FFLAME 0 1 1 1 1
actor FLOORFLAME 0 FFLAME_FR
ifaction FFLAME_FR
{
ifpdistl 1024 hitradius 1024 WEAKEST WEAKEST WEAKEST WEAKEST
ifactioncount 16
action FFLAME
}
ifaction FFLAME ifrnd 4
{
action FFLAME_FR
sound CAT_FIRE
resetactioncount
}
enda
action ASATNSPIN 0 5 1 1 TURRET_STANDARD_SPIN_SPEED
action ASATSHOOTING -10 3 5 1 40
action ASATWAIT 0 1 5 1 1
move TURRVEL
actor ROTATEGUN ROTTURRETSTRENGTH
// ASATSHOOTING TURRVEL faceplayer
ifaction 0
{
action ASATSHOOTING
move TURRVEL faceplayer
}
else ifaction ASATNSPIN
{ ifactioncount TURRET_STANDARD_SPIN_TIME { action ASATWAIT move TURRVEL faceplayer } }
else ifaction ASATSHOOTING
{
ifactioncount 12 { ifrnd TURRET_STANDARD_STOPATTACK_FREQ action ASATWAIT }
ifcount 32 resetcount
else ifcount 16 { ifcount 17 { } else { sound PRED_ATTACK shoot FIRELASER } }
else ifcount 4 { ifcount 5 { } else { ifcansee ifcanshoottarget { sound PRED_ATTACK shoot FIRELASER } } }
}
else ifaction ASATWAIT
{ ifactioncount 64 ifrnd TURRET_STANDARD_ATTACK_FREQ ifp palive ifcansee { action ASATSHOOTING move TURRVEL faceplayer } }
ifhitweapon { ifdead { addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit }
else { action ASATNSPIN debris SCRAP1 4 } move 0 }
enda
state checkforcefieldshootback
ifrnd FORCEFIELD_SHOOT_FIRELASER shoot FIRELASER else
ifrnd FORCEFIELD_SHOOT_COOLEXPLOSION1 shoot COOLEXPLOSION1 else
ifrnd FORCEFIELD_SHOOT_RPG shoot RPG else
ifrnd FORCEFIELD_SHOOT_MORTER shoot MORTER
ends
action RIP_F 0 8 1 1 1
actor FORCERIPPLE 0 RIP_F
ifactioncount 5 ifrnd FORCEFEILD_SHOOTBACK_FREQ state checkforcefieldshootback
ifactioncount 8 killit
enda
action TRANSFOWARD 0 6 1 1 2
action TRANSBACK 5 6 1 -1 2
actor TRANSPORTERSTAR 0 TRANSFOWARD
ifaction TRANSFOWARD
{
ifactioncount 6
action TRANSBACK
}
else
ifactioncount 6 killit
enda
action BEAMFOWARD 0 4 1 1 9
actor TRANSPORTERBEAM 0 BEAMFOWARD
sizeto 32 64 sizeto 32 64 sizeto 32 64
ifactioncount 4 killit
enda
state getcode
ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
else globalsound DUKE_GET
palfrom 16 0 32
ifrespawn
{
move RESPAWN_ACTOR_FLAG
spawn RESPAWNMARKERRED
cstat 32768
}
else killit
ends
state randgetweapsnds
ifrnd 64 globalsound DUKE_GETWEAPON1
else ifrnd 96 globalsound DUKE_GETWEAPON2
else ifrnd 128 globalsound DUKE_GETWEAPON3
else ifrnd 140 globalsound DUKE_GETWEAPON4
else globalsound DUKE_GETWEAPON6
ends
state getweaponcode
state randgetweapsnds
palfrom 32 0 32
ifgotweaponce 1 break
ifrespawn
{
move RESPAWN_ACTOR_FLAG
spawn RESPAWNMARKERRED
cstat 32768
}
else killit
ends
state respawnit
ifcount RESPAWNITEMTIME { spawn TRANSPORTERSTAR move 0 cstat 0 sound TELEPORTER }
ends
state quikget
ifactor ATOMICHEALTH globalsound GETATOMICHEALTH
else globalsound DUKE_GET
palfrom 16 0 32
killit
ends
state quikweaponget
state randgetweapsnds
palfrom 32 0 32
ifgotweaponce 1 break
killit
ends
actor STEROIDS
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE
ifpinventory GET_STEROIDS STEROID_AMOUNT ifcanseetarget
{
addinventory GET_STEROIDS STEROID_AMOUNT quote 37 state getcode
ifspawnedby STEROIDS state getcode
else state quikget
}
enda
actor HEATSENSOR
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HEATS HEAT_AMOUNT
ifcanseetarget
{
addinventory GET_HEATS HEAT_AMOUNT quote 101 state getcode
ifspawnedby HEATSENSOR state getcode
else state quikget
}
enda
actor BOOTS
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BOOTS BOOT_AMOUNT
ifcanseetarget
{
addinventory GET_BOOTS BOOT_AMOUNT quote 6
ifspawnedby BOOTS state getcode
else state quikget
}
enda
actor SHIELD
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SHIELD PSHIELD_AMOUNTXYZ
ifcanseetarget
{
ifspawnedby PIGCOP
{
ifrnd 128 addinventory GET_SHIELD PIG_SHIELD_AMOUNT1
else addinventory GET_SHIELD PIG_SHIELD_AMOUNT2
quote 104
sound KICK_HIT palfrom 24 0 32 killit
}
else addinventory GET_SHIELD PSHIELD_AMOUNTXYZ quote 38
ifspawnedby SHIELD state getcode
else state quikget
}
enda
actor AIRTANK
fall
state explosive_goodies
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SCUBA SCUBA_AMOUNT
ifcanseetarget
{
addinventory GET_SCUBA SCUBA_AMOUNT quote 39 state getcode
ifspawnedby AIRTANK state getcode
else state quikget
}
enda
action HOLODUKE_FRAMES 0 4 1 1 8
actor HOLODUKE 0 HOLODUKE_FRAMES
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_HOLODUKE HOLODUKE_AMOUNT
ifcanseetarget
{
addinventory GET_HOLODUKE HOLODUKE_AMOUNT quote 51 state getcode
ifspawnedby HOLODUKE state getcode
else state quikget
}
enda
actor JETPACK
fall
state explosive_goodies
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_JETPACK JETPACK_AMOUNT ifcanseetarget
{
addinventory GET_JETPACK JETPACK_AMOUNT quote 41 state getcode
ifspawnedby JETPACK state getcode
else state quikget
}
enda
actor ACCESSCARD
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
ifpinventory GET_ACCESS 0 break
addinventory GET_ACCESS 1
quote 43
state getcode
}
enda
// test boss_recod
actor AMMO
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
{
addammo PISTOL_WEAPON PISTOLAMMOAMOUNT quote 65
ifspawnedby AMMO state getcode
else state quikget
}
enda
actor FREEZEAMMO
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
{
addammo FREEZE_WEAPON FREEZEAMMOAMOUNT quote 66
ifspawnedby FREEZEAMMO state getcode
else state quikget
}
enda
actor SHOTGUNAMMO
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
{
addammo SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 69
ifspawnedby SHOTGUNAMMO state getcode
else state quikget
}
enda
actor AMMOLOTS
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
{
addammo PISTOL_WEAPON 48 quote 65
ifspawnedby AMMOLOTS state getcode
else state quikget
}
enda
actor CRYSTALAMMO
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
addammo SHRINKER_WEAPON CRYSTALAMMOAMOUNT quote 78
ifspawnedby CRYSTALAMMO state getcode
else state quikget
}
enda
actor BATTERYAMMO
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT quote 63
ifspawnedby BATTERYAMMO state getcode
else state quikget
}
enda
actor DEVISTATORAMMO
fall
state explosive_goodies
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
addammo DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 14
ifspawnedby DEVISTATORAMMO state getcode
else state quikget
}
enda
actor RPGAMMO
fall
state explosive_goodies
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
addammo RPG_WEAPON RPGAMMOBOX quote 64
ifspawnedby RPGAMMO state getcode
else state quikget
}
enda
actor HBOMBAMMO
fall
state explosive_goodies
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
addweapon HANDBOMB_WEAPON 1 quote 55
addammo HANDBOMB_WEAPON HANDBOMBBOX
ifspawnedby HBOMBAMMO state getweaponcode
else state quikweaponget
}
enda
actor RPGSPRITE
fall
state explosive_goodies
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
addweapon RPG_WEAPON RPGAMMOBOX quote 56
ifspawnedby RPGSPRITE state getweaponcode
else state quikweaponget
}
enda
// 531.89 GTE.
// IMA.
// PO BOX 4629
// Rocford ill, 61110-4629
// Ms. Lee
actor SHOTGUNSPRITE
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
ifspawnedby PIGCOP
{
addweapon SHOTGUN_WEAPON 0
ifrnd 64 addammo SHOTGUN_WEAPON 4
else ifrnd 64 addammo SHOTGUN_WEAPON 3
else ifrnd 64 addammo SHOTGUN_WEAPON 2
else addammo SHOTGUN_WEAPON 1
}
else
{
ifgotweaponce 0 break // Multiplayer only
addweapon SHOTGUN_WEAPON SHOTGUNAMMOAMOUNT quote 57
}
ifspawnedby SHOTGUNSPRITE state getweaponcode
else state quikweaponget
}
enda
actor SIXPAK
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH ifcanseetarget
{
addphealth 30 quote 62
ifspawnedby SIXPAK state getcode
else state quikget
}
enda
actor COLA
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH // ifcanseetarget
{
addphealth 10 quote 61
ifspawnedby COLA state getcode
else state quikget
}
enda
actor ATOMICHEALTH
fall
state explosive_goodies
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
ifphealthl MAXPLAYERATOMICHEALTH
{
addphealth 50 quote 19
ifspawnedby ATOMICHEALTH state getcode
else state quikget
}
enda
actor FIRSTAID
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6
ifpinventory GET_FIRSTAID FIRSTAID_AMOUNT ifcanseetarget
{
addinventory GET_FIRSTAID FIRSTAID_AMOUNT quote 3
ifspawnedby FIRSTAID state getcode
else state quikget
}
enda
actor FIRSTGUNSPRITE
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
ifgotweaponce 0 break
addweapon PISTOL_WEAPON 48
ifspawnedby FIRSTGUNSPRITE state getweaponcode
else state quikweaponget
}
enda
actor TRIPBOMBSPRITE
fall
state explosive_goodies
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
ifgotweaponce 0 break
addweapon TRIPBOMB_WEAPON 1
quote 58
ifspawnedby TRIPBOMBSPRITE state getweaponcode
else state quikweaponget
}
enda
actor CHAINGUNSPRITE
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
ifgotweaponce 0 break
addweapon CHAINGUN_WEAPON 50 quote 54
ifspawnedby CHAINGUNSPRITE state getweaponcode
else state quikweaponget
}
enda
actor SHRINKERSPRITE
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
ifgotweaponce 0 break
addweapon SHRINKER_WEAPON 10 quote 60
ifspawnedby SHRINKERSPRITE state getweaponcode
else state quikweaponget
}
enda
actor FREEZESPRITE
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
ifgotweaponce 0 break
addweapon FREEZE_WEAPON FREEZEAMMOAMOUNT quote 59
ifspawnedby FREEZESPRITE state getweaponcode
else state quikweaponget
}
enda
actor DEVISTATORSPRITE
fall
// BLOCKINSERT: SUNEXPLODINGGOODIES_BLOCKJJ - sexpgood!
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
ifgotweaponce 0 break // ( Multiplayer (mode 3) only )
addweapon DEVISTATOR_WEAPON DEVISTATORAMMOAMOUNT quote 87
ifspawnedby DEVISTATORSPRITE state getweaponcode
else state quikweaponget
}
enda
state firestate
ifgapzl 16 break
ifinwater killit
ifp palive ifpdistl 844 ifrnd 32 ifcansee { soundonce DUKE_LONGTERM_PAIN addphealth -1 palfrom 32 32 }
ifactor FIRE ifspawnedby FIRE break
else ifactor FIRE2 ifspawnedby FIRE2 break
else
ifspawnedby EXPLOSION2BOT
{ fall
ifspritepal 0 { sizeto 48 48 spritepal 5 }
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
ifspritepal 10 sizeto 24 24
ifrnd 2 spritepal 7 else ifrnd 2 spritepal 2 else ifrnd 2 spritepal 1 else ifrnd 2 spritepal 8 else ifrnd 2 spritepal 10
ifspritepal 7 ifrnd 4 killit
} else
ifspawnedby RAT
{ fall
ifspritepal 0 { sizeto 48 48 spritepal 5 }
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
ifspritepal 10 sizeto 24 24
ifrnd 2 spritepal 7 else ifrnd 2 spritepal 2 else ifrnd 2 spritepal 1 else ifrnd 2 spritepal 8 else ifrnd 2 spritepal 10
ifspritepal 7 ifrnd 4 killit
}
ifspritepal 0
{
iffloordistl 128
{
ifcount 32 sizeto 8 8
ifcount 64 killit
}
else killit
}
ends
action FIRE_FRAMES -1 14 1 1 1
move FIREVELS
actor FIRE WEAK FIRE_FRAMES FIREVELS state firestate enda
actor FIRE2 WEAK FIRE_FRAMES FIREVELS state firestate enda
actor FECES
ifspawnedby LIZTROOP sizeto TROOPER_FECESIZE TROOPER_FECESIZE else
ifspawnedby LIZMAN sizeto LIZMAN_FECESIZE LIZMAN_FECESIZE else
ifspawnedby OCTABRAIN sizeto OCTABRAIN_FECESIZE OCTABRAIN_FECESIZE else
ifspawnedby PIGCOP sizeto PIGCOP_FECESIZE PIGCOP_FECESIZE
// BLOCKINSERT: PIGCOPEXTRAGOREBLOCK3 - piggore1!
ifcount 24
{
fall
cstat 257
strength 1
ifpdistl SUNFECAL_FECE_TOXICITY_DIST
{
ifrnd SUNFECAL_FECE_TOXICITY_FREQ
{
sound FART_SOUND
ifrnd FECAL_SPAWN_FIRE spawn FIRE else
ifrnd FECAL_SPAWN_STEAM spawn STEAM
ifrnd SUNFECAL_FECE_SOUND_SMELLS
{
ifrnd 64 { soundonce DUKE_KILLED3 quote 133 }
else ifrnd 64 { soundonce DUKE_GASP quote 134 }
else ifrnd 64 { soundonce DUKE_SEARCH quote 135 }
sound DUKE_LONGTERM_PAIN
addphealth SUNFECAL_FECE_TOXICITY_STRENGTH
}
}
}
ifrnd FECALMATTER_RATSPAWNFREQ ifrnd FECALMATTER_RATSPAWNFREQ { spawn RAT sound FART_SOUND }
ifhitweapon { ifwasweapon RADIUSEXPLOSION { state killfeces } else ifwasweapon RPG { state killfeces } }
ifrnd FECALMATTER_EXPLODE_FREQ ifrnd FECALMATTER_EXPLODE_FREQ state explodefeces
ifp phigher { } else ifpdistl RETRIEVEDISTANCE
{
soundonce DUKE_STEPONFECES
sound STEPNIT
spawn BLOODPOOL // Will be brown
killit
}
}
else sizeto REG_FECESIZE REG_FECESIZE
enda
state drop_ammo ifrnd SPAWNAMMOODDS_AMMO spawn AMMO ends
state drop_battery ifrnd SPAWNAMMOODDS_BATTERYAMMO spawn BATTERYAMMO ends
state drop_sgshells ifrnd SPAWNAMMOODDS_SHOTGUNAMMO spawn SHOTGUNAMMO ends
state drop_shotgun ifrnd SPAWNAMMOODDS_SHOTGUNSPRITE spawn SHOTGUNSPRITE ends
state drop_chaingun
ifrnd SPAWNAMMOODDS
{
ifrnd 32 spawn CHAINGUNSPRITE
else spawn BATTERYAMMO
}
ends
state jib_sounds
ifrnd SWEARFREQUENCY
{
ifrnd SOUND_JIBACTOR_FREQ1 globalsound JIBBED_ACTOR1
else ifrnd SOUND_JIBACTOR_FREQ1 globalsound JIBBED_ACTOR2
else ifrnd SOUND_JIBACTOR_FREQ1 globalsound JIBBED_ACTOR3
else ifrnd SOUND_JIBACTOR_FREQ1 globalsound JIBBED_ACTOR5
else ifrnd SOUND_JIBACTOR_FREQ1 globalsound JIBBED_ACTOR6
else ifrnd SOUND_JIBACTOR_FREQ2 globalsound JIBBED_ACTOR10
else ifrnd SOUND_JIBACTOR_FREQ2 globalsound JIBBED_ACTOR7
else ifrnd SOUND_JIBACTOR_FREQ2 globalsound JIBBED_ACTOR4
else ifrnd SOUND_JIBACTOR_FREQ2 globalsound JIBBED_ACTOR8
else ifrnd SOUND_JIBACTOR_FREQ3 globalsound JIBBED_ACTOR13
else ifrnd SOUND_JIBACTOR_FREQ3 globalsound JIBBED_ACTOR9
else ifrnd SOUND_JIBACTOR_FREQ3 globalsound JIBBED_ACTOR11
else ifrnd SOUND_JIBACTOR_FREQ3 globalsound JIBBED_ACTOR12
}
ends
state standard_jibs
guts JIBS2 STND_JIBS_2
guts JIBS3 STND_JIBS_3
guts JIBS4 STND_JIBS_4
guts JIBS5 STND_JIBS_5
guts JIBS6 STND_JIBS_6
ifrnd BLOOD_FREQ { guts JIBS1 STND_JIBS_2 spawn BLOODPOOL } // spine
state jib_sounds
ends
action FEMSHRUNK
action FEMFROZEN1 1
action FEMFROZEN2
action FEMDANCE1 19 1 1 1 16
action FEMDANCE3 19 1 1 1 26
action FEMDANCE2 20 2 1 1 DANCERCONTROL_SPEED
action FEMANIMATE
action ADANCERSTATUE 20 1 1 10
action ADANCERSTATUEFALL 20 1 1 10
state checkdancerfall
iffloordistl 8 { fall } else { fall action ADANCERSTATUEFALL }
ends
state breakdancerstatue
iffloordistl 128 {
sound GLASS_BREAKING
addkills 1
state shootstatuedebris
killit
break
}
ends
state checkdancerstatuehit
ifdead
{
ifwasweapon RPG { sound SQUISHED state shootstatuedebris killit }
else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state shootstatuedebris addkills 1 state drop_ammo killit } else { strength 1 }
}
else
{
state shootstatuedebris
ifwasweapon SHOTSPARK1 sound PISTOL_RICOCHET
}
ends
state femcode
ifactor NAKED1 { } else ifactor FEM6 { } else
{
fall
ifactor BLOODYPOLE ifhitweapon ifdead
{ state standard_jibs killit }
}
ifaction FEMSHRUNK
{
ifcount SHRUNKDONECOUNT action FEMANIMATE
else ifcount SHRUNKCOUNT sizeto 40 40
else state genericshrunkcode
}
else ifaction FEMDANCE1 { ifactioncount 2 action FEMDANCE2 }
else ifaction FEMDANCE2 { ifactioncount DANCERCONTROL_TIME action FEMDANCE3 }
else ifaction FEMDANCE3 { ifactioncount 2 action FEMANIMATE }
else ifaction ADANCERSTATUE
{
ifactioncount 10 resetactioncount
ifhitweapon state checkdancerstatuehit
break
}
else ifaction ADANCERSTATUEFALL
{
iffloordistl 16 state breakdancerstatue
break
}
else ifaction FEMFROZEN1
{
ifcount THAWTIME { action FEMANIMATE getlastpal }
else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
respawnhitag
ifrnd 84 spawn BLOODPOOL
killit
}
else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
else ifaction FEMFROZEN2
{
ifcount THAWTIME { action FEMANIMATE getlastpal }
else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
ifrnd 84 spawn BLOODPOOL
respawnhitag
ifrnd 128 sound DUKE_HIT_STRIPPER1
else sound DUKE_HIT_STRIPPER2
killit
}
else ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
ifhitweapon
{
ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING count 0 action FEMSHRUNK break }
ifdead
{
ifwasweapon FREEZEBLAST
{
ifhitspace ifactor FEM1 { sound SOMETHINGFROZE spritepal 7 move 0 action ADANCERSTATUE state checkdancerfall strength DANCERSTATUESTRENGTH break } else
{
ifaction FEMSHRUNK break
ifactor NAKED1 action FEMFROZEN2
else ifactor FEM5 action FEMFROZEN2
else ifactor FEM6 action FEMFROZEN2
else ifactor FEM8 action FEMFROZEN2
else ifactor FEM9 action FEMFROZEN2
else ifactor PODFEM1 action FEMFROZEN2
else action FEMFROZEN1
move 0
spritepal 1
strength 0
sound SOMETHINGFROZE
break
}
}
ifrnd 128 sound DUKE_HIT_STRIPPER1
else sound DUKE_HIT_STRIPPER2
respawnhitag
state standard_jibs
shoot BLOODSPLAT1
shoot BLOODSPLAT2
shoot BLOODSPLAT3
shoot BLOODSPLAT4
spawn BLOODPOOL
ifactor FEM1 money 5
else ifactor FEM2 { money 7 cactor BARBROKE cstat 0 }
else ifactor FEM3 money 4
else ifactor FEM7 money 8
ifactor FEM5 { strength TOUGH cactor BLOODYPOLE }
else ifactor FEM6 { cstat 0 cactor FEM6PAD }
else ifactor FEM8 { strength TOUGH cactor BLOODYPOLE }
else
{
spritepal 6
soundonce LADY_SCREAM
ifactor NAKED1 debris SCRAP3 18
else ifactor PODFEM1 debris SCRAP3 18
killit
}
}
else
{
sound SQUISHED
guts JIBS6 1
ifactor FEM8 break
soundonce LADY_SCREAM
}
}
ends
state killme
ifp pfacing ifpdistl 1280 ifhitspace soundonce KILLME
ends
state tipme
ifp pfacing ifpdistl 1280 ifhitspace
{
tip
addphealth DANCER_TIP_HEALTHAMOUNT
ifrnd DANCER_SND1_FREQ soundonce DUKE_PISSRELIEF else
ifrnd DANCER_SND2_FREQ soundonce DUKE_USEMEDKIT else
ifrnd DANCER_SND3_FREQ soundonce DUKE_GETWEAPON1 else
soundonce JIBBED_ACTOR3
ifpdistl DANCER_TIP_DUKEHURTDIST {
pstomp
quote 122
addphealth -15
ifrnd 36 {
hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
spawn EXPLOSION2
money 5
debris SCRAP2 2
sound PIPEBOMB_EXPLODE
addphealth -10
}
}
ifrnd 128 soundonce DUKE_TIP1
else soundonce DUKE_TIP2
ifactor FEM1 action FEMDANCE1
}
ends
actor FEM1 TOUGH FEMANIMATE state tipme state femcode enda
actor FEM2 TOUGH FEMANIMATE state tipme state femcode enda
actor FEM3 TOUGH FEMANIMATE state tipme state femcode enda
actor FEM4 TOUGH FEMANIMATE state femcode enda
actor FEM5 TOUGH FEMANIMATE state killme state femcode enda
actor FEM6 TOUGH FEMANIMATE state killme state femcode enda
actor FEM7 TOUGH FEMANIMATE state tipme state femcode enda
actor FEM8 TOUGH FEMANIMATE state femcode enda
actor FEM9 TOUGH FEMANIMATE state femcode enda
actor NAKED1 TOUGH FEMANIMATE state killme state femcode enda
actor PODFEM1 TOUGH FEMANIMATE state killme state femcode enda
actor BLOODYPOLE TOUGH state femcode enda
actor STATUEFLASH fall // state statuehit
ifcount 32 cactor STATUE
enda
actor STATUE fall
ifp pfacing ifpdistl 1280 ifhitspace { cactor STATUEFLASH move 0 }
enda
actor MIKE
ifp pfacing ifpdistl 1280 ifhitspace mikesnd
enda
state troop_body_jibs
ifrnd TROOPER_HEAD_JIBFREQ guts HEADJIB1 1
ifrnd TROOPER_LEG_JIBFREQ guts LEGJIB1 2
ifrnd TROOPER_ARM_JIBFREQ guts ARMJIB1 1
ifrnd TROOPER_BLOODPOOL_FREQ spawn BLOODPOOL
ends
state liz_body_jibs
ifrnd LIZMAN_HEAD_JIBFREQ guts LIZMANHEAD1 1
ifrnd LIZMAN_LEG_JIBFREQ guts LIZMANLEG1 2
ifrnd LIZMAN_ARM_JIBFREQ guts LIZMANARM1 1
ifrnd LIZMAN_BLOODPOOL_FREQ spawn BLOODPOOL
ends
state delete_enemy killit ends
action BLOODFRAMES 0 4 1 1 15
actor BLOOD 0 BLOODFRAMES
sizeto 72 72 sizeto 72 72 sizeto 72 72
ifpdistg 3144 killit
ifactioncount 4 killit
enda
action EGGOPEN1 1 1 1 1 4
action EGGOPEN2 2 1 1 1 4
action EGGOPEN3 2 1 1 1 4
action EGGWAIT 0
action EGGFROZEN 1
action EGGSHRUNK 1
actor EGG TOUGH
ifaction 0
{
ifcount 64
{
ifrnd 128 { action EGGWAIT move 0 }
else
{
sound SLIM_HATCH
action EGGOPEN1
}
}
}
else ifaction EGGOPEN1 ifactioncount 4 action EGGOPEN2
else ifaction EGGOPEN2 ifactioncount 4 { spawn GREENSLIME action EGGOPEN3 }
else ifaction EGGSHRUNK
{
ifcount SHRUNKDONECOUNT action EGGOPEN2
else ifcount SHRUNKCOUNT sizeto 48 40
else state genericshrunkcode
}
else ifaction EGGFROZEN
{
ifcount THAWTIME { action 0 getlastpal }
else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
ifrnd 84 spawn BLOODPOOL
addkills 1
killit
}
// ifp pducking
ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
ifhitweapon
{
ifwasweapon SHRINKSPARK { move 0 sound ACTOR_SHRINKING action EGGSHRUNK break }
ifdead
{
ifwasweapon FREEZEBLAST
{ sound SOMETHINGFROZE spritepal 1 move 0 action EGGFROZEN strength 0 break }
addkills 1
sound SQUISHED
state standard_jibs
state delete_enemy
}
}
else ifaction EGGWAIT
{
ifcount 512 ifrnd 2
{
ifaction EGGSHRUNK break
sound SLIM_HATCH
action EGGOPEN1
}
}
enda
actor KNEE KNEE_WEAPON_STRENGTH enda
actor SPIT SPIT_WEAPON_STRENGTH enda
actor CHAINGUN CHAINGUN_WEAPON_STRENGTH enda
actor SHOTGUN SHOTGUN_WEAPON_STRENGTH enda
actor FIRELASER FIRELASER_WEAPON_STRENGTH enda
actor HEAVYHBOMB HANDBOMB_WEAPON_STRENGTH enda
actor BOUNCEMINE BOUNCEMINE_WEAPON_STRENGTH enda
actor MORTER MORTER_WEAPON_STRENGTH enda
actor SHRINKSPARK SHRINKER_WEAPON_STRENGTH enda
actor RPG RPG_WEAPON_STRENGTH enda
actor FREEZEBLAST FREEZETHROWER_WEAPON_STRENGTH enda
actor DEVISTATORBLAST FREEZETHROWER_WEAPON_STRENGTH enda
actor COOLEXPLOSION1 COOL_EXPLOSION_STRENGTH enda
actor TRIPBOMB TRIPBOMB_STRENGTH enda
action WEAP2FRAMES 0 4 1 1 1
actor SHOTSPARK1 PISTOL_WEAPON_STRENGTH WEAP2FRAMES
ifdead killit
ifactioncount 3 killit // was 4
else
{
ifactioncount 3 { ifinwater spawn WATERBUBBLE }
else ifcount 2 { } else ifonwater spawn WATERSPLASH2
}
enda
state standard_pjibs
guts JIBS1 DDPLAYER_JIBS1
guts JIBS2 DDPLAYER_JIBS2
guts JIBS3 DDPLAYER_JIBS3
guts JIBS4 DDPLAYER_JIBS4
guts JIBS5 DDPLAYER_JIBS5
guts JIBS6 DDPLAYER_JIBS6
guts DUKETORSO DDPLAYER_TORSO_JIB
guts DUKELEG DDPLAYER_LEG_JIB
guts DUKEGUN DDPLAYER_GUN_JIB
ifrnd DDPLAYER_THROWMONEY_FREQ money DDPLAYER_THROWMONEY_AMMT
ends
move DUKENOTMOVING
state handle_dead_dukes
fall
ifmove 0 // 1st time initializiation...
{
ifrnd 128 cstat 4
else cstat 0
move DUKENOTMOVING
}
ifsquished
{
sound SQUISHED
spawn OOZ
killit
}
else ifcount 1024 ifpdistg 4096 killit
else
{
strength 0
ifhitweapon ifwasweapon RADIUSEXPLOSION
{
state standard_jibs
killit
}
}
ends
action PLYINGFRAMES 0 1 0 1 1
actor DUKELYINGDEAD 0 PLYINGFRAMES
state handle_dead_dukes
enda
action PSTAND 0 1 5 1 1
action PEXPLODE 106 5 1 1 10
action PEXPLODEAD 113 1 1
action PJPHOUVER 15 1 5 1
action PWALK 20 4 5 1 16
action PRUN 20 4 5 1 10
action PWALKBACK 45 4 5 -1 16
action PRUNBACK 45 4 5 -1 10
action PJUMPING 50 4 5 1 30
action PFALLING 65 1 5
action PDUCKING 86 1 5
action PCRAWLING 86 3 5 1 20
action PAKICKING 40 2 5 1 25
action PFLINTCHING 106 1 1 1 10
action PTHROWNBACK 106 5 1 1 18
action PFROZEN 20 1 5
action PLYINGDEAD 113 1 1
action PSWIMMINGGO 375 1 5 1 10
action PSWIMMING 375 4 5 1 13
action PSWIMMINGWAIT 395 1 5 1 13
action PTREDWATER 395 2 5 1 17
// BLOCKINSERT: SUNAPLAYER_STATUEMAKER11 - sstatmk!
move PSTOPED
move PSHRINKING // used as a var only
state check_dead_thrown_back
ifdead
{
strength 0
action PTHROWNBACK
}
ends
state check_pstandard
ifp pwalking action PWALK
else ifp pkicking action PAKICKING
else ifp pwalkingback action PWALKBACK
else ifp prunning action PRUN
else ifp prunningback action PRUNBACK
else ifp pjumping
action PJUMPING
else ifp pducking action PDUCKING
ends
state random_wall_jibs
ifrnd RANDOM_WALLJIBS_FREQ1 shoot BLOODSPLAT1
ifrnd RANDOM_WALLJIBS_FREQ2 shoot BLOODSPLAT2
ifrnd RANDOM_WALLJIBS_FREQ3 shoot BLOODSPLAT3
ifrnd RANDOM_WALLJIBS_FREQ4 shoot BLOODSPLAT4
ifrnd RANDOM_WALLJIBS_FREQ5 shoot BLOODSPLAT1
ifrnd RANDOM_WALLJIBS_FREQ6 shoot BLOODSPLAT1
ifrnd RANDOM_WALLJIBS_FREQ7 shoot BLOODSPLAT2
ifrnd RANDOM_WALLJIBS_FREQ8 shoot BLOODSPLAT3
ifrnd RANDOM_WALLJIBS_FREQ9 shoot BLOODSPLAT4
ends
state checkplayerdump
ifrnd PDUMP_FECES_FREQ spawn FECES else
ifrnd PDUMP_FIRE_FREQ spawn FIRE2 else
ifrnd PDUMP_TROOPER_FREQ spawn LIZTROOP else
ifrnd PDUMP_LIZMAN_FREQ spawn LIZMAN else
ifrnd PDUMP_RAT_FREQ { state rats soundonce DUKE_FART_SOUND }
ifrnd PDUMP_FARTSOUND_FREQ soundonce DUKE_FART_SOUND else
ifrnd PDUMP_PISSSOUND_FREQ soundonce DUKE_PISSRELIEF
ends
actor APLAYER 100 PSTAND 0 0
ifaction 0 action PSTAND
ifphealthl DHMINIMUMBLEEDHEALTH
{
ifrnd DHBLEEDFREQUENCY ifrnd DHBLEEDFREQUENCY
{
ifrnd DHSHOWBLOODPOOL spawn BLOODPOOL
ifrnd DHSHOWDUKELEG guts DUKELEG DHNUMDUKELEGS
ifrnd DHSHOWJIBS2 guts JIBS2 DHNUMJIBS2
ifrnd DHSHOOTBLOODSPLATFREQ
{
state random_wall_jibs
ifrnd 96 shoot BLOODSPLAT1
}
addphealth DHLOSEHEALTH
ifrnd 32 wackplayer
palfrom 32 16
state random_duke_grunts
ifrnd 64 quote 130 else
ifrnd 64 quote 131 else
ifrnd 64 quote 132
}
}
ifdead
{
ifsquished palfrom 32 63 63 63
else fall
ifactioncount 7 { move 0 } else ifactioncount 6
{
ifmultiplayer { }
else
{
ifrnd 32 sound DUKE_KILLED5
else ifrnd 32 sound DUKE_KILLED3
else ifrnd 32 sound DUKE_KILLED1
else ifrnd 32 sound DUKE_KILLED2
}
}
ifaction PLYINGDEAD
{
ifactioncount 3 move PSTOPED
quote 13
ifhitspace
{
action PSTAND
spawn DUKELYINGDEAD
resetplayer
}
break
}
else ifaction PTHROWNBACK
{
ifactioncount 5
{
spawn BLOODPOOL
action PLYINGDEAD
}
else ifactioncount 1 move 0
break
}
else ifaction PFROZEN
{
cstat 257
palfrom 16 0 0 24
ifhitweapon
{
ifwasweapon FREEZEBLAST break
lotsofglass 60
ifrnd 84 spawn BLOODPOOL
getlastpal
sound GLASS_BREAKING
spawn ATOMICHEALTH
cstat 32768
action PLYINGDEAD
break
}
ifactioncount THAWTIME { getlastpal strength 1 move 0 action PSTAND }
else ifactioncount FROZENDRIPTIME { ifrnd 32 spawn WATERDRIP }
ifp pfacing // assumes some other player
ifpdistl FROZENQUICKKICKDIST pkick
break
}
else ifaction PEXPLODEAD
{
quote 13
ifhitspace
{
action PSTAND
resetplayer
}
break
}
else ifaction PEXPLODE
{
ifactioncount 5
{
action PEXPLODEAD
spawn BLOODPOOL
}
break
}
else ifp pshrunk
{
state standard_pjibs
spawn BLOODPOOL
sound SQUISHED
sound DUKE_DEAD
cstat 32768 // Hide the sprite
action PLYINGDEAD
}
else
{
ifinwater
{
action PLYINGDEAD
spawn WATERBUBBLE
spawn WATERBUBBLE
}
else
{
action PEXPLODE
state standard_pjibs
cstat 32768
sound SQUISHED
sound DUKE_DEAD
}
}
break
}
ifsquished
{
strength -1
sound SQUISHED
spawn OOZ
break
}
ifp ponsteroids
{
ifp pstanding { }
else spawn FRAMEEFFECT1
spritepal 19
cstat 0
sizeto DUKEINVINCE_SIZEX DUKEINVINCE_SIZEY // make duke grow
spawn FRAMEEFFECT1
ifcount 32 { sound DUKE_HARTBEAT palfrom 20 0 35 quote 124 resetcount }
}
else
ifspritepal 19 { ifcount 64 { { spritepal 0 quote 125 cstat 256 } }
else { sizeto 42 36 spawn FRAMEEFFECT1 } }
ifmove PSHRINKING
{
ifcount 32
{
ifcount SHRUNKDONECOUNT move 0
else ifcount SHRUNKCOUNT
{
sizeto 42 36
ifgapzl 24
{
strength 0
sound SQUISHED
palfrom 48 64
break
}
}
else ifp ponsteroids count SHRUNKCOUNT
}
else
{
ifp ponsteroids count SHRUNKCOUNT
else { sizeto 8 9 spawn FRAMEEFFECT1 }
}
}
else ifhitweapon
{
ifdead { ifmultiplayer sound DUKE_KILLED4 }
else
{
ifmultiplayer
{
ifphealthl YELLHURTSOUNDSTRENGTHMP
{
ifrnd 64 sound DUKE_LONGTERM_PAIN2
else ifrnd 64 sound DUKE_LONGTERM_PAIN3
else ifrnd 64 sound DUKE_LONGTERM_PAIN4
else sound DUKE_DEAD
}
else
{
ifrnd 64 sound DUKE_LONGTERM_PAIN5
else ifrnd 64 sound DUKE_LONGTERM_PAIN6
else ifrnd 64 sound DUKE_LONGTERM_PAIN7
else sound DUKE_LONGTERM_PAIN8
}
}
else
{
ifphealthl YELLHURTSOUNDSTRENGTH
{
ifrnd 74 sound DUKE_LONGTERM_PAIN2
else ifrnd 8 sound DUKE_LONGTERM_PAIN3
else sound DUKE_LONGTERM_PAIN4
}
ifrnd 128 sound DUKE_LONGTERM_PAIN
}
}
ifstrength TOUGH
{
state headhitstate
sound DUKE_GRUNT
ifp pstanding action PFLINTCHING
}
ifwasweapon RPG
{
ifrnd 32 spawn BLOOD
ifdead state standard_pjibs
palfrom 48 52
break
}
ifwasweapon RADIUSEXPLOSION
{
ifrnd 32 spawn BLOOD
ifdead state standard_pjibs
palfrom 48 52
break
}
ifwasweapon FIREEXT
{
ifrnd 32 spawn BLOOD
ifdead state standard_pjibs
palfrom 48 52
break
}
ifwasweapon SHRINKSPARK
{
palfrom 48 0 48
move PSHRINKING // used as a var only.
sound ACTOR_SHRINKING
break
}
ifwasweapon SHOTSPARK1 palfrom 24 48
else ifwasweapon FREEZEBLAST
{
palfrom 48 0 0 48
ifdead
{
sound SOMETHINGFROZE
spritepal 1
action PFROZEN
break
}
}
else ifwasweapon COOLEXPLOSION1 palfrom 48 48 0 48
else ifwasweapon KNEE palfrom 16 32
else ifwasweapon FIRELASER palfrom 32 32
state check_dead_thrown_back
state random_wall_jibs
break
}
ifaction PFLINTCHING
{
ifactioncount 2 action PSTAND
break
}
ifinwater
{
ifaction PTREDWATER
{
ifp pwalking prunning action PSWIMMINGGO
}
else ifp pstanding pwalkingback prunningback action PTREDWATER
else
{
ifaction PSWIMMING
{
ifrnd 4 spawn WATERBUBBLE
ifactioncount 4
action PSWIMMINGWAIT
}
else ifaction PSWIMMINGWAIT
{
ifactioncount 2
action PSWIMMINGGO
}
else ifaction PSWIMMINGGO
{
ifactioncount 2
action PSWIMMING
}
else action PTREDWATER
}
ifrnd 4 spawn WATERBUBBLE // For effect
break
}
else ifp pjetpack
{
ifrnd PLAYER_JETPACK_FECESFREQ spawn FECES
ifaction PJPHOUVER
{
ifactioncount 4 ifhitspace state checkplayerdump
ifactioncount 4
resetactioncount
}
else action PJPHOUVER
break
}
else
{
ifaction PTREDWATER action PSTAND
ifaction PSWIMMING action PSTAND
ifaction PSWIMMINGWAIT action PSTAND
ifaction PSWIMMINGGO action PSTAND
ifaction PJPHOUVER action PFALLING
}
ifaction PFALLING
{
ifp ponground
action PSTAND
else
{
ifp pfalling break
else state check_pstandard
}
}
ifaction PDUCKING
{
ifgapzl 48
{
ifp pwalking pwalkingback prunning prunningback action PCRAWLING
}
else ifp pducking
{
ifp pwalking pwalkingback prunning prunningback action PCRAWLING
}
else
{
ifp pstanding action PSTAND
else state check_pstandard
}
}
else ifaction PCRAWLING
{
ifgapzl 48
{
ifp pstanding action PCRAWLING
}
else ifp pducking
{
ifp pstanding action PDUCKING
}
else
{
ifp pstanding action PSTAND
else state check_pstandard
}
}
else ifgapzl 48 action PDUCKING
else ifaction PJUMPING
{
ifp ponground action PSTAND
else ifactioncount 4 ifp pfalling action PFALLING
}
ifp pfalling action PFALLING
else ifaction PSTAND state check_pstandard
else ifaction PAKICKING
{
ifactioncount 2 action PSTAND
break
}
else ifaction PWALK
{
ifp pfalling action PFALLING
else ifp pstanding action PSTAND
else ifp prunning action PRUN
else ifp pwalkingback action PWALKBACK
else ifp prunningback action PRUNBACK
else ifp pjumping
action PJUMPING
else ifp pducking action PDUCKING
}
else ifaction PRUN
{
ifp pstanding action PSTAND
else ifp pwalking action PWALK
else ifp pwalkingback action PWALKBACK
else ifp prunningback action PRUNBACK
else ifp pjumping
action PJUMPING
else ifp pducking action PDUCKING
}
else ifaction PWALKBACK
{
ifp pstanding action PSTAND
else ifp pwalking action PWALK
else ifp prunning action PRUN
else ifp prunningback action PRUNBACK
else ifp pjumping
action PJUMPING
else ifp pducking action PDUCKING
}
else ifaction PRUNBACK
{
ifp pstanding action PSTAND
else ifp pwalking action PWALK
else ifp prunning action PRUN
else ifp pwalkingback action PWALKBACK
else ifp pjumping
action PJUMPING
else ifp pducking action PDUCKING
}
enda
// BLOCKINSERT: SUNORGANTIC_MONSTERBLOCK - sorgant!
state rf
ifrnd 128 cstat 4
else cstat 0
ends
//
//
// TROOP/LIZTROOP CODE
//
//
action ATROOPSTAND 0 1 5 1 1
action ATROOPSTAYSTAND -2 1 5 1 1
action ATROOPWALKING 0 4 5 1 12
action ATROOPWALKINGBACK 15 4 5 -1 12
action ATROOPRUNNING 0 4 5 1 8
action ATROOPSHOOT 35 1 5 1 30
action ATROOPJETPACK 40 1 5 1 1
action ATROOPJETPACKILL 40 2 5 1 50
action ATROOPFLINTCH 50 1 1 1 6
action ATROOPDYING 50 5 1 1 16
action ATROOPDEAD 54
action ATROOPPLAYDEAD 54
action ATROOPSUFFERDEAD 58 2 1 -4 24
action ATROOPSUFFERING 59 2 1 1 21
action ATROOPDUCK 64 1 5 1 3
action ATROOPDUCKSHOOT 64 2 5 1 25
action ATROOPABOUTHIDE 74 1 1 1 25
action ATROOPHIDE 79 1 1 1 25
action ATROOPREAPPEAR 74 1 1 1 25
action ATROOPFROZEN 0 1 5
action ATROOPSTATUE 0 1 5
action ATROOPSTATUEFALL 0 1 5
state checktrooperfall
iffloordistl 8 { fall } else { fall action ATROOPSTATUEFALL }
ends
state breaktrooperstatue
iffloordistl 128 {
sound GLASS_BREAKING
addkills 1
state shootstatuedebris
killit
break
}
ends
state checktrooperstatuehit
ifdead
{
ifwasweapon RPG { sound SQUISHED state shootstatuedebris killit }
else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state shootstatuedebris addkills 1 state drop_ammo killit } else { strength 1 }
}
else
{
state shootstatuedebris
ifwasweapon SHOTSPARK1 sound PISTOL_RICOCHET
}
ends
move TROOPWALKVELS TROOPER_STANDARD_WALKVEL
move TROOPWALKVELSBACK TROOPER_STANDARD_WALKVEL_BACK
move TROOPJETPACKVELS TROOPER_STANDARD_JETPACKVEL_HORZ TROOPER_STANDARD_JETPACKVEL_VERT
move TROOPJETPACKILLVELS 192 -38
move TROOPRUNVELS TROOPER_STANDARD_RUNVEL
move TROOPSTOPPED
move DONTGETUP
move SHRUNKVELS 32
ai AITROOPSEEKENEMY ATROOPWALKING TROOPWALKVELS seekplayer
ai AITROOPSEEKPLAYER ATROOPWALKING TROOPWALKVELS seekplayer
ai AITROOPFLEEING ATROOPWALKING TROOPWALKVELS fleeenemy
ai AITROOPFLEEINGBACK ATROOPWALKINGBACK TROOPWALKVELSBACK faceplayer
ai AITROOPDODGE ATROOPWALKING TROOPRUNVELS dodgebullet
ai AITROOPSHOOTING ATROOPSHOOT TROOPSTOPPED faceplayer
ai AITROOPDUCKING ATROOPDUCK TROOPSTOPPED faceplayer
ai AITROOPJETPACK ATROOPJETPACK TROOPJETPACKVELS seekplayer
ai AITROOPSHRUNK ATROOPWALKING SHRUNKVELS fleeenemy
ai AITROOPHIDE ATROOPABOUTHIDE TROOPSTOPPED faceplayer
define JETFALL_WISTLE 310
definesound JETFALL_WISTLE trfall.voc 0 0 10 0 100
action SUFFERINGTROOPFATACTION 50 1 1 1 6
action AJETPACKRPGUP 40 2 5 1 50
action AJETPACKRPGDN 40 2 5 1 50
move JETPACKRPGUPVEL 0 -200
move JETPACKRPGDNVEL 250 200
move SUFFERINGTROOPFATVEL -150 -150
ai AISUFFERINGTROOPFAT SUFFERINGTROOPFATACTION SUFFERINGTROOPFATVEL faceplayer
ai AIJETPACKRPGHITUP AJETPACKRPGUP JETPACKRPGUPVEL spin
ai AIJETPACKRPGHITDN AJETPACKRPGDN JETPACKRPGDNVEL spin
state jetpackupcheck
ifactioncount 25 { globalsound JETFALL_WISTLE ai AIJETPACKRPGHITDN } else
iffloordistl 4000 { } else { globalsound JETFALL_WISTLE ai AIJETPACKRPGHITDN }
ends
state jetpackdncheck
iffloordistl 32
{
stopsound JETFALL_WISTLE
spawn EXPLOSION2
sound RPG_EXPLODE
guts JIBS1 SUFFERTROOP_FAT1_JIBS1
guts JIBS2 SUFFERTROOP_FAT1_JIBS2
guts JIBS6 SUFFERTROOP_FAT1_JIBS6
spawn BLOODPOOL
spawn BLOODSPLAT1
spawn BLOODSPLAT2
debris SCRAP1 14
ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ { spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ { spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ { spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ { spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ { spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
hitradius SUFFERINGTROOPER_EXPLOS_HITRAD WEAKEST WEAK MEDIUMSTRENGTH TOUGH
killit
} else
{
ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ_DN { spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ_DN { spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
ifrnd JETPACK_FAT_SPAWNFIREBALL_FREQ_DN { spawn EXPLOSION2BOT spawn EXPLOSION2BOT }
}
ends
state sufferingtrooperfat
ifpdistg SUFFERINGTROOPFAT_DISTTOP
{
sound DRON_ATTACK1
spawn EXPLOSION2
sound RPG_EXPLODE
sound LIZARD_BEG
guts JIBS1 SUFFERTROOP_FAT1_JIBS1
guts JIBS2 SUFFERTROOP_FAT1_JIBS2
guts JIBS6 SUFFERTROOP_FAT1_JIBS6
spawn BLOODPOOL
spawn BLOODSPLAT1
spawn BLOODSPLAT2
debris SCRAP1 14
hitradius SUFFERINGTROOPER_EXPLOS_HITRAD WEAKEST WEAK MEDIUMSTRENGTH TOUGH
killit
}
ends
// BLOCKINSERT: SUNTROOPER_STATUEMAKER55 - sstatmk!
state troophidestate
ifaction ATROOPREAPPEAR
{
ifactioncount 2 { sound TELEPORTER ai AITROOPSHOOTING cstat 257 }
else { sizeto 41 40 sizeto 41 40 sizeto 41 40 sizeto 41 40 spawn FRAMEEFFECT1 }
}
else ifaction ATROOPWALKING
{
ifpdistl 2448 ifpdistg 1024
{
ifceilingdistl 48 break
ifp pfacing break
ifgapzl 64 { } else ifawayfromwall { spawn TRANSPORTERSTAR action ATROOPREAPPEAR move 0 break }
}
}
else ifaction ATROOPHIDE
{
ifactioncount 2
{
spawn TRANSPORTERSTAR
sound TELEPORTER
action ATROOPWALKING move TROOPWALKVELS faceplayer
cstat 32768
}
else
{
sizeto 0 40
sizeto 0 40
sizeto 0 40
sizeto 0 40
spawn FRAMEEFFECT1
}
}
else ifaction ATROOPABOUTHIDE ifactioncount 2 { action ATROOPHIDE cstat 0 }
ends
state troopgunnashoot
ifp palive
{
ifpdistl 1024 ai AITROOPSHOOTING
else ifactornotstayput
{
ifactioncount 12 ifrnd 16 ifcanshoottarget
{
ifspritepal 21 ifrnd 4 ifpdistg 4096 ai AITROOPHIDE
else
{
ifpdistl 1100 ai AITROOPFLEEING
else
{
ifpdistl 4096 ifcansee ifcanshoottarget ai AITROOPSHOOTING
else { move TROOPRUNVELS seekplayer action ATROOPRUNNING }
}
}
}
}
else ifcount 26 ifrnd 32 ai AITROOPSHOOTING
}
ends
state troopseekstate
state troopgunnashoot
ifinwater { ai AITROOPJETPACK break }
ifcansee
{
ifmove TROOPRUNVELS ifpdistl 1596 ai AITROOPDUCKING
ifp phigher { ifceilingdistl 128 { } else ifactornotstayput ai AITROOPJETPACK break }
else ifrnd 2
{
ifspritepal 21 ifpdistg 1596 { ai AITROOPHIDE break }
ifbulletnear { ifrnd 128 ai AITROOPDODGE else ai AITROOPDUCKING break }
}
}
ifnotmoving { ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget ai AITROOPSHOOTING }
ifrnd 1
{
ifrnd 128 soundonce PRED_ROAM
else soundonce PRED_ROAM2
}
ends
state troopduckstate
ifaction ATROOPDUCK
{ ifactioncount 8 { ifp palive { ifrnd 128 action ATROOPDUCKSHOOT } else ifmove DONTGETUP break else ai AITROOPSEEKPLAYER } }
else ifaction ATROOPDUCKSHOOT
{
ifcount 64
{
ifmove DONTGETUP resetcount
else
{
ifpdistl 1100
ai AITROOPFLEEING
else ai AITROOPSEEKPLAYER
}
}
else ifactioncount 2 { ifcanshoottarget { sound PRED_ATTACK resetactioncount shoot FIRELASER } else ai AITROOPSEEKPLAYER }
}
ends
state troopshootstate
ifactioncount 2
{
ifcanshoottarget
{
shoot FIRELASER sound PRED_ATTACK resetactioncount
ifrnd 128 ai AITROOPSEEKPLAYER
ifcount 24
{
ifrnd 96 ifpdistg 2048 ai AITROOPSEEKPLAYER
else
{
ifpdistg 1596 ai AITROOPFLEEING
else ai AITROOPFLEEINGBACK
}
}
}
else ai AITROOPSEEKPLAYER
}
ends
state troopfleestate
ifactioncount 7
{
ifpdistg 3084 { ai AITROOPSEEKPLAYER break }
else ifrnd 32 ifp palive ifcansee ifcanshoottarget { ifrnd 128 ai AITROOPDUCKING else ai AITROOPSHOOTING break }
}
ifnotmoving
{
ifrnd 32 operate else ifcount 32 ifp palive ifcansee ifcanshoottarget
{ ifrnd 128 ai AITROOPSHOOTING else ai AITROOPDUCKING }
}
ends
state troopdying
iffloordistl 32 { ifactioncount 5 { cstat 0 iffloordistl 8 sound THUD ifrnd 64 spawn BLOODPOOL state rf strength 0 move TROOPSTOPPED action ATROOPDEAD } break }
else { state rf move 0 action ATROOPDYING }
ends
// BLOCKINSERT: TROOPERGOREMOREGORESTATE - TRGORE1!
// BLOCKINSERT: SUNTROOPER_MOREGORE - strgore1!
state checktroophit
ifaction ATROOPSUFFERING { stopsound LIZARD_BEG sound PRED_DYING cstat 0 strength 0 action ATROOPSUFFERDEAD break }
// BLOCKINSERT: TROOPERGORESTATECALL - TRGORE1!
// BLOCKINSERT: SUNTROOPER_MOREGORE_STATECALL - strgore1!
state extra_monster_gore
ifdead
{
ifwasweapon FREEZEBLAST
{
ifhitspace { sound SOMETHINGFROZE spritepal 7 move 0 action ATROOPSTATUE state checktrooperfall strength TROOPERSTATUESTRENGTH break } else
{
sound SOMETHINGFROZE
spritepal 1
move 0
action
ATROOPFROZEN
strength 0 break
}
}
state drop_ammo
state random_wall_jibs
addkills 1
ifwasweapon RPG
{ sound SQUISHED
state troop_body_jibs
state standard_jibs
state delete_enemy }
else
ifwasweapon RADIUSEXPLOSION
{ sound SQUISHED
state troop_body_jibs
state standard_jibs
state delete_enemy }
else
{ sound PRED_DYING
ifrnd TROOPER_STANDARD_SUFFERING_FREQ iffloordistl 32
{ sound LIZARD_BEG
spawn BLOODPOOL
strength 0 move 0
action ATROOPSUFFERING break }
action ATROOPDYING break
}
}
else
{
state random_wall_jibs
sound PRED_PAIN
ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AITROOPSHRUNK }
else iffloordistl 32 ifrnd 96 action ATROOPFLINTCH
}
ends
state troopjetpackstate
ifhitweapon ifwasweapon RPG { ai AIJETPACKRPGHITUP break }
ifrnd FLYINGTROOPER_FECEFREQ spawn FECES
ifaction ATROOPJETPACKILL
{
ifcansee ifactioncount 2
{
resetactioncount
sound PRED_ATTACK
shoot FIRELASER
}
ifp phigher ai AITROOPJETPACK
else ifinwater ai AITROOPJETPACK
else ifcount 26 iffloordistl 32 ai AITROOPSEEKPLAYER
}
else ifcount 48 ifcansee
{ action ATROOPJETPACKILL move TROOPJETPACKILLVELS seekplayer }
ends
state checksquished
ifsquished { addkills 1 sound SQUISHED state standard_jibs spawn OOZ state delete_enemy }
ends
state troopsufferingstate
ifactioncount 2
{
ifrnd 24 spawn WATERDRIP
ifactioncount TROOPER_SUFFERING_STANDARD_DURATION { stopsound LIZARD_BEG cstat 0 strength 0 action ATROOPSUFFERDEAD break }
}
ifhitweapon
{ ifwasweapon KNEE
{
ai AISUFFERINGTROOPFAT break
}
else state checktroophit
}
ends
state troopshrunkstate
ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
else ifcount SHRUNKCOUNT sizeto 48 40
else state genericshrunkcode
ends
state GHOST_TROOPER_JIBS
guts JIBS2 GHOST_TROOPER_JIB2
guts JIBS3 GHOST_TROOPER_JIB3
guts JIBS4 GHOST_TROOPER_JIB2
guts JIBS5 GHOST_TROOPER_JIB3
guts JIBS6 GHOST_TROOPER_JIB2
ifrnd GHOST_TROOPER_SND1FREQ sound LIZARD_BEG else
ifrnd GHOST_TROOPER_SND1FREQ sound SQUISHED else
ifrnd GHOST_TROOPER_SND1FREQ sound PRED_DYING
ends
state troopcode fall
// Thefty Trooper ***********************
ifpdistl TROOPER_THEFT_DISTANCE { ifrnd 10 ifrnd 10
ifrnd STEROID_THEFT_FREQ { ifpinventory GET_STEROIDS 150000 { addinventory GET_STEROIDS 0
} } else
ifrnd SHIELD_THEFT_FREQ { ifpinventory GET_SHIELD 150000 { addinventory GET_SHIELD 0
} } else
ifrnd BOOT_THEFT_FREQ { ifpinventory GET_BOOTS 150000 { addinventory GET_BOOTS 0
} } else
ifrnd SCUBA_THEFT_FREQ { ifpinventory GET_SCUBA 150000 { addinventory GET_SCUBA 0
} } else
ifrnd JETPACK_THEFT_FREQ { ifpinventory GET_JETPACK 150000 { addinventory GET_JETPACK 0
} } else
ifrnd FIRSTAID_THEFT_FREQ { ifpinventory GET_FIRSTAID 150000 { addinventory GET_FIRSTAID 0
quote 223 } }
}
ifinwater ifrnd 1 spawn WATERBUBBLE
ifaction ATROOPSTAND
{
ifrnd 192
ai AITROOPSHOOTING
else ai AITROOPSEEKPLAYER
}
else ifaction ATROOPSTATUE
{
ifactioncount 10 resetactioncount
ifhitweapon state checktrooperstatuehit
break
}
else ifaction ATROOPSTATUEFALL
{
iffloordistl 16 state breaktrooperstatue
break
}
else ifai AISUFFERINGTROOPFAT { state sufferingtrooperfat break }
else ifai AIJETPACKRPGHITUP { state jetpackupcheck break }
else ifai AIJETPACKRPGHITDN { state jetpackdncheck break }
else ifaction ATROOPFROZEN
{
ifcount THAWTIME { ai AITROOPSEEKENEMY getlastpal }
else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
addkills 1
ifrnd 84 spawn BLOODPOOL
lotsofglass 30
sound GLASS_BREAKING
killit
}
ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
else ifaction ATROOPPLAYDEAD
{
ifhitweapon
{
ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
break
}
else state checksquished
ifcount PLAYDEADTIME { addkills -1 soundonce PRED_ROAM cstat 257 strength 1 ai AITROOPSHOOTING }
else ifp pfacing resetcount
break
}
else ifaction ATROOPDEAD
{
strength 0
ifrespawn ifcount RESPAWNACTORTIME { spawn TRANSPORTERSTAR cstat 257 strength TROOPSTRENGTH ai AITROOPSEEKENEMY }
state corpseexplodingstate
ifpdistl TOXICCORPSE_SMELLDIST
{
ifrnd SUNTOXICCORSE_TOXICITY_FREQ
{
ifrnd SUNTOXICCORSE_TOXICITY_SOUND_SMELLS
{
ifrnd 64 soundonce DUKE_KILLED3
else ifrnd 64 soundonce DUKE_GASP
else ifrnd 64 soundonce DUKE_SEARCH
sound DUKE_LONGTERM_PAIN
}
addphealth SUNTOXICCORSE_TOXICITY_STRENGTH
}
else
ifrnd SUNTOXICCORSE_TOXICITY_FREQ_RESS
{ ifpinventory GET_FIRSTAID 150000
{
ifrnd 32 sound DUKE_KILLED1 else
ifrnd 32 sound DUKE_HIT_STRIPPER1 else
ifrnd 32 sound JIBBED_ACTOR4
addinventory GET_FIRSTAID -20000
spawn TRANSPORTERSTAR cstat 257 strength TROOPSTRENGTH ai AITROOPSEEKENEMY
}
}
}
cstat 257
ifspritepal 1 {
ifrnd GHOOST_TROOPER_SPONTFREQ
ifrnd GHOOST_TROOPER_SPONTFREQ
ifrnd GHOOST_TROOPER_SPONTFREQ
{
cstat 259
ifrnd 156 spritepal 1 else spritepal 19
strength BLUEGHOST_TROOPSTRENGTH
ai AITROOPSEEKENEMY
}
}
else
ifspritepal 19 {
cstat 0
ifrnd GHOOST_TROOPER_REDSPONTFREQ
ifrnd GHOOST_TROOPER_REDSPONTFREQ
ifrnd GHOOST_TROOPER_REDSPONTFREQ
{
state GHOST_TROOPER_JIBS
state GHOST_TROOPER_JIBS
state GHOST_TROOPER_JIBS
hitradius EXPLODING_GHOST_RADIUS WEAKEST WEAK MEDIUMSTRENGTH TOUGH
spawn EXPLOSION2
state random_explosion_sounds
killit
break
}
}
else
{
ifrnd GHOST_TROOPER_GENEXPLODEFREQ
ifrnd GHOST_TROOPER_GENEXPLODEFREQ
ifrnd GHOST_TROOPER_GENEXPLODEFREQ
{
state GHOST_TROOPER_JIBS
state GHOST_TROOPER_JIBS
state GHOST_TROOPER_JIBS
spawn EXPLOSION2
state random_explosion_sounds
cstat 259
spritepal 1
strength BLUEGHOST_TROOPSTRENGTH
ai AITROOPSEEKENEMY
break
}
}
ifhitweapon
{
ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
else
ifwasweapon SHRINKSPARK
{
ifspritepal 1
{
ifrnd 196 {
state GHOST_TROOPER_JIBS
state GHOST_TROOPER_JIBS
spawn EXPLOSION2
state random_explosion_sounds
killit
break
}
else
{
state GHOST_TROOPER_JIBS
state GHOST_TROOPER_JIBS
state GHOST_TROOPER_JIBS
spawn EXPLOSION2
state random_explosion_sounds
cstat 259
spritepal 1
strength BLUEGHOST_TROOPSTRENGTH
ai AITROOPSEEKENEMY
spawn LIZTROOP
break
}
}
}
else
{
state GHOST_TROOPER_JIBS
ifrnd GHOST_TROOPER_RESSURECT_BLUEFREQ
{ ifspritepal 19 { } else
{
cstat 259
spritepal 1
spawn TELEPORTER
strength BLUEGHOST_TROOPSTRENGTH
ai AITROOPSEEKENEMY
break
}
} else
ifrnd GHOST_TROOPER_RESSURECT_REDFREQ
{ ifspritepal 19 { } else
{
cstat 259
spritepal 19
spawn TELEPORTER
strength REDGHOST_TROOPSTRENGTH
ai AITROOPSEEKENEMY
break
}
}
ifrnd GHOST_TROOPER_GENEXPLODEFREQ
ifspritepal 0
{
ifrnd GHOST_TROOPER_GENEXPLODEFREQ
{
state GHOST_TROOPER_JIBS
state GHOST_TROOPER_JIBS
spawn EXPLOSION2
state random_explosion_sounds
cstat 259
spritepal 1
strength BLUEGHOST_TROOPSTRENGTH
ai AITROOPSEEKENEMY
break
}
}
else ifspritepal 19
{
ifrnd GHOST_TROOPER_GENEXPLODEFREQ
{
state GHOST_TROOPER_JIBS
state GHOST_TROOPER_JIBS
spawn EXPLOSION2
state random_explosion_sounds
killit
break
}
}
}
break
}
else state checksquished
break
}
else ifaction ATROOPSUFFERDEAD
{
ifactioncount 2
{
ifrnd 64 { resetcount action ATROOPPLAYDEAD }
else { soundonce PRED_DYING action ATROOPDEAD }
}
}
else ifaction ATROOPDYING { state troopdying break }
else ifaction ATROOPSUFFERING
{ state troopsufferingstate ifhitweapon state checktroophit break }
else ifaction ATROOPFLINTCH { ifactioncount 4 ai AITROOPSEEKENEMY }
else
{
ifai AITROOPSEEKPLAYER state troopseekstate
else ifai AITROOPJETPACK
{
state troopjetpackstate
ifinwater { } else soundonce DUKE_JETPACK_IDLE
}
else ifai AITROOPSEEKENEMY state troopseekstate
else ifai AITROOPSHOOTING state troopshootstate
else ifai AITROOPFLEEING state troopfleestate
else ifai AITROOPFLEEINGBACK state troopfleestate
else ifai AITROOPDODGE state troopseekstate
else ifai AITROOPDUCKING state troopduckstate
else ifai AITROOPSHRUNK state troopshrunkstate
else ifai AITROOPHIDE { state troophidestate break }
}
ifhitweapon state checktroophit else state checksquished
ends
actor LIZTROOPJETPACK TROOPSTRENGTH ai AITROOPJETPACK cactor LIZTROOP enda
actor LIZTROOPDUCKING TROOPSTRENGTH
ai AITROOPDUCKING cactor LIZTROOP
ifgapzl 48 move DONTGETUP
enda
actor LIZTROOPSHOOT TROOPSTRENGTH ATROOPSTAND ai AITROOPSHOOTING cactor LIZTROOP enda
actor LIZTROOPSTAYPUT TROOPSTRENGTH ATROOPSTAYSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
actor LIZTROOPRUNNING TROOPSTRENGTH ATROOPSTAND ai AITROOPSEEKPLAYER cactor LIZTROOP enda
actor LIZTROOPONTOILET TROOPSTRENGTH ifcount 24 { sound FLUSH_TOILET operate ai AITROOPSEEKPLAYER cactor LIZTROOP } enda
actor LIZTROOP TROOPSTRENGTH ATROOPSTAND
state troopcode
enda
action ALIZWALKING 0 4 5 1 15
action ALIZRUNNING 0 4 5 1 11
action ALIZTHINK 20 2 5 1 40
action ALIZSCREAM 30 1 5 1 2
action ALIZJUMP 45 3 5 1 20
action ALIZFALL 55
action ALIZSHOOTING 70 2 5 1 7
action ALIZDYING 60 6 1 1 15
action ALIZLYINGDEAD 65 1
action ALIZFROZEN 0 1 5
move LIZWALKVEL LIZMAN_STANDARD_WALKVEL
move LIZRUNVEL LIZMAN_STANDARD_RUNVEL
move LIZJUMPVEL 184
move LIZSTOP
ai AILIZGETENEMY ALIZWALKING LIZWALKVEL seekplayer
ai AILIZDODGE ALIZRUNNING LIZRUNVEL dodgebullet
ai AILIZCHARGEENEMY ALIZRUNNING LIZRUNVEL seekplayer
ai AILIZFLEENEMY ALIZWALKING LIZWALKVEL fleeenemy
ai AILIZSHOOTENEMY ALIZSHOOTING LIZSTOP faceplayer
ai AILIZJUMPENEMY ALIZJUMP LIZJUMPVEL jumptoplayer
ai AILIZTHINK ALIZTHINK LIZSTOP faceplayerslow
ai AILIZSHRUNK ALIZWALKING SHRUNKVELS fleeenemy
ai AILIZSPIT ALIZSCREAM LIZSTOP faceplayerslow
ai AILIZDYING ALIZDYING LIZSTOP faceplayer
action AENFORCERSTATUE 0 1 5
action AENFORCERSTATUEFALL 0 1 5
state checkenforcerfall
iffloordistl 8 { fall } else { fall action ATROOPSTATUEFALL }
ends
state breakenforcerstatue
iffloordistl 128 {
sound GLASS_BREAKING
lotsofglass 100
addkills 1
killit
break
}
ends
state checkenforcerstatuehit
ifdead
{
ifwasweapon RPG { sound SQUISHED lotsofglass 50 killit }
else ifwasweapon RADIUSEXPLOSION { sound SQUISHED
lotsofglass 100
addkills 1
state drop_ammo
state shootstatuedebris
killit } else { strength 1 }
}
else
{
debris SCRAP1 5
ifwasweapon SHOTSPARK1 sound PISTOL_RICOCHET
}
ends
state lizseekstate
ifactornotstayput
{
ifcansee ifp palive ifpdistl 2048 ifcount 16 ifcanshoottarget { ai AILIZSHOOTENEMY break }
ifai AILIZCHARGEENEMY
{
ifcount 72 ifcanshoottarget { ai AILIZSHOOTENEMY break }
ifp phigher ifpdistg 2048 ifrnd 6 { ai AILIZJUMPENEMY break }
}
else ifpdistg 4096 { ifrnd 92 { ifcount 48 ifcanshoottarget ai AILIZSHOOTENEMY } else ifcount 24 { ai AILIZCHARGEENEMY break } }
iffloordistl 16 { ifcount 48 ifnotmoving ifcansee { ai AILIZJUMPENEMY break } }
else { ifpdistg 1280 ai AILIZJUMPENEMY break }
ifrnd 4 ifnotmoving operate
else ifrnd 1 ifbulletnear
{
ifgapzl 128 ai AILIZDODGE
else ifactornotstayput { ifrnd 32 ai AILIZJUMPENEMY else ai AILIZDODGE }
}
}
else
{
ifactioncount 16 { ifp palive ifrnd 32 ifcansee ifcanshoottarget ai AILIZSHOOTENEMY }
ifcount 16 ifrnd 32 move LIZWALKVEL randomangle geth
}
ends
state lizshrunkstate
ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
else ifcount SHRUNKCOUNT sizeto 48 40
else state genericshrunkcode
ends
state lizfleestate
ifcount 16 { ifrnd 48 ifp palive ifcansee ai AILIZSPIT }
else { iffloordistl 16 { } else ai AILIZGETENEMY break }
ends
state lizthinkstate
ifrnd 8 soundonce CAPT_ROAM
ifactioncount 3
{
ifrnd 32 ifp palive ifcansee ai AILIZSPIT
else ifrnd 96 ai AILIZGETENEMY
}
else ifactioncount 2 ifrnd 1 spawn FECES
ifrnd 1 ifbulletnear
{
ifgapzl 96 ai AILIZDODGE
else { ifrnd 128 ai AILIZJUMPENEMY else ai AILIZDODGE }
}
ends
state lizshootstate
ifcount 20 ifrnd 8
{
ifcansee ifpdistl 2048 { ifrnd 128 ai AILIZFLEENEMY break }
ifrnd 80 ai AILIZTHINK else ai AILIZGETENEMY
}
ifactioncount 2
{
ifcansee
{
ifcanshoottarget { sound CAPT_ATTACK shoot SHOTSPARK1 resetactioncount }
else ai AILIZTHINK
}
else ai AILIZGETENEMY
}
ends
// BLOCKINSERT: MOREENFOCERSTATEGORE1 - engore1!
// BLOCKINSERT: SUNEFORCER_MOREGORE - sengore!
state checklizhit
spawn BLOOD
// BLOCKINSERT: MOREENFORCERGOREINSERT1 - engore1!
// BLOCKINSERT: SUNEFORCER_MOREGORE_STATECALL - sengore!
state extra_monster_gore
ifai AILIZSHRUNK
{ addkills 1 sound SQUISHED state standard_jibs state delete_enemy }
ifdead
{
ifwasweapon FREEZEBLAST
{
ifhitspace { sound SOMETHINGFROZE spritepal 7 move 0 action AENFORCERSTATUE state checkenforcerfall strength ENFORCERSTATUESTRENGTH break } else
{
sound SOMETHINGFROZE
spritepal 1 move 0
action ALIZFROZEN
strength 0
break
}
}
state drop_chaingun
addkills 1
ifwasweapon RPG { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy }
else { state rf ai AILIZDYING ifrnd 64 spawn BLOODPOOL }
sound CAPT_DYING
}
else
{
sound CAPT_PAIN
ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AILIZSHRUNK break }
state random_wall_jibs
ifp palive ifcansee ifcanshoottarget { ai AILIZSHOOTENEMY break }
}
ends
state lizjumpstate
ifactioncount 1 { ifrnd LIZMAN_FECEFREQ spawn FECES }
ifaction ALIZFALL { iffloordistl 16 ai AILIZGETENEMY }
else ifactioncount 3 action ALIZFALL
ends
state lizdyingstate
ifaction ALIZLYINGDEAD
{
strength 0
ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
ifcount RESPAWNACTORTIME ifrespawn
{
spawn TRANSPORTERSTAR cstat 257 strength LIZSTRENGTH ai AILIZGETENEMY
}
}
else ifai AILIZDYING ifactioncount 6 { iffloordistl 8 sound THUD move LIZSTOP action ALIZLYINGDEAD }
ends
state lizdodgestate
ifcount 13 ai AILIZGETENEMY
ends
actor LIZMANSTAYPUT LIZSTRENGTH ai AILIZGETENEMY cactor LIZMAN enda
actor LIZMANSPITTING LIZSTRENGTH ai AILIZSPIT cactor LIZMAN enda
actor LIZMANJUMP LIZSTRENGTH ai AILIZJUMPENEMY cactor LIZMAN enda
actor LIZMAN LIZSTRENGTH fall
state checksquished
ifai 0 ai AILIZGETENEMY
else ifaction ALIZLYINGDEAD
{
state corpseexplodingstate
ifpdistl TOXICCORPSE_SMELLDIST
{
ifrnd SUNTOXICCORSE_TOXICITY_FREQ
{
ifrnd SUNTOXICCORSE_TOXICITY_SOUND_SMELLS
{
ifrnd 64 soundonce DUKE_KILLED3
else ifrnd 64 soundonce DUKE_GASP
else ifrnd 64 soundonce DUKE_SEARCH
sound DUKE_LONGTERM_PAIN
}
addphealth SUNTOXICCORSE_TOXICITY_STRENGTH
}
else
ifrnd SUNTOXICCORSE_TOXICITY_FREQ_RESS { ifpinventory GET_FIRSTAID 150000
{
ifrnd 32 sound DUKE_KILLED1 else
ifrnd 32 sound DUKE_HIT_STRIPPER1 else
ifrnd 32 sound JIBBED_ACTOR4
addinventory GET_FIRSTAID -20000
spawn TRANSPORTERSTAR cstat 257 strength LIZSTRENGTH ai AILIZGETENEMY
}
}
}
fall state lizdyingstate break
}
else ifaction AENFORCERSTATUE
{
ifactioncount 10 resetactioncount
ifhitweapon state checkenforcerstatuehit
break
}
else ifaction AENFORCERSTATUEFALL
{
iffloordistl 16 state breakenforcerstatue
break
}
else ifaction ALIZFROZEN
{
ifcount THAWTIME { ai AILIZGETENEMY getlastpal }
else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
addkills 1
ifrnd 84 spawn BLOODPOOL
lotsofglass 30
sound GLASS_BREAKING
killit
}
ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
else ifai AILIZJUMPENEMY state lizjumpstate
else
{
fall
ifai AILIZGETENEMY state lizseekstate
else ifai AILIZCHARGEENEMY state lizseekstate
else ifai AILIZDODGE state lizdodgestate
else ifai AILIZSHOOTENEMY state lizshootstate
else ifai AILIZFLEENEMY state lizfleestate
else ifai AILIZTHINK state lizthinkstate
else ifai AILIZSHRUNK state lizshrunkstate
else ifai AILIZDYING state lizdyingstate
else ifai AILIZSPIT
{ ifcount 26 ai AILIZGETENEMY else ifcount 18 ifrnd 96 { shoot SPIT sound LIZARD_SPIT } }
}
ifai AILIZSHRUNK break
ifhitweapon state checklizhit
enda
action DRONEFRAMES 0 1 7 1 1
action DRONESCREAM 0 1 7 1 1
move DRONERUNVELS DRONE_STANDARD_RUNVEL 64
move DRONERUNUPVELS 128 -64
move DRONEBULLVELS DRONE_STANDARD_BULLVEL -64
move DRONEBACKWARDS DRONE_STANDARD_RUNBACKVEL -64
move DRONERISE 32 DRONE_STANDARD_RISEVEL
move DRONESTOPPED -16
ai AIDRONEGETE DRONESCREAM DRONERUNVELS faceplayerslow getv
ai AIDRONEWAIT DRONEFRAMES DRONESTOPPED faceplayerslow
ai AIDRONEGETUP DRONESCREAM DRONERUNUPVELS faceplayer getv
ai AIDRONEPULLBACK DRONEFRAMES DRONEBACKWARDS faceplayerslow
ai AIDRONEHIT DRONESCREAM DRONEBACKWARDS faceplayer
ai AIDRONESHRUNK DRONEFRAMES SHRUNKVELS fleeenemy
ai AIDRONEDODGE DRONEFRAMES DRONEBULLVELS dodgebullet geth
ai AIDRONEDODGEUP DRONEFRAMES DRONERISE getv geth
move DRONECRAZYVELS 90 -64
move DRONESPINRISE 45 -72
action DRONECRAZY 0 1 7 1 5
action DRONESPINUP 0 1 7 1 5
ai AIDRONECRAZY DRONECRAZY DRONECRAZYVELS randomangle
ai AIDRONESPINUP DRONESPINUP DRONESPINRISE spin
state checkdronecrazy
ifrnd 5
{
addkills 1
debris SCRAP1 DRONE_FAT_DEBRIS1
debris SCRAP2 DRONE_FAT_DEBRIS1
debris SCRAP3 DRONE_FAT_DEBRIS1
spawn EXPLOSION2
sound RPG_EXPLODE
hitradius DRONE_FAT_BLASTRADIUS 15 20 25 30
killit
break
}
else {
ifrnd 64 { debris SCRAP1 DRONE_FAT_DEBRIS2
debris SCRAP3 DRONE_FAT_DEBRIS2
debris SCRAP4 DRONE_FAT_DEBRIS2
debris SCRAP5 DRONE_FAT_DEBRIS2
lotsofglass DRONE_FAT_GLASS }
ifrnd DRONE_FAT_SPINSHOOTMORT_FREQ shoot MORTER else move DRONECRAZYVELS randomangle
resetactioncount
}
ends
state checkdronespinup
ifrnd 5
{
addkills 1
debris SCRAP1 DRONE_FAT_DEBRIS1
debris SCRAP2 DRONE_FAT_DEBRIS1
debris SCRAP3 DRONE_FAT_DEBRIS1
spawn EXPLOSION2
sound RPG_EXPLODE
hitradius DRONE_FAT_BLASTRADIUS 15 20 25 30
killit
break
}
else {
ifrnd 64 { debris SCRAP1 DRONE_FAT_DEBRIS2
debris SCRAP3 DRONE_FAT_DEBRIS2
debris SCRAP4 DRONE_FAT_DEBRIS2
debris SCRAP5 DRONE_FAT_DEBRIS2
lotsofglass DRONE_FAT_GLASS
}
ifrnd DRONE_FAT_SPINSHOOTMORT_FREQ shoot MORTER
else move DRONESPINRISE 72 - 64 spin
}
ends
action ADRONESTATUE 0 1 7
action ADRONESTATUEFALL 0 1 7
state checkdronefall
fall action ADRONESTATUEFALL move DRONESTOPPED spin
ends
state breakdronestatue
iffloordistl 128 {
sound GLASS_BREAKING
state shootstatuedebris
addkills 1
killit
break
}
ends
state checkdronestatuehit
ifdead
{
}
else
{
state shootstatuedebris
}
ends
state checkdronehitstate
ifdead
{
ifwasweapon RPG {
ifrnd 128 { strength 1 spritepal 10 action DRONECRAZY ai AIDRONECRAZY }
else
ifrnd 128 {
addkills 1
debris SCRAP1 8
debris SCRAP2 4
debris SCRAP3 7
spawn EXPLOSION2
sound RPG_EXPLODE
hitradius DRONE_FAT_BLASTRADIUS 15 20 25 30
killit
}
else
ifrnd 128 {
strength 1
ai AIDRONESPINUP
} else strength 1
break } else ifrnd DRONE_FAT_FREQ ifdead { strength 1 spritepal 10 action DRONECRAZY ai AIDRONECRAZY }
ifwasweapon FREEZEBLAST ifhitspace { sound SOMETHINGFROZE spritepal 7 move 0 action ADRONESTATUE state checkdronefall strength DRONESTATUESTRENGTH break } else
{
addkills 1
debris SCRAP1 8
debris SCRAP2 4
debris SCRAP3 7
spawn EXPLOSION2
sound RPG_EXPLODE
hitradius 2048 15 20 25 30
killit
}
}
else
{
sound DRON_PAIN
ifbulletnear
{
ifceilingdistl 64 ifrnd 48 ai AIDRONEDODGE
ai AIDRONEDODGEUP
}
else ai AIDRONEGETE
}
ends
state droneshrunkstate
ifcount 24 state delete_enemy
else sizeto 1 1
ends
state checkdronenearplayer
ifp palive ifpdistl 1596
{
ifcount 8
{
addkills 1
sound DRON_ATTACK2
debris SCRAP1 8
debris SCRAP2 4
debris SCRAP3 7
spawn EXPLOSION2
sound RPG_EXPLODE
hitradius 2048 15 20 25 30
killit
}
else ifcount 3 { } else sound LASERTRIP_ARMING
}
ends
state dronegetstate
ifrnd 192
{
ifcansee
{
ifbulletnear { ai AIDRONEDODGE break }
ifmove DRONEBULLVELS
{
ifcount 64 ai AIDRONEPULLBACK
else ifnotmoving ifcount 16 ai AIDRONEPULLBACK
}
else ifcount 32
{
ifp phigher move DRONEBULLVELS geth getv
else move DRONEBULLVELS geth
}
}
else ifrnd 1 operate
}
ends
state dronedodgestate
ifai AIDRONEDODGEUP
{
ifcount 8 ai AIDRONEGETE
else ifnotmoving ai AIDRONEGETE
}
else
{
ifcount 8 ai AIDRONEGETE
else ifnotmoving ai AIDRONEGETE
}
ends
actor DRONE DRONESTRENGTH
state checksquished
state checkdronenearplayer
ifrnd 2 fall
else soundonce DRON_JETSND
ifaction 0 ai AIDRONEGETE
else ifaction ADRONESTATUE
{
ifactioncount 10 resetactioncount
ifhitweapon state checkdronestatuehit
break
}
else ifaction ADRONESTATUEFALL
{
iffloordistl 24 state breakdronestatue
break
}
else ifaction DRONECRAZY { ai AIDRONECRAZY state checkdronecrazy }
else ifai AIDRONESPINUP { state checkdronespinup }
else ifai AIDRONEWAIT
{
ifactioncount 4 ifrnd 16
ifcansee { sound DRON_ATTACK1 ifp phigher ai AIDRONEGETUP else ai AIDRONEGETE }
}
else ifai AIDRONEGETE state dronegetstate
else ifai AIDRONEGETUP state dronegetstate
else ifai AIDRONEPULLBACK { ifcount 32 ai AIDRONEWAIT }
else ifai AIDRONEHIT { ifcount 8 ai AIDRONEWAIT }
else ifai AIDRONESHRUNK state droneshrunkstate
else ifai AIDRONEDODGE state dronedodgestate
else ifai AIDRONEDODGEUP state dronedodgestate
ifhitweapon state checkdronehitstate
ifrnd 1 soundonce DRON_ROAM
enda
action AOCTAWALK 0 3 5 1 15
action AOCTASTAND 0 1 5 1 15
action AOCTASCRATCH 0 4 5 1 15
action AOCTAHIT 30 1 1 1 10
action AOCTASHOOT 20 1 5 1 10
action AOCTADYING 30 8 1 1 17
action AOCTADEAD 38 1 1 1 1
action AOCTAFROZEN 0 1 5
action AOCTABRAINSTATUE 0 1 5
action AOCTABRAINSTATUEFALL 0 1 5
state checkoctabrainfall
iffloordistl 8 { fall } else { fall action AOCTABRAINSTATUEFALL }
ends
state breakoctabrainstatue
iffloordistl 128 {
sound GLASS_BREAKING
state shootstatuedebris
addkills 1
killit
break
}
ends
state checkoctabrainstatuehit
ifdead
{
ifwasweapon FREEZEBLAST { spritepal 0 sound SOMETHINGFROZE spritepal 1 move 0 action AOCTAFROZEN strength 0 break }
else { strength 1 }
}
else
{
state shootstatuedebris
ifwasweapon SHOTSPARK1 sound PISTOL_RICOCHET
}
ends
move OCTAWALKVELS OCTABRAIN_STANDARD_WALKVEL_HORZ OCTABRAIN_STANDARD_WALKVEL_VERT
move OCTAUPVELS OCTABRAIN_STANDARD_WALKVEL_HORZ OCTABRAIN_STANDARD_FASTVEL_HORZ
move OCTASTOPPED 0 OCTABRAIN_STANDARD_WALKVEL_VERT
move OCTAINWATER OCTABRAIN_STANDARD_WALKVEL_HORZ 24
ai AIOCTAGETENEMY AOCTAWALK OCTAWALKVELS seekplayer
ai AIOCTASHOOTENEMY AOCTASHOOT OCTASTOPPED faceplayer
ai AIOCTASCRATCHENEMY AOCTASCRATCH OCTASTOPPED faceplayer
ai AIOCTAHIT AOCTAHIT OCTASTOPPED faceplayer
ai AIOCTASHRUNK AOCTAWALK SHRUNKVELS faceplayer
ai AIOCTADYING AOCTADYING OCTASTOPPED faceplayer
move OCTACRAZY OCTA_FAT_CRAZYSPEED 0
move OCTACRAZYSTOP 0 -20
action AOCTABRAINCRAZY 0 4 5 1 15
action AOCTACRAZYSTOPPED 0 1 5
ai AIOCTABRAINCRAZY AOCTABRAINCRAZY OCTACRAZY spin
ai AIOCTACRAZYSTOPPED AOCTACRAZYSTOPPED OCTACRAZYSTOP spin
state checkcrazyoctabrain
ifactioncount OCTA_FAT_SPUREXPL { ifrnd 196 {
spawn EXPLOSION2
sound PIPEBOMB_EXPLODE
spawn FIRE
spawn FECES
resetactioncount
}
else
{
state standard_jibs
spawn BLOODPOOL
ai AIOCTACRAZYSTOPPED
}
}
ifrnd 10 { spritepal 2 ifrnd 10 sound TURR_PAIN } else
ifrnd 10 { spritepal 1 ifrnd 10 sound OCTA_PAIN } else
ifrnd 10 { spritepal 10 ifrnd 10 sound OCTA_DYING } else
ifrnd 10 { spritepal 8 ifrnd 10 sound OCTA_DYING } else
ifrnd 10 { spritepal 6 ifrnd 10 sound OCTA_PAIN } else
ifrnd 10 { spritepal 7 ifrnd 10 sound OCTA_ROAM }
spawn FRAMEEFFECT1
ends
// BLOCKINSERT: SUNOCTABRAIN_STATUEMAKER55 - sstatmk!
state octagetenemystate
ifcansee
{
ifactioncount 32 { ifrnd 48 ifcanshoottarget { sound OCTA_ATTACK1 ai AIOCTASHOOTENEMY break } }
else ifpdistl 1280 ai AIOCTASCRATCHENEMY
}
ends
state octascratchenemystate
ifpdistg 1280 ai AIOCTAGETENEMY
else ifcount 32 { resetcount sound OCTA_ATTACK2 palfrom 8 32 addphealth OCTASCRATCHINGPLAYER }
ends
state octashootenemystate
ifcount 25 { ifcount 27 ai AIOCTAGETENEMY }
else ifcount 24 shoot COOLEXPLOSION1
else ifactioncount 6 resetactioncount
ends
// BLOCKINSERT: SUNOCTABRAIN_MOREGORE- soctgore!
state checkoctahitstate
// BLOCKINSERT: SUNOCTABRAIN_MOREGORE_STATECALL - soctgore!
state extra_monster_gore
ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIOCTASHRUNK }
else
{
ifdead
{
ifrnd OCTABRAINCRAZY_FREQ { ai AIOCTABRAINCRAZY break }
ifwasweapon FREEZEBLAST
{
ifhitspace { sound SOMETHINGFROZE spritepal 7 move 0 action AOCTABRAINSTATUE state checkoctabrainfall strength OCTABRAINSTATUESTRENGTH break } else
{
sound SOMETHINGFROZE
spritepal 1
move 0
action AOCTAFROZEN
strength 0
break
}
}
addkills 1
ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
else { state rf ai AIOCTADYING }
sound OCTA_DYING
}
else
{
ifwasweapon RPG
{
sound OCTA_DYING
addkills 1
state standard_jibs
killit
}
sound OCTA_PAIN spawn BLOOD
ifrnd 64 ai AIOCTAHIT
}
}
state random_wall_jibs
ends
state octashrunkstate
ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
else ifcount SHRUNKCOUNT sizeto 48 40
else state genericshrunkcode
ends
state octadyingstate
ifactioncount 8 { ifrnd 64 spawn BLOODPOOL move OCTASTOPPED action AOCTADEAD break }
else ifactioncount 5 { } else ifactioncount 4 iffloordistl 8 sound THUD
ends
actor OCTABRAINSTAYPUT OCTASTRENGTH ai AIOCTAGETENEMY cactor OCTABRAIN enda
actor OCTABRAIN OCTASTRENGTH fall
state checksquished
ifai 0 ai AIOCTAGETENEMY
else ifai AIOCTABRAINCRAZY { state checkcrazyoctabrain break }
else ifai AIOCTACRAZYSTOPPED {
sizeto OCTA_FAT_SPINDNSIZE OCTA_FAT_SPINDNSIZE
spawn FRAMEEFFECT1
ifactioncount OCTA_FAT_SPINTIME {
spawn EXPLOSION2
sound RPG_EXPLODE
hitradius OCTA_FAT_HITRADIUS 15 20 25 30
killit
}
break }
else ifaction AOCTADEAD
{
state corpseexplodingstate
strength 0
ifcount RESPAWNACTORTIME ifrespawn
{ addkills -1 spawn TRANSPORTERSTAR cstat 257 strength OCTASTRENGTH ai AIOCTAGETENEMY }
ifhitweapon ifwasweapon RADIUSEXPLOSION { state standard_jibs killit }
break
}
else ifaction AOCTABRAINSTATUE
{
ifactioncount 10 resetactioncount
ifhitweapon state checkoctabrainstatuehit
break
}
else ifaction AOCTABRAINSTATUEFALL
{
iffloordistl 16 state breakoctabrainstatue
break
}
else ifaction AOCTAFROZEN
{
ifcount THAWTIME { ai AIOCTAGETENEMY getlastpal }
else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
ifhitweapon
{
addkills 1
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
ifrnd 84 spawn BLOODPOOL
sound GLASS_BREAKING
killit
}
ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
else
{
ifrnd 1 soundonce OCTA_ROAM
ifai AIOCTAGETENEMY state octagetenemystate
else ifai AIOCTAHIT { ifcount 8 ai AIOCTASHOOTENEMY }
else ifai AIOCTADYING { state octadyingstate break }
else ifai AIOCTASCRATCHENEMY state octascratchenemystate
else ifai AIOCTASHOOTENEMY state octashootenemystate
else ifai AIOCTASHRUNK state octashrunkstate
ifmove OCTAUPVELS { } else ifp phigher move OCTAUPVELS seekplayer
else ifmove OCTAINWATER { } else ifinwater move OCTAINWATER seekplayer
ifhitweapon state checkoctahitstate
}
enda
// BLOCKINSERT: PIGCOPEXTRAGOREBLOCK2 - piggore1!
action APIGWALK 0 4 5 1 20
action APIGRUN 0 4 5 1 11
action APIGSHOOT 30 2 5 1 58
action APIGCOCK 25 1 5 1 16
action APIGSTAND 30 1 5 1 1
action APIGDIVE 40 2 5 1 40
action APIGDIVESHOOT 45 2 5 1 58
action APIGDYING 55 5 1 1 15
action APIGHIT 55 1 1 1 10
action APIGDEAD 60 1 1 1 1
action APIGFROZEN 0 1 5
action APIGCOPSTATUE 0 1 5
state checkpigcopstatuehit
ifdead
{
ifwasweapon SHOTSPARK1 { sound SQUISHED state shootstatuedebris state drop_ammo addkills 1 killit }
else { strength 1 }
}
else
{
state shootstatuedebris
ifwasweapon SHOTSPARK1 sound PISTOL_RICOCHET
}
ends
move PIGWALKVELS PIGCOP_STANDARD_WALKVEL
move PIGRUNVELS PIGCOP_STANDARD_RUNVEL
move PIGSTOPPED
ai AIPIGSEEKENEMY APIGWALK PIGWALKVELS seekplayer
ai AIPIGSHOOTENEMY APIGSHOOT PIGSTOPPED faceplayer
ai AIPIGFLEEENEMY APIGWALK PIGWALKVELS fleeenemy
ai AIPIGSHOOT APIGSHOOT PIGSTOPPED faceplayer
ai AIPIGDODGE APIGRUN PIGRUNVELS dodgebullet
ai AIPIGCHARGE APIGRUN PIGRUNVELS seekplayer
ai AIPIGDIVING APIGDIVE PIGSTOPPED faceplayer
ai AIPIGDYING APIGDYING PIGSTOPPED faceplayer
ai AIPIGSHRINK APIGWALK SHRUNKVELS fleeenemy
ai AIPIGHIT APIGHIT PIGSTOPPED faceplayer
// PIG COP FATALITY ******START
move PIGSPINVEL 100 -132
move PIGSPINVELDN 150 180
move PIGBACKKNEEKICK -250 0
action SPINPIG 0 1 5 12
ai AISPINPIG SPINPIG PIGSPINVEL spin
ai AISPINPIGDN SPINPIG PIGSPINVELDN spin
ai AIMOVEPIGBACK SPINPIG PIGBACKKNEEKICK 258 + 1
state movepigback
ifactioncount PIGFAT_MOVEBACK_DUR { state standard_jibs
spawn BLOODPOOL
shoot BLOODSPLAT1
shoot BLOODSPLAT2
shoot BLOODSPLAT3
shoot BLOODSPLAT4
guts JIBS6 10
spawn EXPLOSION2
hitradius PIGFATAL_HITRADIUS WEAKEST WEAK MEDIUMSTRENGTH TOUGH
state random_explosion_sounds
killit
break }
ifrnd 8 { state standard_jibs state extra_monster_gore }
ends
state explodingspinningpig
spawn EXPLOSION2
state random_explosion_sounds
iffloordistl 16 spawn FIRE2
hitradius PIGFATAL_HITRADIUS WEAKEST WEAK MEDIUMSTRENGTH TOUGH
state standard_jibs
state extra_monster_gore
killit
ends
state spinningpig
ifrnd 5
{
sound PIG_DYING
}
ifactioncount PIGCOPFATAL_SPINDURATION_SOLID { cstat 259 }
ifactioncount PIGCOPFATAL_SPINDURATION_MAKESOUND { sound PIG_DYING }
ifactioncount PIGCOPFATAL_SPINDURATION_EXPLODING
{
state explodingspinningpig
}
else
ifhitweapon { sound PIG_DYING
ifwasweapon RPG { state explodingspinningpig }
}
iffloordistl PIGFAT_SPINUPDISTANCE
{
ifai AISPINPIGDN iffloordistl 48
{
ifactioncount PIGCOPFATAL_SPINDURATION_EXPLODING state explodingspinningpig
}
}
else { resetactioncount ai AISPINPIGDN }
ends
// PIG COP FATALITY ******END
// BLOCKINSERT: SUNPIGCOP_STATUEMAKER55 - sstatmk!
state pigseekenemystate
ifai AIPIGCHARGE
{
ifcansee ifpdistl 3084
{
ifnotmoving ai AIPIGSEEKENEMY
else ai AIPIGDIVING
}
break
}
else iffloordistl 32
{
ifpdistg 4096 { ifactornotstayput ai AIPIGCHARGE }
ifrnd 8 { ifbulletnear ai AIPIGDODGE }
}
ifrnd 128 ifcansee
{
ifai AIPIGDODGE { ifcount 32 ai AIPIGCHARGE break }
iffloordistl 32
{
ifpdistl 1024 ifp palive ifcanshoottarget
{ ai AIPIGSHOOTENEMY break }
ifcount 48 { ifrnd 8 ifp palive ifcanshoottarget { ifrnd 192 ai AIPIGSHOOTENEMY else ai AIPIGDIVING break } }
}
}
ends
state pigshootenemystate
// ifcansee
{
ifcount 12 { } else ifcount 11
{
ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
else ai AIPIGSEEKENEMY
}
ifcount 25 { } else ifcount 24 { action APIGCOCK sound SHOTGUN_COCK }
ifcount 48 { } else ifcount 47
{
ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
else ai AIPIGSEEKENEMY
}
ifcount 60 { } else ifcount 59 { action APIGCOCK sound SHOTGUN_COCK }
ifcount 72
{
ifrnd 64 resetcount
else
{
ifpdistl 768 ai AIPIGFLEEENEMY
else ai AIPIGSEEKENEMY
}
}
ifaction APIGCOCK ifactioncount 2 action APIGSHOOT
}
else ai AIPIGSEEKENEMY
ends
state pigfleeenemystate
ifactioncount 8 ai AIPIGSEEKENEMY
else ifnotmoving ai AIPIGSEEKENEMY
ends
state pigdivestate
ifaction APIGDIVESHOOT
{
ifcansee
{
ifcount 12 { } else ifcount 11
{
ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
else ai AIPIGSEEKENEMY
}
ifcount 25 { } else ifcount 24 { sound SHOTGUN_COCK }
ifcount 48 { } else ifcount 47
{
ifcanshoottarget { sound PIG_ATTACK shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN shoot SHOTGUN }
else ai AIPIGSEEKENEMY
}
ifcount 60 { } else ifcount 59
{
sound SHOTGUN_COCK
ifgapzl 32 ai AIPIGDIVING
else
{
ifpdistl 4096 ai AIPIGFLEEENEMY
else ai AIPIGSEEKENEMY
}
}
}
else ifgapzl PIGCOP_STANDARD_DIVE_FREQ ai AIPIGDIVING else ai AIPIGSEEKENEMY
}
else ifactioncount 2 ifp palive { resetcount action APIGDIVESHOOT }
ends
// BLOCKINSERT: SUNPIGCOP_MOREGORE - spiggore!
state checkpighitstate
spawn BLOOD
// BLOCKINSERT: PIGCOPEXTRAGOREBLOCK1 - piggore1!
// BLOCKINSERT: SUNPIGCOP_MOREGORE_STATECALL - spiggore!
state extra_monster_gore
ifdead
{
state random_wall_jibs
ifrnd 16 spawn SHIELD else state drop_shotgun
ifwasweapon FREEZEBLAST
{
ifhitspace { sound SOMETHINGFROZE spritepal 7 move 0 action APIGCOPSTATUE strength PIGCOPSTATUESTRENGTH break } else
{
sound SOMETHINGFROZE
spritepal 1
move 0
action APIGFROZEN
strength 0
break
}
}
addkills 1
ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
ifrnd PIGCOP_PERFORMSFATALITY_FREQ
{
ifrnd 128 { ai AIMOVEPIGBACK action SPINPIG } else { ai AISPINPIG action SPINPIG }
}
else
{ ai AIPIGDYING sound PIG_DYING }
}
else
{
sound PIG_PAIN
state random_wall_jibs
ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIPIGSHRINK }
else ifrnd 64 ai AIPIGHIT
else ifrnd 64 ai AIPIGSHOOTENEMY
else ifrnd 64 { ai AIPIGDIVING action APIGDIVESHOOT }
}
ends
state pigshrinkstate
ifcount SHRUNKDONECOUNT ai AIPIGSEEKENEMY
else ifcount SHRUNKCOUNT sizeto 48 40
else state genericshrunkcode
ends
state pigdyingstate
ifactioncount 5 { ifrnd 64 spawn BLOODPOOL state rf iffloordistl 8 sound THUD action APIGDEAD move PIGSTOPPED break }
ends
actor PIGCOPDIVE PIGCOPSTRENGTH ai AIPIGDIVING action APIGDIVESHOOT cactor PIGCOP enda
actor PIGCOPSTAYPUT PIGCOPSTRENGTH ai AIPIGSEEKENEMY cactor PIGCOP enda
actor PIGCOP PIGCOPSTRENGTH APIGSTAND fall
state checksquished
ifaction APIGSTAND ai AIPIGSEEKENEMY
else ifaction APIGDEAD
{
state corpseexplodingstate
ifrespawn ifcount RESPAWNACTORTIME
{ spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH ai AIPIGSEEKENEMY }
else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
}
else ifaction APIGFROZEN
{
ifcount THAWTIME { ai AIPIGSEEKENEMY getlastpal }
else ifcount FROZENDRIPTIME ifrnd 8 spawn WATERDRIP
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
addkills 1
lotsofglass 30
ifrnd 84 spawn BLOODPOOL
sound GLASS_BREAKING
killit
}
ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
else ifaction APIGCOPSTATUE
{
ifactioncount 10 resetactioncount
ifhitweapon state checkpigcopstatuehit
break
}
else ifai AIPIGDYING state pigdyingstate
else ifai AIPIGHIT { ifactioncount 3 ai AIPIGSEEKENEMY }
else ifai AIPIGSHRINK state pigshrinkstate
else
{
ifai AIPIGSEEKENEMY state pigseekenemystate
else ifai AIPIGDODGE state pigseekenemystate
else ifai AIPIGSHOOTENEMY state pigshootenemystate
else ifai AIPIGFLEEENEMY state pigfleeenemystate
else ifai AIPIGDIVING state pigdivestate
else ifai AIPIGCHARGE state pigseekenemystate
else ifai AISPINPIG state spinningpig
else ifai AISPINPIGDN state spinningpig
else ifai AIMOVEPIGBACK { spawn FRAMEEFFECT1 state movepigback }
ifhitweapon state checkpighitstate
ifrnd 1
{
ifrnd 32 soundonce PIG_ROAM
else ifrnd 64 soundonce PIG_ROAM2
else soundonce PIG_ROAM3
}
}
enda
action ABOSS1WALK 0 4 5 1 12
action ABOSS1FROZEN 30 1 5
action ABOSS1RUN 0 6 5 1 5
action ABOSS1SHOOT 30 2 5 1 4
action ABOSS1LOB 40 2 5 1 35
action ABOSS1DYING 50 5 1 1 50
action BOSS1FLINTCH 50 1 1 1 1
action ABOSS1DEAD 55
move PALBOSS1SHRUNKRUNVELS BOSS1_STANDARD_PALSHRUNKVEL
move PALBOSS1RUNVELS BOSS1_STANDARD_PALRUNVEL
move BOSS1WALKVELS BOSS1_STANDARD_WALKVEL
move BOSS1RUNVELS BOSS1_STANDARD_RUNVEL
move BOSS1STOPPED
ai AIBOSS1SEEKENEMY ABOSS1WALK BOSS1WALKVELS seekplayer
ai AIBOSS1RUNENEMY ABOSS1RUN BOSS1RUNVELS faceplayer
ai AIBOSS1SHOOTENEMY ABOSS1SHOOT BOSS1STOPPED faceplayer
ai AIBOSS1LOBBED ABOSS1LOB BOSS1STOPPED faceplayer // faceplayersmart
ai AIBOSS1DYING ABOSS1DYING BOSS1STOPPED faceplayer
ai AIBOSS1PALSHRINK ABOSS1WALK PALBOSS1SHRUNKRUNVELS furthestdir
state boss1palshrunkstate
ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
else ifcount SHRUNKCOUNT sizeto 40 40
else state genericshrunkcode
ends
state checkboss1seekstate
ai AIBOSS1SEEKENEMY
ifspritepal 0 { } else // a fake way of doing a ifspritepal NOT.
move PALBOSS1RUNVELS seekplayer
ends
state boss1runenemystate
ifpdistl 2048 { ifp palive ai AIBOSS1SHOOTENEMY break }
else ifcansee { ifactioncount 6 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS1SEEKENEMY } }
else ai AIBOSS1SEEKENEMY
ends
state boss1seekenemystate
ifrnd 2 soundonce BOS1_ROAM
else ifactioncount 6 { resetactioncount sound BOS1_WALK }
ifpdistl 2548 ifp palive { ai AIBOSS1SHOOTENEMY break }
ifcansee ifcount 32
{
ifrnd 32 { ifp palive ifcanshoottarget ai AIBOSS1SHOOTENEMY }
else ifpdistg 2548 ifrnd 192
ifcanshoottarget
{
ifrnd 64
{
ai AIBOSS1RUNENEMY
ifspritepal 0 { } else move PALBOSS1RUNVELS seekplayer
}
else ai AIBOSS1LOBBED
}
}
ends
state boss1dyingstate
ifaction ABOSS1DEAD
{
ifspritepal 0 break
ifrespawn ifcount RESPAWNACTORTIME
{ spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss1seekstate }
else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
}
ifactioncount 5 { iffloordistl 8 sound THUD action ABOSS1DEAD cstat 0 ifspritepal 0 endofgame 52 }
ends
state boss1lobbedstate
ifcansee
{
ifactioncount 2
{
resetactioncount
sound BOS1_ATTACK2
shoot MORTER
}
else ifcount 64 ifrnd 16 state checkboss1seekstate
}
else state checkboss1seekstate
ends
state boss1shootenemy
ifcount 72 state checkboss1seekstate
else ifaction ABOSS1SHOOT ifactioncount 2
{
sound BOS1_ATTACK1
shoot SHOTSPARK1
shoot SHOTSPARK1
shoot SHOTSPARK1
shoot SHOTSPARK1
shoot SHOTSPARK1
shoot SHOTSPARK1
resetactioncount
}
ends
// BLOCKINSERT: SUNBOSS1_MOREGORE - sb1gore!
state checkboss1hitstate
ifrnd 2 spawn BLOODPOOL
// BLOCKINSERT: SUNBOSS1_MOREGORE_STATECALL - sb1gore!
state extra_monster_gore
ifdead
{
ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
else
{
ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS1FROZEN strength 0 break }
}
sound BOS1_DYING
addkills 1
ai AIBOSS1DYING
}
else
{
ifrnd 32 { action BOSS1FLINTCH move 0 }
ifspritepal 0 { }
else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS1PALSHRINK break }
soundonce BOS1_PAIN
debris SCRAP1 1
guts JIBS6 1
}
ends
state boss1code
ifaction ABOSS1FROZEN
{
ifcount THAWTIME { ai AIBOSS1SEEKENEMY spritepal 21 }
else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
addkills 1
lotsofglass 30
ifrnd 84 spawn BLOODPOOL
sound GLASS_BREAKING
killit
}
ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
ifai 0 { ifspritepal 0 ai AIBOSS1RUNENEMY else { strength BOSS1PALSTRENGTH ai AIBOSS1SHOOTENEMY } }
else ifaction BOSS1FLINTCH { ifactioncount 3 ai AIBOSS1SHOOTENEMY }
else ifai AIBOSS1SEEKENEMY state boss1seekenemystate
else ifai AIBOSS1RUNENEMY state boss1runenemystate
else ifai AIBOSS1SHOOTENEMY state boss1shootenemy
else ifai AIBOSS1LOBBED state boss1lobbedstate
else ifai AIBOSS1PALSHRINK state boss1palshrunkstate
ifai AIBOSS1DYING state boss1dyingstate
else
{
ifhitweapon state checkboss1hitstate
else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth BOSS1_STANDARD_HEALTHDAM palfrom 63 63 }
}
ends
actor BOSS1STAYPUT BOSS1STRENGTH cactor BOSS1 enda
actor BOSS1 BOSS1STRENGTH fall state boss1code enda
action ABOSS2WALK 0 4 5 1 30
action ABOSS2FROZEN 0 1 5
action ABOSS2RUN 0 4 5 1 15
action ABOSS2SHOOT 20 2 5 1 15
action ABOSS2LOB 30 2 5 1 105
action ABOSS2DYING 40 8 1 1 35
action BOSS2FLINTCH 40 1 1 1 1
action ABOSS2DEAD 48
move PALBOSS2SHRUNKRUNVELS BOSS2_STANDARD_PALSHRUNKVEL
move PALBOSS2RUNVELS BOSS2_STANDARD_PALRUNVEL
move BOSS2WALKVELS BOSS2_STANDARD_WALKVEL
move BOSS2RUNVELS BOSS2_STANDARD_RUNVEL
move BOSS2STOPPED
ai AIBOSS2SEEKENEMY ABOSS2WALK BOSS2WALKVELS seekplayer
ai AIBOSS2RUNENEMY ABOSS2RUN BOSS2RUNVELS faceplayer
ai AIBOSS2SHOOTENEMY ABOSS2SHOOT BOSS2STOPPED faceplayer
ai AIBOSS2LOBBED ABOSS2LOB BOSS2STOPPED faceplayer
ai AIBOSS2DYING ABOSS2DYING BOSS2STOPPED faceplayer
ai AIBOSS2PALSHRINK ABOSS2WALK PALBOSS2SHRUNKRUNVELS furthestdir
state boss2palshrunkstate
ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
else ifcount SHRUNKCOUNT sizeto 40 40
else state genericshrunkcode
ends
state checkboss2seekstate
ai AIBOSS2SEEKENEMY
ifspritepal 0 { } else // a fake way of doing a ifspritepal NOT.
move PALBOSS2RUNVELS seekplayer
ends
state boss2runenemystate
ifcansee
{
ifactioncount 3 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS2SEEKENEMY }
ifcount 48 ifrnd 2 { ifp palive { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY } break }
}
else ai AIBOSS2SEEKENEMY
ends
state boss2seekenemystate
ifrnd 2 soundonce BOS2_ROAM
else ifactioncount 3 { resetactioncount sound BOS1_WALK }
ifcansee ifcount 32 ifp palive ifrnd 48 ifcanshoottarget
{
ifrnd 64 ifpdistg 4096
{
ai AIBOSS2RUNENEMY
ifspritepal 0 { }
else move PALBOSS2RUNVELS seekplayer
break
}
ifpdistl 10240 { ifrnd 128 { sound BOS2_ATTACK ai AIBOSS2LOBBED } }
else { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY }
}
ends
state boss2dyingstate
ifaction ABOSS2DEAD
{
ifspritepal 0 break
ifrespawn ifcount RESPAWNACTORTIME
{ spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss2seekstate }
else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
}
ifactioncount 8 { iffloordistl 8 sound THUD action ABOSS2DEAD cstat 0 ifspritepal 0 endofgame 52 }
ends
state boss2lobbedstate
ifcansee
{
ifactioncount 2 resetactioncount
else ifactioncount 1 { ifrnd 128 shoot COOLEXPLOSION1 }
else ifcount 64 ifrnd 16 state checkboss2seekstate
}
else state checkboss2seekstate
ends
state boss2shootenemy
ifcount 72 state checkboss2seekstate
else ifaction ABOSS2SHOOT ifactioncount 2
{
shoot RPG
resetactioncount
}
ends
// BLOCKINSERT: SUNBOSS2_MOREGORE - sb2gore!
state checkboss2hitstate
// BLOCKINSERT: SUNBOSS2_MOREGORE_STATECALL - sb2gore!
state extra_monster_gore
ifrnd 2 spawn BLOODPOOL
ifdead
{
ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
else
{
ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS2FROZEN strength 0 break }
}
sound BOS2_DYING
addkills 1
ai AIBOSS2DYING
}
else
{
ifrnd 144
{
ifrnd 32 { action BOSS2FLINTCH move 0 }
else { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY }
}
ifspritepal 0 { }
else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS2PALSHRINK break }
soundonce BOS2_PAIN
debris SCRAP1 1
guts JIBS6 1
}
ends
state boss2code
ifaction ABOSS2FROZEN
{
ifcount THAWTIME { ai AIBOSS2SEEKENEMY spritepal 21 }
else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
addkills 1
lotsofglass 30
sound GLASS_BREAKING
ifrnd 84 spawn BLOODPOOL
killit
}
ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
ifai 0 { ifspritepal 0 ai AIBOSS2RUNENEMY else { strength BOSS2PALSTRENGTH { sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY } } }
else ifaction BOSS2FLINTCH { ifactioncount 3 ai AIBOSS2SEEKENEMY }
else ifai AIBOSS2SEEKENEMY state boss2seekenemystate
else ifai AIBOSS2RUNENEMY state boss2runenemystate
else ifai AIBOSS2SHOOTENEMY state boss2shootenemy
else ifai AIBOSS2LOBBED state boss2lobbedstate
else ifai AIBOSS2PALSHRINK state boss2palshrunkstate
ifai AIBOSS2DYING state boss2dyingstate
else
{
ifhitweapon state checkboss2hitstate
else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth BOSS1_STANDARD_HEALTHDAM palfrom 63 63 }
}
ends
actor BOSS2 BOSS2STRENGTH fall state boss2code enda
action ABOSS3WALK 0 4 5 1 30
action ABOSS3FROZEN 0 1 5
action ABOSS3RUN 0 4 5 1 15
action ABOSS3LOB 20 4 5 1 50
action ABOSS3LOBBING 30 2 5 1 15
action ABOSS3DYING 40 8 1 1 20
action BOSS3FLINTCH 40 1 1 1 1
action ABOSS3DEAD 48
move PALBOSS3SHRUNKRUNVELS BOSS3_STANDARD_PALSHRUNKVEL
move PALBOSS3RUNVELS BOSS3_STANDARD_PALRUNVEL
move BOSS3WALKVELS BOSS3_STANDARD_WALKVEL
move BOSS3RUNVELS BOSS3_STANDARD_RUNVEL
move BOSS3STOPPED
ai AIBOSS3SEEKENEMY ABOSS3WALK BOSS3WALKVELS seekplayer
ai AIBOSS3RUNENEMY ABOSS3RUN BOSS3RUNVELS faceplayerslow
ai AIBOSS3LOBENEMY ABOSS3LOB BOSS3STOPPED faceplayer
ai AIBOSS3DYING ABOSS3DYING BOSS3STOPPED faceplayer
ai AIBOSS3PALSHRINK ABOSS3WALK PALBOSS3SHRUNKRUNVELS faceplayer
state boss3palshrunkstate
ifcount SHRUNKDONECOUNT ai AITROOPSEEKENEMY
else ifcount SHRUNKCOUNT sizeto 40 40
else state genericshrunkcode
ends
state checkboss3seekstate
ai AIBOSS3SEEKENEMY
ifspritepal 0 { } else // a fake way of doing a ifspritepal NOT.
move PALBOSS3RUNVELS seekplayer
ends
state boss3runenemystate
ifcansee { ifactioncount 3 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS3SEEKENEMY } }
else ai AIBOSS3SEEKENEMY
ends
state boss3seekenemystate
ifrnd 2 soundonce BOS3_ROAM
else ifactioncount 3 { resetactioncount sound BOS1_WALK }
ifcansee ifcount 32 ifrnd 48 ifcanshoottarget
{
ifrnd 64
ifpdistg 4096
{
ai AIBOSS3RUNENEMY
ifspritepal 0 break
move PALBOSS3RUNVELS seekplayer
break
}
ifp palive
ai AIBOSS3LOBENEMY
}
ends
state boss3dyingstate
ifaction ABOSS3DEAD
{
ifspritepal 0 break
ifrespawn ifcount RESPAWNACTORTIME
{ spawn TRANSPORTERSTAR cstat 257 strength PIGCOPSTRENGTH state checkboss3seekstate }
else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
}
ifactioncount 8 { iffloordistl 8 sound THUD action ABOSS3DEAD cstat 0 ifspritepal 0 endofgame 52 }
ends
state boss3lobbedstate
ifcansee
{
ifaction ABOSS3LOBBING
ifactioncount 2
{
shoot RPG
resetactioncount
ifrnd 8 ai AIBOSS3SEEKENEMY
}
ifactioncount 3 { action ABOSS3LOBBING resetcount }
}
else state checkboss3seekstate
ends
// BLOCKINSERT: SUNBOSS3_MOREGORE - sb3gore!
state checkboss3hitstate
// BLOCKINSERT: SUNBOSS3_MOREGORE_STATECALL- sb3gore!
state extra_monster_gore
ifrnd 2 spawn BLOODPOOL
ifdead
{
ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
else
{
ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
ifwasweapon FREEZEBLAST { sound SOMETHINGFROZE spritepal 1 move 0 action ABOSS3FROZEN strength 0 break }
}
addkills 1
ai AIBOSS3DYING
sound BOS3_DYING
sound JIBBED_ACTOR9
}
else
{
ifrnd 32 { action BOSS3FLINTCH move 0 }
ifspritepal 0 { }
else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIBOSS3PALSHRINK break }
soundonce BOS3_PAIN
debris SCRAP1 1
guts JIBS6 1
}
ends
state boss3code
ifaction ABOSS3FROZEN
{
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
addkills 1
lotsofglass 30
ifrnd 84 spawn BLOODPOOL
sound GLASS_BREAKING
killit
}
ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
ifai 0 { ifspritepal 0 ai AIBOSS3RUNENEMY else { strength BOSS3PALSTRENGTH ai AIBOSS3LOBENEMY } }
else ifaction BOSS3FLINTCH { ifactioncount 3 ai AIBOSS3SEEKENEMY }
else ifai AIBOSS3SEEKENEMY state boss3seekenemystate
else ifai AIBOSS3RUNENEMY state boss3runenemystate
else ifai AIBOSS3LOBENEMY state boss3lobbedstate
else ifai AIBOSS3PALSHRINK state boss3palshrunkstate
ifai AIBOSS3DYING state boss3dyingstate
else
{
ifhitweapon state checkboss3hitstate
else ifp palive ifspritepal 0 ifpdistl 1280 { addphealth -1000 palfrom 63 63 }
}
ends
actor BOSS3 BOSS3STRENGTH fall state boss3code enda
action ACOMMBREETH 0 3 5 1 40
action ACOMMFROZEN 0 1 5
action ACOMMSPIN -5 1 5 1 12
action ACOMMGET 0 3 5 1 30
action ACOMMSHOOT 20 1 5 1 35
action ACOMMABOUTTOSHOOT 20 1 5 1 30
action ACOMMDYING 30 8 1 1 12
action ACOMMDEAD 38 1 1 1 1
move COMMGETUPVELS 128 -64
move COMMGETVELS ASSCOM_STANDARD_GETVEL 64
move COMMSLOW ASSCOM_STANDARD_SLOWVEL 24
move COMMSTOPPED
ai AICOMMWAIT ACOMMBREETH COMMSTOPPED faceplayerslow
ai AICOMMGET ACOMMGET COMMGETVELS seekplayer
ai AICOMMSHOOT ACOMMSHOOT COMMSTOPPED faceplayerslow
ai AICOMMABOUTTOSHOOT ACOMMABOUTTOSHOOT COMMSTOPPED faceplayerslow
ai AICOMMSPIN ACOMMSPIN COMMGETVELS spin
ai AICOMMDYING ACOMMDYING COMMSTOPPED faceplayer
ai AICOMMSHRUNK ACOMMGET COMMSLOW furthestdir
// BLOCKINSERT: SUNASSCOMM_MOREGORE - sascogore!
action AASSCOMMSTATUE 0 1 5
action AASSCOMMSTATUEFALL 0 1 5
state checkasscommfall
iffloordistl 8 { fall } else { fall action AASSCOMMSTATUEFALL }
ends
state breakasscommstatue
iffloordistl 128 {
sound GLASS_BREAKING
addkills 1
state shootstatuedebris
killit
break
}
ends
state checkasscommstatuehit
ifdead
{
ifwasweapon RPG { sound SQUISHED state shootstatuedebris killit }
else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state shootstatuedebris addkills 1 state drop_ammo killit } else { strength 1 }
}
else
{
debris SCRAP1 20
ifwasweapon SHOTSPARK1 sound PISTOL_RICOCHET
}
ends
state checkcommhitstate
ifhitweapon
{
// BLOCKINSERT: SUNASSCOMM_MOREGORE_STATECALL - sascogore!
state extra_monster_gore
guts JIBS6 2
ifdead
{
ifwasweapon FREEZEBLAST {
ifhitspace { sound SOMETHINGFROZE spritepal 7 move 0 action AASSCOMMSTATUE state checkasscommfall strength ASSCOMMSTATUESTRENGTH fall break } else
{
sound SOMETHINGFROZE spritepal 1 move 0 action ACOMMFROZEN strength 0 break
}
}
addkills 1
ifwasweapon RADIUSEXPLOSION { spawn BLOODPOOL sound SQUISHED state standard_jibs state delete_enemy }
else ifwasweapon RPG { sound SQUISHED spawn BLOODPOOL state standard_jibs state delete_enemy }
sound COMM_DYING
ai AICOMMDYING
}
else
{
soundonce COMM_PAIN
ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AICOMMSHRUNK }
else ifrnd 24 ai AICOMMABOUTTOSHOOT
}
}
ends
actor COMMANDERSTAYPUT COMMANDERSTRENGTH cactor COMMANDER ai AICOMMABOUTTOSHOOT enda
actor COMMANDER COMMANDERSTRENGTH
state checksquished
ifaction ACOMMDEAD {
state corpseexplodingstate
ifpdistl TOXICCORPSE_SMELLDIST
{
ifrnd SUNTOXICCORSE_TOXICITY_FREQ
{
ifrnd SUNTOXICCORSE_TOXICITY_SOUND_SMELLS
{
ifrnd 64 soundonce DUKE_KILLED3
else ifrnd 64 soundonce DUKE_GASP
else ifrnd 64 soundonce DUKE_SEARCH
sound DUKE_LONGTERM_PAIN
}
addphealth SUNTOXICCORSE_TOXICITY_STRENGTH
}
else
ifrnd SUNTOXICCORSE_TOXICITY_FREQ_RESS { ifpinventory GET_FIRSTAID 150000
{
ifrnd 32 sound DUKE_KILLED1 else
ifrnd 32 sound DUKE_HIT_STRIPPER1 else
ifrnd 32 sound JIBBED_ACTOR4
addinventory GET_FIRSTAID -20000
spawn TRANSPORTERSTAR cstat 257 strength COMMANDERSTRENGTH ai AICOMMGET
}
}
}
}
else ifaction AASSCOMMSTATUE
{
ifactioncount 10 resetactioncount
ifhitweapon state checkasscommstatuehit
break
}
else ifaction ATROOPSTATUEFALL
{
iffloordistl 16 state breakasscommstatue
break
}
ifaction ACOMMFROZEN
{
fall
ifcount THAWTIME { getlastpal ai AICOMMWAIT }
else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
addkills 1
ifrnd 84 spawn BLOODPOOL
lotsofglass 30
sound GLASS_BREAKING
killit
}
ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
ifai 0 ai AICOMMSHOOT
else ifai AICOMMWAIT { ifcount 20 { ifcansee { ifcanshoottarget { ifrnd 96 ai AICOMMGET else ai AICOMMABOUTTOSHOOT } } else ai AICOMMGET } }
else ifai AICOMMABOUTTOSHOOT
{
ifactioncount 2 { ifcansee ai AICOMMSHOOT else { ai AICOMMGET break } }
soundonce COMM_ATTACK
}
else ifai AICOMMSHOOT
{
ifcanshoottarget
{
ifcount 24 ifrnd 16 ai AICOMMWAIT
ifactioncount 2 { shoot RPG resetactioncount }
}
else ai AICOMMGET
}
else ifai AICOMMSHRUNK
{
ifcount SHRUNKDONECOUNT ai AICOMMGET
else ifcount SHRUNKCOUNT sizeto 48 40
else state genericshrunkcode
}
else ifai AICOMMGET
{
ifnotmoving ifrnd 4 operate
ifpdistl 1024 ifp palive { sound COMM_SPIN ai AICOMMSPIN break }
ifcansee
{
ifp phigher move COMMGETUPVELS getv geth faceplayer
else move COMMGETVELS getv geth faceplayer
}
ifactioncount 8 ifrnd 2 ai AICOMMABOUTTOSHOOT
}
else ifai AICOMMSPIN
{
soundonce COMM_SPIN
ifcount 16
{
ifpdistl 1280 { addphealth CAPTSPINNINGPLAYER sound DUKE_GRUNT palfrom 32 16 resetcount }
else ifpdistg 2300 ai AICOMMWAIT
}
ifactioncount 52 ai AICOMMWAIT
ifnotmoving ifrnd 32 operate
}
ifai AICOMMDYING
{
fall
strength 0
ifhitweapon ifwasweapon RADIUSEXPLOSION
{ sound SQUISHED spawn BLOODPOOL state standard_jibs state delete_enemy }
ifaction ACOMMDYING
ifactioncount 8 { iffloordistl 8 sound THUD cstat 0 action ACOMMDEAD }
}
else
{
ifrnd 2 soundonce COMM_ROAM
state checkcommhitstate
}
enda
define COBRA_SPIT 331
define COBRA_ROAM 332
define COBRA_BITE 333
definequote 151 YOU NEED TO BLOW IT UP!
definequote 152 SNAKE BITE!
definesound COBRA_SPIT cspit.voc 0 0 255 0 COBRA_SOUND_VOL
definesound COBRA_ROAM cslith.voc 0 0 3 0 COBRA_SOUND_VOL
definesound COBRA_ROAM cslith.voc 255 255 3 0 COBRA_SOUND_VOL
action ACOBRAWALKING 2412 3 5 1 16
action ACOBRARUNNING 2412 3 5 1 12
action ACOBRATHINK 2412 3 5 1 20
action ACOBRAJUMP 2412 3 5 1 20
action ACOBRAFALL 2412 1 5
action ACOBRASHOOTING 2442 2 3 1 14
action ACOBRADYING 2452 6 1 1 25
action ACOBRALYINGDEAD 2457 1 1 1 10
action ACOBRAFROZEN 2432 1 5
move COBRAWALKVEL COBRA_WALKVEL
move COBRARUNVEL COBRA_RUNVEL
move COBRAJUMPVEL COBRA_JUMPVEL
move COBRASTOP
ai AICOBRAGETENEMY ACOBRAWALKING COBRAWALKVEL seekplayer
ai AICOBRADODGE ACOBRARUNNING COBRARUNVEL dodgebullet
ai AICOBRACHARGEENEMY ACOBRARUNNING COBRARUNVEL seekplayer
ai AICOBRAFLEENEMY ACOBRAWALKING COBRAWALKVEL fleeenemy
ai AICOBRASHOOTENEMY ACOBRASHOOTING COBRASTOP faceplayer
ai AICOBRAJUMPENEMY ACOBRAJUMP COBRAJUMPVEL jumptoplayer
ai AICOBRATHINK ACOBRATHINK COBRASTOP faceplayerslow
ai AICOBRASHRUNK ACOBRAWALKING SHRUNKVELS fleeenemy
ai AICOBRASPIT ACOBRASHOOTING COBRASTOP faceplayer
ai AICOBRADYING ACOBRADYING COBRASTOP faceplayer
ai AICOBRADEAD ACOBRALYINGDEAD COBRASTOP faceplayer
ai AICOBRASTARTUP ACOBRAWALKING COBRASTOP faceplayer
action ACOBRASTATUE 2432 1 5
action ACOBRASTATUEFALL 2432 1 5
state checkcobrafall
iffloordistl 8 { fall } else { fall action ACOBRAFALL }
ends
state shootcobrastatuedebris
debris SCRAP2 5
debris SCRAP3 8
debris SCRAP5 9
lotsofglass 15
ends
state breakcobrastatue
iffloordistl 128 {
sound GLASS_BREAKING
addkills 1
state shootcobrastatuedebris
killit
break
}
ends
state checkcobrastatuehit
ifdead
{
ifwasweapon RPG { sound SQUISHED state shootcobrastatuedebris killit }
else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state shootcobrastatuedebris addkills 1 state drop_ammo killit } else { cstat 257 state shootcobrastatuedebris quote 131 strength 1 }
}
else
{
state shootcobrastatuedebris
ifwasweapon SHOTSPARK1 ifrnd 96 sound PISTOL_RICOCHET
}
ends
state COBRA_GORE_STATE
ifrnd COBRA_BLOODPOOL_FREQ spawn BLOODPOOL
ifrnd 64 guts JIBS3 5 else ifrnd 64 guts JIBS4 3
guts JIBS6 COBRA_GORE_AMOUNT
ends
state cobraseekstate
ifactornotstayput
{
ifcansee ifp palive ifpdistl 2048 ifcount 16 ifcanshoottarget {
ifrnd 25 soundonce COBRA_ROAM else ifrnd 15 soundonce CAPT_ROAM
ai AICOBRASHOOTENEMY break }
ifai AICOBRACHARGEENEMY
{
ifcount 72 ifcanshoottarget { ai AICOBRASHOOTENEMY break }
ifp phigher ifpdistg 2048 ifrnd 6 { ai AICOBRAJUMPENEMY break }
}
else
ifpdistg 4096
{
ifrnd 92
{
ifcount 48 ifcanshoottarget ai AICOBRASHOOTENEMY
}
else
ifcount 24 { ai AICOBRACHARGEENEMY break }
}
iffloordistl 16
{
ifcount 48 ifnotmoving ifcansee { ifgapzl 96 { } else ai AICOBRAJUMPENEMY break }
}
else
{ ifpdistg 1280 ifgapzl 96 { } else ai AICOBRAJUMPENEMY break }
ifrnd 4 ifnotmoving operate
else ifrnd COBRA_DODGEBULLET_FREQ ifbulletnear
{
ifgapzl 128
ai AICOBRADODGE
else
ifactornotstayput { ifrnd 32 ai AICOBRAJUMPENEMY else ai AICOBRADODGE }
}
}
else
{
ifactioncount 16 { ifp palive ifrnd 32 ifcansee ifcanshoottarget ai AICOBRASHOOTENEMY }
ifcount 16 ifrnd 32 move COBRAWALKVEL randomangle geth
}
ends
state cobrashrunkstate
ifcount SHRUNKDONECOUNT ai AICOBRAGETENEMY
else ifcount SHRUNKCOUNT sizeto COBRA_SIZEX COBRA_SIZEY
else { state genericshrunkcode sizeto 1 1 }
ends
state cobrafleestate
ifcount 16 { ifrnd 48 ifp palive ifcansee ai AICOBRASPIT }
else { iffloordistl 16 { } else ai AICOBRAGETENEMY break }
ends
state cobrathinkstate
ifonwater { ifrnd 32 ai AICOBRAJUMPENEMY }
ifinwater { ifrnd 32 ai AICOBRAJUMPENEMY }
ifrnd 45 soundonce COBRA_ROAM
ifactioncount 3
{
ifrnd 32 ifp palive ifcansee ai AICOBRASPIT
else ifrnd 96 ai AICOBRAGETENEMY
}
else ifactioncount 2 ifrnd 1 spawn FECES
ifrnd COBRA_DODGEBULLET_FREQ ifbulletnear
{
ifgapzl 96 ai AICOBRADODGE
else { ifrnd 128 ai AICOBRAJUMPENEMY else ai AICOBRADODGE }
}
ends
state cobrashootstate
ifcount 20 ifrnd 8
{
ifcansee ifpdistl 2048 { ifrnd 72 ai AICOBRAFLEENEMY break } else { ifrnd 18 { sound COBRA_BITE addphealth -6 ifrnd 96 quote 152 } }
ifrnd 80 ai AICOBRATHINK else ai AICOBRAGETENEMY
}
ifactioncount 1 ifrnd COBRA_SHOOTLASER_FREQ shoot FIRELASER
ifactioncount 2
{
ifcansee
ifpdistl 6048
{
ifcanshoottarget {
sound COBRA_SPIT
shoot SPIT
resetactioncount
}
else
{
ifrnd COBRA_SHOOTLASER_FREQ shoot FIRELASER
ai AICOBRATHINK
}
}
else ai AICOBRAGETENEMY
}
ends
state checkcobrahit
ifwasweapon FREEZEBLAST { } else state COBRA_GORE_STATE
ifai AICOBRASHRUNK
{ addkills 1 sound SQUISHED state standard_jibs state delete_enemy }
ifdead
{
ifwasweapon FREEZEBLAST
{
ifhitspace
{
sound SOMETHINGFROZE
spritepal 7 move 0 action ACOBRASTATUE state checkcobrafall strength 300 break
}
else
{
sound SOMETHINGFROZE
spritepal 1 move 0
action ACOBRAFROZEN
strength 10
break
}
}
addkills 1
ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
else { state rf ai AICOBRADYING ifrnd 64 spawn BLOODPOOL }
// SOUND COBRA DYING
sound CAPT_DYING
}
else
{
// SOUND COBRA PAIN
sound CAPT_PAIN
ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AICOBRASHRUNK break }
state random_wall_jibs
ifp palive ifcansee ifcanshoottarget { ai AICOBRASHOOTENEMY break }
}
ends
state cobrajumpstate
ifaction ACOBRAFALL { iffloordistl 24 ai AICOBRAGETENEMY }
else ifactioncount 5 action ACOBRAFALL
ends
state cobradyingstate
ifaction ACOBRALYINGDEAD
{
strength 0
ifhitweapon { ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } } else
ifrespawn ifcount RESPAWNACTORTIME
{
spawn TRANSPORTERSTAR cstat 257 strength COBRA_STRENGTH ai AICOBRAGETENEMY
}
}
else ifai AICOBRADYING { ifactioncount 6 { iffloordistl 8 sound THUD move COBRASTOP action ACOBRALYINGDEAD ai AICOBRADEAD break } }
ifactioncount 20 resetactioncount
ends
state cobradodgestate
ifcount 13 ai AICOBRAGETENEMY
ends
actor NUKEBARRELDENTED COBRA_STRENGTH fall
state checksquished
ifonwater { ifrnd 32 spawn WATERBUBBLE sizeto 0 0 break }
ifinwater { ifrnd 32 spawn WATERBUBBLE sizeto 0 0 break }
sizeto COBRA_SIZEX COBRA_SIZEY
ifai 0 ai AICOBRASTARTUP
ifai AICOBRASTARTUP { fall
ifcount 1 {
ifrnd 2
{
debris SCRAP2 4
debris SCRAP3 7
sound RPG_EXPLODE
}
else
{
spawn TRANSPORTERSTAR
sound TELEPORTER
}
}
ifcount 23 {
cstat 257
ifrnd 10 spawn BURNING
ai AICOBRAGETENEMY
resetcount
}
}
else ifaction ACOBRALYINGDEAD { fall state cobradyingstate break }
else ifaction ACOBRASTATUE
{
ifactioncount 10 resetactioncount
ifhitweapon state checkcobrastatuehit
break
}
else ifaction ACOBRASTATUEFALL
{
iffloordistl 16 state breakcobrastatue
break
}
else ifaction ACOBRAFROZEN
{
ifcount COBRA_THAWTIME { ai AICOBRAGETENEMY getlastpal }
else ifcount COBRA_FROZENDRIPTIME { ifactioncount 25 { spawn WATERDRIP resetactioncount } }
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
addkills 1
ifrnd 84 spawn BLOODPOOL
lotsofglass 30
sound GLASS_BREAKING
killit
}
ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
else ifai AICOBRAJUMPENEMY state cobrajumpstate
else
{
ifai AICOBRAGETENEMY state cobraseekstate
else ifai AICOBRACHARGEENEMY state cobraseekstate
else ifai AICOBRADODGE state cobradodgestate
else ifai AICOBRASHOOTENEMY state cobrashootstate
else ifai AICOBRAFLEENEMY state cobrafleestate
else ifai AICOBRATHINK state cobrathinkstate
else ifai AICOBRASHRUNK state cobrashrunkstate
else ifai AICOBRADYING state cobradyingstate
else ifai AICOBRADEAD state cobradyingstate
else ifai AICOBRASPIT
{
ifcount 26 ai AICOBRAGETENEMY
else ifcount 18 ifrnd COBRA_ATTACKFREQ
{
shoot SPIT sound COBRA_SPIT
}
}
}
ifai AICOBRASHRUNK break
ifhitweapon state checkcobrahit
enda
definequote 132 BETTER TO BLOW IT UP!
define GROAM 321
definesound GROAM GROAM.VOC 0 0 3 0 500
define GDYING 322
definesound GDYING GROAM58.VOC 0 0 3 0 500
define GPAIN 323
definesound GPAIN GPAIN.VOC 0 0 3 0 500
define GLOBB 324
definesound GPAIN LOBB.VOC 0 0 3 0 500
action AGORILLAWALK 2356 3 5 1 21
action AGORILLAFALL 2356 3 5 1 18
action AGORILLAFROZEN 2376 1 5 1 18
action AGORILLARUN 2356 3 5 1 18
action AGORILLALOB 2387 2 3 1 23
action AGORILLADYING 2401 5 1 1 30
action AGORILLADEAD 2406
action AGORILLASTARTUP 2356 3 5 1 21
move GORILLAWALKVELS SUN_GORILLA_WALKVEL
move GORILLARUNVELS SUN_GORILLA_RUNVEL
move GORILLASTOPPED
ai AIGORILLASEEKENEMY AGORILLAWALK GORILLAWALKVELS seekplayer
ai AIGORILLARUNENEMY AGORILLARUN GORILLARUNVELS faceplayer
ai AIGORILLALOBBED AGORILLALOB GORILLASTOPPED faceplayer
ai AIGORILLADYING AGORILLADYING GORILLASTOPPED faceplayer
ai AIGORILLASHRUNK AGORILLAWALK GORILLAWALKVELS randomangle
ai AIGORILLASTARTUP AGORILLAWALK GORILLASTOPPED faceplayer
action AGORILLASTATUE 2376 1 5
action AGORILLASTATUEFALL 2376 1 5
state checkgorillafall
iffloordistl 8 { fall } else { fall action AGORILLAFALL }
ends
state shootgorillastatuedebris
debris SCRAP2 5
debris SCRAP3 8
debris SCRAP5 9
lotsofglass 15
ends
state breakgorillastatue
iffloordistl 128 {
sound GLASS_BREAKING
addkills 1
state shootgorillastatuedebris
killit
break
}
ends
state checkgorillastatuehit
ifdead
{
ifwasweapon RPG { sound SQUISHED state shootgorillastatuedebris killit }
else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state shootgorillastatuedebris addkills 1 state drop_ammo killit } else { cstat 257 state shootgorillastatuedebris quote 132 strength 1 }
}
else
{
state shootgorillastatuedebris
ifwasweapon SHOTSPARK1 ifrnd 96 sound PISTOL_RICOCHET
}
ends
state gorillagore
guts JIBS5 5
guts JIBS6 8
ends
state gorillashrunkstate
ifcount SHRUNKDONECOUNT ai AIGORILLASEEKENEMY
else ifcount SHRUNKCOUNT sizeto GORILLA_SIZEX GORILLA_SIZEY
else { state genericshrunkcode sizeto 1 1 }
ends
state checkgorillaseekstate
ai AIGORILLASEEKENEMY
ends
state gorillarunenemystate
ifpdistl 2048 { ifp palive ai AIGORILLALOBBED break }
else ifcansee { ifactioncount 6 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIGORILLASEEKENEMY } }
else ai AIGORILLASEEKENEMY
ends
state gorillaseekenemystate
ifrnd 5 soundonce GROAM
ifpdistl 2548 ifp palive { ai AIGORILLALOBBED break }
ifcansee ifcount 32
{
ifrnd 24 { ifp palive ifcanshoottarget ai AIGORILLALOBBED }
else ifpdistg 2548 ifrnd GORILLA_LOBFREQ
ifcanshoottarget
{
ifrnd 64
{
ai AIGORILLARUNENEMY
}
else ai AIGORILLALOBBED
}
}
ends
state gorilladyingstate
ifaction AGORILLADEAD
{
cstat 0
ifrespawn ifcount RESPAWNACTORTIME
{ spawn TRANSPORTERSTAR cstat 257 strength GORILLATRENGTH state checkgorillaseekstate }
else { strength 0 ifhitweapon ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy } break }
}
ifactioncount 5 { iffloordistl 8 sound THUD action AGORILLADEAD cstat 0 }
ends
state gorillalobbedstate
ifcansee
{
ifactioncount 2
{
resetactioncount
sound GLOBB
shoot MORTER
}
else ifcount 64 ifrnd 16 state checkgorillaseekstate
}
else state checkgorillaseekstate
ends
state gorillashootenemy
ifcount 72 state checkgorillaseekstate
else ifactioncount 2
{
resetactioncount
}
ends
state checkgorillahitstate
ifrnd 2 spawn BLOODPOOL
ifwasweapon FREEZEBLAST { } else state gorillagore
ifdead
{
ifwasweapon FREEZEBLAST
{
ifhitspace
{
sound SOMETHINGFROZE
spritepal 7 move 0 action AGORILLASTATUE state checkgorillafall strength 800 break
} else
{
sound SOMETHINGFROZE
spritepal 1 move 0
action AGORILLAFROZEN
strength 20
break
}
}
sound GDYING
addkills 1
ai AIGORILLADYING
}
else
{
ifrnd 32 { move 0 }
else ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIGORILLASHRUNK break }
soundonce GPAIN
guts JIBS6 20
}
ends
state gorillacode
sizeto GORILLA_SIZEX GORILLA_SIZEY
ifaction AGORILLADEAD { cstat 0 }
ifaction AGORILLAFROZEN
{
ifcount THAWTIME { ai AIGORILLASEEKENEMY spritepal 21 }
else ifcount FROZENDRIPTIME { ifactioncount 26 { spawn WATERDRIP resetactioncount } }
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
addkills 1
lotsofglass 30
ifrnd 84 spawn BLOODPOOL
sound GLASS_BREAKING
killit
}
ifp pfacing ifpdistl FROZENQUICKKICKDIST pkick
break
}
ifai 0 ai AIGORILLASTARTUP else
ifai AIGORILLASTARTUP { sizeto GORILLA_SIZEX GORILLA_SIZEY
ifcount 1 { cstat 0
spawn TRANSPORTERSTAR
sound TELEPORTER
}
ifcount 47
{
ifrnd 10 spawn BURNING
cstat 257
ai AIGORILLASEEKENEMY
resetcount
}
}
else ifaction AGORILLASTATUE
{
ifactioncount 10 resetactioncount
ifhitweapon state checkgorillastatuehit
break
}
else ifaction AGORILLASTATUEFALL
{
iffloordistl 16 state breakgorillastatue
break
}
else ifai AIGORILLASEEKENEMY state gorillaseekenemystate
else ifai AIGORILLARUNENEMY state gorillarunenemystate
else ifai AIGORILLALOBBED state gorillalobbedstate
else ifai AIGORILLASHRUNK state gorillashrunkstate
ifai AIGORILLADYING state gorilladyingstate
else
{
ifhitweapon state checkgorillahitstate
}
ends
actor NUKEBARRELLEAKED GORILLATRENGTH fall state gorillacode enda
action MINDLESSFRAMES -298 1 5 1 1
action MINDLESSSCREAM -298 1 5 1 1
action MINDLESSWAIT -298 1 5 1 1
define MM_ROAM 312
define MM_ATTK 313
define MM_ARM 314
definesound MM_ROAM mmroam1.voc 0 0 3 0 0
definesound MM_ATTK mmatk.voc 0 0 3 0 0
definesound MM_ARM mmarm.voc 0 0 3 0 0
move MINDLESSRUNVELS MINDLESS_RUNVEL 64
move MINDLESSRUNUPVELS MINDLESS_RUNVEL -64
move MINDLESSBULLVELS MINDLESS_RUNFASTVEL -64
move MINDLESSBACKWARDS -MINDLESS_RUNBACKVEL -64
move MINDLESSRISE 32 -16
move MINDLESSSTOPPED -32
ai AIMINDLESSGETE MINDLESSSCREAM MINDLESSRUNVELS faceplayerslow getv
ai AIMINDLESSWAIT MINDLESSFRAMES MINDLESSSTOPPED faceplayerslow
ai AIMINDLESSGETUP MINDLESSSCREAM MINDLESSRUNUPVELS faceplayer getv
ai AIMINDLESSPULLBACK MINDLESSFRAMES MINDLESSBACKWARDS faceplayerslow
ai AIMINDLESSHIT MINDLESSSCREAM MINDLESSBACKWARDS faceplayer
ai AIMINDLESSSHRUNK MINDLESSFRAMES SHRUNKVELS fleeenemy
ai AIMINDLESSDODGE MINDLESSFRAMES MINDLESSBULLVELS dodgebullet geth
ai AIMINDLESSDODGEUP MINDLESSFRAMES MINDLESSRISE getv geth
// HERE
move MINDLESSCRAZYVELS MINDLESS_CRAZYVEL -64
action MINDLESSCRAZY -298 1 7 1 5
action MINDLESSSPINUP -298 1 7 1 5
ai AIMINDLESSCRAZY MINDLESSCRAZY MINDLESSCRAZYVELS randomangle
ai AIMINDLESSSPINUP MINDLESSSPINUP MINDLESSRISE getv spin
state checkmindlessshootstate
ifcansee {
sound MM_ATTK
ifrnd BARRELLATTACK_FREQ ifrnd BARRELLATTACK_FREQ {
ifrnd MINDLESS_SHOOTMORTERFREQ shoot MORTER else
ifrnd MINDLESS_SHOOTRPGFREQ shoot RPG else
ifrnd MINDLESS_SHOOTLASERFREQ shoot FIRELASER }
}
ends
state checkmindlesscrazy
ifrnd CRAZYMINE_EXPLODE_FREQ
{
addkills 1
debris SCRAP1 8
debris SCRAP2 4
debris SCRAP3 7
spawn EXPLOSION2
sound RPG_EXPLODE
hitradius CRAZYMINE_EXPLODE_RADIUS 15 20 25 30
killit
break
}
else {
ifrnd 16 shoot MORTER else move MINDLESSCRAZYVELS spin
resetactioncount
}
ends
state checkmindlesshitstate
ifdead
{
// HERE
ifwasweapon RPG {
ifrnd 128 { strength 1 spritepal 10 action MINDLESSCRAZY ai AIMINDLESSCRAZY }
else
ifrnd 128 {
addkills 1
debris SCRAP1 8
debris SCRAP2 4
debris SCRAP3 7
spawn EXPLOSION2
state random_explosion_sounds
hitradius MINDLESS_HITRADIUS 15 20 25 30
killit
}
else
ifrnd 128 {
strength 1
ai AIMINDLESSSPINUP
} else strength 1
break
}
else
{
strength 1
}
}
else
{
// put a sound here
ifspritepal 2 { ifrnd MINDLESSDEACTIVATEPROB spritepal 8 } else spritepal 2
ifbulletnear
{
ifceilingdistl 64 ifrnd 48 ai AIMINDLESSDODGE
ai AIMINDLESSDODGEUP
}
else ai AIMINDLESSGETE
}
ends
state mindlessshrunkstate
ifcount 24 { action MINDLESSCRAZY ai AIMINDLESSCRAZY }
else sizeto 6 6
ends
state checkmindlessnearplayer
ifp palive ifpdistl MINDLESS_NEARP_DETDIST
{
ifcount 23
{
addkills 1
debris SCRAP1 8
debris SCRAP2 4
debris SCRAP3 7
spawn EXPLOSION2
sound RPG_EXPLODE
hitradius MINDLESS_HITRADIUS 15 20 25 30
killit
}
else { ifcount 3 { } else
sound MM_ARM
ifcount 15 { } else
sound MM_ATTK }
}
ends
state mindlessgetstate
ifrnd 192
{
ifcansee
{
ifbulletnear { ai AIMINDLESSDODGE break }
ifmove MINDLESSBULLVELS
{
ifcount 64 ai AIMINDLESSPULLBACK
else ifnotmoving ifcount 16 ai AIMINDLESSPULLBACK
}
else ifcount 32
{
ifp phigher move MINDLESSBULLVELS geth getv
else move MINDLESSBULLVELS geth
}
}
else ifrnd 1 operate
}
ends
state mindlessdodgestate
ifai AIMINDLESSDODGEUP
{
ifcount 8 ai AIMINDLESSGETE
else ifnotmoving ai AIMINDLESSGETE
}
else
{
ifcount 8 ai AIMINDLESSGETE
else ifnotmoving ai AIMINDLESSGETE
}
ends
actor EXPLODINGBARREL 100
state checksquished
state checkmindlessnearplayer
ifonwater { ifrnd 196 ai AIMINDLESSGETUP else { addkills 1
debris SCRAP1 8
debris SCRAP2 4
debris SCRAP3 7
spawn EXPLOSION2
state random_explosion_sounds
hitradius MINDLESS_HITRADIUS 15 20 25 30
killit } }
ifaction 0 ifpdistg 1 { action MINDLESSWAIT spritepal 8 }
sizeto 30 30 spawn FRAMEEFFECT1
ifrnd 2 fall
ifaction MINDLESSWAIT ai AIMINDLESSGETE
else ifaction MINDLESSCRAZY { ai AIMINDLESSCRAZY state checkmindlesscrazy }
else ifai AIMINDLESSWAIT
{
ifactioncount 4 ifrnd 16
ifcansee { ifp phigher ai AIMINDLESSGETUP else ai AIMINDLESSGETE }
}
else ifai AIMINDLESSGETE state mindlessgetstate
else ifai AIMINDLESSGETUP state mindlessgetstate
else ifai AIMINDLESSPULLBACK { ifcount 32 ai AIMINDLESSWAIT }
else ifai AIMINDLESSHIT { ifcount 8 ai AIMINDLESSWAIT }
else ifai AIMINDLESSSHRUNK state mindlessshrunkstate
else ifai AIMINDLESSDODGE state mindlessdodgestate
else ifai AIMINDLESSDODGEUP state mindlessdodgestate
ifhitweapon state checkmindlesshitstate
ifrnd 3 soundonce MM_ROAM
ifspritepal 2 state checkmindlessshootstate
enda
// THIS IS THE END