// --------------------------------------------------------------------------
//
//	Health and armor
//
// --------------------------------------------------------------------------

Actor U_HealthBonus : Health Replaces HealthPlus
{
	Game Doom
	SpawnID 152
	Inventory.Amount 2
	Inventory.MaxAmount 300
	Inventory.PickupMessage "$GOTHTHBONUS" // "Picked up a health bonus."
	+COUNTITEM
	+INVENTORY.ALWAYSPICKUP
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("BDCheckDecorations")
		TNT1 A 0 A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12)
	Stand:
		BON1 ABCDEFGFEDCB 3 A_SpawnItem("BlueFlareSmall",0,7)
		Loop
	Vanilla:
		BON1 ABCDEFGFEDCB 3
		Loop
	}
}

Actor U_ArmorBonus : BasicArmorBonus Replaces ArmorShard
{
	Game Doom
	SpawnID 22
	Radius 20
	Height 16
	Inventory.Pickupmessage "$GOTARMBONUS" // "Picked up an armor bonus."
	Inventory.Icon "BON2A0"
	Armor.Savepercent 50
	Armor.Saveamount 2
	Armor.Maxsaveamount 300
	+COUNTITEM
	+INVENTORY.ALWAYSPICKUP
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256,1,2,3,4,5,6,7,8,9,10,11,12)
	Stand:
		BON2 AAAABCDEFGEC 3
		Loop
	}
}

Actor U_SoulSphere : CustomInventory Replaces SoulSphere
{
	+FLOATBOB
	+COUNTITEM
	+INVENTORY.ALWAYSPICKUP
	Inventory.PickupMessage "Picked up a soulsphere."
	Inventory.PickupSound "misc/p_pkup"
	States
	{
	Spawn:
		ZOUL ABCDEFGFEDCB 3 Bright A_SpawnItem("SoulFlare",0,20)
		Loop
	Pickup:
		TNT1 A 0 A_GiveInventory("SoulSphereHealth",1)
		Stop
	}
}

Actor SoulFlare : Flare_General
{
	Alpha 0.3
	Scale 0.35
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		LENB A 3 Bright
		Stop
		TNT1 A 0
		LENB B 3 Bright
		Stop
	}
}

Actor U_Megasphere : CustomInventory Replaces Megasphere
{
	+FLOATBOB
	+COUNTITEM
	+INVENTORY.ALWAYSPICKUP
	Inventory.PickupMessage "Picked up a megasphere."
	Inventory.PickupSound "misc/p_pkup"
	States
	{
	Spawn:
		SMEG ABCDEFGFEDCB 3 BRIGHT A_SpawnItem("MegaFlare",0,25)
		Loop
	Pickup:
		TNT1 A 0 A_GiveInventory("BlueArmorForMegasphere",1)
		TNT1 AA 0 A_GiveInventory("SoulSphereHealth",1)
		Stop
	}
}

Actor MegaFlare : Flare_General
{
	Alpha 0.45
	Scale 0.4
	States
	{
	Spawn:
		LENS A 3 Bright
		Stop
	}
}


// --------------------------------------------------------------------------
//
//	Invulnerability
//
// --------------------------------------------------------------------------

Actor U_InvulnerabilitySphere : PowerupGiver Replaces InvulnerabilitySphere
{
	+COUNTITEM
	+FLOATBOB
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	+INVENTORY.BIGPOWERUP
	Inventory.MaxAmount 0
	Powerup.Type Invulnerable
	Powerup.Colormap 0.05,0.0,0.0,0.9,1.0,0.9
	Inventory.PickupMessage "$GOTINVUL"
	States
	{
	Spawn:
		NVUL ABCDEFEDCB 3 Bright A_SpawnItem("InvulnerabilityFlare",0,20)
		Loop
	}
}

Actor InvulnerabilityFlare : Flare_General
{
	Alpha 0.2
	Scale 0.35
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		LENG A 3 Bright
		Stop
		TNT1 A 0
		LENG B 3 Bright
		Stop
	}
}


// --------------------------------------------------------------------------
//
//	Invisibility
//
// --------------------------------------------------------------------------

Actor U_BlurSphere : CustomInventory Replaces SuperBlurSphere
{
	+FLOATBOB
	+COUNTITEM
	+VISIBILITYPULSE
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	+INVENTORY.BIGPOWERUP
	RenderStyle Translucent
	Inventory.PickupMessage "$GOTINVIS" // "Partial Invisibility"
	States
	{
	Spawn:
		NVIS ABCDEFGFEDCB 3 Bright// A_SpawnItem("RedFlare",0,24)
		Loop
	Pickup:
		TNT1 A 1
		TNT1 A 0 A_GiveInventory("IsInvisible",1)
		TNT1 A 0 A_GiveInventory("Blursphere",1)
		TNT1 A 0 ACS_ExecuteAlways(397,0,0,0,0)
		TNT1 A 1
		Stop
	}
}


// --------------------------------------------------------------------------
//
//	Light amplification
//
// --------------------------------------------------------------------------

Actor U_Infrared : CustomInventory Replaces InfraRed
{
	+COUNTITEM
	+INVENTORY.ALWAYSPICKUP
	Inventory.PickupMessage "You got the Light Amplification Visor."
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("DemonRuneCheck")
		TNT1 A 4
		TNT1 A 0 A_Jump(128,"Cancels")
		TNT1 A 0 A_SpawnItem("DemonRuneMix")
		Stop
	Cancels:
		SVIS E 7
		SVIS D 3 A_SpawnItem("RedFlareVerySmall",0,10)
		SVIS C 2 A_SpawnItem("RedFlareVerySmall",0,10)
		SVIS BAB 1 A_SpawnItem("RedFlareVerySmall",0,10)
		SVIS C 2 A_SpawnItem("RedFlareVerySmall",0,10)
		SVIS D 3 A_SpawnItem("RedFlareVerySmall",0,10)
		Loop
	Pickup:
		TNT1 A 1
		TNT1 A 0 A_GiveInventory("HasInfrared",1)
		TNT1 A 0 A_GiveInventory("U_Infrared2",1)
		TNT1 A 0 ACS_ExecuteAlways(398,0,0,0,0)
		TNT1 A 1
		Stop
	}
}

Actor U_Infrared2 : PowerupGiver
{
	+COUNTITEM
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	Inventory.MaxAmount 0
	Powerup.Type PowerTorch
	Powerup.Duration 4200
}


// --------------------------------------------------------------------------
//
//	Area map
//
// --------------------------------------------------------------------------

Actor U_Allmap : Allmap
{
	States
	{
	Spawn:
		CMAP ABCDEFGH 3
		Loop
	}
}


// --------------------------------------------------------------------------
//
//	Demon rune
//
// --------------------------------------------------------------------------

Actor U_DemonRuneMix: DemonRuneMix replaces DemonRuneMix
{
	+COUNTITEM
	+FLOATBOB
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_NamedExecuteAlways("DemonRuneCheck")
		TNT1 A 4
	Live:	
		DMRU ABCDEFGH 2 Bright A_SpawnItem("RedFlareMedium",0,20)
		Loop
	Cancels:
		TNT1 A 0 A_SpawnItemEx("DemonStrengthRune",0,0,10,5,0,7,random(0,360))
		Stop
	}
}


// --------------------------------------------------------------------------
//
//	Bloodrush
//
// --------------------------------------------------------------------------

Actor BloodrushSphere : CustomInventory
{
	+FLOATBOB
	+COUNTITEM
	+INVENTORY.ALWAYSPICKUP
	Inventory.PickupMessage "Bloodrush!"
	Inventory.PickupSound "misc/p_pkup"
	States
	{
	Spawn:
		BLRU ABCDEFGFEDCB 3 Bright A_SpawnItem("BloodFlare",0,20)
		Loop
	Pickup:
		TNT1 A 0 A_GiveInventory("BloodrushRegen",1)
		TNT1 A 0 A_GiveInventory("PowerSphere1",1)
		Stop
	}
}

Actor BloodrushRegen : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	Powerup.Duration 3150
	Powerup.Type "Regeneration"
	Powerup.Strength 2
}

Actor PowerSphere1 : PowerupGiver //Gives to the player from Bloodrush Sphere
{
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	Powerup.Color Red 0.1
	Powerup.Duration 3150
	Powerup.Type "WeaponLevel2"
}

Actor PowerSphere2 : PowerupGiver //Gives to the player when normal dual wielding
{
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	Powerup.Duration -600
	Powerup.Type "WeaponLevel2"
}

Actor BloodFlare : Flare_General
{
	Alpha 0.2
	Scale 0.35
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		LENR A 3 Bright
		Stop
		TNT1 A 0
		LENR B 3 Bright
		Stop
	}
}


// --------------------------------------------------------------------------
//
//	Enviromental protection
//
// --------------------------------------------------------------------------

Actor U_RadSuit : CustomInventory Replaces RadSuit
{
	+FLOATBOB
	+COUNTITEM
	+INVENTORY.ALWAYSPICKUP
	Inventory.PickupMessage "Enviromental protection."
	Inventory.PickupSound "misc/p_pkup"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1020,0)==0,"Spawn2")
	Spawn1:
		TNT1 A 0
		RADO ABCDEFGFEDCB 3 Bright A_SpawnItem("RadFlare",0,20)
		Loop
	Spawn2:
		TNT1 A 0 A_ChangeFlag("FLOATBOB",0)
		SUIT A -1 Bright
		Stop
	Pickup:
		TNT1 A 0 A_GiveInventory("FloorProtection",1)
		TNT1 A 0 A_GiveInventory("FireProtection",1)
		Stop
	}
}

Actor FloorProtection : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	Inventory.MaxAmount 0
	Powerup.Color Gold 0.1
	Powerup.Type IronFeet
	Powerup.Duration 2100
	States
	{
	Spawn:
		TNT1 A 1
		Loop
	}
}

Actor FireProtection : PowerupGiver
{
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	Inventory.MaxAmount 0
	Powerup.Type FireProt
	Powerup.Duration 2100
	States
	{
	Spawn:
		TNT1 A 1
		Loop
	}
}

Actor PowerFireProt : PowerProtection
{
	DamageFactor "Fire",0.1
	DamageFactor "Burn",0.1
	DamageFactor "Flames",0.1
	DamageFactor "FallInLava",0.1
	DamageFactor "GreenFire",0.5
}

Actor RadFlare : Flare_General
{
	Alpha 0.2
	Scale 0.35
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(128,2)
		LENY A 3 Bright
		Stop
		TNT1 A 0
		LENY B 3 Bright
		Stop
	}
}