//===========================================================================
//
//  Avenger
//
//===========================================================================

ACTOR "Avenger" : PlayerPawn
{
	Speed 1
	Health 100
	Radius 16
	Height 56
	Mass 100
	PainChance 255
	DamageFactor "Normal", 1.125
	DamageFactor "Boss", 1.125
	DamageFactor "Fire", 1.125
	DamageFactor "Ice", 1.125
	Player.DisplayName "Avenger"
	Player.SoundClass "Jack"
	Player.StartItem "ClassID", 3	
	Player.StartItem "AvengerToken", 1
	Player.StartItem "AvengerSpeed", 1
	Player.StartItem "DemonTechRifle", 1
	Player.StartItem "DemonCharge", 50
	Player.StartItem "DemonAmmoBox", 200
	Player.StartItem "SawThrower", 1
	Player.StartItem "SawAmmo", 50
    DamageFactor "Player", 0
	Player.ForwardMove 1.0
	Player.SideMove 1.0
    Player.WeaponSlot 1, "SawThrower"
    Player.WeaponSlot 2, "DemonTechRifle"
	Player.ColorRange 112, 127
	States
	{
	Spawn:
		AVEN A -1
		Loop
	See:
		AVEN ABCD 5
		Loop
	Missile:
		AVEN E 12
		Goto Spawn
	Melee:
		AVEN F 5 Bright
		Goto Missile
	Pain:
		AVEN G 4
		AVEN G 4 A_Pain
		Goto Spawn
	Pain.WhirlWind:
        AVEN G 2
        TNT1 A 0 ThrustThing(random(0, 360)*256/360, random(-8, 8), 0, 0)
        TNT1 A 0 ThrustThingZ(0, random(0, 4), random(0,1), 1)
        TNT1 A 0 A_SetAngle(angle+random(-1,1)*random(25,50))
        TNT1 A 0 A_SetBlend("10 10 10", 0.6, 24)
        Goto Pain
    Pain.DeathKnightStun:
        AVEN G 2
        TNT1 A 0 acs_executealways(616, 0, 30)
        Goto Pain
    Pain.DeathKnightAssassinate:
        AVEN G 2
	    TNT1 A 0 acs_terminate(616, 0)
	    TNT1 A 0 a_takeinventory("armor", 250)
        TNT1 A 0 A_ChangeVelocity(0, 0, 0, CVF_REPLACE)
	    TNT1 A 0 SetPlayerProperty(0, 1, 4)
	    TNT1 A 0 A_SetGravity(0.75)
        TNT1 A 0 ThrustThingZ(0, 64, 0, 0)
	    TNT1 A 0 a_spawnitemex("deathknightassassinate2")
        Goto Pain
    Pain.DeathKnightDash:
        AVEN G 2
	    TNT1 A 0 acs_terminate(616, 0)
	    TNT1 A 0 acs_execute(618, 0)
        Goto Pain
	Pain.SlimeSpit:
		AVEN G 0  
		AVEN G 0 A_JumpIfInventory("SlimerSpitWindow",1,"Pain") 		
		AVEN G 0 A_GiveInventory("SlimerSpitWindow",1)
        AVEN G 1 ACS_NamedExecuteAlways("Slimer Spit",0)
        Goto Pain	
	Death:
		AVEN H 10 A_PlayerScream
		TNT1 H 0 a_spawnitemex("AmmoPack2", random(-10, 10), random(-10, 10), random(20, 44), random(1,2), random(1,2), random(3,4), 0, 0, 255)
		TNT1 H 0 a_spawnitemex("AmmoPack2", random(-10, 10), random(-10, 10), random(20, 44), random(1,2), random(1,2), random(3,4), 0, 0, 55)
		TNT1 H 0 a_spawnitemex("StimPack2C", random(-10, 10), random(-10, 10), random(20, 44), random(1,2), random(1,2), random(3,4), 0, 0, 255)
		TNT1 H 0 a_spawnitemex("StimPack2C", random(-10, 10), random(-10, 10), random(20, 44), random(1,2), random(1,2), random(3,4), 0, 0, 200)
		TNT1 H 0 a_spawnitemex("StimPack2C", random(-10, 10), random(-10, 10), random(20, 44), random(1,2), random(1,2), random(3,4), 0, 0, 150)
		TNT1 H 0 a_spawnitemex("StimPack2C", random(-10, 10), random(-10, 10), random(20, 44), random(1,2), random(1,2), random(3,4), 0, 0, 100)
		AVEN I 10 
		AVEN J 10 A_NoBlocking
		AVEN KLM 10
		AVEN N -1
        Stop
	XDeath:
	    AVEN G 2 A_XScream
	    TNT1 AAAAAA 0 A_CustomMissile("CeilBloodLauncherLong",0,0,Random(0,360),2,Random(50,130))
		TNT1 AA 0 A_CustomMissile("XDeath1",32,0,Random(0,360),2,Random(0,160))
		TNT1 AA 0 A_CustomMissile("XDeath2",32,0,Random(0,360),2,Random(0,160))
		TNT1 AA 0 A_CustomMissile("XDeath3",32,0,Random(0,360),2,Random(0,160))
		TNT1 AA 0 A_CustomMissile("XDeath4",32,0,Random(0,360),2,Random(0,160))
		TNT1 AA 0 A_CustomMissile("XDeath5",32,0,Random(0,360),2,Random(0,160))
		TNT1 AAAAAAAA 0 A_CustomMissile("SuperWallRedBlood",40,0,Random(0,360),2,Random(-5,5))
		TNT1 AAAA 0 A_CustomMissile("Instestin",32,0,Random(0,360),2,Random(0,160))
	    TNT1 AAAAAAAAAAAAAAAAAAAAAAAA 0 A_CustomMissile("Brutal_FlyingBlood",35,0,Random(0,360),2,Random(0,160))
	    TNT1 AAAAAA 0 A_CustomMissile("SuperGoreSpawner",32,0,Random(0,360),2,Random(50,130))
		TNT1 A -1
		Stop
	}
}

ACTOR AvengerSpeed : PowerupGiver
{
    Inventory.MaxAmount 0
    Powerup.Duration 0x7FFFFFFF
    Powerup.Color "00 00 00", 0.0
    Powerup.Type "Speed"
    Speed 0.85
    +INVENTORY.AUTOACTIVATE
    +INVENTORY.ALWAYSPICKUP
    States
    {
    Spawn:
        TNT1 A 6
        Loop
    }
}