Actor NewArtiHealingRadius : CustomInventory Replaces ArtiHealingRadius
{
	 Game Hexen
  +COUNTITEM
  +FLOATBOB
  Inventory.DefMaxAmount
  +INVENTORY.INVBAR 
  +INVENTORY.PICKUPFLASH
  +INVENTORY.FANCYPICKUPSOUND
  //+INVENTORY.KEEPDEPLETED
  Tag "Mystic Ambit Incant"
  Inventory.Icon "ARTIHRAD"
  Inventory.PickupSound "misc/p_pkup"
  Inventory.PickupMessage "$TXT_ARTIHEALINGRADIUS" // "MYSTIC AMBIT INCANT"
  States
  {
  Spawn:
    HRAD ABCDEFGHIJKLMNOP 4 Bright
    Loop
	Use:
	TNT1 A 0 ACS_ExecuteAlways(570,0,0,0,0)
	stop
  }
}

Actor NewArtiHealingRadiusHealth : CustomInventory
{
  +FLOATBOB
  Inventory.Amount 10
  Inventory.PickupSound "pickup/health"
  Inventory.PickupMessage "Healing Radius Health"
  States
  {
  Spawn:
    AVPT ABC 4
    Loop
  Pickup:
    TNT1 A 0 A_JumpIfHealthLower(ACS_ExecuteWithResult(553,0,0,0),"Pickedup")
    Fail
  Pickedup:
    TNT1 A 0 ACS_ExecuteAlways(554,0,ACS_ExecuteWithResult(553,0,0,0)/5,0,0)//Heal 1/6 of total health//A_GiveInventory("NewHealth",ACS_ExecuteWithResult(553,1,0,0))//HealThing(100)//ACS_ExecuteWithResult(553,1,0,0))
    stop
  }
}


ACTOR NewArtiBoostArmor : CustomInventory
{
  +FLOATBOB
		+AUTOACTIVATE
		Inventory.MaxAmount 0
		Inventory.PickupMessage "Mesh Armor"
		Inventory.PickupSound "pickup/armor"
		States 
		{ 
		Spawn: 
      		AMR1 A 1 
      		Stop
   		Use:
		AMR3 A 0 ACS_ExecuteAlways (915, 0, 9)
		Stop
	}
}

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

Actor PowerHunterSpeedBuff : PowerSpeed
{
	Speed 1.5
	Powerup.Duration -15
}


//Actor replacements

Actor NewBerserkSpot : RandomSpawner replaces Berserk
{
	Game Doom
	SpawnID 134
	DropItem "NewArtiHealingRadius"
	DropItem "NewArtiTeleport"
	DropItem "NewArtiPork"
	DropItem "NewArtiSpeedBoots"
	DropItem "ForceCube"
	DropItem "NewArtiDarkServant"
}

Actor NewBlurSphereSpot : RandomSpawner replaces BlurSphere
{
	Game Doom
	SpawnID 135
	DropItem "NewArtiHealingRadius"
	DropItem "NewArtiTeleport"
	DropItem "NewArtiPork"
	DropItem "NewArtiSpeedBoots"
	DropItem "ForceCube"
	DropItem "NewArtiDarkServant"
}

Actor NewChainsawSpot : RandomSpawner replaces Chainsaw
{
	Game Doom
	SpawnID 32
	DropItem "NewArtiHealingRadius"
	DropItem "NewArtiTeleport"
	DropItem "NewArtiPork"
	DropItem "NewArtiSpeedBoots"
	DropItem "ForceCube"
	DropItem "NewArtiDarkServant"
}

Actor NewStimpackSpots : RandomSpawner replaces Stimpack
{
	Game Doom
	Spawnid 23
	Dropitem "BluePotionVial" 255 4
	DropItem "BluePotionPentagon" 255 3
	DropItem "BluePotionHexagon" 255 2
	DropItem "BluePotionRound" 255 1
}

Actor NewMedikitSpots : RandomSpawner replaces Medikit
{
	Game Doom
	Spawnid 24
	Dropitem "PurplePotionVial" 255 4
	DropItem "PurplePotionPentagon" 255 3
	DropItem "PurplePotionHexagon" 255 2
	DropItem "PurplePotionRound" 255 1
}

Actor NewHealthBonusSpot : RandomSpawner replaces HealthBonus
{
	Game Doom
	SpawnID 152
	Dropitem "ArtiGreenFlask"
	DropItem "ArtiRedFlask"
	DropItem "ArtiYellowFlask"
}

Actor NewArmorBonusSpot : RandomSpawner replaces ArmorBonus
{
	Game Doom
	SpawnID 22
	Dropitem "NewArtiBlastRadius"
}

Actor NewArtiBlastRadius : ArtiBlastRadius replaces ArtiBlastRadius
{
	//+KEEPDEPLETED
}

Actor NewBackPackSpot : RandomSpawner replaces BackPack
{
	Game Doom
	SpawnID 144
	Dropitem "NewArtiBoostMana"
}

Actor NewArtiBoostMana : ArtiBoostMana replaces ArtiBoostMana
{
	//+KEEPDEPLETED
	States
	{
	Use:
		TNT1 A 0 A_GiveInventory("Mana1", 20000)
		TNT1 A 0 A_GiveInventory("Mana2", 20000)
		TNT1 A 0 A_GiveInventory("MP", 20000)
		Stop
	}
}

Actor NewArtiDarkServant : ArtiDarkServant replaces ArtiDarkServant
{
	//+KEEPDEPLETED
}

Actor NewInvulnerabilitySphereSpot : RandomSpawner replaces InvulnerabilitySphere
{
	Game Doom
	SpawnID 133
	Dropitem "NewArtiInvulnerability2"
}

Actor NewArtiInvulnerability2 : ArtiInvulnerability2 replaces ArtiInvulnerability2
{
	//+KEEPDEPLETED
}

Actor NewInfraredSphereSpot : RandomSpawner replaces Infrared
{
	Game Doom
	SpawnID 138
	Dropitem "NewArtiTorch"
}

Actor NewArtiTorch : ArtiTorch replaces ArtiTorch
{
	//+KEEPDEPLETED
}

Actor NewArtiPork : ArtiPork replaces ArtiPork
{
	//+KEEPDEPLETED
}

Actor NewPorkFX : PorkFX replaces PorkFX
{
	MorphProjectile.PlayerClass ""
	MorphProjectile.MorphStyle MRF_UNDOBYTOMEOFPOWER|MRF_UNDOBYCHAOSDEVICE|MRF_UNDOBYDEATHFORCED|MRF_UNDOBYDEATH
}

Actor NewArtiSpeedBoots : ArtiSpeedBoots replaces ArtiSpeedBoots
{
	//+KEEPDEPLETED
	Powerup.Type NewSpeedBoot
}

Actor PowerNewSpeedBoot : PowerSpeed
{
	Inventory.Icon SPBOTZ0
}

Actor NewArtiTeleport : ArtiTeleport replaces ArtiTeleport
{
	//+KEEPDEPLETED
}

Actor NewArtiTeleportOther : ArtiTeleportOther// replaces ArtiTeleportOther
{
	//+KEEPDEPLETED
}

ACTOR ForceCube : CustomInventory replaces ArtiTeleportOther 10040
{
	Game Hexen
    SpawnID 17
    +FLOATBOB
    +COUNTITEM
    +INVENTORY.FANCYPICKUPSOUND
    +INVENTORY.INVBAR
    +INVENTORY.PICKUPFLASH
    Inventory.DefMaxAmount
    Inventory.PickupSound "misc/p_pkup"
    Inventory.PickupMessage "Force Cube"
    Inventory.Icon "ARTIFCBE"
	Tag "Force Cube"
    Scale 0.6
    States
    {
    Spawn:
	FCB1 ABCDEFGHIJKLMNOP 4 Bright
	Loop
    Use:
	TNT1 A 0 A_JumpIfInventory("ForceCubeTimerRight",1,3)
	TNT1 A 0 A_GiveInventory("ForceCubeTimerRight",1)
	TNT1 A 0 A_SpawnItemEx("ForceCube1Right",0,0,0,0,0,0,0,32,0)
	Stop
	TNT1 A 0 A_JumpIfInventory("ForceCubeTimerLeft",1,3)
	TNT1 A 0 A_GiveInventory("ForceCubeTimerLeft",1)
	TNT1 A 0 A_SpawnItemEx("ForceCube1Left",0,0,0,0,0,0,0,32,0)
	Stop
	TNT1 A 0
	Loop
    }
}

ACTOR ForceCube1Right
{
    Radius 0
    Height 0
    +NOTIMEFREEZE
    //+NOFEAR
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("ForceCubeGiverRight",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

ACTOR ForceCube1Left
{
    Radius 0
    Height 0
    +NOTIMEFREEZE
    //+NOFEAR
    States
    {
    Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItemEx("ForceCubeGiverLeft",0,0,0,0,0,0,0,32,0)
	Stop
    }
}

ACTOR ForceCube2Right : CustomInventory
{
    +AUTOACTIVATE
    +NOTIMEFREEZE
    States
    {
    Pickup:
	TNT1 A 0 A_SpawnItemEx("RightCube",20,12,36,0,0,0,0,32,0)
	Stop
    }
}

ACTOR ForceCube2Left : CustomInventory
{
    States
    {
    Pickup:
	TNT1 A 0 A_SpawnItemEx("LeftCube",20,-12,36,0,0,0,0,32,0)
	Stop
    }
}

ACTOR ForceCubeTimerRight : PowerProtection
{
    DamageFactor "Normal", 1.0
    Powerup.Duration 2100
}

ACTOR ForceCubeTimerLeft : PowerProtection
{
    DamageFactor "Normal", 1.0
    Powerup.Duration 2100
}

ACTOR ForceCubeTimer2 : Inventory
{
    +NOTIMEFREEZE
    Inventory.Amount 1
    Inventory.MaxAmount 2100
    States
    {
    Spawn:
	TNT1 A 0
	Stop
    }
}

ACTOR ForceCubeGiverRight
{
    Health 1000000000
    Radius 0
    Height 0
    Speed 0
    +NONSHOOTABLE
    +MISSILEMORE
    +MISSILEEVENMORE
    +NOTIMEFREEZE
    //+NOFEAR
    MinMissileChance 0
    States
    {
    Spawn:
	TNT1 A 1 A_Look
	Loop
    See:
	TNT1 A 1 A_Chase
	Loop
    Missile:
	TNT1 A 0 A_JumpIfInTargetInventory("ForceCubeTimerRight",1,2)
	TNT1 A 0 A_Jump(256,"Death")
	TNT1 A 0 A_JumpIfInventory("ForceCubeTimer2",2100,"Death")
	TNT1 A 0 A_GiveInventory("ForceCubeTimer2",1)
	TNT1 A 1 A_GiveToTarget("ForceCube2Right",1)
	Loop
    Death:
	TNT1 A 0 A_TakeFromTarget("ForceCubeTimerRight",1)
	Stop
    }
}

ACTOR ForceCubeGiverLeft
{
    Health 1000000000
    Radius 0
    Height 0
    Speed 0
    +NONSHOOTABLE
    +MISSILEMORE
    +MISSILEEVENMORE
    +NOTIMEFREEZE
    //+NOFEAR
    MinMissileChance 0
    States
    {
    Spawn:
	TNT1 A 1 A_Look
	Loop
    See:
	TNT1 A 1 A_Chase
	Loop
    Missile:
	TNT1 A 0 A_JumpIfInTargetInventory("ForceCubeTimerLeft",1,2)
	TNT1 A 0 A_Jump(256,"Death")
	TNT1 A 0 A_JumpIfInventory("ForceCubeTimer2",2100,"Death")
	TNT1 A 0 A_GiveInventory("ForceCubeTimer2",1)
	TNT1 A 1 A_GiveToTarget("ForceCube2Left",1)
	Loop
    Death:
	TNT1 A 0 A_TakeFromTarget("ForceCubeTimerLeft",1)
	Stop
    }
}

ACTOR RightCube
{
    Radius 0
    Height 0
    Speed 0
    Scale 0.1
    +FRIENDLY
    +NOGRAVITY
    +NOTIMEFREEZE
    +MISSILEMORE
    +MISSILEEVENMORE
    //+NOFEAR
	+NOTARGET
	Species "Player"
	+DONTHURTSPECIES
    MinMissileChance 0
    States
    {
    Spawn:
	FCB2 AA 0 A_AlertMonsters
	FCB2 A 1 A_LookEx(2,0,800,0,135,"See")
	Stop
    See:
	FCB2 A 1 A_CustomMissile("ForceCubeLaser",6,16,0)
	TNT1 A 0 A_PlaySound("forcecube/fire")
	Stop
    }
}

ACTOR LeftCube
{
    Radius 0
    Height 0
    Speed 0
    Scale 0.1
    +FRIENDLY
    +NOGRAVITY
    +NOTIMEFREEZE
    +MISSILEMORE
    +MISSILEEVENMORE
    //+NOFEAR
	+NOTARGET
	Species "Player"
	+DONTHURTSPECIES
    MinMissileChance 0
    States
    {
    Spawn:
	FCB2 AA 0 A_AlertMonsters
	FCB2 A 1 A_LookEx(2,0,800,0,135,"See")
	Stop
    See:
	FCB2 A 1 A_CustomMissile("ForceCubeLaser",6,-16,0)
	TNT1 A 0 A_PlaySound("forcecube/fire")
	Stop
    }
}

ACTOR ForceCubePuff
{
    +NOGRAVITY
    +PUFFONACTORS
    +ALWAYSPUFF
    +BLOODLESSIMPACT
    DamageType "Player"
    States
    {
    Spawn:
	TNT1 A 1
	Stop
    }
}

ACTOR ForceCubeLaser
{
    Speed 40
    Radius 6
    Height 8
    Damage (4+ACS_ExecuteWithResult(912,1,0,0)/4)
	PROJECTILE
    +CANNOTPUSH
    +NODAMAGETHRUST
    +BLOODLESSIMPACT
	+THRUSPECIES
    Species "Player"
    RenderStyle Add
    States
    {
    Spawn:
	TNT1 A 0
    TNT1 A 1 Bright A_SpawnItemEx("ForceCubeLaserTrail",  -(MomX/1.2), -(MomY/1.2), (MomZ/1.2*-1), (MomX/1.2), (MomY/1.2), (MomZ/1.2), 0, 138)
    Loop
	Death:
    TNT1 A 0
    Stop
    }
}

ACTOR ForceCubeLaserTrail
{
    Speed 0
    Radius 1
    Height 1
    Scale 0.9
    //Translation "0:255=%[0.0,0.2,0.2]:[0.0,0.5,0.5]"
	PROJECTILE
	+CLIENTSIDEONLY
    +NOINTERACTION
    //Alpha 0.2
    RenderStyle Add
    States
    {
    Spawn:
	PUF5 A 1
	PUF5 A 1 Bright A_FadeOut(0.05)
	Wait
    Death:
	TNT1 A 1
	Stop
    }
}

ACTOR ClassPack : CustomInventory
{
  +FLOATBOB
		+AUTOACTIVATE
		Inventory.MaxAmount 0
		Inventory.PickupMessage "Mesh Armor"
		Inventory.PickupSound "pickup/armor"
		States 
		{ 
   		Use:
			AMR1 A 0 A_GiveInventory("Strength", 300)
			AMR1 A 0 A_JumpIfInventory("ImACleric", 1, "ClericAbilities")
			AMR1 A 0 A_JumpIfInventory("ImAMage", 1, "MageAbilities")
			AMR1 A 0 A_JumpIfInventory("ImAHunter", 1, "HunterAbilities")
			AMR1 A 0 A_JumpIfInventory("ImAFighter", 1, "FighterAbilities")
			AMR1 A 0 A_JumpIfInventory("ImACleric", 1, "ClericAbilities")
			AMR1 A 0 A_JumpIfInventory("ImAMage", 1, "MageAbilities")
			AMR1 A 0 A_JumpIfInventory("ImAHunter", 1, "HunterAbilities")
      		Stop 
   		} 
}

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

Actor FriendlyInDisguise : BooleanItem {}

Actor NewGreenArmorSpot : RandomSpawner replaces GreenArmor
{
	Game Doom
	Spawnid 68
	Dropitem "Armour1"
	DropItem "Armour2"
	DropItem "Armour3"
	DropItem "Armour4"
	DropItem "Armour5"
	DropItem "Armour6"
	DropItem "Armour7"
	DropItem "Armour8"
}

Actor NewBlueArmorSpot : CustomInventory replaces BlueArmor
{
	Game Doom
	SpawnID 69
	Inventory.RespawnTics 0x7FFFFFFF
	+INVENTORY.QUIET
	+INVENTORY.ALWAYSPICKUP
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("NewGreenArmorSpot")
	TNT1 A 0 A_SpawnItem("NewGreenArmorSpot")
	TNT1 A -1
	Stop
	Pickup:
	TNT1 A 0 A_GiveInventory("DummiestItemEvar")
	Stop
	}
}

Actor NewMegasphereSpot : CustomInventory replaces Megasphere
{
	Game Doom
	SpawnID 132
	Inventory.RespawnTics 0x7FFFFFFF
	+INVENTORY.QUIET
	+INVENTORY.ALWAYSPICKUP
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("NewGreenArmorSpot")
	TNT1 A 0 A_SpawnItem("NewGreenArmorSpot")
	TNT1 A 0 A_SpawnItem("NewSoulSphereSpot")
	TNT1 A -1
	Stop
	Pickup:
	TNT1 A 0 A_GiveInventory("DummiestItemEvar")
	Stop
	}
}

ACTOR AntiRadiationBoots : PowerupGiver replaces RadSuit
{
  Game Doom
  SpawnID 136
  +FLOATBOB
  +COUNTITEM
  +INVENTORY.PICKUPFLASH
  Inventory.Icon ARADZ0
  Inventory.PickupMessage "ANTI RADIATION BOOTS"
  Tag "Anti Radiation Boots"
  Powerup.Type AntiRadiation
  States
  {
  Spawn:
    ARAD ABCDEFGH 3 Bright
    Loop
  }
}

Actor PowerAntiRadiation : PowerIronFeet
{
	Powerup.Duration -60
	Powerup.Color 0,0,0,0
	Inventory.Icon ARBOOT0
}

//Doom Weapon Replacing
Actor NewShotgunSpot : CustomInventory replaces Shotgun
{
	Game Doom
	SpawnID 27
	Inventory.RespawnTics 0x7FFFFFFF
	+INVENTORY.QUIET
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("SerpentStaffRGiver")
	TNT1 A 0 A_SpawnItem("EnchantedBowRGiver")
	TNT1 A 0 A_SpawnItem("Timon'sAxeRGiver")
	TNT1 A 0 A_SpawnItem("FrostShardRGiver")
	TNT1 A -1
	Stop
	Pickup:
	TNT1 A 0 A_GiveInventory("DummiestItemEvar")
	Stop
	}
}

Actor NewSuperShotgunSpot : CustomInventory replaces SuperShotgun
{
	Game Doom
	SpawnID 33
	Inventory.RespawnTics 0x7FFFFFFF
	+INVENTORY.QUIET
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("SerpentStaffRGiver")
	TNT1 A 0 A_SpawnItem("EnchantedBowRGiver")
	TNT1 A 0 A_SpawnItem("Timon'sAxeRGiver")
	TNT1 A 0 A_SpawnItem("FrostShardRGiver")
	TNT1 A -1
	Stop
	Pickup:
	TNT1 A 0 A_GiveInventory("DummiestItemEvar")
	Stop
	}
}

Actor Timon'sAxeRGiver : Randomspawner
{
	DropItem "TimonAxeGiver"
}

Actor FrostShardRGiver : Randomspawner
{
	DropItem "FrostShardsGiver"
}

Actor NewChaingunSpot : CustomInventory replaces Chaingun //Mana1(2)
{
	Game Doom
	SpawnID 28
	Inventory.RespawnTics 0x7FFFFFFF
	+INVENTORY.QUIET
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("MorningStarRGiver")
	TNT1 A 0 A_SpawnItem("GlacialCrossbowRGiver")
	TNT1 A 0 A_SpawnItem("DragonClawRGiver")
	TNT1 A 0 A_SpawnItem("JadeWandRGiver")
	TNT1 A -1
	Stop
	Pickup:
	TNT1 A 0 A_GiveInventory("DummiestItemEvar")
	Stop
	}
}

Actor DragonClawRGiver : Randomspawner
{
	DropItem "DragonClawGiver"
}

Actor JadeWandRGiver : Randomspawner
{
	DropItem "JadeWandGiver"
}

Actor NewRocketLauncherSpot : CustomInventory replaces RocketLauncher //Mana2(1)
{
	Game Doom
	SpawnID 29
	Inventory.RespawnTics 0x7FFFFFFF
	+INVENTORY.QUIET
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("FirestormRGiver")
	TNT1 A 0 A_SpawnItem("EtherealCrossbowRGiver")
	TNT1 A 0 A_SpawnItem("HammerOfRetributionRGiver")
	TNT1 A 0 A_SpawnItem("ArcOfDeathRGiver")
	TNT1 A -1
	Stop
	Pickup:
	TNT1 A 0 A_GiveInventory("DummiestItemEvar")
	Stop
	}
}

Actor HammerOfRetributionRGiver : Randomspawner
{
	DropItem "HammerOfRetributionGiver"
}

Actor ArcOfDeathRGiver : Randomspawner
{
	DropItem "ArcOfDeathGiver"
}

Actor NewPlasmaRifleSpot : CustomInventory replaces PlasmaRifle //Mana2(2)
{
	Game Doom
	SpawnID 30
	Inventory.RespawnTics 0x7FFFFFFF
	+INVENTORY.QUIET
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("LightbringerRGiver")
	TNT1 A 0 A_SpawnItem("BlunderbussRGiver")
	TNT1 A 0 A_SpawnItem("VorpalBladeRGiver")
	TNT1 A 0 A_SpawnItem("SkullstaffRGiver")
	TNT1 A -1
	Stop
	Pickup:
	TNT1 A 0 A_GiveInventory("DummiestItemEvar")
	Stop
	}
}

Actor VorpalBladeRGiver : Randomspawner
{
	DropItem "VorpalBladeGiver"
}

Actor SkullstaffRGiver : Randomspawner
{
	DropItem "SkullstaffGiver"
}

Actor NewBFG9000Spot : CustomInventory replaces BFG9000 //Ultimates
{
	Game Doom
	SpawnID 31
	Inventory.RespawnTics 0x7FFFFFFF
	+INVENTORY.QUIET
	States
	{
	Spawn:
	TNT1 A 0
	TNT1 A 0 A_SpawnItem("WraithVergeRGiver")
	TNT1 A 0 A_SpawnItem("HFCannonRGiver")
	TNT1 A 0 A_SpawnItem("QuietusRGiver")
	TNT1 A 0 A_SpawnItem("BloodScourgeRGiver")
	TNT1 A -1
	Stop
	Pickup:
	TNT1 A 0 A_GiveInventory("DummiestItemEvar")
	Stop
	}
}

Actor QuietusRGiver : Randomspawner
{
	DropItem "QuietusGiver"
}

Actor BloodScourgeRGiver : Randomspawner
{
	DropItem "BloodScourgeGiver"
}

ACTOR MapScroll : MapRevealer replaces Allmap
{
  Game Doom
  SpawnID 137
  +COUNTITEM
  +INVENTORY.ALWAYSPICKUP
  +FLOATBOB
  Inventory.MaxAmount 0
  Inventory.PickupMessage "MAP SCROLL"
  States
  {
  Spawn:
    SPMP A -1
    Stop
  }
}
