Actor NewArmorBonus : CustomInventory replaces ArmorBonus {
	Radius 20
	Height 16
	Renderstyle Translucent
	inventory.pickupmessage "\ccArmor pickup  : \c[Y5]Armor Bonus x 1\c-"
	inventory.pickupsound "items/armorbonus"
	+COUNTITEM
	States {
		Spawn:
			BON2 ABCDCB 4
		Loop
		Pickup:
			TNT1 A 0 ACS_NamedExecuteAlways("DnD Give Energy Shield", 0, 1)
		Stop
		Failed:
			TNT1 A 0
		Stop
	}
}

Actor NecroSpikeShooter : DnD_Activator {
	States {
		Use:
			TNT1 A 0 A_SpawnItemEx("NecroSpikeSpawner", 0, 0, 32, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		Stop
	}
}

Actor NecroSpikeCooldown : PowerProtection {
	damagefactor "normal", 1.0
	powerup.duration 17
}

Actor NecroSpikeSpawner {
	Height 1
	Radius 1
	Speed 0
	+THRUACTORS
	+MISSILE
	+NOGRAVITY
	States {
		Spawn:
			TNT1 A 0
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 0, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 10, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 20, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 30, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 40, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 50, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 60, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 70, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 80, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 90, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 100, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 110, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 120, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 130, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 140, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 150, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 160, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 170, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 180, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 190, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 200, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 210, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 220, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 230, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 240, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 250, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 260, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 270, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 280, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 290, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 300, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 310, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 320, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 330, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 340, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 0 A_CustomMissile("NecroSpike", 0, 0, 350, CMF_TRACKOWNER | CMF_AIMDIRECTION)
			TNT1 A 1
		Stop
	}
}

Actor NecroSpike : DnD_BaseProjectile {
	Speed 32
	Radius 6
	Height 12
	SeeSound "Armors/NecroShard"
	DeathSound "Armors/NecroShardHit"
	Species "Player"
	+THRUSPECIES
	+FOILINVUL
	+DONTREFLECT
	States {
		SpawnState:
			WBON A 1
		Loop
		XDeath:
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Do Impact Damage", ACS_NamedExecuteWithResult("DND Player Damage Scale", 8 * random(6, 8), DND_DAMAGECATEGORY_OCCULT, DND_USETARGET | DND_ISMELEE), DND_DAMAGETYPE_OCCULT, 0, -1)
		Death:
			TNT1 AAA 0 A_CustomMissile("FireballSmoke", 0, 0, random(0,360), 2, random(0,360))
			HHPF ABCDEF 3
		Stop
	}
}

Actor CyberneticEffect : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_SpawnItem("CyberneticEffectSpawner")
			TNT1 A 0 A_SetBlend("24 36 90", 0.3, 15)
		Stop
	}
}

Actor RavagerPower : PowerDamage {
	damagefactor "normal", 1.0
	powerup.duration -4
}

Actor RavagerEffect : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_SpawnItem("DarkHealEffectSpawner")
			TNT1 A 0 A_SetBlend("72 24 24", 0.3, 15)
		Stop
	}
}

Actor LightningCoilShooter : DnD_Activator {
	States {
		Use:
			TNT1 A 0 A_FireCustomMissile("LightningCoilBolt", 0, 0, 32)
		Stop
	}
}

Actor LightningCoilBolt : DnD_BaseProjectile {
	Speed 50
	Radius 8
	Height 16
	SeeSound "Spell/LightningSpearCast"
	DeathSound "Spell/LightningSpearBounce"
	Species "Player"
	const float r = 12.0;
	const float v = 2.0;
	+THRUSPECIES
	+FOILINVUL
	+DONTREFLECT
	+SEEKERMISSILE
	States {
		SpawnState:
			UP25 A 1 Bright Light("AbaxothLightning1") A_SpawnItemEx("AbaxothThunderSparkle", frandom(-r, r), frandom(-r, r), frandom(-r, r), frandom(-v, v), frandom(-v, v), frandom(-v, v))
			TNT1 A 0 A_SeekerMissile(90, 90, SMF_LOOK)
			UP25 A 1 Bright Light("AbaxothLightning1") A_SpawnItemEx("AbaxothThunderSparkle", frandom(-r, r), frandom(-r, r), frandom(-r, r), frandom(-v, v), frandom(-v, v), frandom(-v, v))
			TNT1 A 0 A_SeekerMissile(90, 90, SMF_LOOK)
			UP25 A 1 Bright Light("AbaxothLightning1") A_SpawnItemEx("AbaxothThunderSparkle", frandom(-r, r), frandom(-r, r), frandom(-r, r), frandom(-v, v), frandom(-v, v), frandom(-v, v))
			TNT1 A 0 A_SpawnItemEx("AbaxothThunderbolt_TrailA", -20)
			TNT1 A 0 A_SpawnItemEx("AbaxothThunderbolt_TrailA", -40)
			TNT1 A 0 A_SeekerMissile(90, 90, SMF_LOOK)
			UP25 B 1 Bright Light("AbaxothLightning1") A_SpawnItemEx("AbaxothThunderSparkle", frandom(-r, r), frandom(-r, r), frandom(-r, r), frandom(-v, v), frandom(-v, v), frandom(-v, v))
			TNT1 A 0 A_SeekerMissile(90, 90, SMF_LOOK)
			UP25 B 1 Bright Light("AbaxothLightning1") A_SpawnItemEx("AbaxothThunderSparkle", frandom(-r, r), frandom(-r, r), frandom(-r, r), frandom(-v, v), frandom(-v, v), frandom(-v, v))
			TNT1 A 0 A_SeekerMissile(90, 90, SMF_LOOK)
			UP25 B 1 Bright Light("AbaxothLightning1") A_SpawnItemEx("AbaxothThunderSparkle", frandom(-r, r), frandom(-r, r), frandom(-r, r), frandom(-v, v), frandom(-v, v), frandom(-v, v))
			TNT1 A 0 A_SpawnItemEx("AbaxothThunderbolt_TrailB", -20)
			TNT1 A 0 A_SpawnItemEx("AbaxothThunderbolt_TrailB", -40)
			TNT1 A 0 A_SeekerMissile(90, 90, SMF_LOOK)
			UP25 C 1 Bright Light("AbaxothLightning1") A_SpawnItemEx("AbaxothThunderSparkle", frandom(-r, r), frandom(-r, r), frandom(-r, r), frandom(-v, v), frandom(-v, v), frandom(-v, v))
			TNT1 A 0 A_SeekerMissile(90, 90, SMF_LOOK)
			UP25 C 1 Bright Light("AbaxothLightning1") A_SpawnItemEx("AbaxothThunderSparkle", frandom(-r, r), frandom(-r, r), frandom(-r, r), frandom(-v, v), frandom(-v, v), frandom(-v, v))
			TNT1 A 0 A_SeekerMissile(90, 90, SMF_LOOK)
			UP25 C 1 Bright Light("AbaxothLightning1") A_SpawnItemEx("AbaxothThunderSparkle", frandom(-r, r), frandom(-r, r), frandom(-r, r), frandom(-v, v), frandom(-v, v), frandom(-v, v))
			TNT1 A 0 A_SpawnItemEx("AbaxothThunderbolt_TrailC", -20)
			TNT1 A 0 A_SpawnItemEx("AbaxothThunderbolt_TrailC", -40)
		Loop
		XDeath:
			TNT1 A 0 ACS_NamedExecuteWithResult("DnD Do Impact Damage", ACS_NamedExecuteWithResult("DND Player Damage Scale", 300, DND_DAMAGECATEGORY_LIGHTNING, DND_USETARGET), DND_DAMAGETYPE_LIGHTNING, 0, -1)
		Death:
			MORZ AAA 1 Light("AbaxothLightning2") A_SetScale(scalex - 0.06, scaley - 0.06)
			MORZ BBB 1 Light("AbaxothLightning2") A_SetScale(scalex - 0.06, scaley - 0.06)
			MORZ CCC 1 Light("AbaxothLightning2") A_SetScale(scalex - 0.06, scaley - 0.06)
			MORZ DDD 1 Light("AbaxothLightning2") A_SetScale(scalex - 0.06, scaley - 0.06)
			MORZ EEE 1 Light("AbaxothLightning2") A_SetScale(scalex - 0.06, scaley - 0.06)
		Stop
	}
}

Actor LightningCoilCooldown : PowerProtection {
	damagefactor "normal", 1.0
	powerup.duration 70
}

// This is the counter used to know the player's armor
Actor EShieldCharging : DnD_Boolean { }

Actor EShieldChargeNow : DnD_Boolean { }

Actor EShieldBlend : DnD_Activator {
	States {
		Pickup:
			TNT1 A 0 A_SetBlend("50 50 99", 0.45, 18)
		Stop
	}
}

Actor EShieldAmount : Ammo {
	inventory.maxamount 0x7FFFFFFF
	inventory.amount 1
	ammo.backpackamount 0
	ammo.backpackmaxamount 0
	+IGNORESKILL
}

// this is used to display it on statusbarinfo
Actor EShieldAmountVisual : Ammo {
	inventory.maxamount 100
	inventory.amount 1
	ammo.backpackamount 0
	ammo.backpackmaxamount 0
	+IGNORESKILL
}

Actor ArmorSoundPlayer : CustomInventory {
	States {
		Pickup:
			TNT1 A 0 A_PlaySound("Items/Armor")
			TNT1 A 0 A_SetBlend("25 99 25", 0.6, 17)
		Stop
	}
}

Actor ArmorDrop : InventoryBase {
	Renderstyle Translucent
	Alpha 1.0
	States {
		PickupSuccess:
			TNT1 A 8 ACS_NamedExecuteAlways("DnD Armor Item Pickup", 0, mass - 1)
		stop
	}
}

// these have 3 second spawn times because... we want to ensure they spawn the thing at their location and not "0,0" default in case they expired by the time the script can finally run!
Actor ArmorDropper replaces GreenArmor {
	+NOINTERACTION
	States {
		Spawn:
			TNT1 A 0
			TNT1 A -1 ACS_NamedExecuteAlways("DnD Drop Random Basic Armor", 0, 1)
		Stop
	}
}

Actor ArmorDropper_HighTier replaces BlueArmor {
	+NOINTERACTION
	States {
		Spawn:
			TNT1 A 0
			TNT1 A -1 ACS_NamedExecuteAlways("DnD Drop Random Basic Armor", 0, 2)
		Stop
	}
}

/*
		ARMOR ACTORS
*/

Actor ArmorDrop_0 : ArmorDrop {
	States {
		Spawn:
			ARM1 A 0
		Goto SpawnInit
	
		SpawnLoop:
		Idle:
			ARM1 A 1 Light("GREENARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM1 A 1 Light("GREENARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM1 A 1 Light("GREENARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM1 A 1 Light("GREENARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM1 A 1 Light("GREENARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM1 A 1 Light("GREENARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM1 B 1 Light("GREENARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM1 B 1 Light("GREENARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM1 B 1 Light("GREENARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM1 B 1 Light("GREENARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM1 B 1 Light("GREENARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM1 B 1 Light("GREENARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM1 B 1 Light("GREENARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("InvulnerabilitySphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
		Loop
	}
}

Actor ArmorDrop_1 : ArmorDrop {
	States {
		Spawn:
			ARM3 A 0
		Goto SpawnInit
	
		SpawnLoop:
		Idle:
			ARM3 A 1 Light("YELLOWARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM3 A 1 Light("YELLOWARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM3 A 1 Light("YELLOWARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM3 A 1 Light("YELLOWARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM3 A 1 Light("YELLOWARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM3 A 1 Light("YELLOWARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM3 B 1 Light("YELLOWARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM3 B 1 Light("YELLOWARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM3 B 1 Light("YELLOWARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM3 B 1 Light("YELLOWARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM3 B 1 Light("YELLOWARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM3 B 1 Light("YELLOWARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM3 B 1 Light("YELLOWARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("EvilSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
		Loop
	}
}

Actor ArmorDrop_2 : ArmorDrop {
	States {
		Spawn:
			ARM2 A 0
		Goto SpawnInit
	
		SpawnLoop:
		Idle:
			ARM2 A 1 Light("BLUEARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM2 A 1 Light("BLUEARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM2 A 1 Light("BLUEARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM2 A 1 Light("BLUEARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM2 A 1 Light("BLUEARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM2 A 1 Light("BLUEARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM2 B 1 Light("BLUEARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM2 B 1 Light("BLUEARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM2 B 1 Light("BLUEARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM2 B 1 Light("BLUEARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM2 B 1 Light("BLUEARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM2 B 1 Light("BLUEARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			ARM2 B 1 Light("BLUEARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("SoulSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
		Loop
	}
}

Actor ArmorDrop_3 : ArmorDrop {
	States {
		Spawn:
			QRAR A 0
		Goto SpawnInit
	
		SpawnLoop:
		Idle:
			QRAR A 1 Light("THEREDARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			QRAR A 1 Light("THEREDARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			QRAR A 1 Light("THEREDARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			QRAR A 1 Light("THEREDARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			QRAR A 1 Light("THEREDARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			QRAR A 1 Light("THEREDARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			QRAR B 1 Light("THEREDARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			QRAR B 1 Light("THEREDARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			QRAR B 1 Light("THEREDARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			QRAR B 1 Light("THEREDARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			QRAR B 1 Light("THEREDARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			QRAR B 1 Light("THEREDARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
			QRAR B 1 Light("THEREDARMOR2") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			TNT1 A 0 A_SpawnItemEx("UberSphereFX", random(-32, 32), random(-32, 32), random(0, 8), 0, 0, random(2,8), 0, SXF_CLIENTSIDE, 0)
		Loop
	}
}

Actor ArmorDrop_4 : ArmorDrop {
	States {
		Spawn:
			ARM9 A 0
		Goto SpawnInit
	}
}

Actor ArmorDrop_5 : ArmorDrop {
	States {
		Spawn:
			AR10 A 0
		Goto SpawnInit
	}
}

Actor ArmorDrop_6 : ArmorDrop {
	States {
		Spawn:
			AR11 A 0
		Goto SpawnInit
	}
}

Actor ArmorDrop_7 : ArmorDrop {
	States {
		Spawn:
			AR14 A 0
		Goto SpawnInit
		
		SpawnLoop:
		Idle:
			AR14 AAABBBCCCDDDEEE 1 A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
		Loop
	}
}

Actor ArmorDrop_8 : ArmorDrop {
	States {
		Spawn:
			ARM4 A 0
		Goto SpawnInit
		
		SpawnLoop:
		Idle:
			ARM4 AAAA 1 Light("THEREDARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			ARM4 BBBB 1 Light("THEREDARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			ARM4 CCCC 1 Light("THEREDARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			ARM4 BBBB 1 Light("THEREDARMOR1") Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
		Loop
	}
}

Actor ArmorDrop_9 : ArmorDrop {
	States {
		Spawn:
			AR13 A 0
		Goto SpawnInit
	}
}

Actor ArmorDrop_10 : ArmorDrop {
	States {
		Spawn:
			ARM4 D 0
		Goto SpawnInit
		
		SpawnLoop:
		Idle:
			ARM4 DDDD 1 Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			ARM4 EEEE 1 Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			ARM4 FFFF 1 Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
			ARM4 GGGG 1 Bright A_LookEx(LOF_NOSOUNDCHECK, 0, item_look_dist, 0, 360, "CheckPickup")
		Loop
	}
}

Actor ArmorDrop_11 : ArmorDrop {
	States {
		Spawn:
			ARM5 A 0
		Goto SpawnInit
	}
}

Actor ArmorDrop_12 : ArmorDrop {
	States {
		Spawn:
			ARM6 A 0
		Goto SpawnInit
	}
}

Actor ArmorDrop_13 : ArmorDrop {
	States {
		Spawn:
			ARM7 A 0
		Goto SpawnInit
	}
}

Actor ArmorDrop_14 : ArmorDrop {
	States {
		Spawn:
			ARM8 A 0
		Goto SpawnInit
	}
}

Actor ArmorDrop_15 : ArmorDrop {
	Scale 0.75
	States {
		Spawn:
			AR15 A 0
		Goto SpawnInit
	}
}

Actor ArmorDrop_16 : ArmorDrop {
	Scale 0.75
	States {
		Spawn:
			AR16 A 0
		Goto SpawnInit
	}
}

Actor UniqueArmor_0 : ArmorDrop {
	States {
		Spawn:
			UAR0 A 0
		Goto SpawnInit
	}
}

Actor UniqueArmor_1 : ArmorDrop {
	States {
		Spawn:
			UAR0 B 0
		Goto SpawnInit
	}
}

Actor UniqueArmor_2 : ArmorDrop {
	States {
		Spawn:
			UAR0 C 0
		Goto SpawnInit
	}
}

Actor DaemonicBarrier : Ammo {
	inventory.amount 1
	inventory.maxamount 10
	ammo.backpackmaxamount 10
	ammo.backpackamount 0
	+INVENTORY.IGNORESKILL
}

Actor DaemonicBarrierTimer : PowerDamage {
	damagefactor "normal", 1.0
	powerup.duration -15
}

// BOOTS

Actor BootDrop_0 : ArmorDrop {
	States {
		Spawn:
			BOO0 A 0
		Goto SpawnInit
	}
}

Actor BootDrop_1 : ArmorDrop {
	States {
		Spawn:
			BOO0 B 0
		Goto SpawnInit
	}
}

Actor BootDrop_2 : ArmorDrop {
	States {
		Spawn:
			BOO0 C 0
		Goto SpawnInit
	}
}

Actor BootDrop_3 : ArmorDrop {
	States {
		Spawn:
			BOO0 D 0
		Goto SpawnInit
	}
}

Actor BootDrop_4 : ArmorDrop {
	States {
		Spawn:
			BOO0 E 0
		Goto SpawnInit
	}
}

Actor BootDrop_5 : ArmorDrop {
	States {
		Spawn:
			BOO0 F 0
		Goto SpawnInit
	}
}

Actor BootDrop_6 : ArmorDrop {
	States {
		Spawn:
			BOO0 G 0
		Goto SpawnInit
	}
}

Actor BootDrop_7 : ArmorDrop {
	States {
		Spawn:
			BOO0 H 0
		Goto SpawnInit
	}
}

Actor BootDrop_8 : ArmorDrop {
	States {
		Spawn:
			BOO0 I 0
		Goto SpawnInit
	}
}

Actor BootDrop_9 : ArmorDrop {
	States {
		Spawn:
			BOO0 J 0
		Goto SpawnInit
	}
}

Actor BootDrop_10 : ArmorDrop {
	States {
		Spawn:
			BOO0 K 0
		Goto SpawnInit
	}
}

// HELMS

Actor HelmDrop_0 : ArmorDrop {
	States {
		Spawn:
			HELM A 0
		Goto SpawnInit
	}
}

Actor HelmDrop_1 : ArmorDrop {
	States {
		Spawn:
			HELM B 0
		Goto SpawnInit
	}
}

Actor HelmDrop_2 : ArmorDrop {
	Scale 0.6
	States {
		Spawn:
			HELM C 0
		Goto SpawnInit
	}
}

Actor HelmDrop_3 : ArmorDrop {
	States {
		Spawn:
			HELM D 0
		Goto SpawnInit
	}
}

Actor HelmDrop_4 : ArmorDrop {
	States {
		Spawn:
			HELM E 0
		Goto SpawnInit
	}
}

Actor HelmDrop_5 : ArmorDrop {
	States {
		Spawn:
			HELM F 0
		Goto SpawnInit
	}
}

Actor HelmDrop_6 : ArmorDrop {
	States {
		Spawn:
			HELM G 0
		Goto SpawnInit
	}
}

Actor HelmDrop_7 : ArmorDrop {
	States {
		Spawn:
			HELM H 0
		Goto SpawnInit
	}
}