ACTOR HellfrostBFGZombie Replaces CryoCannonZombie
{
//Improved: by Makarov
//Origin: Nexus Infinity
//Sprite: PCRY
//Title: "Hellfrost BFG Zombie"
Monster
Health 1500
Radius 20
Height 56
Speed 30
Damagefactor 0.6
Damagefactor "Ice", 0.0
DamageFactor "FreezerBurn", 0.0
Damagefactor "Fire", 1.0
DamageFactor "Legendary", 0.0
DamageFactor "LegendaryPlayer", 0.3
DamageFactor "LegendaryGuru", 0.0
DamageFactor "LegendaryGuruPlayer", 0.3
DamageFactor "DBFG10K2", 0.65
DamageFactor "PlayerDBFG10K2", 0.65
DamageFactor "DBFG2", 0.65
DamageFactor "PlayerDBFG2", 0.65
DamageFactor "PlayerDTRG", 0.5
DamageFactor "PlayerNemesisPlasma", 0.0
DamageFactor "Explosion", 0.2
DamageFactor "PlayerDTRG", 0.4
DamageFactor "DTRailgun", 0.4
DamageFactor "PDTPuff", 0.4
DamageFactor "RailG", 0.3
DamageFactor "VileFires", 0.0
DamageFactor "DarkDemoEx", 0.0
+NOTIMEFREEZE
+BOSS
+BOSSDEATH
+FLOORCLIP
+MISSILEMORE
+MISSILEEVENMORE
+QUICKTORETALIATE
+NOICEDEATH
+NODROPOFF
+DONTGIB
+NOTARGET
+NORADIUSDMG
+FORCERADIUSDMG
+NOFEAR
DropItem "PortableMedkit" 190
DropItem "ArmorSphere", 96
DropItem "BackPack" 55
DropItem "PlasmaEnergy" 256 60
DropItem "GreaterPlasmaEnergy" 200
DropItem "PlasmaEnergy" 256 20
DropItem "GreaterPlasmaEnergy" 250
DropItem "Freezer Rifle" 150 1
DropItem "FreezerBFG" 192 //DJB
DropItem "MarineDBFGBeacon" 15 1
Species "Zombie"
SeeSound "fzombie/sight"
PainSound "fzombie/pain"
DeathSound "fzombie/death"
ActiveSound "fzombie/active"
Tag "\c[o7]HellFrost BFG Zombie\c-"
Obituary "%o was sent to the ice age by the \c[o7]HellFrost BFG Zombie\c-."
var int user_mine;
var int user_minecount;
var int user_music;
States
{
  Spawn:
	PCRY A 10 A_Look
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	Loop
  Idle:
	PCRY AA 3 A_Wander
	TNT1 A 0 A_look
	PCRY BB 3 A_Wander
	TNT1 A 0 A_look
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	PCRY CC 3 A_Wander
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	TNT1 A 0 A_look
	PCRY DD 3 A_Wander
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	TNT1 A 0 A_look
	TNT1 A 0 A_JumpIf(user_mine == 0,3)
	TNT1 A 0 A_JumpIf(user_minecount == 0,2)
	TNT1 A 0 A_Jump(10,"ThrowMineIdle")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	Loop
  ThrowMineIdle:
	TNT1 A 0 A_SetAngle(Angle+Random(0,360))
	TNT1 A 0 A_PlaySound("weapons/hgrenadethrow",4)
	TNT1 A 0 A_SetUserVar(user_minecount,user_minecount-1)
	PCRY E 12 A_CustomMissile("CryoCannonZombieMine",32,0,0,2,15)
	TNT1 A 0 A_look
	Goto Idle
  See:
	TNT1 A 0 A_JumpIf(user_music == 1,3)
    TNT1 A 0 ACS_NamedExecuteAlways("StartMonsterMusic",0,6754)
	TNT1 A 0 ACS_ExecuteAlways(667)
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SetUserVar("user_music",1)
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	PCRY AABB 3 A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_JumpIfTargetInLOS("Strafing")
	PCRY CCDD 3 A_Chase
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	TNT1 A 0 A_JumpIf(user_mine == 0,2)
	PCRY A 0 A_Jump(80,"Rush")
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	TNT1 A 0 A_Jump(10,"ThrowMine")
	TNT1 A 0 A_Jump(30,"Teleport")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	Loop
  Rush:
    PCRY A 0 A_JumpIfTargetInLOS("Strafing")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("HellFrostBFGZombieGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	PCRY A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("HellFrostBFGZombieGhostA",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	PCRY A 1 Bright A_Chase
	TNT1 A 0 A_SpawnItemEx("HellFrostBFGZombieGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	PCRY B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("HellFrostBFGZombieGhostB",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	PCRY B 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("HellFrostBFGZombieGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	PCRY C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("HellFrostBFGZombieGhostC",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	PCRY C 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("HellFrostBFGZombieGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	PCRY D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItemEx("HellFrostBFGZombieGhostD",0,0,0,0,0,0,0,SXF_CLIENTSIDE|SXF_NOCHECKPOSITION)
	PCRY D 1 Bright A_Chase
	TNT1 A 0 A_SpawnItem("FreezedCyberFlameSpawner",0,0,0,0)
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Jump(84,"See")
  Strafing:
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	PCRY AA 3 A_GiveInventory("Strafing")
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	PCRY BB 3 A_GiveInventory("Strafing")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
    PCRY CC 3 A_GiveInventory("Strafing")	
	TNT1 A 0 A_Chase("","Missile",CHF_DONTMOVE)
	PCRY DD 3 A_GiveInventory("Strafing")
	Loop
  Teleport:
	PCRY E 1 A_UnSetShootable
	TNT1 AAAAAA 0 A_SpawnItemEx("FreezedCyberFlameSpawner")
	TNT1 AAAAAAA 0 A_SpawnItemEx("BlueCardLineSpawner")
	PCRY EEEEEEEEEEE 1 A_FadeOut(0.1,0)
	PCRY EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 0 A_Wander
	PCRY EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 0 A_Wander
	PCRY E 1 A_PlayWeaponSound("boss/teleport")
	TNT1 AAAAAA 0 A_SpawnItemEx("FreezedCyberFlameSpawner")
	TNT1 AAAAAAA 0 A_SpawnItemEx("BlueCardLineSpawner")
	PCRY EEEEEEEEEEE 1 A_FadeIn(0.1)
	PCRY E 1 A_SetShootable
	Goto See
  ThrowMine:
	TNT1 A 0 A_PlaySound("weapons/hgrenadethrow",4)
	PCRY E 12 A_CustomMissile("CryoCannonZombieMine",32,0,0,2,15)
	Goto See
  Missile:
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_JumpIf(user_mine == 1,3)
	TNT1 A 0 A_SetUserVar(user_minecount,Random(0,3))
	TNT1 A 0 A_SetUserVar(user_mine,1)
	PCRY EEEEEEE 4 A_FaceTarget
	//TNT1 A 0 A_Jump(136,2)
	TNT1 A 0 A_CheckSight("MLG")
	PCRY E 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/PCNNF",CHAN_WEAPON)
	PCRY F 4 Bright A_CustomMissile("ZombieCryoShot",40,20,0,CMF_TRACKOWNER)
	TNT1 A 0 A_PlaySound("weapons/dtech10ksteam",6)
	TNT1 AAA 0 A_ChangeFlag(NOPAIN,0)
	PCRY E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	PCRY E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	PCRY E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	Goto See
  MLG:
    TNT1 A 0 A_SetTranslucent(1,1)
    PCRZ ABCDE 2 A_FaceTarget
	TNT1 A 0 ThrustThingZ(0,400,0,1)
	PCRZ E 0 A_PlaySound("loper/tele")
    PCRZ E 4 A_FaceTarget
	PCRZ E 0 A_Stop
	PCRZ E 1 ThrustThingZ(0,15,0,1)
	PCRZ EDCBA 2 A_FaceTarget
	TNT1 A 0 A_SetTranslucent(1,0)
	TNT1 A 0 A_CheckSight("MLG2")
	PCRY E 2 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/PCNNF",CHAN_WEAPON)
	PCRY F 4 Bright A_CustomMissile("ZombieCryoShot",40,20,0,CMF_TRACKOWNER)
	TNT1 A 0 A_PlaySound("weapons/dtech10ksteam",6)
	TNT1 AAA 0 A_ChangeFlag(NOPAIN,0)
	PCRY E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	PCRY E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	PCRY E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	Goto See
  MLG2:
    TNT1 A 0 A_SetTranslucent(1,1)
    PCRZ ABCDE 2 A_FaceTarget
	TNT1 A 0 ThrustThingZ(0,400,0,1)
	PCRZ E 0 A_PlaySound("loper/tele")
    PCRZ E 4 A_FaceTarget
	PCRZ E 0 A_Stop
	PCRZ E 1 ThrustThingZ(0,15,0,1)
	PCRZ EDCBA 2 A_FaceTarget
	TNT1 A 0 A_SetTranslucent(1,0)
	TNT1 A 0 A_CheckSight("See")
	PCRY E 2 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/PCNNF",CHAN_WEAPON)
	PCRY F 4 Bright A_CustomMissile("ZombieCryoShot",40,20,0,CMF_TRACKOWNER)
	TNT1 A 0 A_PlaySound("weapons/dtech10ksteam",6)
	TNT1 AAA 0 A_ChangeFlag(NOPAIN,0)
	PCRY E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	PCRY E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	PCRY E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	Goto See
  Pain:
    TNT1 A 0 A_Jump(10,"PainMissile")
    PCRY G 6 A_Pain
    Goto See
  PainMissile:
    PCRY G 6 A_Pain
	Goto Missile
  Death:
    PCRY H 5
	TNT1 A 0 A_CustomMissile("SuicideBomb",24,0,0,CMF_AIMDIRECTION) 
    TNT1 AAA 0 A_CustomMissile("BlueKaboom3",24,0,random(0,360),2,random(0,360))
	TNT1 AAAA 0 A_SpawnItemEx("BlueParticleSpawner",0,0,24,0,0,0,0,0,128)
	TNT1 AAA 0 A_CustomMissile("SmokeFX2",24,0,random(0,360),2,random(0,360))
    TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,24,Random(4,-4),Random(4,-4),Random(4,8),0,128)
    TNT1 A 0 A_SpawnItem("BlueRocketEx",0,24)
	TNT1 A 0 A_PlaySound("weapons/rocklx",CHAN_BODY)
    PCRY I 5 A_Scream
    PCRY J 5 A_Fall
    PCRY KLM 5
    PCRY N 0 A_SpawnItem("BodyCrash",0,0,0,0)
    PCRY N -1
    Stop
  XDeath:
    PCRY O 3
	TNT1 A 0 A_SpawnItemEx("ZombieCryoExplosion",0,0,36)
	TNT1 A 0 ThrustThingZ(0,40,0,1)
	TNT1 A 0 ThrustThing(Random(0,360),random(15,20))
    PCRY P 3 A_XScream
    PCRY Q 3 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
    PCRY R 3 A_Fall
    PCRY STUV 3
    PCRY W -1
    Stop
  Raise:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    PCRY MLKJIH 5
    Goto See
    }
}

ACTOR HellFrostBFGZombieGhostA
{
Scale 1.1
Radius 20
Height 56
Speed 0
Alpha 0.7
PROJECTILE
RENDERSTYLE Translucent
+NOTIMEFREEZE
+NOINTERACTION
+CLIENTSIDEONLY
+NONETID
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
	TNT1 A 1
	Goto Fade
  Fade:
	PCRZ A 2 A_FadeOut(0.1,1)
	Loop
  Toaster:
	TNT1 A 1
	Stop
	}
}

ACTOR HellFrostBFGZombieGhostB : HellFrostBFGZombieGhostA
{   
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
	TNT1 A 1
	Goto Fade
  Fade:
	PCRZ B 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR HellFrostBFGZombieGhostC : HellFrostBFGZombieGhostA
{   
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
	TNT1 A 1
	Goto Fade
  Fade:
	PCRZ C 2 A_FadeOut(0.1,1)
	Loop
  }
}

ACTOR HellFrostBFGZombieGhostD : HellFrostBFGZombieGhostA
{   
States
{
  Spawn:
	TNT1 A 0
	TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(304) == 1, "NULL")
	TNT1 A 1
	Goto Fade
  Fade:
	PCRZ D 2 A_FadeOut(0.1,1)
	Loop
  }
}