Rev 14 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/*
--------------------------------------------------------------------------------
Duke: Nuclear Winter
By Joris Weimar
© 1997 Simply Silly Software
--------------------------------------------------------------------------------
Duke: Nuclear Winter Plus
By Hendricks266
--------------------------------------------------------------------------------
*/
state snowmangrowcode
ifcount 32
{
addkills 1
sound SQUISH2
sound PIPEBOMB_EXPLODE
hitradius 2048 60 70 80 90
debris SCRAP3 40
debris SCRAP3 40
debris SCRAP3 40
debris SCRAP3 40
killit
}
else
{
sizeto MAXXSTRETCH MAXYSTRETCH
break
}
ends
move SNOWBALLSPEED1 750 100
move SNOWBALLUP 0 -2000
action SNOWBALL1 0 1 1 1 1
ai AISNOWBALL1 SNOWBALL1 SNOWBALLSPEED1 geth getv
ai AISNOWBALLUP SNOWBALL1 SNOWBALLUP geth getv
useractor notenemy SNOWBALL 0 SNOWBALL1
state checksquished
ifai 0
{
sizeat 1 1
cstat 32768
clipdist 0
ai AISNOWBALLUP
}
ifai AISNOWBALLUP
{
ifcount 1
{
ai AISNOWBALL1
cstat 257
clipdist 32
sizeat 30 30
}
else break
}
ifai AISNOWBALL1
{
ifpdistl 1024
{
getplayer[THISACTOR].i temp
setactor[temp].htextra SNOWBALLAMOUNT
setactor[temp].htpicnum SNOWBALL
// getactor[THISACTOR].owner temp2
setactor[temp].htowner owner
// addphealth SNOWBALLAMOUNT
debris SCRAP3 5
globalsound DUKE_GRUNT
state headhitstate
palfrom 15 15 15
killit
}
iffloordistl 10
{
debris SCRAP3 5
killit
}
}
ifcount 30 killit
enda
action ASNOWMANIDLE 26 3 5 1 20
action ASNOWMANATTACK 11 3 5 1 30
action ASNOWMANDIE 5 5 1 1 10
action ASNOWMANDEAD 10 1 1
action ASNOWMANFROZEN 0 1 5 1 1
move SNOWMANSPEED
ai AISNOWFOLLOW ASNOWMANIDLE SNOWMANSPEED faceplayerslow
ai AISNOWATTACK ASNOWMANATTACK SNOWMANSPEED faceplayer
ai AISNOWMANSHRINK ASNOWMANIDLE SNOWMANSPEED geth getv
ai AISNOWMANGROW ASNOWMANIDLE SNOWMANSPEED geth getv
ai AISNOWMANDYING ASNOWMANDIE SNOWMANSPEED geth getv
state snowmanidlestate
ifcansee
ifpdistl 8192
{
ai AISNOWATTACK
break
}
ends
state snowmandyingstate
ifactioncount 5 action ASNOWMANDEAD
ends
state snowmanattackstate
ifcount 15 nullop else ifcount 14 spawn SNOWBALL
ifactioncount 3
{
resetcount
ifpdistl 8192 resetactioncount else ai AISNOWFOLLOW
}
ends
state snowmanshrinkstate
ifcount SHRUNKDONECOUNT
ai AISNOWFOLLOW
else
ifcount SHRUNKCOUNT
sizeto 42 36
else
state genericshrunkcode
ends
state snowmanhitstate
ifdead
{
// debris SCRAP3 40
// debris SCRAP3 40
debris SCRAP3 20
ifwasweapon GROWSPARK
{
sound ACTOR_GROWING
ai AISNOWMANGROW
break
}
addkills 1
ifwasweapon FREEZEBLAST
{
sound SOMETHINGFROZE
spritepal 1
move 0
action ASNOWMANFROZEN
strength 0
break
}
ifwasweapon RADIUSEXPLOSION
{
debris SCRAP3 40
killit
}
else
ifwasweapon RPG
{
debris SCRAP3 20
killit
}
else
{
cstat 0
ai AISNOWMANDYING
}
}
else
{
debris SCRAP3 20
ifwasweapon SHRINKSPARK
{
sound ACTOR_SHRINKING
ai AISNOWMANSHRINK
}
else
ifwasweapon GROWSPARK
sound EXPANDERHIT
}
ends
useractor enemy SNOWMAN SNOWMANSTRENGTH ASNOWMANIDLE
fall
ifaction ASNOWMANDEAD
{
strength 0
ifhitweapon
{
ifwasweapon RADIUSEXPLOSION
{
// debris SCRAP3 40
// debris SCRAP3 40
debris SCRAP3 20
killit
}
}
ifrespawn
{
ifcount RESPAWNACTORTIME
{
spawn TRANSPORTERSTAR
cstat 257
strength SNOWMANSTRENGTH
ai AISNOWFOLLOW
}
}
break
}
else ifaction ASNOWMANFROZEN
{
ifcount THAWTIME
{
ai AISNOWFOLLOW
getlastpal
}
else
ifcount FROZENDRIPTIME
ifrnd 8
spawn WATERDRIP
ifhitweapon
{
ifwasweapon FREEZEBLAST
{
strength 0
break
}
addkills 1
lotsofglass 30
ifrnd 84 debris SCRAP3 10
sound GLASS_BREAKING
killit
}
ifp pfacing
ifpdistl FROZENQUICKKICKDIST
pkick
break
}
ifai AISNOWMANSHRINK
{
state snowmanshrinkstate
break
}
ifhitweapon state snowmanhitstate
ifp pdead break
ifai 0
{
ai AISNOWFOLLOW
sizeat 42 36
clipdist 32
cstat 257
}
ifai AISNOWMANDYING state snowmandyingstate
else ifai AISNOWMANGROW state genericgrowcode
else ifai AISNOWFOLLOW state snowmanidlestate
else ifai AISNOWATTACK state snowmanattackstate
enda
move botshrunkspeed 50
move botsteroidspeed 400
move botstopped
move botfall 0 -38
move bothardfall 0
move botflyupspeed 200 -140
move botflydownspeed 200 -38
move botflyspeed 200 // -38
move botdodgespeedfly 250 -140
move botdodgespeeddownfly 250 140
action ABOTFLY 0 1 5 1 13
action ABOTFLYDYING 65 5 1 1 18
action ABOTFLYDIEBACK 69 5 1 -1 18
action ABOTFLYDEAD 65 1 1 1 1
action ABOTFLYFROZEN 0 1 5 1 1
ai AIBOTFLYUP ABOTFLY botflyupspeed faceplayer
ai AIBOTFLYDOWN ABOTFLY botflydownspeed faceplayer
ai AIBOTFLYSEEKUP ABOTFLY botflyupspeed geth seekplayer randomangle
ai AIBOTFLYSEEKDOWN ABOTFLY botflydownspeed geth seekplayer randomangle
ai AIBOTFLYDODGEUP ABOTFLY botdodgespeedfly fleeenemy randomangle
ai AIBOTFLYDODGEDOWN ABOTFLY botdodgespeeddownfly fleeenemy randomangle
ai AIBOTFLYNOTMOVING
ai AIBOTFLYCAMPING ABOTFLY botstopped faceplayer
ai AIBOTFLYDYING ABOTFLYDYING botstopped faceplayer
ai AIFLYWAIT ABOTFLY botstopped faceplayer
ai AIFLYUPMOMENT ABOTFLY botflyupspeed faceplayer
ai AIFLYUPHOLD ABOTFLY botflyupspeed faceplayer
ai AIBOTFLYSTRAIGHT ABOTFLY botflyspeed geth getv
ai AIBOTFLYGROW ABOTFLY botstopped geth getv
ai AIBOTFLYSHRINK ABOTFLY botshrunkspeed fleeenemy
ai AIBOTFLYSTEROIDS ABOTFLY botsteroidspeed randomangle
ai AIBOTFLYFLEE ABOTFLY botflyspeed randomangle
action ABOTWALK 10 4 5 1 13
action ABOTWALK1 10 1 5 1 13
action ABOTWALKGO 10 4 5 1 13
action ABOTKICK 10 2 5 1 25
action ABOTCRAWL 55 3 5 1 13
action ABOTJUMPUP 40 2 5 1 13
action ABOTFALL 50 1 5 1 1
action ABOTWDYING 70 5 1 1 18
action ABOTWDEAD 75 1 1 1 1
action ABOTWALKDIEBACK 74 5 1 -1 18
action ABOTWALKFROZEN 0 1 5 1 1
move botwalkspeed 250
move botjumpspeed 250 -115
move botjumpdspeed 250 150
move botcrawlspeed 0
move botfallspeed 250 100
ai AIBOTWALKKICK ABOTKICK botstopped faceplayer
ai AIBOTWALKHUNT ABOTWALK botwalkspeed faceplayer
ai AIBOTWALKSEEK ABOTWALK botwalkspeed seekplayer
ai AIBOTWALKSEEK2
ai AIBOTWALKCAMPING ABOTWALK botstopped faceplayersmart
ai AIBOTWALKSTRJUMP1 ABOTJUMPUP botjumpspeed geth getv
ai AIBOTWALKSTRJUMP2 ABOTFALL botjumpdspeed geth getv
ai AIBOTWALKSTRJUMP1S ABOTJUMPUP botjumpspeed faceplayer
ai AIBOTWALKSTRJUMP2S ABOTFALL botjumpdspeed faceplayer
ai AIBOTWALKJUMP1 ABOTJUMPUP botjumpspeed faceplayer
ai AIBOTWALKJUMP2 ABOTFALL botjumpdspeed faceplayer
ai AIBOTWALKDYING ABOTWDYING botstopped faceplayer
ai AIWALKFALL ABOTFALL botstopped faceplayer
ai AIWALKFALLHARD ABOTFALL botstopped faceplayer
ai AIBOTWALKSTRAIGHT ABOTWALK botwalkspeed geth getv
ai AIBOTWALKGROW ABOTWALK1 botstopped geth getv
ai AIBOTWALKSHRINK ABOTWALK botshrunkspeed fleeenemy
ai AIBOTWALKSTEROIDS ABOTWALK botsteroidspeed randomangle
ai AIBOTWALKFLEE ABOTWALK botwalkspeed randomangle
ai AIBOTLETFALL ABOTFALL botfallspeed getv geth
ai AIBOTWALKNOTMOVING
ai AIWALKWAIT ABOTWALK botstopped faceplayer
state miniboss
sound SANTA_TRASH1
spawn EXPLOSION2
spawn EXPLOSION2
spawn PIGCOP
spawn PIGCOP
ends
state stomphisfreakingass
ifp pdead
nullop
else
ifpdistl SQUISHABLEDISTANCE
{
addphealth -1000
sound SQUISH2
// state standard_pjibs
state standard_pjibs
sound SANTA_TRASH9
}
ends
state botchangeweaponstate
ifspritepal 0 nullop else break
resetcount
ifspritepal 0
{
ifpdistl 4096
{
ifrnd 128
spritepal 3
else
spritepal 9
}
else
ifrnd 128
spritepal 3
}
else ifspritepal 3
{
ifpdistg 4096
{
ifrnd 128
spritepal 0
else
spritepal 9
}
else
{
ifrnd 128
spritepal 9
}
}
else ifspritepal 9
{
ifpdistg 4096
{
ifrnd 128
spritepal 0
else
spritepal 3
}
else
ifrnd 128
spritepal 9
}
sound SELECT_WEAPON
ends
state botshootrpg // so Santa shoots the player's RPG and not the Commander's
eshoot RPG
setactor[RETURN].extra RPG_WEAPON_STRENGTH
setactor[RETURN].xrepeat 14
setactor[RETURN].yrepeat 14
sound RPG_SHOOT
ends
state botquickshootstate
ifspritepal 0 nullop else break
ifp pshrunk break
ifp pdead break
ifspritepal 0
state botshootrpg
else ifspritepal 3
{
shoot CHAINGUN
sound CHAINGUN_FIRE
}
else ifspritepal 9
{
// shoot SHRINKER
// sound SHRINKER_FIRE
shoot SHOTGUN
sound SHOTGUN_FIRE
}
ends
state botshootstate
ifspritepal 0 nullop else break // ifcanshoottarget nullop // ifcanseetarget nullop
ifp pdead break
ifp pshrunk break
ifspritepal 0
{
ifcount 5
{
ifactioncount 5
{
resetactioncount
state botshootrpg
}
ifpdistl 4096
ifrnd 5
state botchangeweaponstate
}
}
else ifspritepal 3
{
ifcount 5
{
ifactioncount 1
{
resetactioncount
shoot SHOTSPARK1
shoot CHAINGUN
shoot CHAINGUN
shoot CHAINGUN
sound CHAINGUN_FIRE
}
ifrnd 1
state botchangeweaponstate
}
}
else ifspritepal 9
{
ifcount 5
{
ifactioncount 5
{
resetactioncount
// shoot SHRINKER
// sound SHRINKER_FIRE
shoot SHOTGUN
sound SHOTGUN_FIRE
}
ifp ponsteroids
ifrnd 64
state botchangeweaponstate
ifrnd 1
state botchangeweaponstate
}
}
ends
state dudehurt
/*
ifstrength YELLHURTSOUNDSTRENGTHMP
{
ifrnd 64
sound SANTA_GOTHIT
else
ifrnd 64
sound SANTA_DEAD
else
ifrnd 64
sound SANTA_TRASH6
else
sound SANTA_TRASH8
}
else
{
ifrnd 64
sound SANTA_GOTHIT
else ifrnd 64
sound SANTA_DEAD
else ifrnd 64
sound SANTA_TRASH6
else
sound SANTA_TRASH8
}
*/
ifrnd 80
sound SANTA_GOTHIT
ends
state dukehurt
ifrnd 80
sound SANTA_GOTHIT
/*
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
}
*/
ends
// WALK STATES
state botwalkhitstate
state botshootstate
// spawn BLOOD
ifdead
{
ifspritepal 21
{
state miniboss
break
}
else
soundonce SANTA_DEAD
ifwasweapon FREEZEBLAST
{
spritepal 1
strength 0
move 0
action ABOTWALKFROZEN
sound SOMETHINGFROZE
break
}
else ifwasweapon GROWSPARK
{
cstat 0
sound ACTOR_GROWING
ai AIBOTWALKGROW
break
}
else ifwasweapon RADIUSEXPLOSION
{
// state standard_pjibs
// state standard_pjibs
// state standard_pjibs
state standard_pjibs
sound SQUISH2
addkills 1
endofgame 52
killit
}
else ifwasweapon RPG
{
// state standard_pjibs
// state standard_pjibs
// state standard_pjibs
state standard_pjibs
sound SQUISH2
addkills 1
endofgame 52
killit
}
else
{
ai AIBOTWALKDYING
break
}
}
else
{
state dudehurt
ifwasweapon SHRINKSPARK
{
ifai AIBOTWALKSTEROIDS
nullop
else
{
ai AIBOTWALKSHRINK
break
}
}
}
ends
state botwalkdyingstate
fall
strength 0
ifactioncount 5
{
action ABOTWDEAD
endofgame 52
killit
}
ends
state botwalkseekstate
ifcansee
{
ai AIBOTWALKHUNT
break
}
ifgapzl 100
nullop
else
{
ifnotmoving
{
ifrnd 4
operate
ifpdistl 8000
{
ai AIFLYUPMOMENT
cactor SOBBOTFLY
break
}
else
ai AIBOTWALKJUMP1
break
}
}
ends
state botwalkjumpstate
ifrnd 4
ifpdistl 6000
state botquickshootstate
ifai AIBOTWALKJUMP1
ifactioncount 2
{
ai AIBOTWALKJUMP2
break
}
ifai AIBOTWALKJUMP2
ifactioncount 1
{
state botshootstate
iffloordistl 16
{
sound DUKE_LAND
operate
ai AIBOTWALKHUNT
}
}
ends
state botwalkhuntstate
state botshootstate
ifrnd 3
{
ai AIBOTWALKSTRJUMP1S
count 10
}
ifcansee
{
ifpdistl 1024
ifrnd 24
{
ifp pdead
nullop
else
ai AIBOTWALKKICK
break
}
}
else
{
ifphealthl 50
ifrnd 64
ifpdistl 8000
ifrnd 80
sound SANTA_TRASH1
ifrnd 128
{
ifp phigher
{
ai AIFLYUPMOMENT
cactor SOBBOTFLY
break
}
else
{
ai AIBOTWALKSTRAIGHT
break
}
}
else
{
ai AIBOTWALKSTRAIGHT
break
}
ai AIBOTWALKSEEK
break
}
ifrnd 128
ifnotmoving
{
ifrnd 8
operate
ai AIBOTWALKJUMP1
break
}
ends
state botwalkkickstate
ifactioncount 2
{
resetactioncount
ifpdistl 1024
{
ifp pdead
{
ai AIBOTWALKHUNT
break
}
ifp pfacing
ifrnd 16
globalsound SANTA_TRASH8
sound KICK_HIT
ifspritepal 21
addphealth -1
else
addphealth -6
state dukehurt
}
else
{
ai AIBOTWALKHUNT
break
}
ifrnd 50
{
ai AIBOTWALKHUNT
break
}
}
ends
state botwalkstraightjumpstate
ifai AIBOTWALKSTRJUMP1
{
ifcount 20
{
ai AIBOTWALKSTRJUMP2
break
}
}
else ifai AIBOTWALKSTRJUMP2
{
ifcount 18
{
iffloordistl 16
{
operate
ifrnd 128
sound DUKE_LAND
ifrnd 200
ai AIBOTWALKSTRAIGHT
else
ai AIBOTWALKSEEK
}
}
}
ends
state botjumpshootstate
ifai AIBOTWALKSTRJUMP1S
{
state botshootstate
ifcount 20
{
ai AIBOTWALKSTRJUMP2S
resetactioncount
count 10
break
}
}
else ifai AIBOTWALKSTRJUMP2S
{
ifcount 18
{
iffloordistl 16
{
operate
sound DUKE_LAND
ai AIBOTWALKHUNT
count 10
}
}
}
ends
state botwalkstraightstate
ifpdistg 20000
ai AIBOTWALKSEEK
ifcansee
{
ifnotmoving
{
ai AIBOTWALKSTRJUMP1
break
}
ifrnd 64
ai AIBOTWALKHUNT
}
else
ifrnd 128
ifnotmoving
ai AIBOTWALKSTRJUMP1
ends
state steroidswalk
soundonce DUKE_HARTBEAT
spawn FRAMEEFFECT1
ifhitweapon
{
state botwalkhitstate
break
}
ifcount 150
ai AIBOTWALKHUNT
ifcount 34
nullop
else
sizeto 42 36
ends
state botletfallstate
ifactioncount 5
nullop
else ifactioncount 6
soundonce SANTA_TRASH7
ifcansee
{
ai AIFLYWAIT
cactor SOBBOTFLY
break
}
else
{
iffloordistl 50
{
ai AIFLYWAIT
cactor SOBBOTFLY
break
}
}
ends
useractor enemy SOBBOTWALK SOBBOTSTRENGTH ABOTWALK
state checksquished
ifai 0
{
ifspawnedby RECON
{
spawn PIGCOP
killit
}
ifcansee nullop else break
sizeat 42 36
cstat 257
ai AIBOTWALKSEEK
ifspritepal 21
{
strength MINIBOSSSTRENGTH
ifrnd 64
soundonce SANTA_TRASH9
}
else
spritepal 0
sound INSERT_CLIP
break
}
fall
sleeptime 300
ifaction ABOTWDEAD
break
else ifaction ABOTWALKFROZEN
{
ifcount THAWTIME
{
ai AIBOTWALKHUNT
getlastpal
}
else ifcount FROZENDRIPTIME
ifactioncount 26
{
spawn WATERDRIP
resetactioncount
}
ifhitweapon
{
ifwasweapon FREEZEBLAST
{
strength 0
break
}
addkills 1
ifrnd 84
spawn BLOODPOOL
lotsofglass 30
spawn ATOMICHEALTH
sound GLASS_BREAKING
ifspritepal 21
{
state miniboss
break
}
else
{
endofgame 52
killit
}
}
ifp pfacing
ifpdistl FROZENQUICKKICKDIST
pkick
break
}
else ifai AIBOTWALKSTEROIDS
{
state steroidswalk
break
}
else ifai AIBOTWALKGROW
{
ifcount 32
{
guts JIBS4 24
guts JIBS6 28
addkills 1
sound SQUISH2
sound PIPEBOMB_EXPLODE
hitradius 2048 60 70 80 90
spawn BLOODPOOL
spawn EXPLOSION2
ifspritepal 21
{
state miniboss
break
}
else
{
endofgame 52
killit
}
}
else
{
sizeto MAXXSTRETCH MAXYSTRETCH
break
}
break
}
else ifai AIBOTWALKSHRINK
{
ifcount SHRUNKDONECOUNT
ai AIBOTWALKHUNT
else
{
ifcount SHRUNKCOUNT
{
spawn FRAMEEFFECT1
sizeto 42 36
}
else ifcount 31
nullop
else ifcount 30
{
ifrnd 255
{
sound DUKE_TAKEPILLS
ai AIBOTWALKSTEROIDS
break
}
}
ifcount 32
{
ifpdistl SQUISHABLEDISTANCE
{
state standard_pjibs
sound SQUISH2
spawn BLOODPOOL
pstomp
ifspritepal 21
{
state miniboss
break
}
else
{
ifrnd 128
sound SANTA_DEAD
else
sound SANTA_TRASH9
endofgame 52
killit
}
}
}
else
{
sizeto MINXSTRETCH MINYSTRETCH
spawn FRAMEEFFECT1
}
}
break
}
else ifai AIBOTWALKDYING
{
state botwalkdyingstate
break
}
else
ifrnd 1
operate
ifhitweapon
{
state botwalkhitstate
break
}
else ifai AIWALKFALLHARD
{
iffloordistl 16
ai AIBOTWALKHUNT
else
break
}
else
{
ifai AIWALKFALL
{
state botshootstate
iffloordistl 16
ai AIBOTWALKHUNT
else
break
}
}
ifp pshrunk
state stomphisfreakingass
iffloordistl 550
nullop
else
{
ai AIFLYWAIT
cactor SOBBOTFLY
}
ifonwater
nullop
else
{
ifp pjetpack
ifp phigher
ifcansee
{
ai AIFLYWAIT
cactor SOBBOTFLY
}
}
ifp phigher
{
ifrnd 1
ifrnd 196
{
ai AIFLYWAIT
cactor SOBBOTFLY
}
}
ifai AIWALKWAIT
{
ai AIBOTWALKSEEK
break
}
else ifai AIBOTWALKSEEK state botwalkseekstate
else ifai AIBOTWALKHUNT state botwalkhuntstate
else ifai AIBOTWALKJUMP1 state botwalkjumpstate
else ifai AIBOTWALKJUMP2 state botwalkjumpstate
else ifai AIBOTWALKKICK state botwalkkickstate
else ifai AIBOTWALKSTRAIGHT state botwalkstraightstate
else ifai AIBOTWALKSTRJUMP1 state botwalkstraightjumpstate
else ifai AIBOTWALKSTRJUMP2 state botwalkstraightjumpstate
else ifai AIBOTLETFALL state botletfallstate
else ifai AIBOTWALKSTRJUMP1S state botjumpshootstate
else ifai AIBOTWALKSTRJUMP2S state botjumpshootstate
enda
state botflydyingstate
fall
strength 0
cstat 0
ifactioncount 5
{
action ABOTFLYDEAD
ifspritepal 21
{
state miniboss
break
}
else
endofgame 52
}
ends
state choosedodgefly
ifceilingdistl 100
{
ifai AIBOTFLYDODGEDOWN
nullop
else
ai AIBOTFLYDODGEDOWN
}
else
{
ifai AIBOTFLYDODGEUP
nullop
else
ai AIBOTFLYDODGEUP
}
ends
state botflydodgestate
ifcanshoottarget
state botshootstate
ifcansee
{
ifrnd 2
{
ifceilingdistl 100
ai AIBOTFLYDODGEDOWN
else
ai AIBOTFLYDODGEUP
}
}
else
ai AIBOTFLYSEEKUP
ifcount 10
ai AIBOTFLYDOWN
ends
state botflyhitstate
state botshootstate
// spawn BLOOD
ifdead
{
ifspritepal 21
{
state miniboss
break
}
else
sound SANTA_DEAD
ifwasweapon FREEZEBLAST
{
spritepal 1
strength 0
move 0
action ABOTFLYFROZEN
sound SOMETHINGFROZE
break
}
else ifwasweapon GROWSPARK
{
cstat 0
sound ACTOR_GROWING
ai AIBOTFLYGROW
break
}
else ifwasweapon RADIUSEXPLOSION
{
// state standard_pjibs
// state standard_pjibs
// state standard_pjibs
state standard_pjibs
sound SQUISH2
addkills 1
endofgame 52
killit
}
else ifwasweapon RPG
{
// state standard_pjibs
// state standard_pjibs
// state standard_pjibs
state standard_pjibs
sound SQUISH2
addkills 1
endofgame 52
killit
}
else
ai AIBOTFLYDYING
}
else
{
state dudehurt
ifwasweapon SHRINKSPARK
{
ifai AIBOTFLYSTEROIDS
nullop
else
{
ai AIBOTFLYSHRINK
break
}
}
}
ends
state botflyseekupstate
ifcansee
{
ai AIBOTFLYUP
break
}
ifp phigher
nullop
else
{
ai AIBOTFLYSEEKDOWN
break
}
ends
state botflyseekdownstate
ifcansee
{
ai AIBOTFLYDOWN
break
}
else
{
ifp phigher
nullop
else
{
ai AIBOTLETFALL
cactor SOBBOTWALK
}
}
ifp phigher
{
ai AIBOTFLYSEEKUP
break
}
ends
state botflydownstate
state botshootstate
ifrnd 16
ifp phigher
{
ai AIBOTFLYUP
break
}
ifcansee
nullop
else
{
ai AIBOTFLYSTRAIGHT
break
}
ends
state botflyupstate
state botshootstate
ifrnd 16
{
ifp phigher
nullop
else
{
ai AIBOTFLYDOWN
break
}
}
ifcansee
nullop
else
ai AIBOTFLYSTRAIGHT
ends
state botflyupmomentstate
ifcansee
{
ifcount 10 ai AIBOTFLYUP
break
}
else
{
ifcount 50
{
ai AIBOTLETFALL
cactor SOBBOTWALK
}
}
ends
state botflyholdstate
state botshootstate
ifcount 50
ai AIBOTFLYUP
ends
state botflystraightstate
ifpdistg 20000
ai AIBOTFLYSEEKDOWN
ifcansee
ai AIBOTFLYDOWN
else
{
ifrnd 128
ifnotmoving
ai AIFLYUPMOMENT
}
ends
state steroidsfly
soundonce DUKE_HARTBEAT
spawn FRAMEEFFECT1
ifcount 100
ai AIBOTFLYUP
ifcount 34
nullop
else
sizeto 42 36
ifhitweapon
{
state botflyhitstate
break
}
ends
// FLY ACTOR
useractor enemy SOBBOTFLY SOBBOTSTRENGTH ABOTFLY
state checksquished
ifai 0
{
ifcansee
nullop
else
break
ifspritepal 21
strength MINIBOSSSTRENGTH
sizeat 42 36
cstat 257
sound INSERT_CLIP
ai AIBOTFLYSEEKDOWN
spritepal 0
break
}
fall
sleeptime 300
ifaction ABOTFLYDEAD
break
else ifaction ABOTFLYFROZEN
{
ifcount THAWTIME
{
ai AIBOTFLYUP
getlastpal
}
else ifcount FROZENDRIPTIME
{
ifactioncount 26
{
spawn WATERDRIP
resetactioncount
}
}
ifhitweapon
{
ifwasweapon FREEZEBLAST
{
strength 0
break
}
addkills 1
ifrnd 84
spawn BLOODPOOL
lotsofglass 30
spawn ATOMICHEALTH
sound GLASS_BREAKING
ifspritepal 21
{
state miniboss
break
}
else
{
endofgame 52
killit
}
}
ifp pfacing
ifpdistl FROZENQUICKKICKDIST
pkick
break
}
else ifai AIBOTFLYSTEROIDS
{
soundonce DUKE_JETPACK_IDLE
state steroidsfly
break
}
else ifai AIBOTFLYGROW
{
ifcount 32
{
guts JIBS4 24
guts JIBS6 28
addkills 1
sound SQUISH2
sound PIPEBOMB_EXPLODE
hitradius 2048 60 70 80 90
spawn BLOODPOOL
spawn EXPLOSION2
ifspritepal 21
{
state miniboss
break
}
else
{
endofgame 52
killit
}
}
else
{
sizeto MAXXSTRETCH MAXYSTRETCH
break
}
break
}
else ifai AIBOTFLYSHRINK
{
ifcount SHRUNKDONECOUNT
ai AIBOTFLYUP
else ifcount SHRUNKCOUNT
{
spawn FRAMEEFFECT1
sizeto 42 36
}
else
{
ifcount 31
nullop
else ifcount 30
ifrnd 255
{
sound DUKE_TAKEPILLS
ai AIBOTFLYSTEROIDS
break
}
ifcount 32
{
ifpdistl SQUISHABLEDISTANCE
{
// state standard_pjibs
// state standard_pjibs
// state standard_pjibs
state standard_pjibs
sound SQUISH2
spawn BLOODPOOL
pstomp
ifspritepal 21
{
state miniboss
break
}
else
{
ifrnd 128
sound SANTA_DEAD
else
sound SANTA_TRASH9
endofgame 52
killit
}
}
}
else
{
sizeto MINXSTRETCH MINYSTRETCH
spawn FRAMEEFFECT1
}
}
break
}
soundonce DUKE_JETPACK_IDLE
ifai AIBOTFLYDYING
{
state botflydyingstate
break
}
ifhitweapon
state botflyhitstate
ifrnd 2 operate
ifp pshrunk
state stomphisfreakingass
ifrnd 25
{
ifp phigher
nullop
else ifp ponground
iffloordistl 200
{
sound DUKE_JETPACK_OFF
iffloordistl 100
ai AIWALKFALL
else
ai AIWALKFALLHARD
cactor SOBBOTWALK
}
}
ifai AIFLYWAIT
{
move 0
sound DUKE_JETPACK_ON
ai AIBOTFLYSEEKDOWN
}
ifai AIBOTFLYSEEKUP state botflyseekupstate
else ifai AIBOTFLYSEEKDOWN state botflyseekdownstate
else ifai AIBOTFLYDOWN state botflydownstate
else ifai AIBOTFLYUP state botflyupstate
else ifai AIBOTFLYDODGEUP state botflydodgestate
else ifai AIBOTFLYDODGEDOWN state botflydodgestate
else ifai AIFLYUPMOMENT state botflyupmomentstate
else ifai AIFLYUPHOLD state botflyholdstate
else ifai AIBOTFLYSTRAIGHT state botflystraightstate
enda
// Grunt
action AELFUZIWALK 0 4 5 1 30
action AELFUZIRUN 0 4 5 1 15
action AELFUZIFROZEN 0 1 5 1
action AELFUZIGROW 0 1 5 1
action AELFUZIJUMP 266 2 5 1 15
action AELFUZIFALL 276 1 5 1 1
action AELFUZIDYING 260 5 1 1 25
action AELFUZIDEAD 265 1 1 1 1
action AELFUZISHOOT 281 2 5 1
move elfuziwalkspeed 100
move elfuzirunspeed 200
move elfuzijumpspeed 150 -200
move elfuzifallspeed 150 150
move elfuzistopped
move elfuzishrink1 80
ai AIELFUZISHRINKING AELFUZIWALK elfuzishrink1 fleeenemy
ai AIELFUZIDYING AELFUZIDYING elfuzistopped faceplayer
ai AIELFUZISEEKING AELFUZIWALK elfuziwalkspeed seekplayer
ai AIELFUZIHUNTING AELFUZIRUN elfuzirunspeed faceplayer
ai AIELFUZIJUMPING AELFUZIJUMP elfuzijumpspeed geth getv
ai AIELFUZIFALLING AELFUZIFALL elfuzifallspeed geth getv
ai AIELFUZISHOOTING AELFUZISHOOT elfuzistopped faceplayer
ai AIELFUZIIQ AELFUZIRUN elfuzirunspeed geth getv
ai AIELFUZIGROW AELFUZIGROW elfuzistopped geth getv
state elfuziseekstate
ifcansee
{
ifp pdead break
ifpdistl 15000
ifrnd 16
ai AIELFUZIHUNTING
}
ends
state elfuzihuntstate
ifp pdead ai AIELFUZISEEKING
ifcansee
{
ifpdistl 2000
{
ai AIELFUZISHOOTING
break
}
ifrnd 64
ifnotmoving
{
ai AIELFUZIJUMPING
break
}
ifrnd 7
ifpdistl 8192
ai AIELFUZISHOOTING
}
else
ifrnd 64
ai AIELFUZIIQ
ends
state elfuziiqstate
ifcansee
ai AIELFUZIHUNTING
else
{
ifrnd 16
ifnotmoving
ai AIELFUZISEEKING
}
ends
state elfuzishootstate
ifcansee
{
ifp pdead ai AIELFUZISEEKING
ifactioncount 3
{
ifspritepal 0
{
sound CHAINGUN_FIRE
shoot CHAINGUN
}
else ifrnd 80
{
sound SHRINKER_FIRE
shoot SHRINKER
}
resetactioncount
}
ifrnd 4
ai AIELFUZIHUNTING
}
else
ai AIELFUZIIQ
ends
state elfuzijumpingstate
ifactioncount 2
ai AIELFUZIFALLING
ends
state elfuzifallingstate
iffloordistl 5
ai AIELFUZIHUNTING
ends
action NONEACTION 0 1 1 1 1
move forwardspeed 1500
// ai AIMOVEFORWARD NONEACTION forwardspeed faceplayer
useractor notenemy SPECBLOOD 0 // Hendricks266 fixed this actor. Before this fix, this line said "useractor SPECBLOOD 0", and the code was shit.
cstat 32768
// sizeat 42 36
// sizeat 32 27
sizeat 1 1
// ai AIMOVEFORWARD
spawn BLOOD
killit
enda
state elfuzihitstate
spawn BLOOD // Hendricks266 fixed this bug. Before this fix, this line said "spawn SPECBLOOD". SPECBLOOD is a piece of shit.
state random_wall_jibs
ifdead
{
ifrnd 128
spawn XMASPRESENT2
ifwasweapon GROWSPARK
{
sound ACTOR_GROWING
ai AIELFUZIGROW
break
}
addkills 1
state random_wall_jibs
ifwasweapon FREEZEBLAST
{
sound SOMETHINGFROZE
spritepal 1
move 0
action AELFUZIFROZEN
strength 0
break
}
ifwasweapon RADIUSEXPLOSION
{
sound SQUISH2
// state standard_jibs
// state standard_jibs
state standard_jibs
killit
}
else ifwasweapon RPG
{
sound SQUISH2
// state standard_jibs
// state standard_jibs
state standard_jibs
killit
}
else
ai AIELFUZIDYING
}
else
{
// state random_wall_jibs
ifwasweapon SHRINKSPARK
{
sound ACTOR_SHRINKING
ai AIELFUZISHRINKING
}
else ifwasweapon GROWSPARK
sound EXPANDERHIT
else
ifrnd 32
ai AIELFUZISHOOTING
}
ends
state elfuzishrinkstate
ifcount SHRUNKDONECOUNT
ai AIELFUZISEEKING
else
ifcount SHRUNKCOUNT
sizeto 32 27 // sizeto 48 40
else
state genericshrunkcode
ends
state elfuzidyingstate
ifactioncount 5
{
ifrnd 64
spawn BLOODPOOL
state rf
iffloordistl 8
sound THUD
action AELFUZIDEAD
move elfuzistopped
break
}
ends
useractor enemy ELFUZI ELFUZISTRENGTH
fall
state checksquished
ifaction AELFUZIDEAD
{
strength 0
ifhitweapon
ifwasweapon RADIUSEXPLOSION
{
sound SQUISH2
// state standard_jibs
// state standard_jibs
state standard_jibs
killit
}
ifrespawn
ifcount RESPAWNACTORTIME
{
spawn TRANSPORTERSTAR
cstat 257
strength ELFUZISTRENGTH
ai AIELFUZISEEKING
}
break
}
else ifaction AELFUZIFROZEN
{
ifcount THAWTIME
{
ai AIELFUZISEEKING
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 ifai AIELFUZIDYING
state elfuzidyingstate
ifai AIELFUZISHRINKING
nullop
else ifai AIELFUZIGROW
nullop
else ifhitweapon
state elfuzihitstate
ifai 0
{
ai AIELFUZISEEKING
cstat 257
// clipdist 32
sizeat 32 27 // sizeat 42 36
ifspritepal 0
nullop
else
{
ifrnd 72
strength ELFUZIALTSTR
else
strength ELFUZISTRENGTH
}
}
else ifai AIELFUZISEEKING state elfuziseekstate
else ifai AIELFUZIHUNTING state elfuzihuntstate
else ifai AIELFUZIIQ state elfuziiqstate
else ifai AIELFUZISHOOTING state elfuzishootstate
else ifai AIELFUZIJUMPING state elfuzijumpingstate
else ifai AIELFUZIFALLING state elfuzifallingstate
else ifai AIELFUZIGROW state genericgrowcode
ifai AIELFUZISHRINKING state elfuzishrinkstate
enda
useractor enemystayput ELFUZISTAYPUT ELFUZISTRENGTH
cstat 257
// clipdist 32
ai AIELFUZISEEKING
cactor ELFUZI
enda
// Groan
action AELFGUNWALK 0 4 5 1 20
action AELFGUNRUN 0 4 5 1 10
action AELFGUNFROZEN 0 1 5 1
action AELFGUNGROW 0 1 5 1
action AELFGUNDYING 35 4 1 1 25
action AELFGUNDEAD 39 1 1 1 1
action AELFGUNSHOOT 20 3 5 1 40
move elfgunwalkspeed 70
move elfgunrunspeed 110
move elfgunstopped
move elfgunshrink1 80
ai AIELFGUNSHRINKING AELFGUNWALK elfgunshrink1 fleeenemy
ai AIELFGUNDYING AELFGUNDYING elfgunstopped faceplayer
ai AIELFGUNSEEKING AELFGUNWALK elfgunwalkspeed seekplayer
ai AIELFGUNHUNTING AELFGUNRUN elfgunrunspeed faceplayer
ai AIELFGUNSHOOTING AELFGUNSHOOT elfgunstopped faceplayer
ai AIELFGUNIQ AELFGUNRUN elfgunrunspeed geth getv
ai AIELFGUNGROW AELFGUNGROW elfgunstopped geth getv
state elfgunseekstate
ifcansee
{
ifp pdead break
ifpdistl 15000
ifrnd 16
ai AIELFGUNHUNTING
}
ends
state elfgunhuntstate
ifp pdead ai AIELFGUNSEEKING
ifcansee
{
ifpdistl 2000
{
ai AIELFGUNSHOOTING
break
}
}
ifrnd 7
{
ifpdistl 8192
ai AIELFGUNSHOOTING
}
else ifrnd 48
ai AIELFGUNIQ
ends
state elfguniqstate
ifcansee
ai AIELFGUNHUNTING
else
ifrnd 16
ifnotmoving
ai AIELFGUNSEEKING
ends
state elfgunshootstate
ifp pdead
ai AIELFGUNSEEKING
ifcansee
{
ifcanshoottarget
{
ifcount 29
nullop
else ifcount 28
sound SHOTGUN_COCK
else ifcount 20
nullop
else ifcount 19
{
sound SHOTGUN_FIRE
shoot SHOTGUN
shoot SHOTGUN
shoot SHOTGUN
shoot SHOTGUN
shoot SHOTGUN
}
}
}
else
ai AIELFGUNIQ
ifactioncount 3
{
resetcount
resetactioncount
ifrnd 64
ai AIELFGUNHUNTING
}
ends
state elfgunhitstate
spawn BLOOD
state random_wall_jibs
ifdead
{
ifrnd 128
spawn XMASPRESENT
ifwasweapon GROWSPARK
{
sound ACTOR_GROWING
ai AIELFGUNGROW
break
}
addkills 1
ifwasweapon FREEZEBLAST
{
sound SOMETHINGFROZE
spritepal 1
move 0
action AELFGUNFROZEN
strength 0
break
}
ifwasweapon RADIUSEXPLOSION
{
sound SQUISH2
// state standard_jibs
// state standard_jibs
state standard_jibs
killit
}
else ifwasweapon RPG
{
sound SQUISH2
// state standard_jibs
// state standard_jibs
state standard_jibs
killit
}
else
ai AIELFGUNDYING
}
else
{
state random_wall_jibs
ifwasweapon SHRINKSPARK
{
sound ACTOR_SHRINKING
ai AIELFGUNSHRINKING
}
else ifwasweapon GROWSPARK
sound EXPANDERHIT
else
ifrnd 32
ai AIELFGUNSHOOTING
}
ends
state elfgunshrinkstate
ifcount SHRUNKDONECOUNT
ai AIELFGUNSEEKING
else ifcount SHRUNKCOUNT
sizeto 32 27 // sizeto 48 40
else
state genericshrunkcode
ends
state elfgundyingstate
ifactioncount 4
{
ifrnd 64
spawn BLOODPOOL
state rf
iffloordistl 8
sound THUD
action AELFGUNDEAD
move elfgunstopped
break
}
ends
useractor enemy ELFGUN ELFGUNSTRENGTH
fall
state checksquished
ifaction AELFGUNDEAD
{
ifrespawn
ifcount RESPAWNACTORTIME
{
spawn TRANSPORTERSTAR
cstat 257
strength ELFGUNSTRENGTH
ai AIELFGUNSEEKING
}
else
{
strength 0
ifhitweapon
ifwasweapon RADIUSEXPLOSION
{
sound SQUISH2
// state standard_jibs
// state standard_jibs
state standard_jibs
killit
}
break
}
break
}
else ifaction AELFGUNFROZEN
{
ifcount THAWTIME
{
ai AIELFGUNSEEKING
getlastpal
}
else
ifcount FROZENDRIPTIME
ifrnd 8
spawn WATERDRIP
ifhitweapon
{ // state elfgunhitstate
ifwasweapon FREEZEBLAST
{
strength 0
break
}
addkills 1
lotsofglass 30
ifrnd 84
spawn BLOODPOOL
sound GLASS_BREAKING
killit
}
ifp pfacing
ifpdistl FROZENQUICKKICKDIST
pkick
break
}
else
ifai AIELFGUNDYING
state elfgundyingstate
ifai AIELFGUNSHRINKING
nullop
else ifai AIELFGUNGROW
nullop
else ifhitweapon
state elfgunhitstate
ifai 0
{
ai AIELFGUNSEEKING
cstat 257
// clipdist 32
sizeat 32 27 // sizeat 42 36
strength ELFGUNSTRENGTH
}
else ifai AIELFGUNSEEKING state elfgunseekstate
else ifai AIELFGUNHUNTING state elfgunhuntstate
else ifai AIELFGUNIQ state elfguniqstate
else ifai AIELFGUNSHOOTING state elfgunshootstate
else ifai AIELFGUNGROW state genericgrowcode
ifai AIELFGUNSHRINKING state elfgunshrinkstate
enda
useractor enemystayput ELFGUNSTAYPUT ELFGUNSTRENGTH
ai AIELFGUNSEEKING
cstat 257
// clipdist 32
cactor ELFGUN
break
enda
state present
fall
sizeat 20 20
cstat 257
clipdist 16
ends
state present1
ifp pshrunk nullop else
ifp palive
ifcount 6
ifpdistl RETRIEVEDISTANCE
ifcanseetarget
{
sound RIP_PAPER
ifvarl temp 1
{
ifrnd 128
spawn SHIELD
else
spawn SIXPAK
}
else
espawnvar temp // spawnvar // spawns the lotag, collected during EVENT_LOADACTOR
killit
}
ends
state present2
ifp pshrunk nullop else
ifp palive
ifcount 6
ifpdistl RETRIEVEDISTANCE
ifcanseetarget
{
sound RIP_PAPER
ifvarl temp 1
{
ifrnd 128
spawn CHAINGUNSPRITE
else
spawn SHOTGUNSPRITE
}
else
espawnvar temp // spawnvar // spawns the lotag, collected during EVENT_LOADACTOR
killit
}
ends
useractor notenemy XMASPRESENT 0 // ELFGUN
state present
state present1
enda
useractor notenemy XMASPRESENT2 0 // ELFUZI
state present
state present2
enda
action VOIDACTION
move NULLSPEED
ai MAKENOISE VOIDACTION NULLSPEED geth getv
useractor notenemy NOISEMAKER 999
sizeat 48 40
cstat 17
ifai 0 ai MAKENOISE
ifspritepal 21
{
ifhitweapon
ifcount 24
{
strength 999
ifrnd 128
sound MOVIE2
else
sound MOVIE3
resetcount
}
}
else
hitradius 4096 1 1 1 1
enda
useractor notenemy MALEGEEK 20
ifhitweapon
{
guts JIBS6 3
sound SQUISH2
ifdead
{
stopsound MALECAROL
guts JIBS6 2
guts JIBS6 3
guts JIBS6 4
sound MALECAROL_DEAD
globalsound MOUSEANNOY
killit
}
}
ifcount 225
{
sound MALECAROL
resetcount
}
enda
useractor notenemy FEMALEGEEK 20
ifhitweapon
{
guts JIBS6 3
sound SQUISH2
ifdead
{
stopsound FEMALECAROL
guts JIBS6 2
guts JIBS6 3
guts JIBS6 4
sound FEMALECAROL_DEAD
killit
}
}
ifcount 225
{
sound FEMALECAROL
resetcount
}
enda
state mariocode
cstat 257
sizeat 62 62
ends
useractor notenemy NWMARIO 0
state mariocode
enda
useractor notenemy NWMARIO2 0
state mariocode
enda