//Sprint
Actor Sprint : WoC_Skill {}
Actor Sprinting : WoC_Boolean {}

Actor SprintSpeed : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Type SprintSpeed
}

Actor PowerSprintSpeed : PowerSpeed
{
	Speed 1.5
	Powerup.Duration -500000000
	Inventory.Icon "SPRTICON"
}

//Camoflauge
Actor Camoflauge : WoC_Skill {}
Actor Stealthing : WoC_Boolean {}

Actor CamoflaugeInvisibility : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Type CamoflaugeInvisibility
}

Actor PowerCamoflaugeInvisibility : PowerGhost
{
	Renderstyle "Translucent"
	Powerup.Duration -500000000
	+CANTSEEK
	Alpha 0.05
	Inventory.Icon "CAMOICON"
}

Actor CamoNoTarget : CustomInventory
{
	Inventory.MaxAmount 0
	+Inventory.AUTOACTIVATE
	states
	{
		Use:
		TNT1 A 0 A_ChangeFlag("NOTARGET",1)
		TNT1 A 0 //A_SetShootable
		Stop
	}
}

Actor CamoTarget : CustomInventory
{
	Inventory.MaxAmount 0
	+Inventory.AUTOACTIVATE
	states
	{
		Use:
		TNT1 A 0 A_ChangeFlag("NOTARGET",0)
		Stop
	}
}

Actor NOCANTSEEK : Custominventory
{
	Inventory.MaxAmount 0
	+Inventory.AUTOACTIVATE
	states
	{
		Use:
		TNT1 A 0 //A_ChangeFlag("CANTSEEK", 0)
		Stop
	}
}

//Fan of Knives
Actor WindSlash : WoC_Skill {}
Actor IsWindSlashing : WoC_Boolean {}

//Trip Bomb
Actor TripBomb : WoC_Skill {}
Actor UseTripBomb : Custominventory
{
	Inventory.MaxAmount 0
	+Inventory.AUTOACTIVATE
	states
	{
	Use:
		TNT1 A 0 A_FireCustomMissile("GlyphMine", 0, 0, 0, 0, 0)
		TNT1 A 0 A_FireCustomMissile("GlyphmineChain", 0, 0, 0, 0, 0)
		Stop
	}
}

ACTOR GlyphMine
{
    Height 7
    Radius 4
    Speed 0
    Scale 0.1
    PROJECTILE 
	Damage (1)
	ReactionTime 29
	+WINDTHRUST
	+THRUGHOST
	+MTHRUSPECIES /*+NODAMAGETHRUST*/ +DONTBLAST
	+DONTREFLECT
    States
	{
    Spawn:
		GLPH B 0 Bright
		GLPH B 0 Bright //A_CustomMissile("GlyphmineChain",0,0,0,2,Pitch)
		GLPH B 0 Bright A_CountDown
		GLPH BCDEFG 1 Bright A_JumpIfInTargetInventory("ChainSnapped", 1, "Death")
		GLPH BCDEFG 1 Bright A_JumpIfInTargetInventory("ChainSnapped", 1, "Death")
		GLPH BCDEFG 1 Bright A_JumpIfInTargetInventory("ChainSnapped", 1, "Death")
		GLPH BCDEFG 1 Bright A_JumpIfInTargetInventory("ChainSnapped", 1, "Death")
		GLPH BCDEFG 1 Bright A_JumpIfInTargetInventory("ChainSnapped", 1, "Death")
		GLPH BCDEFG 1 Bright A_JumpIfInTargetInventory("ChainSnapped", 1, "Death")
		Goto Spawn+2
    Death:
		TNT1 A 0 Bright A_PlaySound("glyph/explode")
		TNT1 A 1 Bright A_SpawnItem("GlyphExplode")
		TNT1 A 0 Bright A_TakeFromTarget("ChainSnapped",1)
		TNT1 A 0 Bright //A_GiveToTarget("ChainSnapped",1)
		Stop
    }
}

Actor ChainSnapped : WoC_Boolean {}

Actor GlyphmineChain
{
	Speed 20
	Height 14
	Radius 10
	Projectile
	+BLOODLESSIMPACT
	+PAINLESS
	+WINDTHRUST
	+THRUGHOST
	+DONTREFLECT
	+MTHRUSPECIES
	SeeSound "ability/chain"
	States
	{
	Spawn:
		OCLW A 1 A_SpawnItemEX("GlyphmineChain2",1)
		Loop
	Death:
		OCLW A 6
		Stop
	}
}

ACTOR GlyphMineChain2
{
	Projectile
	Speed 0
	Height 3
	Radius 3
	ReactionTime 1050
	Damage (1)
	Damagetype "Physical"
	+MTHRUSPECIES /*+NODAMAGETHRUST*/ +DONTBLAST
	+WINDTHRUST
	+THRUGHOST
	+DONTREFLECT
	States
	{
	Spawn:
		TEND A 0
		TEND A 1 A_JumpIfInTargetInventory("ChainSnapped", 1, "Death")
		TEND A 0 A_CountDown
		Loop
	Death:
		TEND A 0 A_JumpIfInTargetInventory("ChainSnapped", 1, "Gone")
		TNT1 A 0 A_GiveToTarget("ChainSnapped",1)
		CFCF Q 0 Bright A_AlertMonsters
		CFCF Q 0 Bright A_SetTranslucent(1,1)
	Gone:
		TNT1 A 1
		Stop
	}
}

ACTOR GlyphExplode
{   
	PROJECTILE
    +NOGRAVITY
    +EXTREMEDEATH
    +FORCERADIUSDMG
    +NOINTERACTION
    Radius 2
    Height 2
    Damage 10
    DamageType "Fire"
    Scale 1.75
    RenderStyle Add
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 Radius_Quake(2,30,0,5,0)
	EXP3 A 1 Bright A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 200, AGILITY, ABIL_TRIPBOMB, WOCTARGET),384,0)
	EXP3 BCDEFGHIJKLMNOPQRSTUVWXYZ 1 Bright A_FadeOut(0.025)
	EXP3 Z 1 A_FadeOut
	Stop
    }
}

//Nature's Salve
Actor NaturesSalve : WoC_Skill {}

Actor NaturesSalveLayer : CustomInventory
{
	Inventory.MaxAmount 0
	+INVENTORY.AUTOACTIVATE
	Inventory.Icon "TNT1A0"
	States
	{
	Use:
		TNT1 A 0 A_SpawnItemEx("NewItemFog", 96, 0, 32)
		TNT1 A 0 A_PlaySound("misc/invuse")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 32,"Use32")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 31,"Use31")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 30,"Use30")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 29,"Use29")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 28,"Use28")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 27,"Use27")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 26,"Use26")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 25,"Use25")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 24,"Use24")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 23,"Use23")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 22,"Use22")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 21,"Use21")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 20,"Use20")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 19,"Use19")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 18,"Use18")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 17,"Use17")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 16,"Use16")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 15,"Use15")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 14,"Use14")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 13,"Use13")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 12,"Use12")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 11,"Use11")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 10,"Use10")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 9,"Use9")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 8,"Use8")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 7,"Use7")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 6,"Use6")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 5,"Use5")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 4,"Use4")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 3,"Use3")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 2,"Use2")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM) == 1,"Use1")
		TNT1 A 0 A_SpawnItemEx("NaturesSalve0", cos(pitch)*96,0,32-(sin(pitch)*96))
		Stop
	Use1: TNT1 A 0 A_SpawnItemEx("NaturesSalve1", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use2: TNT1 A 0 A_SpawnItemEx("NaturesSalve2", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use3: TNT1 A 0 A_SpawnItemEx("NaturesSalve3", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use4: TNT1 A 0 A_SpawnItemEx("NaturesSalve4", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use5: TNT1 A 0 A_SpawnItemEx("NaturesSalve5", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use6: TNT1 A 0 A_SpawnItemEx("NaturesSalve6", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use7: TNT1 A 0 A_SpawnItemEx("NaturesSalve7", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use8: TNT1 A 0 A_SpawnItemEx("NaturesSalve8", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use9: TNT1 A 0 A_SpawnItemEx("NaturesSalve9", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	
	Use10: TNT1 A 0 A_SpawnItemEx("NaturesSalve10", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use11: TNT1 A 0 A_SpawnItemEx("NaturesSalve11", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use12: TNT1 A 0 A_SpawnItemEx("NaturesSalve12", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use13: TNT1 A 0 A_SpawnItemEx("NaturesSalve13", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use14: TNT1 A 0 A_SpawnItemEx("NaturesSalve14", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use15: TNT1 A 0 A_SpawnItemEx("NaturesSalve15", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use16: TNT1 A 0 A_SpawnItemEx("NaturesSalve16", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use17: TNT1 A 0 A_SpawnItemEx("NaturesSalve17", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use18: TNT1 A 0 A_SpawnItemEx("NaturesSalve18", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use19: TNT1 A 0 A_SpawnItemEx("NaturesSalve19", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	
	Use20: TNT1 A 0 A_SpawnItemEx("NaturesSalve20", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use21: TNT1 A 0 A_SpawnItemEx("NaturesSalve21", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use22: TNT1 A 0 A_SpawnItemEx("NaturesSalve22", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use23: TNT1 A 0 A_SpawnItemEx("NaturesSalve23", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use24: TNT1 A 0 A_SpawnItemEx("NaturesSalve24", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use25: TNT1 A 0 A_SpawnItemEx("NaturesSalve25", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use26: TNT1 A 0 A_SpawnItemEx("NaturesSalve26", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use27: TNT1 A 0 A_SpawnItemEx("NaturesSalve27", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use28: TNT1 A 0 A_SpawnItemEx("NaturesSalve28", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use29: TNT1 A 0 A_SpawnItemEx("NaturesSalve29", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use30: TNT1 A 0 A_SpawnItemEx("NaturesSalve30", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use31: TNT1 A 0 A_SpawnItemEx("NaturesSalve31", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	Use32: TNT1 A 0 A_SpawnItemEx("NaturesSalve32", cos(pitch)*96,0,32-(sin(pitch)*96)) Stop
	}
}

Actor NaturesSalve0 : CustomInventory
{
	+FLOATBOB
	+MISSILE
	Inventory.PickupSound "pickup/health"
	Inventory.PickupMessage "Nature's Salve"
	var int user_Amount;
	States
	{
	Spawn:
		GPPT A 0
		GPPT A 0 A_ChangeFlag("MISSILE", 0)
		GPPT A 0 A_JumpIfInTargetInventory("NaturesSalve", 7, "Round")
		GPPT A 0 A_JumpIfInTargetInventory("NaturesSalve", 4, "Hexagon")
	Pentagon:
		GPPT A 0 A_JumpIf(user_amount>=875, "Blink")
		GPPT ABC 4 Light("NaturesSalveLight") A_SetUserVar("user_amount", user_amount+4)
		Loop
	Blink:
		GPPT A 0 A_JumpIf(user_amount>=1050, "Vanish")
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GPPT A 4 Light("NaturesSalveLight") A_SetTranslucent(0.5,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GPPT B 4 Light("NaturesSalveLight") A_SetTranslucent(1.0,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GPPT C 4 Light("NaturesSalveLight") A_SetTranslucent(0.5,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GPPT A 4 Light("NaturesSalveLight") A_SetTranslucent(1.0,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GPPT B 4 Light("NaturesSalveLight") A_SetTranslucent(0.5,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GPPT C 4 Light("NaturesSalveLight") A_SetTranslucent(1.0,0)
		Loop
	Hexagon:
		GHPT A 0 A_JumpIf(user_amount>=875, "Blink2")
		GHPT ABC 4 Light("NaturesSalveLight") A_SetUserVar("user_amount", user_amount+4)
		Loop
	Blink2:
		GHPT A 0 A_JumpIf(user_amount>=1050, "Vanish")
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GHPT A 4 Light("NaturesSalveLight") A_SetTranslucent(0.5,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GHPT B 4 Light("NaturesSalveLight") A_SetTranslucent(1.0,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GHPT C 4 Light("NaturesSalveLight") A_SetTranslucent(0.5,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GHPT A 4 Light("NaturesSalveLight") A_SetTranslucent(1.0,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GHPT B 4 Light("NaturesSalveLight") A_SetTranslucent(0.5,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GHPT C 4 Light("NaturesSalveLight") A_SetTranslucent(1.0,0)
		Loop
	Round:
		GRPT A 0 A_JumpIf(user_amount>=875, "Blink3")
		GRPT ABC 4 A_SetUserVar("user_amount", user_amount+4)
		Loop
	Blink3:
		GRPT A 0 A_JumpIf(user_amount>=1050, "Vanish")
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GRPT A 4 Light("NaturesSalveLight") A_SetTranslucent(0.5,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GRPT B 4 Light("NaturesSalveLight") A_SetTranslucent(1.0,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GRPT C 4 Light("NaturesSalveLight") A_SetTranslucent(0.5,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GRPT A 4 Light("NaturesSalveLight") A_SetTranslucent(1.0,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GRPT B 4 Light("NaturesSalveLight") A_SetTranslucent(0.5,0)
		GPPT A 0 A_SetUserVar("user_amount", user_amount+4)
		GRPT C 4 Light("NaturesSalveLight") A_SetTranslucent(1.0,0)
		Loop
	Pickup:
		TNT1 A 0 A_JumpIfInventory("PowerSalveIsHealing",1,"Failure")
		TNT1 A 0 A_JumpIf(1, "Healing")
		Fail
	Pickedup:
		TNT1 A 0 A_GiveInventory("PowerSalveIsHealing",1)
		Goto Healing
	Healing:
		TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,0,0,0)
		Stop
	Failure:
		TNT1 A 0
		Fail
	Vanish:
		TNT1 A 0
		Stop
	}
}

Actor NaturesSalve1 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,1,0,0) Stop } }
Actor NaturesSalve2 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,2,0,0) Stop } }
Actor NaturesSalve3 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,3,0,0) Stop } }
Actor NaturesSalve4 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,4,0,0) Stop } }
Actor NaturesSalve5 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,5,0,0) Stop } }
Actor NaturesSalve6 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,6,0,0) Stop } }
Actor NaturesSalve7 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,7,0,0) Stop } }
Actor NaturesSalve8 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,8,0,0) Stop } }
Actor NaturesSalve9 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,9,0,0) Stop } }

Actor NaturesSalve10 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,10,0,0) Stop } }
Actor NaturesSalve11 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,11,0,0) Stop } }
Actor NaturesSalve12 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,12,0,0) Stop } }
Actor NaturesSalve13 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,13,0,0) Stop } }
Actor NaturesSalve14 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,14,0,0) Stop } }
Actor NaturesSalve15 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,15,0,0) Stop } }
Actor NaturesSalve16 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,16,0,0) Stop } }
Actor NaturesSalve17 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,17,0,0) Stop } }
Actor NaturesSalve18 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,18,0,0) Stop } }
Actor NaturesSalve19 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,19,0,0) Stop } }

Actor NaturesSalve20 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,20,0,0) Stop } }
Actor NaturesSalve21 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,21,0,0) Stop } }
Actor NaturesSalve22 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,22,0,0) Stop } }
Actor NaturesSalve23 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,23,0,0) Stop } }
Actor NaturesSalve24 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,24,0,0) Stop } }
Actor NaturesSalve25 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,25,0,0) Stop } }
Actor NaturesSalve26 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,26,0,0) Stop } }
Actor NaturesSalve27 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,27,0,0) Stop } }
Actor NaturesSalve28 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,28,0,0) Stop } }
Actor NaturesSalve29 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,29,0,0) Stop } }

Actor NaturesSalve30 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,30,0,0) Stop } }
Actor NaturesSalve31 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,31,0,0) Stop } }
Actor NaturesSalve32 : NaturesSalve0 { States { Healing: TNT1 A 0 ACS_ExecuteAlways(WOC_NATURESSALVE,0,32,0,0) Stop } }

Actor SalveIsHealing : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration -10
	Powerup.Type SalveIsHealing
}

Actor SalveIsHealing2 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration -5
	Powerup.Type SalveIsHealing
}

Actor PowerSalveIsHealing : PowerUp
{
	Powerup.Duration -10
	Inventory.Icon "SALVICON"
}

//Raven Companion
Actor RavenCompanion : WoC_Skill {}
Actor RavenCompanionCheck : WoC_Undroppable { Inventory.MaxAmount 2 }
Actor RavenCompanionDamage : WoC_Skill {}

Actor RavenCompanionGiver : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Type RavenCompanion
}

Actor PowerRavenCompanion : Powerup
{
	Powerup.Duration -30
	Inventory.Icon "RAVNICON"
}

Actor UseRavenCompanion1 : CustomInventory
{
	Inventory.MaxAmount 0
	+Inventory.AUTOACTIVATE
	states
	{
	Use:
		TNT1 A 0 A_SpawnItemEx("RavenCompanionBird", 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, SXF_NOCHECKPOSITION, 0, PET1TID+ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM))
		Stop
	}
}

Actor UseRavenCompanion2 : UseRavenCompanion1
{
	states
	{
	Use:
		TNT1 A 0 A_SpawnItemEx("RavenCompanionBird", 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, SXF_NOCHECKPOSITION, 0, PET2TID+ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM))
		Stop
	}
}

Actor UseRavenCompanion3 : UseRavenCompanion1
{
	states
	{
	Use:
		TNT1 A 0 A_SpawnItemEx("RavenCompanionBird", 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, SXF_NOCHECKPOSITION, 0, PET3TID+ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM))
		Stop
	}
}

Actor RavenCompanionBird
{
	Radius 10
	Height 16
	Speed 20
	+NONSHOOTABLE
	+FLOAT
	+NOGRAVITY
	-COUNTKILL
	+FRIENDLY
	+NOBLOCKMONST
	+NEVERFAST
	Species "Player"
	+THRUSPECIES
	-NOTELEPORT
	SeeSound "Weapons/RavenStaff/RavenSight"
	States
	{
	Spawn:
		RVSR A 0
		RVSR A 0 A_PlaySound("Weapons/RavenStaff/RavenSight")
	Idle:
		RVSR ABCD 3 A_Look
		Goto See
	See:
		RVSR A 0 A_JumpIfTargetinLOS(2, 140)
		RVSR A 0 A_Jump(50, "Giveup")
		RVSR A 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("RavenFeather", 0, 0, 0, 0, 0, 0, 0, 128, 192)
		RVSR B 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("RavenFeather", 0, 0, 0, 0, 0, 0, 0, 128, 192)
		RVSR C 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("RavenFeather", 0, 0, 0, 0, 0, 0, 0, 128, 192)
		RVSR D 2 A_Chase
		TNT1 A 0 A_SpawnItemEx("RavenFeather", 0, 0, 0, 0, 0, 0, 0, 128, 192)
		Loop
	Giveup:
		RVSR A 0 A_ClearTarget
		Goto see
	Missile:
		RVSR A 0 A_GiveInventory("PlayerAlertMonsters",1,AAPTR_MASTER)
		RVSR A 3 A_FaceTarget
		RVSR B 3 A_FaceTarget
		RVSR C 3 A_CustomMissile("RavenShot",8)
		RVSR D 3
		Goto See
	Death:
		TNT1 A 0 A_Stop
		TNT1 A 0 A_PlaySound("Weapons/RavenStaff/RavenDeath")
		TNT1 A 0 A_SpawnItemEx("RavenFeather", 0, 0, 0, frandom(1, 2), 0, frandom(1, 2), frandom(0, 360), 128)
		TNT1 A 0 A_SpawnItemEx("RavenFeather", 0, 0, 0, frandom(1, 2), 0, frandom(1, 2), frandom(0, 360), 128)
		TNT1 A 0 A_SpawnItemEx("RavenFeather", 0, 0, 0, frandom(1, 2), 0, frandom(1, 2), frandom(0, 360), 128)
		TNT1 A 0 A_SpawnItemEx("RavenFeather", 0, 0, 0, frandom(1, 2), 0, frandom(1, 2), frandom(0, 360), 128)
		TNT1 A 0 A_SpawnItemEx("RavenFeather", 0, 0, 0, frandom(1, 2), 0, frandom(1, 2), frandom(0, 360), 128)
		TNT1 A 0 A_SpawnItemEx("RavenSmoke", 0, 0, 0, frandom(1, 2), 0, frandom(1, 2), frandom(0, 360), 128)
		TNT1 A 0 A_SpawnItemEx("RavenSmoke", 0, 0, 0, frandom(1, 2), 0, frandom(1, 2), frandom(0, 360), 128)
		TNT1 A 0 A_SpawnItemEx("RavenSmoke", 0, 0, 0, frandom(1, 2), 0, frandom(1, 2), frandom(0, 360), 128)
		TNT1 A 0 A_SpawnItemEx("RavenSmoke", 0, 0, 0, frandom(1, 2), 0, frandom(1, 2), frandom(0, 360), 128)
		TNT1 A 1 A_SpawnItemEx("RavenSmoke", 0, 0, 0, frandom(1, 2), 0, frandom(1, 2), frandom(0, 360), 128)
		Stop
	}
}

Actor RavenShot
{
	Radius 6
	Height 6
	Scale 0.4
	Speed 30
	Damage (ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(8,28), CHARISMA, ABIL_RAVENCOMPANION, WOCTARGET))
	
	Damagetype "Physical"
	Projectile
	SeeSound "Weapons/RavenStaff/Fire11"
	DeathSound "Weapons/RavenStaff/Hit"
	Decal MummyScorch
	+MTHRUSPECIES /*+NODAMAGETHRUST*/ +DONTBLAST
	+WINDTHRUST
	+THRUGHOST
	+SEEKERMISSILE
	/*+NODAMAGETHRUST*/ +DONTBLAST
	+DONTREFLECT
	+HITMASTER
	States
	{
	Spawn:
		RVNP A 0 A_SeekerMissile(90,90,SMF_PRECISE)
		RVNP AABBCCDD 1 A_SpawnItemEx("RavenTrail", 0, frandom(-2, 2), frandom(-2, 2), 0, 0, 0, 0, 128)
		Loop
	Death:
		RVSR E 0 Bright A_JumpIfInTargetInventory("IsSurvivalist",1,"Survivalist")
		RVSR E 0 Bright A_SetTranslucent(0.7, 1)
		RVSR EFGHIJKL 2 Bright
		Stop
	Survivalist:
		RVSR E 0 Bright A_GiveInventory("SurvivalistDamage", 1, AAPTR_MASTER)
		RVSR E 0 Bright A_SetTranslucent(0.7, 1)
		RVSR EFGHIJKL 2 Bright
		Stop
	}
}

Actor RavenTrail
{
	Radius 1
	Height 1
	+NoClip
	+DropOff
	+NoTeleport
	+CannotPush
	+DontSplash
	+NoGravity
	+CLIENTSIDEONLY +DONTBLAST
	+NOINTERACTION
	States
	{
	Spawn:
		TNT1 A 2
		RVNP OPQRST 2 A_FadeOut(0.08)
		Goto Spawn+1
	}
}

Actor RavenSmoke
{
	Radius 0
	Height 0
	Scale 0.4
	RenderStyle Add
	Alpha 0.7
	+NoGravity
	+DontSplash
	+CLIENTSIDEONLY +DONTBLAST
	+NOINTERACTION
	States
	{
	Spawn:
		RVSR EFGHIJKL 2
		Stop
	}
}

Actor RavenSmoke2
{
	Radius 0
	Height 0
	Scale 0.3
	RenderStyle Add
	Alpha 0.3
	+NoGravity
	+DontSplash
	+CLIENTSIDEONLY +DONTBLAST
	+NOINTERACTION
	States
	{
	Spawn:
		RVSR EFGHIJKL 2
		Stop
	}
}

ACTOR RavenFeather
{
	+NOINTERACTION
	-NOGRAVITY
	+CLIENTSIDEONLY +DONTBLAST
	Gravity 0.35
	States
	{
	Spawn:
		TNT1 AA 0 A_Jump(256,"SpriteA","SpriteB","SpriteC","SpriteD","SpriteE")
	SpriteA:
		RVSR M 0 A_Jump(256,"Wolololo")
	SpriteB:
		RVSR N 0 A_Jump(256,"Wolololo")
	SpriteC:
		RVSR O 0 A_Jump(256,"Wolololo")
	SpriteD:
		RVSR P 0 A_Jump(256,"Wolololo")
	SpriteE:
		RVSR Q 0 A_Jump(256,"Wolololo")
	Wolololo:
		"####" "#" 3 A_Jump(182,"Fade")
		Loop
	Fade:
		"####" "#" 1 A_FadeOut(0.1)
		Loop
	}
}

Actor MeleeMastery : WoC_Skill {}

Actor RangedMastery : WoC_Skill {}

Actor Precision : WoC_Skill {}

Actor PrecisionAura1 : PowerupGiver
{
	Powerup.Type "Precision1"
	Powerup.Duration 35
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
}

Actor PrecisionAura2 : PowerupGiver
{
	Powerup.Type "Precision2"
	Powerup.Duration 35
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
}

Actor PrecisionAura3 : PowerupGiver
{
	Powerup.Type "Precision3"
	Powerup.Duration 35
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
}

Actor PrecisionAura4 : PowerupGiver
{
	Powerup.Type "Precision4"
	Powerup.Duration 35
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
}

Actor PrecisionAura5 : PowerupGiver
{
	Powerup.Type "Precision5"
	Powerup.Duration 35
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
}

Actor PrecisionAura6 : PowerupGiver
{
	Powerup.Type "Precision6"
	Powerup.Duration 35
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
}

Actor PrecisionAura7 : PowerupGiver
{
	Powerup.Type "Precision7"
	Powerup.Duration 35
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
}

Actor PrecisionAura8 : PowerupGiver
{
	Powerup.Type "Precision8"
	Powerup.Duration 35
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
}

Actor PrecisionAura9 : PowerupGiver
{
	Powerup.Type "Precision9"
	Powerup.Duration 35
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
}

Actor PrecisionAura10 : PowerupGiver
{
	Powerup.Type "Precision10"
	Powerup.Duration 35
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
}

Actor PowerPrecision1 : PowerDamage
{
	Damagefactor "Normal", 1.175
	Powerup.Duration 35
	Inventory.Icon "PRECICON"
}

Actor PowerPrecision2 : PowerDamage
{
	Damagefactor "Normal", 1.2
	Powerup.Duration 35
	Inventory.Icon "PRECICON"
}

Actor PowerPrecision3 : PowerDamage
{
	Damagefactor "Normal", 1.225
	Powerup.Duration 35
	Inventory.Icon "PRECICON"
}

Actor PowerPrecision4 : PowerDamage
{
	Damagefactor "Normal", 1.25
	Powerup.Duration 35
	Inventory.Icon "PRECICON"
}

Actor PowerPrecision5 : PowerDamage
{
	Damagefactor "Normal", 1.275
	Powerup.Duration 35
	Inventory.Icon "PRECICON"
}

Actor PowerPrecision6 : PowerDamage
{
	Damagefactor "Normal", 1.3
	Powerup.Duration 35
	Inventory.Icon "PRECICON"
}

Actor PowerPrecision7 : PowerDamage
{
	Damagefactor "Normal", 1.325
	Powerup.Duration 35
	Inventory.Icon "PRECICON"
}

Actor PowerPrecision8 : PowerDamage
{
	Damagefactor "Normal", 1.350
	Powerup.Duration 35
	Inventory.Icon "PRECICON"
}

Actor PowerPrecision9 : PowerDamage
{
	Damagefactor "Normal", 1.375
	Powerup.Duration 35
	Inventory.Icon "PRECICON"
}

Actor PowerPrecision10 : PowerDamage
{
	Damagefactor "Normal", 1.40
	Powerup.Duration 35
	Inventory.Icon "PRECICON"
}

Actor Precisioning : WoC_Boolean {}

Actor PrecisionEffects
{
 +Missile
 +NoGravity
 +NoBlockmap
 +NoInteraction
 -Solid
 +CLIENTSIDEONLY +DONTBLAST
 VSpeed 6
 Radius 0
 Height 0
 RenderStyle Add
 Alpha 0.03
 Scale 0.37
 //translation "80:111=196:207"
 States
 {
  Spawn:
   SPFX E 0
   SPFX EEEEE 1 Bright A_FadeIn(0.2)
   SPFX EEEEEEEEEEEEEEEE 1 Bright A_FadeOut(0.06)
   Stop
 }
}

Actor Invigoration : WoC_Skill {}

Actor SpinningSlash : WoC_Skill {}

Actor IsSpinningSlashing : WoC_Boolean {}

Actor BearTrapSkill : WoC_Skill {}

Actor BearTrapItemLayer : CustomInventory
{
	Inventory.MaxAmount 0
	+INVENTORY.AUTOACTIVATE
	Inventory.Icon "TNT1A0"
	States
	{
	Use:
		TNT1 A 0 A_JumpIfInventory("IsSurvivalist", 1, "Survivalist")
		TNT1 A 0 A_SpawnItemEx("BearTrapObject", cos(-pitch)*96, 0, 0)
		Stop
	Survivalist:
		TNT1 A 0 A_FireCustomMissile("BearTrapObjectLaunch", 0, 0, 0, 5)
		Stop
	}
}

ACTOR BearTrapObjectLaunch
{
	Speed 28
	Radius 12
	Height 10
	Projectile
	+MTHRUSPECIES +NODAMAGETHRUST +DONTBLAST
	-NOGRAVITY
	Renderstyle Add
	States
	{
	Spawn:
		TLAU AAAAAA 0 A_SpawnItemEx("BearTrapObjectLaunchFX",0,0,0,frandom(-2,2),frandom(-2,2),frandom(-2,2),frandom(1,360))
		TLAU A 1 Bright
		Loop
	Death:
		TNT1 A 1 A_SpawnItemEx("BearTrapObject")
		Stop
	}
}

Actor BearTrapObjectLaunchFX
{
	Projectile
	Damage 0
	+RIPPER
	+BLOODLESSIMPACT
	+PAINLESS
	+NOINTERACTION
	+CLIENTSIDEONLY +DONTBLAST
	+DONTBLAST
	+NOCLIP
	Speed 0
	Radius 1
	Height 1
	Scale 0.2
	RenderStyle Add
	States
	{
	Spawn:
		TLAU A 1 Bright A_FadeOut
		Wait
	Death:
		TNT1 A 1
		Stop
	}
}

Actor BearTrapObject
{
	Damage (ACS_NamedExecuteWithResult("WOC Player Scale", 150, AGILITY, ABIL_BEARTRAP, WOCTARGET))
	Damagetype "Physical"
	PROJECTILE
	+FLOORHUGGER
	+MTHRUSPECIES +NODAMAGETHRUST +DONTBLAST
	+NOCLIP
	+DONTSPLASH
	+DONTREFLECT
	+WINDTHRUST
	+THRUGHOST
	Renderstyle Translucent
	//SeeSound "beartrap/set"
	//DeathSound "beartrap/snap"
	+FORCEPAIN
	+HITTRACER
	Radius 12
	States
	{
	Spawn:
		BTRP C 0
		BTRP C 0 A_PlaySound("BearTrap/Set")
		BTRP C 0 A_JumpIfInTargetInventory("IsSurvivalist",1,4)
		BTRP C 0 A_CheckSight("Vanish")
		BTRP CB 3
		BTRP A 8
		BTRP A 21
		BTRP A 1050 A_ChangeFlag("NOCLIP", 0)
		BTRP AAAAAAAAAA 7 A_Fadeout(0.1)
		Stop
	Death:
		BTRP B 3
		BTRP C 0 A_PlaySound("BearTrap/Snap")
		BTRP CCCCCCCCCC 7 A_Fadeout(0.1) //A_PlaySound("BearTrap/Snap")
		Stop
	Vanish:
		TNT1 A 0
		Stop
	}
}

Actor SpikeTrapSkill : WoC_Skill {}

Actor SpikeTrapItemLayer : CustomInventory
{
	Inventory.MaxAmount 0
	+INVENTORY.AUTOACTIVATE
	Inventory.Icon "TNT1A0"
	States
	{
	Use:
		TNT1 A 0 A_JumpIfInventory("IsSurvivalist", 1, "Survivalist")
		TNT1 A 0 A_SpawnItemEx("SpikeTrapObject", cos(-pitch)*96, 0, 0)
		Stop
	Survivalist:
		TNT1 A 0 A_FireCustomMissile("SpikeTrapObjectLaunch", 0, 0, 0, 5)
		Stop
	}
}

ACTOR SpikeTrapObjectLaunch
{
	Speed 28
	Radius 8
	Height 10
	Projectile
	+MTHRUSPECIES +NODAMAGETHRUST +DONTBLAST
	-NOGRAVITY
	Renderstyle Add
	States
	{
	Spawn:
		SLAU AAAAAA 0 A_SpawnItemEx("SpikeTrapObjectLaunchFX",0,0,0,frandom(-2,2),frandom(-2,2),frandom(-2,2),frandom(1,360))
		SLAU A 1
		Loop
	Death:
		TNT1 A 1 A_SpawnItemEx("SpikeTrapObject")
		Stop
	}
}

Actor SpikeTrapObjectLaunchFX : BearTrapObjectLaunchFX
{
	States
	{
	Spawn:
		SLAU A 1 Bright A_FadeOut
		Wait
	}
}

Actor SpikeTrapObject
{
	Damage (0)
	Damagetype "Physical"
	PROJECTILE
	+FLOORHUGGER
	+MTHRUSPECIES +NODAMAGETHRUST +DONTBLAST
	+DONTSPLASH
	+DONTREFLECT
	Height 8
	Radius 6
	-NOBLOCKMAP
	+BLOODSPLATTER
	+WINDTHRUST
   +THRUGHOST
   +NOCLIP
	+HITTRACER
	+FORCERADIUSDMG
	Renderstyle Translucent
	Alpha 0.2
	States
	{
	Spawn:
	    STRP C 0
		STRP C 0 A_PlaySound("KoraxStep")
		STRP C 0 A_JumpIfInTargetInventory("IsSurvivalist",1,4)
		STRP C 0 A_CheckSight("Vanish")
		STRP C 7 A_SetTranslucent(0.2,0)
		STRP C 7 A_SetTranslucent(0.4,0)
		STRP C 7 A_SetTranslucent(0.6,0)
		STRP C 7 A_SetTranslucent(0.8,0)
		STRP C 7 A_SetTranslucent(1.0,0)
		STRP C 700 A_ChangeFlag("NOCLIP", 0)
		STRP CCCCCCCCCC 7 A_FadeOut(0.1)
		Stop
	Death:
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_JumpIfInTargetInventory("SpikeTrapSkill", 4, 2)
		STRP D 0 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 75, AGILITY, ABIL_SPIKETRAP, WOCTARGET),28,0,0,28)
		Stop
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",30,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",-30,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",0,30,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",0,-30,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",30,30,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",-30,30,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",30,-30,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",-30,-30,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_JumpIfInTargetInventory("SpikeTrapSkill", 7, 2)
		STRP D 0 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 75, AGILITY, ABIL_SPIKETRAP, WOCTARGET),58,0,0,58)
		Stop
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",60,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",-60,0,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",0,60,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",0,-60,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",60,60,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",-60,60,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",60,-60,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_SpawnItemEx("SpikeTrapThruster",-60,-60,0,0,0,0,0,SXF_NOCHECKPOSITION)
		STRP D 0 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 75, AGILITY, ABIL_SPIKETRAP, WOCTARGET),88,0,0,88)
		Stop
	Vanish:
		TNT1 D 0
		Stop
	}
}

Actor SpikeTrapThruster
{
	Height 64
	+NODAMAGETHRUST +DONTBLAST
	PROJECTILE
	+RIPPER
	-NOBLOCKMAP
	+SOLID
	+DONTSPLASH
	Radius 20
	Damage (0)
	+BLOODLESSIMPACT
	+THRUSPECIES
	Species "Player"
	+FORCEPAIN
	+FORCERADIUSDMG
	States
	{
	Spawn:
		SPKD D 0
		SPKD D 0
		SPKD D 0 A_PlaySound("ThrustSpikeRaise")
		SPKD ABCDEFGHI 2
	FROZENINPLAcE:
		SPKD I 0 A_JumpIfInventory("SpikeTrapTimer", 175+35*ACS_ExecuteWithResult(WOC_DECORATE,HUNTERSKILLS,ABIL_SPIKETRAP,WOCTARGET), "Bai")
		SPKD I 0 A_GiveInventory("SpikeTrapTimer", 1)
		SPKD I 1 A_Explode(0,28,0,0,28)
		Loop
	BAI:
		SPKD D 0 A_PlaySound("ThrustSpikeLower")
		SPKD IHGFEDCBA 2
		Stop
	}
}

Actor SpikeTrapTimer : Inventory
{
	Inventory.MaxAmount 525
}

Actor NoxiousTrapItemLayer : CustomInventory
{
	Inventory.MaxAmount 0
	+INVENTORY.AUTOACTIVATE
	Inventory.Icon "TNT1A0"
	States
	{
	Use:
		TNT1 A 0 A_JumpIfInventory("IsSurvivalist", 1, "Survivalist")
		TNT1 A 0 A_SpawnItemEx("NoxiousTrapObject", cos(-pitch)*96, 0, 0)
		Stop
	Survivalist:
		TNT1 A 0 A_FireCustomMissile("NoxiousTrapObjectLaunch", 0, 0, 0, 5)
		Stop
	}
}

ACTOR NoxiousTrapObjectLaunch
{
	Speed 28
	Radius 10
	Height 10
	Projectile
	+MTHRUSPECIES +NODAMAGETHRUST +DONTBLAST
	-NOGRAVITY
	Renderstyle Add
	States
	{
	Spawn:
		NLAU AAAAAA 0 A_SpawnItemEx("NoxiousTrapObjectLaunchFX",0,0,0,frandom(-2,2),frandom(-2,2),frandom(-2,2),frandom(1,360))
		NLAU A 1
		Loop
	Death:
		TNT1 A 1 A_SpawnItemEx("NoxiousTrapObject")
		Stop
	}
}

Actor NoxiousTrapObjectLaunchFX : BearTrapObjectLaunchFX
{
	States
	{
	Spawn:
		NLAU A 1 Bright A_FadeOut
		Wait
	}
}

Actor NoxiousTrapObject
{
	Damage (1)
	Radius 10
	PROJECTILE
	+FLOORHUGGER
	+MTHRUSPECIES +NODAMAGETHRUST +DONTBLAST
	+NOCLIP
	+DONTSPLASH
	+DONTREFLECT
	+HITTRACER
	Renderstyle Translucent
	ALpha 0
	Damagetype "Poison"
	//SeeSound "world/sludgegloop"
	//DeathSound "PoisonShroomDeath"
	States
	{
	Spawn:
	    NTRP A 0
		NTRP A 0 A_PlaySound("SludgeGloop")
		NTRP A 0 A_JumpIfInTargetInventory("IsSurvivalist",1,4)
		NTRP A 0 A_CheckSight("Vanish")
		NTRP A 7 A_SetTranslucent(0.2,0)
		NTRP A 7 A_SetTranslucent(0.4,0)
		NTRP A 7 A_SetTranslucent(0.6,0)
		NTRP A 7 A_SetTranslucent(0.8,0)
		NTRP A 7 A_SetTranslucent(1.0,0)
		NTRP A 1050 A_ChangeFlag("NOCLIP", 0)
		NTRP AAAAAAAAAA 7 A_FadeOut(0.1)
		Stop
	Death:
		NTRP A 3 A_PlaySound("PoisonShroomDeath")
		NTRP CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 0 A_SpawnItemEx("NoxiousTrapCloud",0,0,frandom(100,600)/100.0, frandom(-2000,2000)/100.0, frandom(-2000,2000)/100.0, frandom(0,800)/100.0,0, SXF_NOCHECKPOSITION)
		Stop
	Vanish:
		TNT1 A 0
		Stop
	}
}

Actor NoxiousTrapCloud
{
	Radius 16
	Height 24
	Mass 0x7fffffff
	+NOBLOCKMAP
	+NOGRAVITY
	+DROPOFF
	+NODAMAGETHRUST +DONTBLAST
	+DONTSPLASH
	+CANBLAST
	+DOOMBOUNCE
	+BLOODLESSIMPACT
	//+MISSILE
	+RIPPER
	+NOEXPLODEFLOOR
	+SKYEXPLODE
	BOUNCEFACTOR 0
	WALLBOUNCEFACTOR 0
	+BLOODLESSIMPACT
	+FORCERADIUSDMG
	PoisonDamage 1000000
	RenderStyle Add
	Alpha 0.6
	Scale 0.8
	DeathSound "PoisonShroomDeath"
	DamageType PoisonCloud
	States
	{
	Spawn:
		PSBG EEEEEFFFFFGGGGGHHHHHIIIII 1 A_ScaleVelocity(0.9)
		PSBG A 0 A_ScaleVelocity(0.0)
		PSBG A 0 A_Jump(256,"State1", "State2", "State3", "State4", "State5")
		Goto Death
	State1:
		PSBG EEEEEEEEEEEEEEEEEEEEEEEEEEEE 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		PSBG EEEEEEEEEEEEEEEEEEEEEEEEEEEE 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		PSBG EEEEEEEEEEEEEEEEEEEEEEEEEEEE 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		Goto Death
	State2:
		PSBG FFFFFFFFFFFFFFFFFFFFFFFFFFFF 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		PSBG FFFFFFFFFFFFFFFFFFFFFFFFFFFF 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		PSBG FFFFFFFFFFFFFFFFFFFFFFFFFFFF 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		Goto Death
	State3:
		PSBG GGGGGGGGGGGGGGGGGGGGGGGGGGGG 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		PSBG GGGGGGGGGGGGGGGGGGGGGGGGGGGG 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		PSBG GGGGGGGGGGGGGGGGGGGGGGGGGGGG 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		Goto Death
	State4:
		PSBG HHHHHHHHHHHHHHHHHHHHHHHHHHHH 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		PSBG HHHHHHHHHHHHHHHHHHHHHHHHHHHH 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		PSBG HHHHHHHHHHHHHHHHHHHHHHHHHHHH 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		Goto Death
	State5:
		PSBG IIIIIIIIIIIIIIIIIIIIIIIIIIII 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		PSBG IIIIIIIIIIIIIIIIIIIIIIIIIIII 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		PSBG IIIIIIIIIIIIIIIIIIIIIIIIIIII 4 A_Explode(ACS_NamedExecuteWithResult("WOC Player Scale", 2, AGILITY, ABIL_NOXIOUSTRAP, WOCTARGET),40,0)
		Goto Death
	Death:
    	PSBG HG 7
    	PSBG FD 6
    	Stop
	}
}

Actor NoxiousTrapSkill : WoC_Skill {}

Actor FireArrowSkill : WoC_Skill {}

Actor IceArrowSkill : WoC_Skill {}

Actor LightningArrow : WoC_Skill {}

Actor MarksmanFocusCounter : WoC_Undroppable { Inventory.MaxAmount 5 }

Actor MarksmanFocusCheck : Custominventory
{
	Inventory.MaxAmount 0
	+Inventory.AUTOACTIVATE
	states
	{
	Use:
		TNT1 A 0 A_JumpIfInventory("IsMarksman", 1, 1)
		Stop
		TNT1 A 0 A_JumpIfInventory("MarksmanFocusCounter",5,"Focus5")
		TNT1 A 0 A_JumpIfInventory("MarksmanFocusCounter",4,"Focus4")
		TNT1 A 0 A_JumpIfInventory("MarksmanFocusCounter",3,"Focus3")
		TNT1 A 0 A_JumpIfInventory("MarksmanFocusCounter",2,"Focus2")
		TNT1 A 0 A_JumpIfInventory("MarksmanFocusCounter",1,"Focus1")
		Goto ClearFocus
	ClearFocus:
		TNT1 A 0 A_TakeInventory("PowerMarksmanFocusTracker5",1)
		TNT1 A 0 A_TakeInventory("PowerMarksmanFocusTracker4",1)
		TNT1 A 0 A_TakeInventory("PowerMarksmanFocusTracker3",1)
		TNT1 A 0 A_TakeInventory("PowerMarksmanFocusTracker2",1)
		TNT1 A 0 A_TakeInventory("PowerMarksmanFocusTracker1",1)
		TNT1 A 0 A_GiveInventory("MarksmanFocusTracker0",1)
		TNT1 A 0 A_TakeInventory("MarksmanFocusCounter",5)
		Stop
	Focus1:
		TNT1 A 0 A_GiveInventory("MarksmanFocus1",1)
		Goto ClearFocus
	Focus2:
		TNT1 A 0 A_GiveInventory("MarksmanFocus2",1)
		Goto ClearFocus
	Focus3:
		TNT1 A 0 A_GiveInventory("MarksmanFocus3",1)
		Goto ClearFocus
	Focus4:
		TNT1 A 0 A_GiveInventory("MarksmanFocus4",1)
		Goto ClearFocus
	Focus5:
		TNT1 A 0 A_GiveInventory("MarksmanFocus5",1)
		Goto ClearFocus
	}
}

Actor MarksmanFocus1 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration 35
	Powerup.Type MarksmanFocus1
}

Actor MarksmanFocus2 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration 35
	Powerup.Type MarksmanFocus2
}

Actor MarksmanFocus3 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration 35
	Powerup.Type MarksmanFocus3
}

Actor MarksmanFocus4 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration 35
	Powerup.Type MarksmanFocus4
}

Actor MarksmanFocus5 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration 35
	Powerup.Type MarksmanFocus5
}

Actor PowerMarksmanFocus1 : PowerDamage
{
	DamageFactor "Normal", 1.1
	Powerup.Duration 35
}

Actor PowerMarksmanFocus2 : PowerDamage
{
	DamageFactor "Normal", 1.2
	Powerup.Duration 35
}

Actor PowerMarksmanFocus3 : PowerDamage
{
	DamageFactor "Normal", 1.3
	Powerup.Duration 35
}

Actor PowerMarksmanFocus4 : PowerDamage
{
	DamageFactor "Normal", 1.4
	Powerup.Duration 35
}

Actor PowerMarksmanFocus5 : PowerDamage
{
	DamageFactor "Normal", 1.5
	Powerup.Duration 35
}

Actor PowerZoomLevel1 : PowerDamage
{
	DamageFactor "Normal", 1.25
	Powerup.Duration 0x7FFFFFFD
	Inventory.Icon "ZOM1ICON"
}

Actor PowerZoomLevel2 : PowerDamage
{
	DamageFactor "Normal", 1.5
	Powerup.Duration 0x7FFFFFFD
	Inventory.Icon "ZOM2ICON"
}

Actor ZoomCounter : WoC_Undroppable { Inventory.MaxAmount 2 }

Actor PowerIsZoom : Powerup
{
	Powerup.Duration 10
}

Actor MarksmanFocusTracker1 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration 0x7FFFFFFD
	Powerup.Type MarksmanFocusTracker1
}

Actor MarksmanFocusTracker2 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration 0x7FFFFFFD
	Powerup.Type MarksmanFocusTracker2
}

Actor MarksmanFocusTracker3 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration 0x7FFFFFFD
	Powerup.Type MarksmanFocusTracker3
}

Actor MarksmanFocusTracker4 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration 0x7FFFFFFD
	Powerup.Type MarksmanFocusTracker4
}

Actor MarksmanFocusTracker5 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration 0x7FFFFFFD
	Powerup.Type MarksmanFocusTracker5
}

Actor PowerMarksmanFocusTracker1 : Powerup
{
	Powerup.Duration 0x7FFFFFFD
	Inventory.Icon "FOC1ICON"
}

Actor PowerMarksmanFocusTracker2 : Powerup
{
	Powerup.Duration 0x7FFFFFFD
	Inventory.Icon "FOC2ICON"
}

Actor PowerMarksmanFocusTracker3 : Powerup
{
	Powerup.Duration 0x7FFFFFFD
	Inventory.Icon "FOC3ICON"
}

Actor PowerMarksmanFocusTracker4 : Powerup
{
	Powerup.Duration 0x7FFFFFFD
	Inventory.Icon "FOC4ICON"
}

Actor PowerMarksmanFocusTracker5 : Powerup
{
	Powerup.Duration 0x7FFFFFFD
	Inventory.Icon "FOC5ICON"
}

Actor MarksmanFocusTracker0 : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Duration 35
	Powerup.Type MarksmanFocusTracker0
}

Actor PowerMarksmanFocusTracker0 : Powerup
{
	Powerup.Duration 35
}

Actor SkirmisherSpeed : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Type SkirmisherSpeed
}

Actor PowerSkirmisherSpeed : PowerSpeed
{
	Speed 1.5
	Powerup.Duration 10
	Inventory.Icon "TNT1A0"
}

Actor SkirmisherDamage : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Type SkirmisherDamage
	Powerup.Duration -500000000
	-INVBAR
}

Actor PowerSkirmisherDamage : PowerDamage
{
	Powerup.Duration -500000000
	DamageFactor "Normal", 1
	Inventory.Icon "DDNCICON"
}

Actor SurvivalistDamage : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Type SurvivalistDamage
}

Actor PowerSurvivalistDamage : PowerProtection
{
	DamageFactor "Normal", 1.25
	Powerup.Duration -5
}

Actor SurvivalistSalve : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Type SurvivalistSalve
	Powerup.Duration -30
	-INVBAR
}

Actor PowerSurvivalistSalve : PowerProtection
{
	Powerup.Duration -30
	DamageFactor "PoisonTime", 0
	DamageFactor "Poison", 0.75
	Inventory.Icon "PSLVICON"
}

Actor WolfCompanion : WoC_Skill {}
Actor WolfCompanionCheck : WoC_Undroppable { Inventory.MaxAmount 2 }

Actor WolfCompanionTracker : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Type WolfCompanionTracker
	Powerup.Duration 0x7FFFFFFD
}

Actor PowerWolfCompanionTracker : Powerup
{
	Powerup.Duration 0x7FFFFFFD
	Inventory.Icon "WOLFICON"
}

Actor UseWolfCompanion : CustomInventory
{
	Inventory.MaxAmount 0
	+Inventory.AUTOACTIVATE
	states
	{
	Use:
		TNT1 A 0 A_JumpIfInventory("WolfCompanion",7,"WolfCompanion7")
		TNT1 A 0 A_SpawnItemEx("WolfCompanionSummon", 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, SXF_NOCHECKPOSITION, 0, PET4TID+ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM))
		Stop
	WolfCompanion7:
		TNT1 A 0 A_SpawnItemEx("WolfCompanionSummon7", 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, SXF_NOCHECKPOSITION, 0, PET4TID+ACS_ExecuteWithResult(WOC_DECORATE,STATS,PLAYERNUM))
		Stop
	}
}

Actor WolfCompanionSummon : WoC_FriendlyMon
{
	Health 500
	Speed 15
	PainChance 32
	MeleeRange 64
	Radius 16
	Height 36
	Mass 100
	Scale 1.1
	Monster
	+FLOORCLIP
	Species "Player"
	+THRUSPECIES
	+QUICKTORETALIATE
	-COUNTKILL
	-ACTIVATEMCROSS
	-NOTELEPORT
	+NOBLOCKMONST
	+NOICEDEATH
	+NEVERRESPAWN
	+NEVERFAST
	+DONTHARMSPECIES
	+DONTBLAST
	RadiusDamageFactor 0.25
	ActiveSound "dog/active"
	//AttackSound "dog/attack"
	DeathSound "dog/death"
	PainSound "dog/pain"
	SeeSound "dog/sight"
	Obituary "$OB_DOG"
	States
	{
	Spawn:
		WOLF A 0
		WOLF A 0 A_PlaySound("dog/sight")
		WOLF A 0 ACS_ExecuteAlways(WOC_MINIONREGEN)
		WOLF A 0 ACS_ExecuteAlways(900,0,Height)
	Idle: 
		WOLF AB 10 A_Look
		Goto See
	Giveup:
		WOLF A 0 A_ClearTarget
		Goto See
	See: 
		WOLF A 0 A_JumpIfTargetinLOS(2, 140)
		WOLF A 0 A_Jump(50, "Giveup")
		WOLF AABBCCDD 2 A_Chase
		Loop
	Melee:
		WOLF E 0 A_SpawnItemEx("PetAlert")
		WOLF EF 5 A_FaceTarget
		WOLF F 0 A_JumpIfInventory("IsSurvivalist",1,2)
		WOLF F 0 A_Jump(256,2)
		WOLF F 0 A_JumpIfTargetInsideMeleeRange(2)
		WOLF G 7 A_CustomMeleeAttack(ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(35,55), CHARISMA, ABIL_WOLFCOMPANION, ACTIVATOR),"dog/attack","dog/attack")
		Goto See
		WOLF F 0 A_GiveToTarget("SurvivalistDamage",1)
		WOLF G 7 A_CustomMeleeAttack(ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(35,55), CHARISMA, ABIL_WOLFCOMPANION, ACTIVATOR),"dog/attack","dog/attack")
		Goto See
	Missile:
		WOLF A 0 A_JumpIfInventory("WolfCompanion", 4, 2)
		WOLF A 0 A_Jump(256, "See")
		WOLF A 0 A_SpawnItemEx("PetAlert")
		WOLF A 0 A_CheckFloor(2)
		WOLF A 0 A_Jump(256, "See")
		WOLF A 0 A_JumpIfCloser(450, "WolfCharge")
		WOLF A 0 A_Jump(256, "See")
		Goto See
	WolfCharge:
		WOLF E 3 A_FaceTarget
		WOLF A 0 A_SkullAttack
		WOLF A 0 A_PlaySound("dog/attack")
		WOLF FFFAA 4
		WOLF A 0 A_Gravity
		WOLF A 0 A_Stop
		Goto See
	Pain:
		WOLF H 2
		WOLF H 2 A_Pain
		Goto See
	Death:
		WOLF I 8
		WOLF J 8 A_Scream
		WOLF K 4
		WOLF L 4 A_Fall
		WOLF M 4
		WOLF N 300
		WOLF NNNNNNNNNN 2 A_FadeOut(0.1)
		Stop
	}
}

Actor WolfCompanionSummon7 : WolfCompanionSummon
{
	Scale 1.2
	Height 40
	Radius 16
	MeleeRange 72
	States
	{
	Melee:
		WOLF E 0 A_SpawnItemEx("PetAlert")
		WOLF EF 5 A_FaceTarget
		WOLF F 0 A_JumpIfInventory("IsSurvivalist",1,2)
		WOLF F 0 A_Jump(256,2)
		WOLF F 0 A_JumpIfTargetInsideMeleeRange(2)
		WOLF G 6 A_CustomMeleeAttack(ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(35,55), CHARISMA, ABIL_WOLFCOMPANION, ACTIVATOR),"dog/attack","dog/attack")
		Goto See
		WOLF F 0 A_GiveToTarget("SurvivalistDamage",1)
		WOLF G 6 A_CustomMeleeAttack(ACS_NamedExecuteWithResult("WOC Player Scale", FRandom(35,55), CHARISMA, ABIL_WOLFCOMPANION, ACTIVATOR),"dog/attack","dog/attack")
		Goto See
	}
}