Actor SSPyro
{
//Creator: Titanium
//Origin: Nexus Infinity
//Sprite: NPYR
//Title: "Pyro"
  Health 1400
  Radius 24
  Height 64
  Mass 1000
  Speed 6
  PainChance 30
  Scale 1.2
  Monster
  +FLOORCLIP
  +LOOKALLAROUND
  +DONTHARMSPECIES
  +MISSILEMORE
  +MISSILEEVENMORE
  +QUICKTORETALIATE
  Species "SS"
  DamageFactor "Hell", 0.0
  DamageFactor "SS", 0.0
  DamageFactor "Fire", 0.0
  DamageFactor "Ice", 0.0
  DamageFactor "FreezerBurn", 0.0
  DamageFactor "PlayerPyro", 0.1
	DropItem "PortableMedCell", 200, 1
	DropItem "PortableMedkit", 200
	DropItem "ArmorPlate", 200
	DropItem "HandGrenadeAmmo", 200, 1
	DropItem "MineAmmo", 200, 1
	DropItem "AmmoPack", 150
	DropItem "Welder", 32
	DropItem "Gas", 200, 1
	DropItem "BigGas", 100
  MaxStepHeight 32
  MaxDropOffHeight 32
  SeeSound "SSPyro/Sight"
  PainSound "SSPyro/Pain"
  DeathSound "SSPyro/Death"
  ActiveSound "SSPyro/Active"
  Obituary "%o was burned to a crisp by a Pyro."
  Tag "\c[z4]Pyro\c-"
  var int user_lowhealth;
  states
  {
  Spawn:
    NPYR A 10 A_Look
    Loop
  See:
	TNT1 A 0 A_ChangeFlag("NODAMAGE",0)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_JumpIfInventory("MarineKilled",1,"Taunt")
  Chase:
	TNT1 A 0 A_JumpIfHealthLower(600,"LowHealthTaunt")
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
    TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
    NPYR AAAABBBB 1 A_Chase
    TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
    NPYR CCCCDDDD 1 A_Chase
    Loop
  See2:
	TNT1 A 0 A_ChangeFlag(NOPAIN,0)
	TNT1 A 0 A_ChangeFlag("FRIGHTENED",1)
    TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
    NPYR AAAABBBB 1 A_Chase
    TNT1 A 0 A_SpawnItem("FootStep",0,0,0,0)
    NPYR CCCCDDDD 1 A_Chase
	TNT1 A 0 A_Jump(10,"PanicTaunt")
    Loop
  Missile:
    TNT1 A 0 A_JumpIfCloser(500,"Flamer")
    NPYR E 13 A_FaceTarget
    NPYR F 6 Bright A_CustomMissile("SSNapalmBall",36,0,random(-1,1))
    NPYR E 8 A_FaceTarget
	NPYR F 6 Bright A_CustomMissile("SSNapalmBall",36,0,random(-1,1))
    NPYR E 8 A_FaceTarget
	NPYR F 6 Bright A_CustomMissile("SSNapalmBall",36,0,random(-1,1))
    NPYR E 8 A_FaceTarget
    Goto See
  Flamer:
	NPYR EEEE 3 A_FaceTarget
	NPYR FF 1 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/PyroSGShot")
	TNT1 AAAA 0 A_CustomMissile("SSFlamethrowerShot",36,0,random(-6,6),CMF_TRACKOWNER)
	NPYR EEEE 3 A_FaceTarget
	NPYR FF 1 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/PyroSGShot")
	TNT1 AAAA 0 A_CustomMissile("SSFlamethrowerShot",36,0,random(-6,6),CMF_TRACKOWNER)
	NPYR EEEE 3 A_FaceTarget
	NPYR FF 1 Bright A_FaceTarget
	TNT1 A 0 A_PlaySound("Weapons/PyroSGShot")
	TNT1 AAAA 0 A_CustomMissile("SSFlamethrowerShot",36,0,random(-6,6),CMF_TRACKOWNER)
	TNT1 A 0 A_Jump(72,"Flamer")
	NPYR E 5 
	Goto See
  Pain:
	TNT1 A 0 A_ChangeFlag(NOPAIN,1)
	TNT1 A 0 A_Jump(48,"PainMissile")
    NPYR A 3
    NPYR A 3 A_Pain
    Goto See
  PainMissile:
    NPYR A 3
    NPYR A 3 A_Pain
    Goto Missile
  PanicTaunt:
    TNT1 A 0
    TNT1 A 0 A_PlaySound("SSPyro/FrightAct",CHAN_VOICE,1,0,0.5)
    Goto See
  LowHealthTaunt:
	TNT1 A 0 A_JumpIf(user_lowhealth == 1, "See2")
    TNT1 A 0 A_SetUserVar("user_lowhealth", 1)
    TNT1 A 0 A_PlaySound("SSPyro/Fright",CHAN_VOICE,1,0,0.5)
    Goto See2
  Taunt:
	TNT1 A 0 A_ChangeFlag("NOPAIN",1)
	TNT1 A 0 A_ChangeFlag("NODAMAGE",1)
	TNT1 A 0 A_PlaySound("SSPyro/KillTaunt",2,1.0,0,ATTN_NONE)
	TNT1 A 0 A_TakeInventory("MarineKilled",1)
	TNT1 A 0 A_ChangeFlag("NOPAIN",0)
	TNT1 A 0 A_ChangeFlag("NODAMAGE",0)
	Goto Spawn
  Death:
    NPYR G 5 A_SpawnItemEx("GibbedGenerator",0,0,0,0,0,0,0,128,0)
    NPYR H 5 A_Scream
    NPYR IJ 5
    NPYR K -1 A_NoBlocking
    Stop
  Raise:
  	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("VileHealEffect",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
    NPYR JIHG 5
    Goto See
  }
}

ACTOR SSNapalmBall : WarNapalmBall
{
  Species "SS"
  Damagetype "SS"
  States
  {
  Death:
	TNT1 A 0 A_Explode(50,100)
	TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner", 0, 0, 0, 0, 0, 0, 0, 128) 
	TNT1 AAA 0 A_CustomMissile("Kaboom3", 0, 0, random(0,360), 2, random(0,360))
	TNT1 AAA 0 A_CustomMissile("SmokeFX2", 0, 0, random(0,360), 2, random(0,360))	
	TNT1 AAAA 0 A_SpawnItemEx("SSFlamethrowerShot",0,0,0,random(0,8),random(0,8),2,random(0,360),SXF_TRANSFERPOINTERS|SXF_SETMASTER,0)
	WARN CDE 6 Bright
	Stop
  }
}

Actor SSFlamethrowerShot : BaseFireSpawner
{
Damage (random(5,15))
Species "SS"
DamageType "SS"
States
	{
	Death:
		TNT1 AAA 0 A_StopSound(CHAN_BODY)
		TNT1 A 0 A_Stop
		TNT1 A 0 A_NoGravity
		TNT1 A 0 A_SpawnItemEx("OrangeParticleSpawner",0,0,0,0,0,0,0,SXF_CLIENTSIDE,0)
		TNT1 AA 0 A_CustomMissile("Kaboom69",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 AA 0 A_CustomMissile("SmokeFX7",0,0,random(0,360),CMF_AIMDIRECTION,random(0,360))
		TNT1 A 0 A_SpawnItemEx("SSPyroFlare",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS|SXF_SETMASTER)
		FRTM CDE 3 Bright
		Stop
	}
}

Actor SSPyroFlare : BaseFireFlare
{
Species "SS"
DamageType "SS"
Obituary "%o was burned to a crisp by a Pyro."
States
	{
	Spawn:
		TNT1 A 0 Bright
		TNT1 A 0 Bright A_SetUserVar("user_firedamage",15)
		TNT1 A 0 Bright A_Die
		Goto Death
	}
}

ACTOR SSPyroFlamethrower : PoisonEleBreath //Unused
{
	Speed 26
    States
    {
    Spawn:
        FIR1 LKJIHGFEDCB 2 Bright A_Explode(6,68)
    Death:
		FIR1 AA 2 Bright A_FadeOut(0.25)
        Stop
		}
}