ACTOR PyroCannonZombie
{
//Creator: Fluffy
//Origin: Nexus Infinity
//Sprite: PPY2
//Title: "Pyro Cannon Zombie"
Monster
Health 450
Radius 20
Height 56
Speed 8
Mass 100
PainChance 160
DropItem "HealthFlask" 100 1
DropItem "Armorplate" 215 1
DropItem "AmmoPack" 50 1
DropItem "HandGrenadeAmmo" 210 1
DropItem "Portablemedkit" 230 1
DropItem "MineAmmo" 25 1
DropItem "MineAmmo" 25 1
DropItem "PyroCannon" 40 1
DropItem "Backpack" 60 1
DropItem "Gas" 220 1
DropItem "BigGas" 84 1
DropItem "HellsMediumContract", 110
Damagefactor "Fire", 0.0
DamageFactor "Hell", 0.0
Damagefactor "RedZombieDemonTech", 0
Damagefactor "ZombieRocket", 0
Damagefactor "ZombieDemonTech", 0
Damagefactor "RedZDemonTechProjectile", 0.0
Damagefactor "GeneralTracer", 0
Damagefactor "EMGEx", 0
Damagefactor "RST", 0.0
Damagefactor "SoulToxic", 0.0
Damagefactor "BeheComet", 0.0
Damagefactor "FatFlamer", 0.0
Damagefactor "HTZombie", 0.0
Damagefactor "MiniRocket", 0.0
Damagefactor "ZombieCannon", 0.0
Damagefactor "ZExplosiveBullets", 0.0
Damagefactor "ZGrenade", 0.0
Damagefactor "SoapOpera", 0.0
Damagefactor "ZombieDev", 0.0
Damagefactor "SS", 0.0
Damagefactor "HTZombie", 0.0
Damagefactor "ZGrenade", 0.0
Damagefactor "ZExplosiveBullets", 0.0
Damagefactor "SoulToxic", 0.0
Damagefactor "Cacolich", 0.0
Species "ZombieDeud"
seesound "superzombie/sight"
PainSound "superzombie/pain"
DeathSound "superzombie/death"
ActiveSound "superzombie/active"
Tag "\c[c3]Pyro Cannon\c- \c Zombie \c-"
Obituary "%o was completely flammarized by a Pyro Cannon zombie."
+FLOORCLIP
+MISSILEMORE
+QUICKTORETALIATE
var int user_mine;
var int user_minecount;
var int user_jump;
States
{
  Spawn:
	PPY2 A 10 A_Look
	Loop
  Idle:
	PPY2 AA 3 A_Wander
	TNT1 A 0 A_look
	PPY2 BB 3 A_Wander
	TNT1 A 0 A_look
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	PPY2 CC 3 A_Wander
	TNT1 A 0 A_look
	PPY2 DD 3 A_Wander
	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)
	PPY2 E 12 A_CustomMissile("PyroCannonZombieMine",32,0,0,2,15)
	TNT1 A 0 A_look
	Goto Idle
  See:
	PPY2 AABB 3 A_Chase
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	PPY2 CCDD 3 A_Chase
	TNT1 A 0 A_JumpIf(user_mine == 0,2)
	TNT1 A 0 A_Jump(10,"ThrowMine")
	TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
	Loop
  ThrowMine:
	TNT1 A 0 A_PlaySound("weapons/hgrenadethrow",4)
	PPY2 E 12 A_CustomMissile("PyroCannonZombieMine",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)
	TNT1 A 0 A_SetUserVar(user_jump,0)
	PPY2 EEEEEEE 4 A_FaceTarget
	TNT1 A 0 A_Jump(136,2)
	TNT1 A 0 A_CheckSight("MLG")
	PPY2 E 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/PCNNF",CHAN_WEAPON)
	PPY2 F 4 Bright A_CustomMissile("SSPyroShot",40,20,0,CMF_TRACKOWNER)
	TNT1 A 0 A_PlaySound("weapons/dtech10ksteam",6)
	TNT1 AAA 0 A_ChangeFlag(NOPAIN,0)
	PPY2 E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	PPY2 E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	PPY2 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_SetUserVar(user_jump,1)
   MLG:
	TNT1 A 0 A_Quake(6,8,0,1024)
	TNT1 A 0 A_Quake(4,16,0,2048)
	TNT1 A 0 A_Quake(2,24,0,4096)
	TNT1 A 0 A_Quake(1,32,0,8192)
	TNT1 A 0 A_PlaySound("Weapons/Stingray/Swoosh",CHAN_WEAPON,1.0,0,ATTN_NONE)
	TNT1 A 0 A_PlaySound("Weapons/Stingray/Wave",6)
	TNT1 A 0 ThrustThingZ(0,100,0,1)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,350,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,0,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,10,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,20,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,30,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,40,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,50,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,60,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,70,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,80,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,90,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,100,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,110,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,120,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,130,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,140,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,150,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,160,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,170,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,180,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,190,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,200,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,210,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,220,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,230,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,240,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,250,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,260,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,270,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,280,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,290,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,300,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,310,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,320,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,330,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,340,0)
	TNT1 A 0 A_CustomMissile("StingrayWave",0,-48,350,0)
	TNT1 A 0 A_CustomMissile("StingrayGlobe",0,0)
	PPY2 EEEEE 4 A_FaceTarget
	TNT1 A 0 A_JumpIf(user_jump == 1,2)
	TNT1 A 0 A_CheckSight("MLG2")
	PPY2 E 1 A_FaceTarget
	TNT1 A 0 A_CheckSight("See")
	PPY2 E 4 A_FaceTarget
	TNT1 A 0 A_PlaySound("weapons/PCNNF",CHAN_WEAPON)
	PPY2 F 4 Bright A_CustomMissile("SSPyroShot",40,20,0,CMF_TRACKOWNER)
	TNT1 A 0 A_PlaySound("weapons/dtech10ksteam",6)
	TNT1 AAA 0 A_ChangeFlag(NOPAIN,0)
	PPY2 E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	PPY2 E 20 Bright A_SpawnItemEx("LegendaryCannonSmoke",40,20,0)
	TNT1 A 0 A_SpawnItemEx("LegendaryCannonSmoke",40,-20,0)
	PPY2 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")
	PPY2 G 6 A_Pain
	Goto See
  PainMissile:
	PPY2 G 6 A_Pain
	Goto Missile
  Death:
	PPY2 H 5
	TNT1 A 0 A_CustomMissile("SuicideBomb",24,0,0,CMF_AIMDIRECTION)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner",0,0,24,0,0,0,0,128) 
	TNT1 AAA 0 A_CustomMissile("Kaboom3",24,0,random(0,360),2,random(0,360))
	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("RocketEx",0,24)
	TNT1 A 0 A_PlaySound("weapons/rocklx",CHAN_BODY)
	PPY2 I 5 A_Scream
	PPY2 J 5 A_Fall
	PPY2 KLM 5
	PPY2 N 0 A_SpawnItem("BodyCrash",0,0,0,0)
	PPY2 N -1
	Stop
  XDeath:
	PPY2 O 3
	TNT1 A 0 A_SpawnItemEx("ZombiePyroExplosion",0,0,36)
	TNT1 A 0 ThrustThingZ(0,40,0,1)
	TNT1 A 0 ThrustThing(Random(0,360),random(15,20))
	PPY2 P 3 A_XScream
	PPY2 Q 3 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
	PPY2 R 3 A_Fall
	PPY2 STUV 3
	PPY2 W -1
	Stop
  Raise:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
	PPY2 KJIH 5
	Goto See
	}
}

ACTOR StingrayWaveZombie : StingrayWave { DamageType "ZombieRocket" -FOILINVUL }

ACTOR PyroCannonZombieMine : InsaneCydestroyerThrownHellfireMine
{
States
{
 Death:
	LMIN C 1
	LMIN C 1 A_SpawnItem("PyroCannonZombieLiveMine")
	Stop
	}
}

ACTOR PyroCannonZombieLiveMine : InsaneCydestroyerHellfireLiveMine 
{
DamageType "ZombieRocket"
Species "LegendaryZombie"
+THRUSPECIES
+MTHRUSPECIES
var int user_counter;
States
{
  Spawn:
    TNT1 A 0
	TNT1 A 0 A_JumpIf(user_counter >= 35,"Fade")
    TNT1 A 0 A_SetUserVar("user_counter",user_counter+1)
	LMIN C 30 A_ChangeFlag(NOBLOCKMAP,0)
	LMIN D 10 Bright A_ChangeFlag(NOBLOCKMAP,1)
	Loop
  Death:
	TNT1 A 0 A_Die
  Explode:
	LMIN D 15 Bright A_PlaySound("weapons/minebeep")
	TNT1 A 0 A_Explode(186,162)
	TNT1 A 0 A_PlaySound("weapons/mineexplode")
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
	TNT1 AAAAA 0 A_CustomMissile("PyroZombExplosiveFrag",0,0,random(0,360),CMF_AIMDIRECTION|CMF_TRACKOWNER,random(0,360))
    TNT1 AAAA 0 A_CustomMissile("Kaboom3", 0, 0, random(0,360), 2, random(20,160))
	TNT1 AAAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(20,160))
	TNT1 AAAA 0 A_SpawnItemEx("Debris",0,0,0,Random(4,-4),Random(4,-4),Random(4,8),0,128)
    TNT1 A 0 A_CustomMissile("HellBoom",0,0,0,6)
    TNT1 A 0 A_CustomMissile("HellBoom",0,0,45,6)
    TNT1 A 0 A_CustomMissile("HellBoom",0,0,90,6)
    TNT1 A 0 A_CustomMissile("HellBoom",0,0,135,6)
    TNT1 A 0 A_CustomMissile("HellBoom",0,0,180,6)
    TNT1 A 0 A_CustomMissile("HellBoom",0,0,225,6)
    TNT1 A 0 A_CustomMissile("HellBoom",0,0,270,6)
    TNT1 A 0 A_CustomMissile("HellBoom",0,0,315,6)
    TNT1 A 1 A_SpawnItem("RocketEx")
    Stop
  Fade:
    LMIN C 125 A_PlaySound("LandMine/Deactivate")
	TNT1 A 0 A_CustomMissile("TeleportFog",0,0,0,0,0)
	Stop
	}
}

ACTOR PyroZombExplosiveFrag : InsanityExplosiveFrag { DamageType "ZombieRocket" }

ACTOR ZombiePyroExplosion : PlayerPyroShot
{
-FRIENDLY
-SEEKERMISSILE
DamageType "Fire"
Species "LegendaryZombie"
Speed 0
FastSpeed 0
States
{
  Spawn:
    TNT1 A 0
    TNT1 A 1 A_Die
	Goto Death
  Death:
	TNT1 A 0 Radius_Quake(15,20,0,20,0)
	HFBA D 0 A_CustomMissile("PFuelExplosion01",0,0,0,6)
	HFBA D 0 A_Mushroom("HFCyberMushroomFireballs",Random(3,6))
	TNT1 A 0 A_Explode(50,400)
    HFBA DEFGHIJKLMN 1 BRIGHT 
	TNT1 A 0 A_SpawnItemEx("PyroShotEx",0,0,0,0,0,0,0)
    Stop
  }
}