/* -------------------------------------------------------------------------------- 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 nw_temp setactor[nw_temp].htextra SNOWBALLAMOUNT setactor[nw_temp].htpicnum SNOWBALL // getactor[THISACTOR].owner nw_temp2 setactor[nw_temp].htowner nw_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 nw_temp 1 { ifrnd 128 spawn SHIELD else spawn SIXPAK } else espawnvar nw_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 nw_temp 1 { ifrnd 128 spawn CHAINGUNSPRITE else spawn SHOTGUNSPRITE } else espawnvar nw_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