home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 May
/
VPR9705A.ISO
/
P_AND_A
/
DUKE3DSW
/
GAME.CON
< prev
next >
Wrap
Text File
|
1996-03-02
|
83KB
|
2,986 lines
/*
--------------------------------------------------------------------------------
Duke Nukem 3D Script Code.
Todd Replogle.
.CON changes in v1.1
Red Trooper doesn't 'beam' away as much, and don't respawn into
walls.
The BLAST RADIUSES for various weapons are redefinable.
Respawn times have been split into two seperate variables,
RESPAWNACTORTIME and RESPAWNITEMTIME.
Duke's running speed/friction is redefinable.
Minor weapon hit point balance adjustments.
--------------------------------------------------------------------------------
*/
include defs.con
include user.con
state rats
ifrnd 128 spawn RAT
ifrnd 128 spawn RAT
ifrnd 128 spawn RAT
ifrnd 128 spawn RAT
ifrnd 128 spawn RAT
ifrnd 128 spawn RAT
ifrnd 128 spawn RAT
ifrnd 128 spawn RAT
ends
move RESPAWN_ACTOR_FLAG
action RUBCANDENT 1 1 1 1 1
action RUBCAN
actor RUBBERCAN WEAK
ifaction RUBCANDENT { ifactioncount 16 { strength 0 action RUBCAN break } }
else ifhitweapon
{
ifwasweapon RADIUSEXPLOSION { state rats ifrnd 48 spawn BURNING debris SCRAP3 12 /* spawn EXPLOSION2 */ killit }
else action RUBCANDENT
}
enda
state headhitstate
// Unrem the following line to have Duke get hit upside his head
// wackplayer
ends
action EXPBARRELFRAME 0 2 1 1 15
actor EXPLODINGBARREL 26
fall
ifaction EXPBARRELFRAME
{
ifactioncount 2
{
hitradius 1024 WEAKEST WEAK MEDIUMSTRENGTH TOUGH
spawn EXPLOSION2
debris SCRAP2 2
sound PIPEBOMB_EXPLODE
killit
}
break
}
ifsquished
{
debris SCRAP1 5
killit
break
}
ifhitweapon
action EXPBARRELFRAME
enda
action BURNING_FLAME 0 12 1 1 2
move BURNING_VELS
state burningstate
ifgapzl 16 break
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
action TOILETWATERFRAMES 0 4 1 1 1
actor TOILETWATER 0 TOILETWATERFRAMES
ifpdistl 8192
{
ifpdistl 6144 soundonce WATER_GURGLE
ifspawnedby TOILET
sizeto 34 34
else
{
ifspawnedby WATERFOUNTAINBROKE
sizeto 6 15
else sizeto 24 32
}
ifp pdead break
else ifpdistl RETRIEVEDISTANCE ifp pfacing ifactioncount 32 ifphealthl MAXPLAYERHEALTH
ifhitspace ifcansee
{
addphealth 1
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 5144 soundonce STEAM_HISSING
ifcount 26 // Turn it on
{
resetcount
ifpdistl 844
{
addphealth -1
palfrom 16 16
}
}
else
{
ifspawnedby STEAM break ifspawnedby CEILINGSTEAM break
sizeto 24 24
}
ends
actor STEAM
state steamcode
enda
actor CEILINGSTEAM
state steamcode
enda
actor WATERBUBBLEMAKER 0 0 random_angle
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 random_angle
ifaction CRACKEDBUBBLE
{
ifinwater ifrnd 192 killit
ifactioncount 7 killit
}
else
{
ifcount 4
{
ifrnd 192 move BUBMOVE getv geth random_angle
else move BUBMOVEFAST getv geth random_angle
resetcount
}
ifonwater
{
iffloordistl 8 action CRACKEDBUBBLE
}
else ifactioncount 40 action CRACKEDBUBBLE
}
enda
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 face_player
ifspawnedby RPG ifpdistl 1024 killit
cstat 2
}
ifactioncount 4 killit
enda
action BARREL_DENTING 2 2 1 1 6
action BARREL_DENTED 1
action BARREL_DENTED2 2
move SPAWNED_BLOOD
actor NUKEBARRELDENTED WEAK
cactor NUKEBARREL
action BARREL_DENTED
enda
actor NUKEBARRELLEAKED WEAK
cactor NUKEBARREL
action BARREL_DENTED2
enda
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
actor FIREBARREL
fall
ifcount 32
{
resetcount
ifpdistl 1480 ifp phigher
{
addphealth -1
palfrom 16 16
ifrnd 96 sound DUKE_LONGTERM_PAIN
}
}
ifhitweapon
{
sound VENT_BUST
debris SCRAP1 10
ifrnd 128 spawn BURNING
else spawn BURNING2
killit
}
enda
action SHRINKERFRAMES 0 4 1 1 10
actor SHRINKEREXPLOSION 0 SHRINKERFRAMES
ifactioncount 4 killit
enda
action EXPLOSION_FRAMES 0 20 1 1 4
actor EXPLOSION2 1 EXPLOSION_FRAMES
// ifspawnedby FIREEXT spritepal 1
ifactioncount 20 killit
enda
actor EXPLOSION2BOT 1 EXPLOSION_FRAMES
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
{
shadeto -127
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 4
action ASATSHOOTING -10 3 5 1 40
action ASATWAIT 0 1 5 1 1
move TURRVEL
actor ROTATEGUN ROTTURRETSTRENGTH ASATSHOOTING TURRVEL face_player
ifaction ASATNSPIN
{ ifactioncount 32 { action ASATWAIT move TURRVEL face_player } }
else ifaction ASATSHOOTING
{
ifactioncount 12 { ifrnd 32 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 32 ifp palive ifcansee { action ASATSHOOTING move TURRVEL face_player } }
ifhitweapon { ifdead { addkills 1 sound LASERTRIP_EXPLODE debris SCRAP1 15 spawn EXPLOSION2 killit }
else { action ASATNSPIN debris SCRAP1 4 } move 0 }
enda
action RIP_F 0 8 1 1 1
actor FORCERIPPLE 0 RIP_F
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
globalsound DUKE_GET
palfrom 16 0 32
ifrespawn
{
move RESPAWN_ACTOR_FLAG
cstat 32768
}
else killit
ends
state randgetweapsnds
ifrnd 32 globalsound DUKE_GETWEAPON1
else ifrnd 32 globalsound DUKE_GETWEAPON2
else ifrnd 32 globalsound DUKE_GETWEAPON3
else ifrnd 32 globalsound DUKE_GETWEAPON4
else globalsound DUKE_GET
ends
state getweaponcode
state randgetweapsnds
palfrom 32 0 32
ifrespawn
{
move RESPAWN_ACTOR_FLAG
cstat 32768
}
else killit
ends
state respawnit
ifcount RESPAWNITEMTIME { spawn TRANSPORTERSTAR move 0 cstat 0 sound TELEPORTER }
ends
state quikget
globalsound DUKE_GET
palfrom 16 0 32 killit
ends
state quikweaponget
state randgetweapsnds
palfrom 32 0 32 killit
ends
actor STEROIDS
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE
ifpinventory GET_STEROIDS STEROID_AMOUNT ifcanseetarget
{
addinventory GET_STEROIDS STEROID_AMOUNT quote 37 state getcode
}
enda
actor HEATSENSOR
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
{
addinventory GET_HEATS HEAT_AMOUNT quote 101 state getcode
}
enda
actor BOOTS
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_BOOTS BOOT_AMOUNT
ifcanseetarget
{
addinventory GET_BOOTS BOOT_AMOUNT quote 6 state getcode
}
enda
actor SHIELD
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifcount 6 ifpdistl RETRIEVEDISTANCE ifpinventory GET_SHIELD SHIELD_AMOUNT
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 SHIELD_AMOUNT quote 38
ifspawnedby SHIELD state getcode
else state quikget
}
enda
actor AIRTANK
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_SCUBA SCUBA_AMOUNT ifcanseetarget
{
addinventory GET_SCUBA SCUBA_AMOUNT quote 39 state getcode
}
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 ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_HOLODUKE HOLODUKE_AMOUNT ifcanseetarget
{
addinventory GET_HOLODUKE HOLODUKE_AMOUNT quote 51 state getcode
}
enda
actor JETPACK
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifpinventory GET_JETPACK JETPACK_AMOUNT ifcanseetarget
{
addinventory GET_JETPACK JETPACK_AMOUNT quote 41 state getcode
}
enda
actor ACCESSCARD
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else 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 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 ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
{
addammo FREEZE_WEAPON FREEZEAMMOAMOUNT quote 65
ifspawnedby FREEZEAMMO state getcode
else state quikget
}
enda
actor SHOTGUNAMMO
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else 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 ifcount 6 ifpdistl RETRIEVEDISTANCE ifcanseetarget
{
addammo PISTOL_WEAPON 48 quote 65
ifspawnedby AMMOLOTS state getcode
else state quikget
}
enda
actor FUELCAN
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
addammo FREEZE_WEAPON FUELAMMOAMOUNT quote 66
ifspawnedby FUELCAN state getcode
else state quikget
}
enda
actor CRYSTALAMMO
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else 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 ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
addammo CHAINGUN_WEAPON CHAINGUNAMMOAMOUNT quote 63
ifspawnedby BATTERYAMMO state getcode
else state quikget
}
enda
actor CYCLOIDAMMO
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
addammo CYCLOID_WEAPON CYCLOIDAMMOAMOUNT quote 14
ifspawnedby CYCLOIDAMMO state getcode
else state quikget
}
enda
actor RPGAMMO
fall
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
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
addweapon HANDBOMB_WEAPON 0
addammo HANDBOMB_WEAPON HANDBOMBBOX
quote 55
ifspawnedby HBOMBAMMO state getweaponcode
else state quikweaponget
}
enda
actor RPGSPRITE
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
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 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 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 ifpdistl RETRIEVEDISTANCE ifcount 6 ifphealthl MAXPLAYERHEALTH // ifcanseetarget
{
addphealth 10 quote 61
ifspawnedby COLA state getcode
else state quikget
}
enda
actor ATOMICHEALTH
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else 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 ifpdistl RETRIEVEDISTANCE ifcount 6
ifpinventory GET_FIRSTAID FIRSTAID_AMOUNT
ifcanseetarget
{
addinventory GET_FIRSTAID FIRSTAID_AMOUNT quote 3 state getcode
}
enda
actor FIRSTGUNSPRITE
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
addweapon PISTOL_WEAPON 48
ifspawnedby FIRSTGUNSPRITE state getweaponcode
else state quikweaponget
}
enda
actor TRIPBOMBSPRITE
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
addweapon TRIPBOMB_WEAPON 1
quote 58
state getweaponcode
}
enda
actor CHAINGUNSPRITE
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
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
{
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
{
addweapon FREEZE_WEAPON 48 quote 59
ifspawnedby FREEZESPRITE state getweaponcode
else state quikweaponget
}
enda
actor CYCLOIDSPRITE
fall
ifmove RESPAWN_ACTOR_FLAG state respawnit
else ifp pshrunk { } else ifp palive ifpdistl RETRIEVEDISTANCE ifcount 6 ifcanseetarget
{
addweapon CYCLOID_WEAPON 48 quote 87
ifspawnedby CYCLOIDSPRITE state getweaponcode
else state quikweaponget
}
enda
state firestate
ifgapzl 16 break
ifpdistg 10240 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
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
ifcount 24
{
ifpdistl RETRIEVEDISTANCE
{
spawn BLOODPOOL // Will be brown
killit
}
}
else sizeto 32 32
enda
state drop_ammo ifrnd SPAWNAMMOODDS spawn AMMO ends
state drop_battery ifrnd SPAWNAMMOODDS spawn BATTERYAMMO ends
state drop_sgshells ifrnd SPAWNAMMOODDS spawn SHOTGUNAMMO ends
state drop_shotgun ifrnd SPAWNAMMOODDS spawn SHOTGUNSPRITE ends
state drop_chaingun
ifrnd SPAWNAMMOODDS
{
ifrnd 32 spawn CHAINGUNSPRITE
else spawn BATTERYAMMO
}
ends
// Shotgun 1-2 shotgun blasts.
state standard_jibs
guts JIBS2 1
guts JIBS3 2
guts JIBS4 3
guts JIBS5 2
guts JIBS6 3
ifrnd 1 { guts JIBS1 1 spawn BLOODPOOL } // spine
ifrnd 32
{
ifrnd 32 globalsound JIBBED_ACTOR1
else ifrnd 42 globalsound JIBBED_ACTOR2
else ifrnd 52 globalsound JIBBED_ACTOR3
else ifrnd 62 globalsound JIBBED_ACTOR5
else ifrnd 72 globalsound JIBBED_ACTOR6
else ifrnd 82 globalsound JIBBED_ACTOR7
else ifrnd 92 globalsound JIBBED_ACTOR4
}
// else sound SQUISHED
ends
state genericshrunkcode
ifcount 32 { ifpdistl RETRIEVEDISTANCE pstomp }
else { sizeto 9 8 spawn FRAMEEFFECT1 }
ends
state troop_body_jibs
ifrnd 64 guts HEADJIB1 1
ifrnd 64 guts LEGJIB1 2
ifrnd 64 guts ARMJIB1 1
ifrnd 48 spawn BLOODPOOL
ends
state liz_body_jibs
ifrnd 64 guts LIZMANHEAD1 1
ifrnd 64 guts LIZMANLEG1 2
ifrnd 64 guts LIZMANARM1 1
ifrnd 48 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 192 action EGGWAIT
else action EGGOPEN1
}
}
else ifaction EGGOPEN1 ifactioncount 4 action EGGOPEN2
else ifaction EGGOPEN2 ifactioncount 4 { spawn GREENSLIME action EGGOPEN3 }
else ifaction EGGSHRUNK
{
ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy } }
else ifcount SHRUNKCOUNT sizeto 48 40
else state genericshrunkcode
}
ifhitweapon
{
ifaction EGGFROZEN
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
killit
}
ifwasweapon SHRINKSPARK { move 0 sound ACTOR_SHRINKING action EGGSHRUNK }
ifdead
{
addkills 1
ifwasweapon FREEZEBLAST
{ spritepal 1 action EGGFROZEN strength 0 break }
sound SQUISHED
state standard_jibs
state delete_enemy
}
else ifaction EGGWAIT ifrnd 2 ifrnd 2 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 CYCLOIDBLAST FREEZETHROWER_WEAPON_STRENGTH enda
actor COOLEXPLOSION1 COOL_EXPLOSION_STRENGTH enda
actor TRIPBOMB TRIPBOMB_STRENGTH enda
action WEAP2FRAMES 0 4 1 1 6
actor SHOTSPARK1 PISTOL_WEAPON_STRENGTH WEAP2FRAMES
ifdead killit
ifactioncount 4 killit
else
{
ifactioncount 3 { ifinwater spawn WATERBUBBLE }
else ifcount 2 { } else ifonwater spawn WATERSPLASH2
}
enda
state standard_pjibs
guts JIBS1 1
guts JIBS3 2
guts JIBS4 1
guts JIBS5 1
guts JIBS6 2
guts DUKETORSO 1
guts DUKELEG 2
guts DUKEGUN 1
ifrnd 16 money 1
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
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 96 shoot BLOODSPLAT1
ifrnd 96 shoot BLOODSPLAT2
ifrnd 96 shoot BLOODSPLAT3
ifrnd 96 shoot BLOODSPLAT4
ifrnd 96 shoot BLOODSPLAT1
ends
actor APLAYER 100 PSTAND 0 0
// ifhitspace spawn BLOODPOOL
ifaction 0 action PSTAND
ifdead
{
ifsquished palfrom 32 63 63 63
else fall
ifactioncount 7 { move 0 } else ifactioncount 6 ifplayersl 2
{
ifrnd 84 globalsound DUKE_KILLED1
else ifrnd 108 globalsound DUKE_KILLED2
else globalsound DUKE_KILLED3
}
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
{
ifhitspace
{
lotsofglass 60
globalsound GLASS_BREAKING
resetplayer
}
else ifhitweapon
{
ifwasweapon FREEZEBLAST break
lotsofglass 60
globalsound GLASS_BREAKING
spawn ATOMICHEALTH
cstat 32768
action PLYINGDEAD
break
}
cstat 257
break
}
else ifaction PEXPLODEAD
{
quote 13
ifhitspace
{
ifspritepal 1
{
lotsofglass 60
globalsound GLASS_BREAKING
}
action PSTAND
resetplayer
}
break
}
else ifaction PEXPLODE
{
ifactioncount 5
{
action PEXPLODEAD
spawn BLOODPOOL
}
break
}
else ifp pshrunk
{
state standard_pjibs
spawn BLOODPOOL
sound SQUISHED
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
}
}
break
}
ifsquished
{
strength -1
sound SQUISHED
spawn OOZ
break
}
ifp ponsteroids
{
ifp pstanding { }
else 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 { } else sound DUKE_LONGTERM_PAIN
ifstrength TOUGH
{
state headhitstate
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
}
ifdead { cstat 0 ifplayersl 2 { } else sound DUKE_DEAD }
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 32 0 0 48
ifdead { 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
{
ifaction PJPHOUVER
{
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
actor ORGANTIC TURRETSTRENGTH
ifcount 48 resetcount
else { ifcount 32 sizeto 32 32 }
else ifcount 16 { sizeto 48 18 ifpdistl 2048 { sound TURR_ATTACK addphealth -2 palfrom 32 16 } }
ifhitweapon { ifdead { addkills 1 sound TURR_DYING guts JIBS5 10 state delete_enemy } sound TURR_PAIN break }
ifrnd 1 soundonce TURR_ROAM
enda
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
move TROOPWALKVELS 72
move TROOPWALKVELSBACK -72
move TROOPJETPACKVELS 64 -84
move TROOPJETPACKILLVELS 192 -38
move TROOPRUNVELS 108
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 face_player
ai AITROOPDODGE ATROOPWALKING TROOPRUNVELS dodgebullet
ai AITROOPSHOOTING ATROOPSHOOT TROOPSTOPPED face_player
ai AITROOPDUCKING ATROOPDUCK TROOPSTOPPED face_player
ai AITROOPJETPACK ATROOPJETPACK TROOPJETPACKVELS seekplayer
ai AITROOPSHRUNK ATROOPWALKING SHRUNKVELS fleeenemy
ai AITROOPHIDE ATROOPABOUTHIDE TROOPSTOPPED face_player
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 face_player
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
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
state checktroophit
ifaction ATROOPSUFFERING { stopsound LIZARD_BEG sound PRED_DYING cstat 0 strength 0 action ATROOPSUFFERDEAD break }
ifdead
{
ifwasweapon FREEZEBLAST { 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 { ifrnd 16 iffloordistl 32 { sound LIZARD_BEG spawn BLOODPOOL strength 0 move 0 action ATROOPSUFFERING break } action ATROOPDYING break }
sound PRED_DYING
}
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
ifaction ATROOPJETPACKILL
{
ifcansee ifactioncount 2
{
resetactioncount
sound PRED_ATTACK
shoot FIRELASER
}
ifp phigher ai AITROOPJETPACK
else ifinwater ai AITROOPJETPACK
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 16 spawn WATERDRIP
ifactioncount 14 { stopsound LIZARD_BEG cstat 0 strength 0 action ATROOPSUFFERDEAD break }
}
ends
state troopshrunkstate
ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } ai AITROOPSEEKENEMY }
else ifcount SHRUNKCOUNT sizeto 48 40
else state genericshrunkcode
ends
state troopcode fall
ifinwater ifrnd 1 spawn WATERBUBBLE
ifaction ATROOPSTAND { ifrnd 192 ai AITROOPSHOOTING else ai AITROOPSEEKPLAYER }
else ifaction ATROOPFROZEN
{
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
killit
}
break
}
ifinwater ifrnd 4 spawn WATERBUBBLE
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 }
ifhitweapon
{
ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
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 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 72
move LIZRUNVEL 192
move LIZJUMPVEL 184
move LIZSTOP
ai AILIZGETENEMY ALIZWALKING LIZWALKVEL seekplayer
ai AILIZDODGE ALIZRUNNING LIZRUNVEL dodgebullet
ai AILIZCHARGEENEMY ALIZRUNNING LIZRUNVEL face_player
ai AILIZFLEENEMY ALIZWALKING LIZWALKVEL fleeenemy
ai AILIZSHOOTENEMY ALIZSHOOTING LIZSTOP face_player
ai AILIZJUMPENEMY ALIZJUMP LIZJUMPVEL jumptoplayer
ai AILIZTHINK ALIZTHINK LIZSTOP face_player
ai AILIZSHRUNK ALIZWALKING SHRUNKVELS face_player
ai AILIZSPIT ALIZSCREAM LIZSTOP face_player
ai AILIZDYING ALIZDYING LIZSTOP face_player
state lizseekstate
ifactornotstayput
{
ifp palive ifcansee ifpdistl 2048 ifcount 16 ifcanshoottarget { ai AILIZSHOOTENEMY break }
ifai AILIZCHARGEENEMY
{
ifp phigher ifpdistg 2048 ifrnd 6 { ai AILIZJUMPENEMY break }
}
else ifpdistg 4096 ai AILIZCHARGEENEMY
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 }
else { ifcount 8 ifrnd 16 move LIZWALKVEL random_angle geth }
}
ends
state lizshrunkstate
ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state liz_body_jibs state standard_jibs state delete_enemy } 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 24 ifrnd 24 { ifpdistl 2048 ai AILIZFLEENEMY else { ifrnd 96 ai AILIZTHINK else ai AILIZGETENEMY } }
ifactioncount 2 { ifcanshoottarget { sound CAPT_ATTACK shoot SHOTSPARK1 resetactioncount } else ai AILIZTHINK }
ends
state checklizhit
spawn BLOOD
ifai AILIZSHRUNK
{ sound SQUISHED state standard_jibs state delete_enemy }
ifdead
{
ifwasweapon FREEZEBLAST { 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
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 { fall state lizdyingstate break }
else ifaction ALIZFROZEN
{
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
killit
}
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 } }
}
ifhitweapon state checklizhit
enda
action DRONEFRAMES 0 1 7 1 1
action DRONESCREAM 0 1 7 1 1
move DRONERUNVELS 128 64
move DRONERUNUPVELS 128 -48
move DRONEBULLVELS 348 -64
move DRONEBACKWARDS -64 -64
move DRONERISE 32 -16
move DRONESTOPPED -16
ai AIDRONEGETE DRONESCREAM DRONERUNVELS face_player getv
ai AIDRONEWAIT DRONEFRAMES DRONESTOPPED face_player
ai AIDRONEGETUP DRONESCREAM DRONERUNUPVELS face_player getv
ai AIDRONEPULLBACK DRONEFRAMES DRONEBACKWARDS face_player
ai AIDRONEHIT DRONESCREAM DRONEBACKWARDS face_player
ai AIDRONESHRUNK DRONEFRAMES SHRUNKVELS fleeenemy
state checkdronehitstate
state random_wall_jibs
ifdead
{
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 ai AIDRONEHIT }
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
{
ifmove DRONEBULLVELS
{
ifcount 64 ai AIDRONEPULLBACK
else ifnotmoving ifcount 16 ai AIDRONEPULLBACK
}
else ifcount 48
{
ifp phigher move DRONEBULLVELS geth getv
else move DRONEBULLVELS geth
}
}
ends
actor DRONE DRONESTRENGTH
state checksquished
state checkdronenearplayer
ifrnd 2 fall
ifaction 0 ai AIDRONEGETE
else ifai AIDRONEWAIT
{
ifrnd 1 soundonce DRON_ROAM
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
ifhitweapon state checkdronehitstate
enda
action AJELLYWALK 0 3 5 1 15
action AJELLYSTAND 0 1 5 1 15
action AJELLYSCRATCH 0 4 5 1 15
action AJELLYHIT 30 1 1 1 10
action AJELLYSHOOT 20 1 5 1 10
action AJELLYDYING 30 8 1 1 17
action AJELLYDEAD 38 1 1 1 1
action AJELLYFROZEN 0 1 5
move JELLYWALKVELS 96 -30
move JELLYUPVELS 96 -70
move JELLYSTOPPED 0 -30
move JELLYINWATER 96 24
ai AIJELLYGETENEMY AJELLYWALK JELLYWALKVELS seekplayer
ai AIJELLYSHOOTENEMY AJELLYSHOOT JELLYSTOPPED face_player
ai AIJELLYSCRATCHENEMY AJELLYSCRATCH JELLYSTOPPED face_player
ai AIJELLYHIT AJELLYHIT JELLYSTOPPED face_player
ai AIJELLYSHRUNK AJELLYWALK SHRUNKVELS face_player
ai AIJELLYDYING AJELLYDYING JELLYSTOPPED face_player
state jellygetenemystate
ifcansee
{
ifactioncount 32 { ifrnd 48 ifcansee ifcanshoottarget { sound OCTA_ATTACK1 ai AIJELLYSHOOTENEMY break } }
else
{
ifpdistl 1024 ai AIJELLYSCRATCHENEMY
sizeto 40 40
}
}
ends
state jellyscratchenemystate
ifpdistg 1280 ai AIJELLYGETENEMY
else ifcount 32 { resetcount sound OCTA_ATTACK2 addphealth JELLYSCRATCHINGPLAYER }
ends
state jellyshootenemystate
ifcount 25 { ifcount 27 ai AIJELLYGETENEMY }
else ifcount 24 shoot COOLEXPLOSION1
else
{
ifactioncount 6 resetactioncount
else ifactioncount 3 { shadeto -127 shadeto -127 shadeto -127 shadeto -127 }
else { shadeto 127 shadeto 127 shadeto 127 shadeto 127 }
}
ends
state checkjellyhitstate
ifwasweapon SHRINKSPARK { sound ACTOR_SHRINKING ai AIJELLYSHRUNK }
else
{
ifdead
{
addkills 1
ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
else ifwasweapon FREEZEBLAST { spritepal 1 move 0 action AJELLYFROZEN strength 0 break }
else { state rf ai AIJELLYDYING }
sound OCTA_DYING
}
else
{
ifwasweapon RPG
{
sound OCTA_DYING addkills 1
state standard_jibs
killit
}
sound OCTA_PAIN spawn BLOOD
ifrnd 64 ai AIJELLYHIT
}
}
state random_wall_jibs
ends
state jellyshrunkstate
ifcount SHRUNKDONECOUNT ai AILIZGETENEMY
else ifcount SHRUNKCOUNT sizeto 48 40
else state genericshrunkcode
ends
state jellydyingstate
ifactioncount 8 { ifrnd 64 spawn BLOODPOOL move JELLYSTOPPED action AJELLYDEAD break }
else ifactioncount 5 { } else ifactioncount 4 iffloordistl 8 sound THUD
ends
actor JELLYFISHSTAYPUT JELLYSTRENGTH ai AIJELLYGETENEMY cactor JELLYFISH enda
actor JELLYFISH JELLYSTRENGTH fall
state checksquished
ifai 0 ai AIJELLYGETENEMY
else ifaction AJELLYDEAD
{
strength 0
ifcount RESPAWNACTORTIME ifrespawn
{ addkills -1 spawn TRANSPORTERSTAR cstat 257 strength JELLYSTRENGTH ai AIJELLYGETENEMY }
ifhitweapon ifwasweapon RADIUSEXPLOSION { state standard_jibs killit }
break
}
else ifaction AJELLYFROZEN
{
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
killit
}
break
}
else
{
ifrnd 1 soundonce OCTA_ROAM
ifai AIJELLYGETENEMY state jellygetenemystate
else ifai AIJELLYHIT { ifcount 8 ai AIJELLYSHOOTENEMY }
else ifai AIJELLYDYING { state jellydyingstate break }
else ifai AIJELLYSCRATCHENEMY state jellyscratchenemystate
else ifai AIJELLYSHOOTENEMY state jellyshootenemystate
else ifai AIJELLYSHRUNK state jellyshrunkstate
ifmove JELLYUPVELS { } else ifp phigher move JELLYUPVELS seekplayer
else ifmove JELLYINWATER { } else ifinwater move JELLYINWATER seekplayer
ifhitweapon state checkjellyhitstate
}
enda
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
move PIGWALKVELS 72
move PIGRUNVELS 108
move PIGSTOPPED
ai AIPIGSEEKENEMY APIGWALK PIGWALKVELS seekplayer
ai AIPIGSHOOTENEMY APIGSHOOT PIGSTOPPED face_player
ai AIPIGFLEEENEMY APIGWALK PIGWALKVELS fleeenemy
ai AIPIGSHOOT APIGSHOOT PIGSTOPPED face_player
ai AIPIGDODGE APIGRUN PIGRUNVELS dodgebullet
ai AIPIGCHARGE APIGRUN PIGRUNVELS seekplayer
ai AIPIGDIVING APIGDIVE PIGSTOPPED face_player
ai AIPIGDYING APIGDYING PIGSTOPPED face_player
ai AIPIGSHRINK APIGWALK SHRUNKVELS fleeenemy
ai AIPIGHIT APIGHIT PIGSTOPPED face_player
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 32 ai AIPIGDIVING else ai AIPIGSEEKENEMY
}
else ifactioncount 2 ifp palive { resetcount action APIGDIVESHOOT }
ends
state checkpighitstate
spawn BLOOD
ifdead
{
addkills 1
state random_wall_jibs
ifrnd 16 spawn SHIELD else state drop_shotgun
ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
else ifwasweapon RPG { sound SQUISHED state standard_jibs state delete_enemy }
else ifwasweapon FREEZEBLAST { spritepal 1 move 0 action APIGFROZEN strength 0 break }
ai AIPIGDYING sound PIG_DYING
}
else
{
sound PIG_PAIN
state random_wall_jibs
ifwasweapon SHRINKSPARK ai AIPIGSHRINK
else ifrnd 64 ai AIPIGHIT
else ifrnd 64 ai AIPIGSHOOTENEMY
else ifrnd 64 { ai AIPIGDIVING action APIGDIVESHOOT }
}
ends
state pigshrinkstate
ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } 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
{
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
{
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
killit
}
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
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 32
move PALBOSS1RUNVELS 128
move BOSS1WALKVELS 208
move BOSS1RUNVELS 296
move BOSS1STOPPED
ai AIBOSS1SEEKENEMY ABOSS1WALK BOSS1WALKVELS seekplayer
ai AIBOSS1RUNENEMY ABOSS1RUN BOSS1RUNVELS face_player
ai AIBOSS1FLEEENEMY ABOSS1WALK BOSS1WALKVELS fleeenemy
ai AIBOSS1SHOOTENEMY ABOSS1SHOOT BOSS1STOPPED face_player
ai AIBOSS1LOBBED ABOSS1LOB BOSS1STOPPED face_player // face_player_smart
ai AIBOSS1DYING ABOSS1DYING BOSS1STOPPED face_player
ai AIBOSS1PALSHRINK ABOSS1WALK PALBOSS1SHRUNKRUNVELS fleeplayer
state boss1palshrunkstate
ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } 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 endoflevel 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
resetactioncount
}
ends
state checkboss1hitstate
ifrnd 2 spawn BLOODPOOL
ifdead
{
addkills 1
ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
else ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
sound BOS1_DYING
ifwasweapon FREEZEBLAST { spritepal 1 move 0 action ABOSS1FROZEN strength 0 break }
ai AIBOSS1DYING
}
else
{
ifrnd 32 { action BOSS1FLINTCH move 0 }
ifspritepal 0 { }
else ifwasweapon SHRINKSPARK { ai AIBOSS1PALSHRINK break }
sound BOS1_PAIN
debris SCRAP1 1
guts JIBS6 1
}
ends
state boss1code
ifaction ABOSS1FROZEN
{
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
killit
}
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
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 20
action ABOSS2LOB 30 2 5 1 105
action ABOSS2DYING 40 8 1 1 50
action BOSS2FLINTCH 40 1 1 1 1
action ABOSS2DEAD 48
move PALBOSS2SHRUNKRUNVELS 32
move PALBOSS2RUNVELS 84
move BOSS2WALKVELS 108
move BOSS2RUNVELS 148
move BOSS2STOPPED
ai AIBOSS2SEEKENEMY ABOSS2WALK BOSS2WALKVELS seekplayer
ai AIBOSS2RUNENEMY ABOSS2RUN BOSS2RUNVELS face_player
ai AIBOSS2FLEEENEMY ABOSS2WALK BOSS2WALKVELS fleeenemy
ai AIBOSS2SHOOTENEMY ABOSS2SHOOT BOSS2STOPPED face_player
ai AIBOSS2LOBBED ABOSS2LOB BOSS2STOPPED face_player_smart
ai AIBOSS2DYING ABOSS2DYING BOSS2STOPPED face_player
ai AIBOSS2PALSHRINK ABOSS2WALK PALBOSS2SHRUNKRUNVELS fleeplayer
state boss2palshrunkstate
ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } 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
ifpdistl 1596 { ifp palive ai AIBOSS2SHOOTENEMY break }
else ifcansee { ifactioncount 3 { ifcanshoottarget { resetactioncount sound BOS1_WALK } else ai AIBOSS2SEEKENEMY } }
else ai AIBOSS2SEEKENEMY
ends
state boss2seekenemystate
ifrnd 2 soundonce BOS2_ROAM
else ifactioncount 3 { resetactioncount sound BOS1_WALK }
ifpdistl 1596 ifp palive { ai AIBOSS2SHOOTENEMY break }
ifcansee ifcount 32 ifpdistg 2548 ifrnd 192 ifcanshoottarget
{
ifrnd 64
{
ai AIBOSS2RUNENEMY
ifspritepal 0 { } else move PALBOSS2RUNVELS seekplayer
}
else ifpdistl 8192 ai AIBOSS2LOBBED
}
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 endoflevel 52 }
ends
state boss2lobbedstate
ifcansee
{
ifactioncount 2 resetactioncount
else ifactioncount 1 shoot COOLEXPLOSION1
else ifcount 64 ifrnd 16 state checkboss2seekstate
}
else state checkboss2seekstate
ends
state boss2shootenemy
ifcount 72 state checkboss2seekstate
else ifaction ABOSS2SHOOT ifactioncount 2
{
ifpdistg 2048 ai AIBOSS2LOBBED
else
{
addphealth -10
palfrom 24 32
sound DUKE_GRUNT
spawn BLOOD
resetactioncount
}
}
ends
state checkboss2hitstate
ifrnd 2 spawn BLOODPOOL
ifdead
{
addkills 1
ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
else ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
sound BOS2_DYING
ifwasweapon FREEZEBLAST { spritepal 1 move 0 action ABOSS2FROZEN strength 0 break }
ai AIBOSS2DYING
}
else
{
ifrnd 32 { action BOSS2FLINTCH move 0 }
ifspritepal 0 { }
else ifwasweapon SHRINKSPARK { ai AIBOSS2PALSHRINK break }
sound BOS2_PAIN
debris SCRAP1 1
guts JIBS6 1
}
ends
state boss2code
ifaction ABOSS2FROZEN
{
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
killit
}
break
}
ifai 0 { ifspritepal 0 ai AIBOSS2RUNENEMY else { strength 1 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
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 ABOSS3SHOOT 20 2 5 1 20
action ABOSS3LOB 30 2 5 1 105
action ABOSS3DYING 40 8 1 1 50
action BOSS3FLINTCH 40 1 1 1 1
action ABOSS3DEAD 48
move PALBOSS3SHRUNKRUNVELS 32
move PALBOSS3RUNVELS 84
move BOSS3WALKVELS 108
move BOSS3RUNVELS 148
move BOSS3STOPPED
ai AIBOSS3SEEKENEMY ABOSS3WALK BOSS3WALKVELS seekplayer
ai AIBOSS3RUNENEMY ABOSS3RUN BOSS3RUNVELS face_player
ai AIBOSS3FLEEENEMY ABOSS3WALK BOSS3WALKVELS fleeenemy
ai AIBOSS3SHOOTENEMY ABOSS3SHOOT BOSS3STOPPED face_player
ai AIBOSS3LOBBED ABOSS3LOB BOSS3STOPPED face_player_smart
ai AIBOSS3DYING ABOSS3DYING BOSS3STOPPED face_player
ai AIBOSS3PALSHRINK ABOSS3WALK PALBOSS3SHRUNKRUNVELS fleeplayer
state boss3palshrunkstate
ifcount SHRUNKDONECOUNT { ifdead { addkills 1 sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy } 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
ifpdistl 1596 { ifp palive ai AIBOSS3SHOOTENEMY break }
else 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 }
ifpdistl 1596 ifp palive { ai AIBOSS3SHOOTENEMY break }
ifcansee ifcount 32 ifpdistg 2548 ifrnd 192 ifcanshoottarget
{
ifrnd 64
{
ai AIBOSS3RUNENEMY
ifspritepal 0 { } else move PALBOSS3RUNVELS seekplayer
}
else ifpdistl 8192 ai AIBOSS3LOBBED
}
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 endoflevel 52 }
ends
state boss3lobbedstate
ifcansee
{
ifactioncount 2 resetactioncount
else ifactioncount 1 { ifcount 32 { } else ifcount 30 shoot RPG }
else ifcount 64 ifrnd 16 state checkboss3seekstate
}
else state checkboss3seekstate
ends
state boss3shootenemy
ifcount 72 state checkboss3seekstate
else ifaction ABOSS3SHOOT ifactioncount 2
{
ifpdistg 2048 ai AIBOSS3LOBBED
else
{
shoot SHOTSPARK1
resetactioncount
}
}
ends
state checkboss3hitstate
ifrnd 2 spawn BLOODPOOL
ifdead
{
addkills 1
ifspritepal 0 globalsound DUKE_TALKTOBOSSFALL
else ifrnd 64 globalsound DUKE_TALKTOBOSSFALL
sound BOS3_DYING
ifwasweapon FREEZEBLAST { spritepal 1 move 0 action ABOSS3FROZEN strength 0 break }
ai AIBOSS3DYING
}
else
{
ifrnd 32 { action BOSS3FLINTCH move 0 }
ifspritepal 0 { }
else ifwasweapon SHRINKSPARK { ai AIBOSS3PALSHRINK break }
sound BOS3_PAIN
debris SCRAP1 1
guts JIBS6 1
}
ends
state boss3code
ifaction ABOSS3FROZEN
{
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
killit
}
break
}
ifai 0 { ifspritepal 0 ai AIBOSS3RUNENEMY else { strength 1 ai AIBOSS3SHOOTENEMY } }
else ifaction BOSS3FLINTCH { ifactioncount 3 ai AIBOSS3SEEKENEMY }
else ifai AIBOSS3SEEKENEMY state boss3seekenemystate
else ifai AIBOSS3RUNENEMY state boss3runenemystate
else ifai AIBOSS3SHOOTENEMY state boss3shootenemy
else ifai AIBOSS3LOBBED state boss3lobbedstate
else ifai AIBOSS3PALSHRINK state boss3palshrunkstate
ifai AIBOSS3DYING state boss3dyingstate
else ifhitweapon state checkboss3hitstate
ends
actor BOSS3 BOSS3STRENGTH fall state boss3code enda
action AFATBREETH 0 3 5 1 40
action AFATFROZEN 0 1 5
action AFATSPIN 25 3 1 1 6
action AFATGET 0 3 5 1 30
action AFATSHOOT 15 2 5 1 50
action AFATDYING 30 8 1 1 12
action AFATDEAD 38 1 1 1 1
move FATGETUPVELS 96 -64
move FATGETVELS 96 64
move FATSTOPPED
ai AIFATWAIT AFATBREETH FATSTOPPED face_player
ai AIFATGET AFATGET FATGETVELS seekplayer
ai AIFATSHOOT AFATSHOOT FATSTOPPED face_player
ai AIFATSPIN AFATSPIN FATGETVELS face_player
ai AIFATDYING AFATDYING FATSTOPPED face_player
actor FATGUY FATGUYSTRENGTH
state checksquished
ifaction AFATFROZEN
{
fall
ifhitweapon
{
ifwasweapon FREEZEBLAST { strength 0 break }
lotsofglass 30
sound GLASS_BREAKING
killit
}
break
}
ifai 0 ai AIFATWAIT
else ifai AIFATWAIT { ifcount 48 { ifrnd 144 ai AIFATGET else ai AIFATSHOOT } }
else ifai AIFATSHOOT
{
ifcount 40 { ifrnd 32 ai AIFATWAIT }
else { ifactioncount 2 { sound COMM_ATTACK shoot RPG resetactioncount } }
}
else ifai AIFATDYING
{
fall
ifaction AFATDEAD { } else
{
strength 0
ifactioncount 8 { iffloordistl 8 sound THUD cstat 0 action AFATDEAD }
break
}
}
else ifai AIFATGET
{
ifnotmoving ifrnd 32 operate ifpdistl 1596 { sound COMM_SPIN ai AIFATSPIN break }
ifcansee
{
ifp phigher move FATGETUPVELS getv geth face_player
else move FATGETVELS getv geth face_player
}
}
else ifai AIFATSPIN
{
soundonce COMM_SPIN
ifcount 16 ifpdistl 1024 { addphealth CAPTSPINNINGPLAYER sound DUKE_GRUNT palfrom 32 16 resetcount }
ifactioncount 38 ai AIFATWAIT
ifnotmoving ifrnd 32 operate
}
ifhitweapon
{
ifdead
{
addkills 1
ifwasweapon RADIUSEXPLOSION { sound SQUISHED state standard_jibs state delete_enemy }
else ifwasweapon FREEZEBLAST { spritepal 1 move 0 action AFATFROZEN strength 0 break }
else ifwasweapon RPG { sound SQUISHED state troop_body_jibs state standard_jibs state delete_enemy }
sound COMM_DYING
ai AIFATDYING
}
else sound COMM_PAIN
}
else ifdead { } else ifrnd 2 soundonce COMM_ROAM
enda