#include "Blood.txt"
#include "Puzzles.txt"
#include "ABILS"
#include "MONSTERS.txt"
#include "ALCHEMY"
#include "FLASKDEC"
#include "REAGENTS"
#include "MODITEMS"
#include "WEAPONS"
#include "Compat/Viscerus.txt"
#include "DOOMMONS.txt"
#include "Compat/Skulltag.txt"
#include "Compat/SkulltagR.txt"


actor Telefog replaces TeleportFog {
	+CLIENTSIDEONLY
	+NOGRAVITY
	+NOINTERACTION
	+DONTSPLASH
	states {
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_PlaySound ("misc/teleport")
		TNT1 A 0 A_SpawnItemEx ("TelefogFlare", -2,0,16,0,0,0,0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_SpawnItemEx ("TelefogFX2", -2,0,16,0,0,0,0, SXF_NOCHECKPOSITION)
		TNT1 AAAAAAAAAAAAAA 0 A_CustomMissile ("TelefogSpark", -2, 0, random(-180,180), 2, random (8, 32))
		TNT1 AAAA 0 A_SpawnItemEx ("TelefogFX", random(-16,16),random(-16,16),16, 0,0,random(2,5),0, SXF_NOCHECKPOSITION)
		TNT1 A 2
		TNT1 AAAA 0 A_SpawnItemEx ("TelefogFX", random(-16,16),random(-16,16),16, 0,0,random(2,5),0, SXF_NOCHECKPOSITION)
		TNT1 A 2
		TNT1 AAAA 0 A_SpawnItemEx ("TelefogFX", random(-16,16),random(-16,16),16, 0,0,random(2,5),0, SXF_NOCHECKPOSITION)
		TNT1 A 2
		TNT1 AAAA 0 A_SpawnItemEx ("TelefogFX", random(-16,16),random(-16,16),16, 0,0,random(2,5) ,0, SXF_NOCHECKPOSITION)
		TNT1 A 2
		stop
	}
}

actor TelefogFX {
	+CLIENTSIDEONLY
	+NOGRAVITY
	+NOINTERACTION
	+DONTSPLASH
	+FORCEXYBILLBOARD
	renderstyle add
	alpha 0.6
	scale 0.5
	states {
	Spawn:
		PLFX ABABCDEFGHIJ 5 BRIGHT A_FadeOut (0.075)
		stop
	}
}

actor TelefogFX2 : TelefogFX {scale 1.25}

actor TelefogFlare {
	+CLIENTSIDEONLY
	+NOGRAVITY
	+NOINTERACTION
	+DONTSPLASH
	+FORCEXYBILLBOARD
	renderstyle add
	alpha 0.75
	scale 1.75
	states {
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump (256, "Spawn1", "Spawn2", "Spawn3", "Spawn4", "Spawn5", "Spawn6")
	Spawn1:
		SPKG A 2 A_FadeOut
		wait
	Spawn2:
		SPKG B 2 A_FadeOut
		wait
	Spawn3:
		SPKG C 2 A_FadeOut
		wait
	Spawn4:
		SPKG D 2 A_FadeOut
		wait
	Spawn5:
		SPKG E 2 A_FadeOut
		wait
	Spawn6:
		SPKG F 2 A_FadeOut
		wait
	}
}

actor TelefogSpark 
{
	PROJECTILE
	+CLIENTSIDEONLY
	+FORCEXYBILLBOARD
	+NOCLIP
	-NOGRAVITY
	+DONTSPLASH
	radius 8 
	height 8 
	speed 8
	renderstyle add
	alpha 0.6
	scale 0.05
	states {
	Spawn:
		TNT1 A 0
		TNT1 A 0 ThrustThingZ (0, random(15,40), 0, 0)
		TNT1 A 0 A_Jump (43, "Spawn2")
		TNT1 A 0 A_Jump (64, "Spawn3")
		TNT1 A 0 A_Jump (85, "Spawn4")
		TNT1 A 0 A_Jump (106, "Spawn5")
		TNT1 A 0 A_Jump (128, "Spawn6")
		SPKG A 10
		goto Death
	Spawn2:
		SPKG B 10
		goto Death
	Spawn3:
		SPKG C 10
		goto Death
	Spawn4:
		SPKG D 10
		goto Death
	Spawn5:
		SPKG E 10
		goto Death
	Spawn6:
		SPKG F 10
		goto Death
	Death:
		"----" AAAAAAAA 1 A_FadeOut (0.05)
		stop
	}
}

Actor NewItemFogFX : ItemFog Replaces PickupFlash
{
	+NOGRAVITY
	+NOCLIP
	+NOINTERACTION
	+CLIENTSIDEONLY
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemex("NewItemFog",0,0,32) //Fixes the spawn height
		TNT1 A 32
		Stop
	}
}

Actor NewItemFogFX2 : NewItemFogFX replaces ItemFog {}

Actor NewItemFog
{
	+NOGRAVITY
	+NOCLIP
	+FORCEXYBILLBOARD
	+NOINTERACTION
	+CLIENTSIDEONLY
	Renderstyle Add
	Scale 0.2
	States
	{
	Spawn:
		TNT1 A 0
		TFG2 ABCDEFGHIJKLMNOPQRST 1 BRIGHT
		Stop
	}
}

Actor MeshArmorSpot : RandomSpawner replaces MeshArmor
{
	Game Hexen
	Spawnid 68
	Dropitem "Armour1"
	DropItem "Armour2"
	DropItem "Armour3"
	DropItem "Armour4"
	DropItem "Armour5"
	DropItem "Armour6"
	DropItem "Armour7"
	DropItem "Armour8"
}

Actor FalconShieldSpot : RandomSpawner replaces FalconShield
{
	Game Hexen
	Spawnid 69
	Dropitem "Armour1"
	DropItem "Armour2"
	DropItem "Armour3"
	DropItem "Armour4"
	DropItem "Armour5"
	DropItem "Armour6"
	DropItem "Armour7"
	DropItem "Armour8"
}

Actor PlatinumHelmetSpot : RandomSpawner replaces PlatinumHelm
{
	Game Hexen
	Spawnid 70
	Dropitem "Armour1"
	DropItem "Armour2"
	DropItem "Armour3"
	DropItem "Armour4"
	DropItem "Armour5"
	DropItem "Armour6"
	DropItem "Armour7"
	DropItem "Armour8"
}

Actor AmuletOfWardingSpot : RandomSpawner replaces AmuletOfWarding
{
	Game Hexen
	Spawnid 71
	Dropitem "Armour1"
	DropItem "Armour2"
	DropItem "Armour3"
	DropItem "Armour4"
	DropItem "Armour5"
	DropItem "Armour6"
	DropItem "Armour7"
	DropItem "Armour8"
}

Actor ArtiBoostArmorSpot : RandomSpawner replaces ArtiBoostArmor
{
	Game Hexen
	Spawnid 22
	Dropitem "Armour1"
	DropItem "Armour2"
	DropItem "Armour3"
	DropItem "Armour4"
	DropItem "Armour5"
	DropItem "Armour6"
	DropItem "Armour7"
	DropItem "Armour8"
}

ACTOR Armour1 : CustomInventory
{ 
		+FLOATBOB
		+AUTOACTIVATE
		Inventory.MaxAmount 0
		Inventory.PickupMessage "Mesh Armor"
		Inventory.PickupSound "pickup/armor"
		States 
		{ 
		Spawn: 
      		AMR1 A -1 
      		Stop
   		Failz:
			AMR3 A 0
			Fail
		FighterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 850, "Failz")
			Goto GetArmor
		ClericArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 750, "Failz")
			Goto GetArmor
		MageArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 650, "Failz")
			Goto GetArmor
		HunterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 700, "Failz")
			Goto GetArmor
		Pickup:
			AMR3 A 0 A_JumpIfInventory("ImaFighter", 1, "FighterArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaCleric", 1, "ClericArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaMage", 1, "MageArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaHunter", 1, "HunterArmorTest")
		GetArmor: 
			AMR1 A 0 ACS_ExecuteAlways (915, 0, 1)
      		Stop 
   		} 
}

ACTOR Armour2 : CustomInventory
{ 
		+FLOATBOB
		+AUTOACTIVATE
		Inventory.MaxAmount 0
		Inventory.PickupMessage "Falcon Shield"
		Inventory.PickupSound "pickup/armor"
		States 
		{ 
		Spawn: 
      		AMR2 A -1 
      		Stop
   		Failz:
			AMR3 A 0
			Fail
		FighterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 850, "Failz")
			Goto GetArmor
		ClericArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 750, "Failz")
			Goto GetArmor
		MageArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 650, "Failz")
			Goto GetArmor
		HunterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 700, "Failz")
			Goto GetArmor
		Pickup:
			AMR3 A 0 A_JumpIfInventory("ImaFighter", 1, "FighterArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaCleric", 1, "ClericArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaMage", 1, "MageArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaHunter", 1, "HunterArmorTest")
		GetArmor: 
			AMR2 A 0 ACS_ExecuteAlways (915, 0, 2)
      		Stop 
   		} 
}

ACTOR Armour3 : CustomInventory
{ 
		+FLOATBOB
		+AUTOACTIVATE
		Inventory.MaxAmount 0
		Inventory.PickupMessage "Platinum Helmet"
		Inventory.PickupSound "pickup/armor"
		States 
		{ 
		Spawn: 
			AMR3 A -1 
			Stop
		Failz:
			AMR3 A 0
			Fail
		FighterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 850, "Failz")
			Goto GetArmor
		ClericArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 750, "Failz")
			Goto GetArmor
		MageArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 650, "Failz")
			Goto GetArmor
		HunterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 700, "Failz")
			Goto GetArmor
		Pickup:
			AMR3 A 0 A_JumpIfInventory("ImaFighter", 1, "FighterArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaCleric", 1, "ClericArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaMage", 1, "MageArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaHunter", 1, "HunterArmorTest")
		GetArmor: 
			AMR3 A 0 ACS_ExecuteAlways (915, 0, 3)
			Stop 
		} 
}

ACTOR Armour4 : CustomInventory
{ 
		+FLOATBOB
		+AUTOACTIVATE
		Inventory.MaxAmount 0
		Inventory.PickupMessage "Amulet of Warding"
		Inventory.PickupSound "pickup/armor"
		States 
		{ 
		Spawn: 
			AMR4 A -1 
			Stop
		Failz:
			AMR3 A 0
			Fail
		FighterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 850, "Failz")
			Goto GetArmor
		ClericArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 750, "Failz")
			Goto GetArmor
		MageArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 650, "Failz")
			Goto GetArmor
		HunterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 700, "Failz")
			Goto GetArmor
		Pickup:
			AMR3 A 0 A_JumpIfInventory("ImaFighter", 1, "FighterArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaCleric", 1, "ClericArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaMage", 1, "MageArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaHunter", 1, "HunterArmorTest")
		GetArmor: 
			AMR4 A 0 ACS_ExecuteAlways (915, 0, 4)
			Stop
		} 
}

ACTOR Armour5 : CustomInventory
{ 
		+FLOATBOB
		+AUTOACTIVATE
		Inventory.MaxAmount 0
		Inventory.PickupMessage "Dragonskin Bracers"
		Inventory.PickupSound "pickup/armor"
		States 
		{ 
		Spawn: 
			AMR5 A -1 
			Stop
		Failz:
			AMR3 A 0
			Fail
		FighterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 850, "Failz")
			Goto GetArmor
		ClericArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 750, "Failz")
			Goto GetArmor
		MageArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 650, "Failz")
			Goto GetArmor
		HunterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 700, "Failz")
			Goto GetArmor
		Pickup:
			AMR3 A 0 A_JumpIfInventory("ImaFighter", 1, "FighterArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaCleric", 1, "ClericArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaMage", 1, "MageArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaHunter", 1, "HunterArmorTest")
		GetArmor:
			AMR5 A 0 ACS_ExecuteAlways (915, 0, 5)
			Stop 
		} 
}

ACTOR Armour6 : CustomInventory
{ 
		+FLOATBOB
		+AUTOACTIVATE
		Inventory.MaxAmount 0
		Inventory.PickupMessage "Elven Boots"
		Inventory.PickupSound "pickup/armor"
		States 
		{ 
		Spawn: 
			AMR6 A -1 
			Stop
		Failz:
			AMR3 A 0
			Fail
		FighterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 850, "Failz")
			Goto GetArmor
		ClericArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 750, "Failz")
			Goto GetArmor
		MageArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 650, "Failz")
			Goto GetArmor
		HunterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 700, "Failz")
			Goto GetArmor
		Pickup:
			AMR3 A 0 A_JumpIfInventory("ImaFighter", 1, "FighterArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaCleric", 1, "ClericArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaMage", 1, "MageArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaHunter", 1, "HunterArmorTest")
		GetArmor: 
			AMR3 A 0 ACS_ExecuteAlways (915, 0, 6)
			Stop 
		} 
}

ACTOR Armour7 : CustomInventory
{ 
		+FLOATBOB
		+AUTOACTIVATE
		Inventory.MaxAmount 0
		Inventory.PickupMessage "Leather Greaves"
		Inventory.PickupSound "pickup/armor"
		States 
		{ 
		Spawn: 
			AMR7 A -1 
			Stop
		Failz:
			AMR3 A 0
			Fail
		FighterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 850, "Failz")
			Goto GetArmor
		ClericArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 750, "Failz")
			Goto GetArmor
		MageArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 650, "Failz")
			Goto GetArmor
		HunterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 700, "Failz")
			Goto GetArmor
		Pickup:
			AMR3 A 0 A_JumpIfInventory("ImaFighter", 1, "FighterArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaCleric", 1, "ClericArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaMage", 1, "MageArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaHunter", 1, "HunterArmorTest")
		GetArmor:
			AMR3 A 0 ACS_ExecuteAlways (915, 0, 7)
			Stop 
		} 
}

ACTOR Armour8 : CustomInventory
{ 
		+FLOATBOB
		+AUTOACTIVATE
		Inventory.MaxAmount 0
		Inventory.PickupMessage "Ring of Protection"
		Inventory.PickupSound "pickup/armor"
		States 
		{ 
		Spawn: 
			AMR8 A -1 
			Stop
		Failz:
			AMR3 A 0
			Fail
		FighterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 850, "Failz")
			Goto GetArmor
		ClericArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 750, "Failz")
			Goto GetArmor
		MageArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 650, "Failz")
			Goto GetArmor
		HunterArmorTest:
			TNT1 A 0 A_JumpIfInventory("BasicArmor", 700, "Failz")
			Goto GetArmor
		Pickup:
			AMR3 A 0 A_JumpIfInventory("ImaFighter", 1, "FighterArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaCleric", 1, "ClericArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaMage", 1, "MageArmorTest")
			AMR3 A 0 A_JumpIfInventory("ImaHunter", 1, "HunterArmorTest")
		GetArmor:
			AMR3 A 0 ACS_ExecuteAlways (915, 0, 8)
			Stop
		} 
}

actor FighterArmorBonus : BasicArmorBonus //Fighter's Armor
{
  armor.maxsaveamount 850
  armor.savepercent 50
  armor.saveamount 1
  inventory.icon "AMR1A0"
  states
  {
  Spawn:
    TNT1 A 0
    loop
  }
}

actor ClericArmorBonus : BasicArmorBonus //Cleric's Armor
{
  armor.maxsaveamount 750
  armor.savepercent 50
  armor.saveamount 1
  inventory.icon "AMR2A0"
  states
  {
  Spawn:
    TNT1 A 0
    loop
  }
}

actor MageArmorBonus : BasicArmorBonus //Mage's Armor
{
  armor.maxsaveamount 650
  armor.savepercent 50
  armor.saveamount 1
  inventory.icon "AMR4A0"
  states
  {
  Spawn:
    TNT1 A 0
    loop
  }
}

actor HunterArmorBonus : BasicArmorBonus //Hunter's Armor
{
  armor.maxsaveamount 700
  armor.savepercent 50
  armor.saveamount 1
  inventory.icon "AMR7A0"
  states
  {
  Spawn:
    TNT1 A 0
    loop
  }
}

Actor Sparkle
{
Damage 0
PROJECTILE
+NOBLOOD
+PAINLESS
+BLOODLESSIMPACT
+RIPPER
+NOCLIP
-ACTIVATEPCROSS
+FORCEXYBILLBOARD
+CLIENTSIDEONLY
Renderstyle Add
Speed 0
Radius 6
Height 4
VSpeed 8
Scale 0.4
States
  {
  Spawn:
    PLSS ABABAB 4 bright //A_FadeOut(0.2)
  Death:
    TNT1 A 0
    stop
  }
}

Actor ArtiFlaskMaker : RandomSpawner replaces ArtiPoisonBag
{
	Dropitem "ArtiGreenFlask"
	DropItem "ArtiRedFlask"
	DropItem "ArtiYellowFlask"
}

Actor NewClipSpot : RandomSpawner replaces Clip
{
	Game Doom
	SpawnID 11
	Dropitem "NewMana1"
}

Actor NewClipBoxSpot : RandomSpawner replaces ClipBox
{
	Game Doom
	SpawnID 139
	Dropitem "NewMana3"
}

Actor NewShellSpot : RandomSpawner replaces Shell
{
	Game Doom
	SpawnID 12
	Dropitem "NewMana1"
}

Actor NewShellBoxSpot : RandomSpawner replaces ShellBox
{
	Game Doom
	SpawnID 143
	Dropitem "NewMana3"
}

Actor NewRocketAmmoSpot : RandomSpawner replaces RocketAmmo
{
	Game Doom
	SpawnID 140
	Dropitem "NewMana2"
}

Actor NewRocketBoxSpot : RandomSpawner replaces RocketBox
{
	Game Doom
	SpawnID 141
	Dropitem "NewMana3"
}

Actor NewCellSpot : RandomSpawner replaces Cell
{
	Game Doom
	SpawnID 75
	Dropitem "NewMana2"
}

Actor NewCellPackSpot : RandomSpawner replaces CellPack
{
	Game Doom
	SpawnID 142
	Dropitem "NewMana3"
}

Actor NewMana1 : Mana1 replaces Mana1
{
	Inventory.PickupSound "pickup/mana"
	States
	{
	Spawn:
		MAN1 ABCDEFGHI 4 Bright
		Loop
	}
}

Actor NewMana2 : Mana2 replaces Mana2
{
	Inventory.PickupSound "pickup/mana"
	States
	{
	Spawn:
		MAN2 ABCDEFGHIJKLMNOP 4 Bright
		Loop
	}
}

Actor NewMana3 : Mana3 replaces Mana3
{
	Inventory.PickupSound "pickup/mana"
}

Actor Rolling : Inventory
{
	Inventory.MaxAmount 6
}

Actor NewCStaffMissile : CStaffMissile replaces CStaffMissile
{
	Damage (Random(1,8)*5+(acs_executewithresult(556)-10))
	Damagetype "Poison"
	States
  {
  Spawn:
	CSSF D 0 Bright A_CustomMissile("CStaffTrail",0,0,0,0)
	CSSF D 1 Bright A_CStaffMissileSlither
	CSSF D 0 Bright A_CustomMissile("CStaffTrail",0,0,0,0)
	CSSF D 1 Bright A_CStaffMissileSlither
	CSSF E 0 Bright A_CustomMissile("CStaffTrail",0,0,0,0)
	CSSF E 1 Bright A_CStaffMissileSlither
	CSSF E 0 Bright A_CustomMissile("CStaffTrail",0,0,0,0)
	CSSF E 1 Bright A_CStaffMissileSlither
	Loop
    }
}

ACTOR CStaffTrail
{
+NOINTERACTION
+NOCLIP
+CLIENTSIDEONLY
PROJECTILE
RENDERSTYLE ADD
ALPHA 0.4
Scale 0.25
States
{
Spawn:
	TNT1 A 0 Bright
	SSFX CDEFGH 2 Bright
	Stop
}
}

Actor NewSorcFX1 : SorcFX1 replaces SorcFX1
{
	Renderstyle Add
	States
	{
	Death:
    FX13 I 2 Bright A_Explode(30+(ACS_ExecuteWithResult(912,5,0,0)), 128, 0)
    FX13 JKLM 2 Bright
    Stop
   }
}

Actor NewSorcFX4 : SorcFX4 replaces SorcFX4
{
	//Renderstyle Add
	States
	{
	Death:
    SBS4 D 2 Bright A_SetTranslucent(1,1)
    SBS4 E 2 Bright A_Explode(20+(ACS_ExecuteWithResult(912,3,0,0)), 128, 0)
    SBS4 FGH 2 Bright
    Stop
   }
}

Actor NewKorax : Korax replaces Korax
{
	Health 200000
	Damagefactor "PoisonCloud", 0.25
	DamageFactor "Deathblow", 0
	PainChance 0
	+NEVERRESPAWN
	+NOTARGET
	States
  {
  Spawn:
	KORX A 0
	KORX A 0 ACS_ExecuteAlways(913,0,200000,0,0)
  Idle:
    KORX A 5 A_Look
    Loop
}
}
//----------------------------MODIFIED CLASSES
Actor NewFighterPlayer : FighterPlayer Replaces FighterPlayer
{
	+NOICEDEATH
	+DONTBLAST
	//+GHOST
	Species "Player"
	Player.HexenArmor 0, 0, 0, 0, 0
	Player.DisplayName "Barbarian"
	Player.MaxHealth 9999
	Health 115
	Player.StartItem "CurrentMaxHealth", 115
	Player.StartItem "ImAFighter"
	Player.StartItem "SpikedGauntlets",1
	Player.StartItem "Level",1
	Player.StartItem "MP",22
	Player.StartItem "Rolling", 6
	Player.StartItem "Strength",15
	Player.StartItem "Agility",12
	Player.StartItem "Constitution",15
	Player.StartItem "Willpower",10
	Player.StartItem "Wisdom",5
	Player.StartItem "Intellect",5
	Player.ForwardMove 1.0,1.0
	Player.SideMove 1.0,1.0
	DamageFactor AcolyteHealing, 0
	//Damagefactor "Falling", 1000
	Damagefactor "Suicide", 1000
	Damagefactor "Telefrag", 1000
	States
  {
  Spawn:
	PLAY A 1 //ACS_ExecuteAlways(556,0,0,0,0)
	Loop
  See:
    PLAY ABCD 4
    Goto Spawn
  Missile:
  Melee:
    PLAY EF 8
    Goto Spawn
  Pain:
	PLAY G 0 A_JumpIfInventory("Concentration", 1, 2)
	PLAY G 0 A_Jump(256,4)
	PLAY G 0 A_Jump(200-(Acs_ExecuteWithResult(571)*10),3)
	PLAY G 0 A_GiveInventory("Mana1", Acs_ExecuteWithResult(571)*5)
    PLAY G 0 A_GiveInventory("Mana2", Acs_ExecuteWithResult(571)*5)
	PLAY G 4
    PLAY G 4 A_Pain
    Goto Spawn
  Pain.ManaDrain:
	PLAY G 0 A_TakeInventory("Mana1", 5)
  	PLAY G 0 A_TakeInventory("Mana2", 5)
    Goto Pain
  Death:
    PLAY H 6
    PLAY I 6 A_PlayerScream
    PLAY JK 6
    PLAY L 6 A_NoBlocking
    PLAY M 6
    PLAY N -1
    Stop
  XDeath:
	PLAY O 0 A_SpawnItem("GIBBER")
    PLAY O 5 A_PlayerScream
    PLAY P 5 //A_SkullPop
    PLAY R 5 A_NoBlocking
    PLAY STUV 5
    PLAY W -1
    Stop
  Ice:
  	stop
  Burn:
    FDTH A 5 BRIGHT A_PlaySound("*burndeath")
    FDTH B 4 BRIGHT
    FDTH G 5 BRIGHT
    FDTH H 4 BRIGHT A_PlayerScream
    FDTH I 5 BRIGHT
    FDTH J 4 BRIGHT
    FDTH K 5 BRIGHT
    FDTH L 4 BRIGHT
    FDTH M 5 BRIGHT
    FDTH N 4 BRIGHT
    FDTH O 5 BRIGHT
    FDTH P 4 BRIGHT
    FDTH Q 5 BRIGHT
    FDTH R 4 BRIGHT
    FDTH S 5 BRIGHT A_NoBlocking
    FDTH T 4 BRIGHT
    FDTH U 5 BRIGHT
    FDTH V 4 BRIGHT
    ACLO E 35 A_CheckPlayerDone
    Wait
    ACLO E 8
    Stop
	DeathBlow:
	"----" A 0 A_JumpIfInventory("DeathBlowing", 1, "Spawn")
	"----" A 0 A_JumpIfInventory("MP", 15, 1)
	Goto BlowRefund
	"----" A 0 A_TakeInventory("MP", 15)
	"----" A 0 A_AlertMonsters
  	"----" A 0 A_GiveInventory("DeathBlowing",1)
	Goto Spawn
	MightyBlow:
	"----" A 0 A_JumpIfInventory("MightyBlowing", 1, "Spawn")
	"----" A 0 A_JumpIfInventory("MP", 2+acs_executewithresult(516,11)/4, 1)
	Goto BlowRefund
	"----" A 0 A_TakeInventory("MP", 2+acs_executewithresult(516,11)/4)
	"----" A 0 A_AlertMonsters
  	"----" A 0 A_GiveInventory("MightyBlowing",1)
	Goto Spawn
	Stomp:
	"----" A 0 A_PlaySound("Fighter/Stomp")
	"----" A 0 A_AlertMonsters
	"----" A 0 ACS_ExecuteAlways(507,0,0,0,0)
	Goto Spawn
	BloodRush:
	"----" A 0 A_PlaySound("ability/BloodRush")
	"----" A 0 ACS_ExecuteAlways(512,0,0,0,0)
	Goto Spawn
	Deflection:
	"----" A 0 A_JumpIfInventory("PowerDeflectionIcon",1,"Spawn")
	"----" A 0 ACS_ExecuteAlways(513,0,0,0,0)
	Goto Spawn
	Warcry:
	"----" A 0 A_AlertMonsters
	"----" A 0 A_GiveInventory("UseWarCry")
	Goto Spawn
	HookShot:
	"----" A 0 A_AlertMonsters
	"----" A 0 A_GiveInventory("UseHookShot")
	Goto Spawn
	Beserk:
	"----" A 0 A_JumpIfInventory("Beserking",1,"Spawn")
	"----" A 0 A_GiveInventory("Powerbeserk")
	"----" A 0 ACS_ExecuteAlways(511,0,0,0,0)
	Goto Spawn
	Adrenaline:
	"----" A 0 A_JumpIfInventory("IHaveAdrenaline",1,"Spawn")
	"----" A 0 A_GiveInventory("IHaveAdrenaline")
	"----" A 0 ACS_ExecuteAlways(514,0,0,0,0)
	Goto Spawn
	Charge:
	"----" A 0 A_GiveInventory("Chargeing",1)
	"----" A 0 ACS_ExecuteAlways(558,0,0,0,0)
	Goto Spawn
	BlowRefund:
	"----" A 0 A_Print("Not Enough Magick!")
	Goto Spawn
  }

}
Actor NewClericPlayer : ClericPlayer Replaces ClericPlayer
{

	+NOICEDEATH
	+DONTBLAST
	//+GHOST
	Species "Player"
	Player.MaxHealth 9999
	Player.DisplayName "Crusader"
	Player.StartItem "CurrentMaxHealth", 100
	Health 100
	Player.HexenArmor 0, 0, 0, 0, 0
	Player.ForwardMove 1.0,1.0
	Player.SideMove 1.0,1.0
	Player.StartItem "ImACleric"
	Player.StartItem "MaceOfContrition",1
	Player.StartItem "Level",1
	Player.StartItem "MP",37
	Player.StartItem "Strength",12
	Player.StartItem "Agility",8
	Player.StartItem "Constitution",13
	Player.StartItem "Willpower",14
	Player.StartItem "Wisdom",8
	Player.StartItem "Intellect",7
	DamageFactor AcolyteHealing, 0
	//Damagefactor "Falling", 1000
	Damagefactor "Suicide", 1000
	Damagefactor "Telefrag", 1000
	states
	{
	Ice:
  	stop
	Pain.ManaDrain:
		CLER G 0 A_TakeInventory("Mana1", 5)
  		CLER G 0 A_TakeInventory("Mana2", 5)
    Goto Pain
	Pain:
		CLER H 0 A_JumpIfInventory("Retribution", random(1,10), 2)
		CLER H 0 A_Jump(256,2)
		CLER H 0 A_CustomMissile("RetributionBall")//A_TakeInventory("ClericArmorBonus", 1)
		CLER H 4
		CLER H 4 A_Pain
		Goto Spawn 
	See:
		CLER ABCD 4
		Goto Spawn
	XDeath:
		CLER R 0 A_SpawnItem("GIBBER")
		CLER R 5 A_PlayerScream
		CLER S 5
		CLER T 5 A_NoBlocking
		CLER UVWXYZ 5
		CLER [ -1
		Stop
	Curse:
		"----" A 0 A_GiveInventory("UseCurse",1)//A_CustomMissile("CurseMissile",20,0,0)//A_FireCustomMissile("CurseMissile")
		"----" A 0 A_AlertMonsters
		goto spawn
	HolyShield:
		"----" A 0 A_PlaySound("holyshield/start")
		"----" A 0 A_GiveInventory("UseHolyShield",1)
		goto spawn
	Consecration:
		"----" A 0 A_GiveInventory("ConsecrationTimer",1)
		"----" A 0 A_AlertMonsters
		"----" A 0 A_GiveInventory("UseConsecration",1)
		goto spawn
	PreserveranceAura:
		"----" A 0 A_TakeInventory("IHaveFury", 1)
		"----" A 0 A_TakeInventory("IHaveProtect", 1)
		"----" A 0 A_JumpIfInventory("IHavePreserverance",1,"PreserveranceAuraD")
		"----" A 0 A_GiveInventory("IHavePreserverance", 1)
		"----" A 0 A_Print("Preserverance Aura Activated")
		"----" A 0 ACS_ExecuteAlways(515,0,0,0,0)
		goto spawn
	PreserveranceAuraD:
		"----" A 0 A_TakeInventory("IHavePreserverance", 1)
		"----" A 0 A_Print("Preserverance Aura Deactivated")
		Goto Spawn
	ProtectAura:
		"----" A 0 A_TakeInventory("IHaveFury", 1)
		"----" A 0 A_TakeInventory("IHavePreserverance", 1)
		"----" A 0 A_JumpIfInventory("IHaveProtect",1,"ProtectAuraD")
		"----" A 0 A_GiveInventory("IHaveProtect", 1)
		"----" A 0 A_Print("Protect Aura Activated")
		"----" A 0 ACS_ExecuteAlways(508,0,0,0,0)
		goto spawn
	ProtectAuraD:
		"----" A 0 A_TakeInventory("IHaveProtect", 1)
		"----" A 0 A_Print("Protect Aura Deactivated")
		Goto Spawn
	Blessing:
		"----" A 0 Acs_executealways(503)
		"----" A 0 A_PlaySound("pickup/health")
		Goto spawn
	SummonAncestors:
		"----" A 0 A_GiveInventory("UseSummonAncestors",1)
		"----" A 0 A_AlertMonsters
		Goto spawn
	Sacrifice:
		"----" A 0 A_GiveInventory("Sacrificeing",20+(ACS_ExecuteWithResult(526,0,0,0)*3))
		"----" A 0 A_JumpIfHealthLower(50-ACS_ExecuteWithResult(526,0,0,0),"NoHealth")
		"----" A 0 ACS_ExecuteAlways(525,0,0,0,0)
		"----" A 0 //A_TakeInventory("MP",10)
		"----" A 0 A_GiveInventory("PowerSacrifice")
		"----" A 0 A_GiveInventory("SacrificeSplash")
		goto spawn
	FireCurse:
		"----" A 0 A_GiveInventory("UseFireCurse",1)
		"----" A 0 A_AlertMonsters
		goto spawn
	SummonLegend:
		"----" A 0 ACS_ExecuteAlways(530,0,0,0,0)//A_SpawnItem ("HolyLegend", 60, 40)
		"----" A 0 //A_TakeInventory("MP",20)
		goto spawn
	DivinePunishment:
		"----" A 0 A_GiveInventory("UseDivinePunishment",1)
		"----" A 0 A_AlertMonsters
		goto spawn
	FuryAura:
		"----" A 0 A_TakeInventory("IHaveProtect", 1)
		"----" A 0 A_TakeInventory("IHavePreserverance", 1)
		"----" A 0 A_JumpIfInventory("IHaveFury",1,"FuryAuraD")
		"----" A 0 A_GiveInventory("IHaveFury", 1)
		"----" A 0 A_Print("Fury Aura Activated")
		"----" A 0 ACS_ExecuteAlways(546,0,0,0,0)//A_SpawnItem ("HolyLegend", 60, 40)
		"----" A 0 //A_TakeInventory("MP",40)
		goto spawn
	FuryAuraD:
		"----" A 0 A_TakeInventory("IHaveFury", 1)
		"----" A 0 A_Print("Fury Aura Deactivated")
		Goto Spawn
	Visions:
		"----" A 0 A_GiveInventory("UseVisions",1)
		"----" A 0 A_AlertMonsters
		goto spawn
	NoHealth:
		"----" A 0 A_Print("Not Enough Health!")
		goto spawn
	}
}

Actor SacrificeSplash : CustomInventory
{
	Inventory.MaxAmount 0
	+INVENTORY.AUTOACTIVATE
	States
	{
	Use:
	TNT1 AAAAAAAAAAAAAA 0 A_SpawnDebris("NashGore_FlyingBlood",1)
	Stop
	}
}


Actor NewMagePlayer : MagePlayer Replaces MagePlayer
{

	+NOICEDEATH
	+DONTBLAST
	//+GHOST
	Species "Player"
	Player.HexenArmor 0, 0, 0, 0, 0
	Player.DisplayName "Magician"
	Player.MaxHealth 9999
	Player.StartItem "CurrentMaxHealth", 55
	Health 55
	Player.StartItem "ImAMage"
	Player.StartItem "SapphireWand",1
	Player.StartItem "Level",1
	Player.StartItem "MP",100
	Player.ForwardMove 1.0,1.0
	Player.SideMove 1.0,1.0
	Player.StartItem "Strength",7
	Player.StartItem "Agility",7
	Player.StartItem "Constitution",7
	Player.StartItem "Willpower",10
	Player.StartItem "Wisdom",14
	Player.StartItem "Intellect",15
	DamageFactor AcolyteHealing, 0
	//Damagefactor "Falling", 1000
	Damagefactor "Suicide", 1000
	Damagefactor "Telefrag", 1000
	states
	{
	Ice:
  	stop
	See:
		MAGE ABCD 4
		Goto Spawn
	Pain.ManaDrain:
		MAGE G 0 A_TakeInventory("Mana1", 5)
  		MAGE G 0 A_TakeInventory("Mana2", 5)
    	Goto Pain
	Pain:
		MAGE G 4 //A_TakeInventory("MageArmorBonus", 1)
		MAGE G 4 A_Pain
		Goto Spawn
	XDeath:
		MAGE O 0 A_SpawnItem("GIBBER")
		MAGE O 5 A_PlayerScream
		MAGE P 5
		MAGE R 5 A_NoBlocking
		MAGE STUVW 5
		MAGE X -1
		Stop
	Telekinesis:
		//"----" A 0 A_TakeInventory("MP",4)
		"----" A 0 ACS_ExecuteAlways(502,0,0,0,0)
		goto spawn
	FireTrap:
		"----" A 0 A_SpawnItemEx("FireTrapEffects", cos(-pitch)*141, 0, 40+(sin(-pitch))*40)//ACS_ExecuteAlways(534,0,0,0,0)////A_SpawnItem("FireTrapEffects",151,40,0)
		"----" A 0 A_PlaySound("ability/firetrap")
		goto spawn
	ManaCharge:
		"----" A 0 A_JumpIfInventory("ManaChargeing",1,2)
		"----" A 0 ACS_ExecuteAlways(509,0,0,0,0)
		goto spawn
		"----" A 0 A_Print("Mana Charge deactivated")
		"----" A 0 A_TakeInventory("ManaChargeing",1)
		goto spawn
	Spark:
		"----" A 0 A_GiveInventory("Sparking",1)
		"----" A 0 A_AlertMonsters
		goto spawn
	DeepFreeze:
		"----" A 0 A_GiveInventory("UseDeepFreeze")
		"----" A 0 A_AlertMonsters
		goto spawn
	PolyMorph:
		"----" A 0 ACS_ExecuteAlways(531,0,0,0,0)//A_FireCustomMissile("PorkFX")
		"----" A 0 A_AlertMonsters
		goto spawn
	Fireball:
		"----" A 0 A_GiveInventory("UseMFireBall")//ACS_ExecuteAlways(515,0,0,0,0)//A_FireCustomMissile("FireballFX",0,0,0,42)
		"----" A 0 A_AlertMonsters
		goto spawn
	Meteor:
		"----" A 0 A_GiveInventory("UseMeteor",1)
		"----" A 0 A_AlertMonsters
		goto spawn
	ArcaneBomb:
		"----" A 0 A_GiveInventory("UseArcaneBomb",1)
		"----" A 0 A_AlertMonsters
		goto spawn
	PillarOfFlame:
		"----" A 0 A_GiveInventory("UsePillarOfFlame",1)
		"----" A 0 A_AlertMonsters
		goto spawn
	Froststorm:
		"----" A 0 A_GiveInventory("UseFrostStorm",1)
		"----" A 0 A_AlertMonsters
		goto spawn
	EnergyAbsorb:
		"----" A 0 A_PlaySound("MageLightningContinuous")
		"----" A 0 ACS_ExecuteAlways(561,0,0,0,0)//gives charge to lightning dependent on Energy Absorb level
		goto spawn
	ThunderStorm:
		"----" A 0 A_JumpIfInventory("ThunderStorming",1,"TSDeactivate")
		"----" A 0 A_GiveInventory("ThunderStorming",1)
		"----" A 0 ACS_ExecuteAlways(506,0,0,0,0)
		Goto Spawn
	TSDeactivate:
		"----" A 0 A_Print("Thunderstorm deactivated")
		"----" A 0 A_TakeInventory("Thunderstorming",1)
		Goto spawn
	Blizzard:
		"----" A 0 A_GiveInventory("UseBlizzard", 1)
		"----" A 0 A_AlertMonsters
		Goto Spawn
	IceBolt:
		"----" A 0 A_GiveInventory("UseIceBolt", 1)
		"----" A 0 A_AlertMonsters
		Goto Spawn
	}
}
Actor DummyPlayer : PigPlayer
{//dummy player used in DM to transfer information to respawners
renderstyle Translucent
alpha 0.0
Health 10000
+INVULNERABLE
}
Actor ImAMage : Inventory
{
+INVENTORY.UNDROPPABLE
Inventory.MaxAmount 1
}
Actor ImACleric : Inventory
{
+INVENTORY.UNDROPPABLE
Inventory.MaxAmount 1
}
Actor ImAFighter : Inventory
{
+INVENTORY.UNDROPPABLE
Inventory.MaxAmount 1
}
Actor ImAHunter : Inventory
{
+INVENTORY.UNDROPPABLE
Inventory.MaxAmount 1
}
Actor ImaWarlock : BooleanItem {}

Actor ItembarChecker : Inventory
{
+INVENTORY.UNDROPPABLE
Inventory.MaxAmount 1
}


Actor NewHunterPlayer : PlayerPawn
{

	+NOICEDEATH
	+DONTBLAST
	//+GHOST
	Species "Player"
	Player.MaxHealth 9999
	Player.DisplayName "Hunter"
	Player.StartItem "CurrentMaxHealth", 85
	Health 85
	Radius 16
	Player.HexenArmor 0, 0, 0, 0, 0
  Height 64
  Speed 1
  +NOSKIN
	RadiusDamageFactor 0.25
  Player.JumpZ 9.75
  Player.Viewheight 48
	Player.SoundClass "Cleric"
	PainSound "PlayerClericPain"
	Player.SpawnClass "Cleric"
	Player.InvulnerabilityMode "Ghost"
	Player.ForwardMove 1.0,1.0
	Player.SideMove 1.0,1.0
	Player.StartItem "ImAHunter"
	Player.StartItem "Machete",1
	Player.StartItem "Level",1
	Player.StartItem "MP",54
	Player.StartItem "Strength",10
	Player.StartItem "Agility",14
	Player.StartItem "Constitution",10
	Player.StartItem "Willpower",10
	Player.StartItem "Wisdom",10
	Player.StartItem "Intellect",8
	DamageFactor AcolyteHealing, 0
	//Damagefactor "Falling", 1000
	Damagefactor "Suicide", 1000
	Damagefactor "Telefrag", 1000
	Player.ColorRange 51, 66
	//Player.Portrait P_HWALK1
	states
	{
	Ice:
  	stop
	Pain.ManaDrain:
		HUNT G 0 A_TakeInventory("Mana1", 5)
  		HUNT G 0 A_TakeInventory("Mana2", 5)
    Goto Pain
	Spawn:
		HUNT A -1
		Stop
	See:
		HUNT ABCD 4 
		Goto Spawn
	Missile:
		HUNT E 12
		Goto Spawn
	Melee:
		HUNT E 6
		Goto Missile
	Pain:
		HUNT F 4 //A_TakeInventory("HunterArmorBonus", 1)
		HUNT F 4 A_Pain
		Goto Spawn
	Death:
		HUNT H 6
        HUNT I 6 A_PlayerScream
        HUNT JK 6
        HUNT L 6 A_NoBlocking
        HUNT MN 6
        HUNT O -1
        Stop
	XDeath:
		HUNT O 0 A_SpawnItem("GIBBER")
        HUNT Q 5 A_PlayerScream
        HUNT R 0 A_NoBlocking
        HUNT R 5
        HUNT STUVW 5
        HUNT Y -1
        Stop
	Burn:
		HUNT X 5 Bright A_PlaySound("*burndeath")
		FDTH G 5 Bright
		FDTH H 4 Bright A_PlayerScream
		FDTH I 5 Bright
		FDTH J 4 Bright
		FDTH K 5 Bright
		FDTH L 4 Bright
		FDTH M 5 Bright
		FDTH N 4 Bright
		FDTH O 5 Bright
		FDTH P 4 Bright
		FDTH Q 5 Bright
		FDTH R 4 Bright
		FDTH S 5 Bright A_NoBlocking
		FDTH T 4 Bright
		FDTH U 5 Bright
		FDTH V 4 Bright
		ACLO E 35 A_CheckPlayerDone
		Wait
		ACLO E 8
		Stop
	BearTrap:
		"----" A 0 A_GiveInventory("BearTrapItemLayer")
		goto spawn
	RavenCompanion:
		"----" A 0 ACS_ExecuteAlways(520,0,0,0,0)
		goto spawn
	FanOfKnives:
		"----" A 0 A_GiveInventory("UseFanOfKnives")
		"----" A 0 A_AlertMonsters
		goto spawn
	TripBomb:
		"----" A 0 A_GiveInventory("UseTripBomb")
		goto spawn
	FireArrow:
		"----" A 0 A_JumpIfInventory("FireSpellInv", 1, "SpellBreaker")
		"----" A 0 A_TakeInventory("ThunderSpellInv")
		"----" A 0 A_TakeInventory("IceSpellInv")
		"----" A 0 A_GiveInventory("FireSpellInv")
		goto spawn
	Block:
		"----" A 0 A_JumpIfInventory("BlockingItem", 1, "Spawn")
		"----" A 0 A_JumpIfInventory("MP", acs_executewithresult(925), 1)
		Goto BlockRefund
		"----" A 0 A_TakeInventory("MP", acs_executewithresult(925))
		"----" A 0 acs_executealways(501)
		"----" A 0 A_GiveInventory("BlockingItem")
		goto spawn
	SpikeTrap:
		"----" A 0 A_GiveInventory("SpikeTrapItemLayer")
		goto spawn
	IceArrow:
		"----" A 0 A_JumpIfInventory("IceSpellInv", 1, "SpellBreaker")
		"----" A 0 A_TakeInventory("FireSpellInv")
		"----" A 0 A_TakeInventory("ThunderSpellInv")
		"----" A 0 A_GiveInventory("IceSpellInv")
		goto spawn
	NoxiousTrap:
		"----" A 0 A_GiveInventory("NoxiousTrapItemLayer")
		goto spawn
	LightningArrow:
	    "----" A 0 A_JumpIfInventory("ThunderSpellInv", 1, "SpellBreaker")
		"----" A 0 A_TakeInventory("FireSpellInv")
		"----" A 0 A_TakeInventory("IceSpellInv")
		"----" A 0 A_GiveInventory("ThunderSpellInv")
		goto spawn
	SpellBreaker:
		"----" A 0 A_TakeInventory("FireSpellInv")
		"----" A 0 A_TakeInventory("IceSpellInv")
		"----" A 0 A_TakeInventory("ThunderSpellInv")
		Goto Spawn
	Precision:
		"----" A 0 A_JumpIfInventory("Precisioning",1,2)
		"----" A 0 ACS_ExecuteAlways(917,0,0,0,0)
		goto spawn
		"----" A 0 A_Print("Precision deactivated")
		"----" A 0 A_TakeInventory("Precisioning",1)
		goto spawn
	Sprint:
		"----" A 0 A_JumpIfInventory("Sprinting",1,2)
		"----" A 0 ACS_ExecuteAlways(518,0,0,0,0)
		goto spawn
		"----" A 0 A_Print("Sprint deactivated")
		"----" A 0 A_TakeInventory("Sprinting",1)
		goto spawn
	Camoflauge:
		"----" A 0 A_JumpIfInventory("Stealthing",1,2)
		"----" A 0 ACS_ExecuteAlways(519,0,0,0,0)
		goto spawn
		"----" A 0 A_Print("Camoflauge deactivated")
		"----" A 0 A_TakeInventory("Stealthing",1)
		goto spawn
	BlockRefund:
		"----" A 0 A_Print("Not Enough Magick!")
		Goto Spawn
	}
}

Actor NewNecromancerPlayer : PlayerPawn
{

	+NOICEDEATH
	+DONTBLAST
	//+GHOST
	Species "Player"
	Player.MaxHealth 9999
	Player.DisplayName "Necromancer"
	Player.StartItem "CurrentMaxHealth", 70
	Health 70
	Radius 16
	Player.HexenArmor 0, 0, 0, 0, 0
	Height 64
	Speed 1
	+NOSKIN
	RadiusDamageFactor 0.25
	Player.JumpZ 9.75
	Player.Viewheight 48
	Player.SoundClass "Mage"
	PainSound "PlayerMagePain"
	Player.SpawnClass "Mage"
	Player.InvulnerabilityMode "Reflective"
	Player.ForwardMove 0.9,0.9
	Player.SideMove 0.9,0.9
	Player.StartItem "ImAWarlock"
	Player.StartItem "Machete",1
	Player.StartItem "Level",1
	Player.StartItem "MP",70
	Player.StartItem "Strength",8
	Player.StartItem "Agility",10
	Player.StartItem "Constitution",8
	Player.StartItem "Willpower",10
	Player.StartItem "Wisdom",12
	Player.StartItem "Intellect",14
	DamageFactor AcolyteHealing, 0
	//Damagefactor "Falling", 1000
	Damagefactor "Suicide", 1000
	Damagefactor "Telefrag", 1000
	Player.ColorRange 146, 163
	states
	{
	Ice:
  	stop
	Pain.ManaDrain:
		CULT G 0 A_TakeInventory("Mana1", 5)
  		CULT G 0 A_TakeInventory("Mana2", 5)
    Goto Pain
	Spawn: 
		CULT A -1
		Loop
	See: 
		CULT ABCD 4
		Goto Spawn
	Melee:
	Missile:
		CULT E 8
		CULT F 8 Bright
		Goto Spawn
	Pain: 
		CULT G 4 
		CULT G 4 A_Pain 
		Goto Spawn 
	Death: 
		CULT H 8 
		CULT I 8 A_PlayerScream  
		CULT J 4 
		CULT K 4 A_NoBlocking 
		CULT L 4 
		CULT M -1 
		Stop
	XDEATH:
		CULT N 5 //A_SpawnItem("GIBBER")
		CULT O 5 A_PlayerScream 
		CULT P 5 A_NoBlocking 
		CULT QR 5
		CULT S 5
		CULT TUV 5 
		CULT W -1 
	BearTrap:
		"----" A 0 A_GiveInventory("BearTrapItemLayer")
		goto spawn
	FireArrow:
		"----" A 0 A_JumpIfInventory("FireSpellInv", 1, "SpellBreaker")
		"----" A 0 A_TakeInventory("ThunderSpellInv")
		"----" A 0 A_TakeInventory("IceSpellInv")
		"----" A 0 A_GiveInventory("FireSpellInv")
		goto spawn
	Block:
		"----" A 0 A_JumpIfInventory("BlockingItem", 1, "Spawn")
		"----" A 0 A_JumpIfInventory("MP", acs_executewithresult(925), 1)
		Goto BlockRefund
		"----" A 0 A_TakeInventory("MP", acs_executewithresult(925))
		"----" A 0 acs_executealways(501)
		"----" A 0 A_GiveInventory("BlockingItem")
		goto spawn
	SpikeTrap:
		"----" A 0 A_GiveInventory("SpikeTrapItemLayer")
		goto spawn
	IceArrow:
		"----" A 0 A_JumpIfInventory("IceSpellInv", 1, "SpellBreaker")
		"----" A 0 A_TakeInventory("FireSpellInv")
		"----" A 0 A_TakeInventory("ThunderSpellInv")
		"----" A 0 A_GiveInventory("IceSpellInv")
		goto spawn
	NoxiousTrap:
		"----" A 0 A_GiveInventory("NoxiousTrapItemLayer")
		goto spawn
	LightningArrow:
	    "----" A 0 A_JumpIfInventory("ThunderSpellInv", 1, "SpellBreaker")
		"----" A 0 A_TakeInventory("FireSpellInv")
		"----" A 0 A_TakeInventory("IceSpellInv")
		"----" A 0 A_GiveInventory("ThunderSpellInv")
		goto spawn
	SpellBreaker:
		"----" A 0 A_TakeInventory("FireSpellInv")
		"----" A 0 A_TakeInventory("IceSpellInv")
		"----" A 0 A_TakeInventory("ThunderSpellInv")
		Goto Spawn
	Precision:
		"----" A 0 A_JumpIfInventory("Precisioning",1,2)
		"----" A 0 ACS_ExecuteAlways(917,0,0,0,0)
		goto spawn
		"----" A 0 A_Print("Precision deactivated")
		"----" A 0 A_TakeInventory("Precisioning",1)
		goto spawn
	BlockRefund:
		"----" A 0 A_Print("Not Enough Magick!")
		Goto Spawn
	}
}

//-----------------------------Experience
Actor XP : Ammo
{
	+IGNORESKILL
	inventory.maxamount 99999
	+INVENTORY.UNDROPPABLE
}

Actor MightyBlowing : Inventory
{
  Inventory.MaxAmount 1
  +INVENTORY.UNDROPPABLE
}

Actor DeathBlowing : Inventory
{
  Inventory.MaxAmount 1
  +INVENTORY.UNDROPPABLE
}

Actor Punishmenting : Inventory
{
  Inventory.MaxAmount 100
  +INVENTORY.UNDROPPABLE
}

Actor Beserking : Inventory
{
  Inventory.MaxAmount 1
  +INVENTORY.UNDROPPABLE
}

Actor Sacrificeing : Inventory
{
  Inventory.MaxAmount 1
  +INVENTORY.UNDROPPABLE
}

Actor ManaChargeing : Inventory
{
  Inventory.MaxAmount 1
  +INVENTORY.UNDROPPABLE
}

Actor Chargeing : Inventory
{
  Inventory.MaxAmount 100
  +INVENTORY.UNDROPPABLE
}

Actor EnergyAbsorbing : Inventory
{
  Inventory.MaxAmount 100
  +INVENTORY.UNDROPPABLE
}

Actor Strength : Inventory
{
  Inventory.MaxAmount 300
  +INVENTORY.UNDROPPABLE
}

Actor Intellect : Inventory
{
  Inventory.MaxAmount 300
  +INVENTORY.UNDROPPABLE
}

Actor Agility : Inventory
{
  Inventory.MaxAmount 300
  +INVENTORY.UNDROPPABLE
}

Actor Constitution : Inventory
{
  Inventory.MaxAmount 300
  +INVENTORY.UNDROPPABLE
}

Actor Willpower : Inventory
{
  Inventory.MaxAmount 300
  +INVENTORY.UNDROPPABLE
}

Actor Wisdom : Inventory
{
  Inventory.MaxAmount 300
  +INVENTORY.UNDROPPABLE
}

Actor CurrentMaxHealth : Inventory
{
  Inventory.MaxAmount 200000
  +INVENTORY.UNDROPPABLE
}

Actor Level : Inventory
{
  +INVENTORY.UNDROPPABLE
  Inventory.MaxAmount 200
}

Actor LvlUp : Inventory
{
  +INVENTORY.UNDROPPABLE
  Inventory.MaxAmount 200
}

Actor ShowingAlch : Inventory
{
	+INVENTORY.UNDROPPABLE
	Inventory.MaxAmount 1
}

ACTOR ShowedMenu : Inventory
{
  +INVENTORY.UNDROPPABLE
  Inventory.MaxAmount 1
}

ACTOR ShowingMenu : Inventory
{
  +INVENTORY.UNDROPPABLE
  Inventory.MaxAmount 1
}

ACTOR ShowingStatMenu : Inventory
{
  +INVENTORY.UNDROPPABLE
  Inventory.MaxAmount 1
}

ACTOR ShowingSkillMenu : Inventory
{
  +INVENTORY.UNDROPPABLE
  Inventory.MaxAmount 1
}

ACTOR LvlUpPoints : Inventory
{
  Inventory.MaxAmount 1000
  +INVENTORY.UNDROPPABLE
}

Actor NewSoulSphereSpot : RandomSpawner replaces SoulSphere
{
	Game Doom
	SpawnID 25
	Dropitem "NewArtiSuperHealth"
}

actor NewArtiSuperHealth : CustomInventory replaces ArtiSuperHealth
{
	Game Raven
  SpawnID 25
  +INVENTORY.INVBAR
  Inventory.MaxAmount 25
  +COUNTITEM
  +FLOATBOB
  +INVENTORY.PICKUPFLASH
  //+KEEPDEPLETED
  +INVENTORY.FANCYPICKUPSOUND
  Inventory.Icon "ARTISPHL"
  Tag "Mystic Urn"
  Inventory.PickupSound "misc/p_pkup"
  Inventory.PickupMessage "$TXT_ARTISUPERHEALTH" // "QUARTZ FLASK"
  States
  {
  Spawn:
    SPHL A 4
    Loop
  Use:
    TNT1 A 0 A_JumpIfHealthLower(ACS_ExecuteWithResult(553,0,0,0),"Healing")
	stop
  Healing:
    TNT1 A 0 ACS_ExecuteAlways(554,0,ACS_ExecuteWithResult(553,0,0,0),0,0)//Heal 100% of total health
    stop
  }
}

Actor CrystalPotionSpots : RandomSpawner replaces CrystalVial
{
	Game Raven
	Spawnid 23
	Dropitem "BluePotionVial" 255 4
	DropItem "BluePotionPentagon" 255 3
	DropItem "BluePotionHexagon" 255 2
	DropItem "BluePotionRound" 255 1
}


Actor QuartzPotionSpots : RandomSpawner replaces ArtiHealth
{
	Game Raven
	Spawnid 24
	Dropitem "PurplePotionVial" 255 4
	DropItem "PurplePotionPentagon" 255 3
	DropItem "PurplePotionHexagon" 255 2
	DropItem "PurplePotionRound" 255 1
}

ACTOR NewMinotaurFriend : MinotaurFriend replaces MinotaurFriend
{
  Radius 28
  Height 100
  Speed 16
  //Damage 7
  Monster
  +FLOORCLIP
  +DONTMORPH
  +NODROPOFF
  SeeSound "minotaur/sight"
  AttackSound "minotaur/attack1"
  PainSound "minotaur/pain"
  DeathSound "minotaur/death"
  ActiveSound "minotaur/active"
  health 2500
  painchance 0
  meleerange 164
  mass 4000
  //+NOICEDEATH
  +QUICKTORETALIATE
  +MISSILEMORE
  +DONTMORPH
  -COUNTKILL
  Obituary "%o was burnt to a crisp by the Maulotaur."
  HitObituary "%o was crushed by the Maulotaur."
  states
  {
  Spawn:
	NMTR A 0
	NMTR A 0 A_SetTranslucent(1,0)
	NMTR A 0 ACS_ExecuteAlways(913,0,2300,200,0)//increase health on higher difficulties//A_JumpIf(ACS_ExecuteWithResult(536,0,0,0)==1,"Mutate")
    NMTR AB 10 A_Look
    Loop
	Idle:
  NMTR AB 10 A_Look
    Loop
  Melee:
    NMTR U 0 A_UnSetInvulnerable
	NMTR U 0 A_TakeInventory("Hammercheck", 1)
    NMTR V 10 A_FaceTarget
    NMTR W 7 A_FaceTarget
    NMTR X 12 A_CustomMeleeAttack ((random(1,8)*7)+(ACS_ExecuteWithResult(912,6,0,0)), "FighterHammerHitThing")
    Goto See
  Missile:
    NMTR U 0 A_UnSetInvulnerable
    NMTR V 0 A_Jump(51, 2)
    NMTR V 0 A_JumpIfCloser(800, "Hammer")
	NMTR V 0 A_TakeInventory("Hammercheck", 1)
  	NMTR V 0 A_Jump(104, 2)
    NMTR V 0 A_JumpIfCloser(2000, "Charge")
    NMTR V 10
    NMTR Y 4 A_FaceTarget
	NMTR Z 0 A_CustomMissile("NewMinotaurFX1", 40, 0, 0)
	NMTR Z 0 A_CustomMissile("NewMinotaurFX1", 40, 0, 2.8125)
	NMTR Z 0 A_CustomMissile("NewMinotaurFX1", 40, 0, -2.8125)
	NMTR Z 0 A_CustomMissile("NewMinotaurFX1", 40, 0, 5.625)
	NMTR Z 0 A_CustomMissile("NewMinotaurFX1", 40, 0, -5.625)
    NMTR Z 9
    Goto See
  Hammer:
    NMTR U 0 A_UnSetInvulnerable
  	NMTR V 0 A_JumpIfInventory("Hammercheck", 1, "Missile")
    NMTR V 10 A_FaceTarget
    NMTR W 7 A_FaceTarget
	NMTR W 0 A_PlaySound("minotaur/attack3", CHAN_VOICE)
	NMTR X 0 A_PlaySound("minotaur/attack1", CHAN_WEAPON)
    NMTR X 12 A_CustomMissile("NewMinotaurFX2", 0, 0, 0)
	NMTR V 0 A_Jump(192, "HammerLoop")
    Goto See
  HammerLoop:
    NMTR X 12 A_GiveInventory("Hammercheck", 1)
    Goto Hammer
  Charge:
	NMTR U 0 A_SetInvulnerable
    NMTR U 0 A_FaceTarget
    NMTR U 0 A_SkullAttack(13)
	NMTR U 0 A_SpawnItemEx("MinoPuff",0,0,0,0,0,2)
	NMTR U 0 A_FaceTarget
	NMTR U 2
	NMTR U 0 A_JumpIf(z - floorz >= 15, "ChargeStop")
    goto Charge+2
   ChargeStop:
    SPOS A 0 A_Stop
    goto See
  See:
    NMTR A 0 A_UnSetInvulnerable
	NMTR A 0 A_SetTranslucent(1,0)
    NMTR AB 5 A_Chase
	NMTR CD 5 A_Chase
    Loop
  Death:
    NMTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    NMTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    NMTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    NMTR F 1 // A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    NMTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    NMTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    NMTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    NMTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    NMTR F 1 //A_SpawnItemEx("Kaboom", 0, 0,0,random(-9,9),random(-9,9),random(5,9), 48, 128)
    NMTR G 5
    NMTR H 6 A_Scream
    NMTR I 5
    NMTR J 6
    NMTR K 5
    NMTR L 6
    NMTR M 5 A_NoBlocking
    NMTR N 6
    NMTR O 5
    NMTR P 6
    NMTR Q 5
    NMTR R 6
    NMTR S 5
    NMTR T -1 A_BossDeath
    Stop
  Ice:
	"----" A 0
	"----" E 5 A_GenericFreezeDeath
	"----" E 1 A_FreezeDeathChunks
	Wait
  }
}

Actor NewMinotaurFX1 : MinotaurFX1
{
	Damage ((Random(1,8)*3)+(ACS_ExecuteWithResult(912,2,0,0)))
	Species "Player"
	+THRUSPECIES
}

Actor NewMinotaurFX2 : MinotaurFX2
{
	Damage ((Random(1,8)*4)+(ACS_ExecuteWithResult(912,4,0,0)))
	Species "Player"
	+THRUSPECIES
	States
  {
  Spawn:
    FX13 A 2 Bright A_SpawnItemEx("NewMinotaurFX3",random(-2,2),random(-2,2),0)
    Loop
  Death:
    FX13 I 4 Bright A_Explode(128+(ACS_ExecuteWithResult(912,4,0,0)), 128, 0)
    FX13 JKLM 4 Bright
    Stop
  }
}

Actor NewMinotaurFX3 : MinotaurFX3
{
	Damage ((Random(1,8)*4)+(ACS_ExecuteWithResult(912,4,0,0)))
	Species "Player"
	+THRUSPECIES
	States
  {
  Death:
    FX13 I 4 Bright A_Explode(128+(ACS_ExecuteWithResult(912,4,0,0)), 128, 0)
    FX13 JKLM 4 Bright
    Stop
  }
}

actor NewHealth : Health
{
  Inventory.Amount 1
  Inventory.MaxAmount 1000
  Inventory.PickupMessage "$TXT_ITEMHEALTH" // "CRYSTAL VIAL"
  States
  {
  Spawn:
    PTN1 ABC 3
    Loop
  }
}
