// ===========================
// ARMOR ITEMS

actor FireArmor : InventoryItem {
	+NOGRAVITY +NOCLIP
	tag "Fire Proof Armor"
	inventory.pickupmessage "Picked up fireproof armor!"
	inventory.pickupsound "misc/armor_pkup"
	inventory.icon "arm3icon"
	inventory.maxamount 1
	renderstyle Translucent
	alpha 0.0
	
	states {
	Use:
		TNT1 A 0 A_JumpIfInventory ("IsMech", 1, "Use.Mech")
		TNT1 A 0 A_JumpIfInventory ("PowerBerserk", 1, "Failure")
		TNT1 A 0 A_JumpIfInventory ("IsChangingArmor", 1, "Failure")
		TNT1 A 0 A_JumpIfInventory ("PowerFireProof", 1, "Failure")
		TNT1 A 0 ACS_ExecuteAlways (920, 0, ARMOD_FIRE)
		stop
	Spawn:
		ARM3 A 0
		goto Init
	Init:
		"----" AAAAAAAAAA 3 A_FadeIn (0.1)
		"----" A 0 A_ChangeFlag("NOCLIP",0)
		"----" A 0 A_SetTranslucent (1.0, 0)
		"----" A 0 A_Gravity
		goto Idle
	Idle:
		ARM3 A 6 BRIGHT
		ARM3 B 6
		loop
	}
}

actor ChemicalArmor : FireArmor {
	tag "Chemical Proof Armor"
	inventory.pickupmessage "Picked up chemproof armor!"
	inventory.icon "arm1icon"
	states {
	Use:
		TNT1 A 0 A_JumpIfInventory ("IsMech", 1, "Use.Mech")
		TNT1 A 0 A_JumpIfInventory ("PowerBerserk", 1, "Failure")
		TNT1 A 0 A_JumpIfInventory ("IsChangingArmor", 1, "Failure")
		TNT1 A 0 A_JumpIfInventory ("PowerChemicalProof", 1, "Failure")
		TNT1 A 0 ACS_ExecuteAlways (920, 0, ARMOD_CHEM)
		stop
	Spawn:
		ARM1 A 0
		goto Init
	Init:
		"----" AAAAAAAAAA 3 A_FadeIn (0.1)
		"----" A 0 A_ChangeFlag("NOCLIP",0)
		"----" A 0 A_SetTranslucent (1.0, 0)
		"----" A 0 A_Gravity
		goto Idle
	Idle:
		ARM1 A 6 BRIGHT
		ARM1 B 6
		loop
	}
}

actor EnergyArmor : FireArmor {
	tag "Energy-Resistant Armor"
	inventory.pickupmessage "Picked up energy-resistant armor!"
	inventory.icon "arm2icon"
	states {
	Use:
		TNT1 A 0 A_JumpIfInventory ("IsMech", 1, "Use.Mech")
		TNT1 A 0 A_JumpIfInventory ("PowerBerserk", 1, "Failure")
		TNT1 A 0 A_JumpIfInventory ("IsChangingArmor", 1, "Failure")
		TNT1 A 0 A_JumpIfInventory ("PowerEnergyResistance", 1, "Failure")
		TNT1 A 0 ACS_ExecuteAlways (920, 0, ARMOD_LASER)
		stop
	Spawn:
		ARM2 A 0
		goto Init
	Idle:
		ARM2 A 6 BRIGHT
		ARM2 B 6
		loop
	}
}

// MY ARMOR IS EXPLOSIONS
// RUN
actor ExplosionArmor : FireArmor {
	tag "Explosive-Resistant Armor"
	inventory.pickupmessage "Picked up explosive-resistant armor!"
	inventory.icon "arm4icon"
	states {
	Use:
		TNT1 A 0 A_JumpIfInventory ("IsMech", 1, "Use.Mech")
		TNT1 A 0 A_JumpIfInventory ("PowerBerserk", 1, "Failure")
		TNT1 A 0 A_JumpIfInventory ("IsChangingArmor", 1, "Failure")
		TNT1 A 0 A_JumpIfInventory ("PowerExplosiveResistance", 1, "Failure")
		TNT1 A 0 ACS_ExecuteAlways (920, 0, ARMOD_EXPLO)
		stop
	Spawn:
		ARM4 A 0
		goto Init
	Idle:
		ARM4 A 6 BRIGHT
		ARM4 B 6
		loop
	}
}

// and now my armor is made of bullets fyi
actor BulletArmor : FireArmor {
	tag "Bulletproof Vest"
	inventory.pickupmessage "Picked up a bulletproof vest!"
	inventory.icon "arm5icon"
	states {
	Use:
		TNT1 A 0 A_JumpIfInventory ("IsMech", 1, "Use.Mech")
		TNT1 A 0 A_JumpIfInventory ("PowerBerserk", 1, "Failure")
		TNT1 A 0 A_JumpIfInventory ("IsChangingArmor", 1, "Failure")
		TNT1 A 0 A_JumpIfInventory ("PowerBulletResistance", 1, "Failure")
		TNT1 A 0 ACS_ExecuteAlways (920, 0, ARMOD_BULLET)
		stop
	Spawn:
		ARM5 A 0
		goto Init
	Idle:
		ARM5 A 6 BRIGHT
		ARM5 B 6
		loop
	}
}

actor IsChangingArmor : Inventory {}
actor ArmorChangeProgress : Inventory {inventory.maxamount 175}