// =============================================================================
// ARMOR GRADES AND MODIFIERS

/*
	DAMAGEFACTOR TEMPLATE:
	
	DamageFactor "Flash",			1.0
	DamageFactor "Fist",			1.0
	DamageFactor "Knife",			1.0
	DamageFactor "Bullet",			1.0
	DamageFactor "Rifle",			1.0
	DamageFactor "Explosion",		1.0
	DamageFactor "MassDriver",		1.0
	DamageFactor "AntiArmor",		1.0
	DamageFactor "Mine",			1.0
	DamageFactor "Fire",			1.0
	DamageFactor "FireSpecial",		1.0
	DamageFactor "Chemical",		1.0
	DamageFactor "ChemicalSpecial",	1.0
	DamageFactor "Energy",			1.0
	DamageFactor "Plasma",			1.0
	DamageFactor "EnergyDecay",		1.0
	DamageFactor "Ice",				1.0
	DamageFactor "Time",			1.0
	DamageFactor "Suicide",         1.0
	DamageFactor "Superweapon",		1.0
	DamageFactor "Disarm",			1.0
	DamageFactor "Deconstruction",	1.0
	DamageFactor "Mechstomp",		1.0
	DamageFactor "Monster",			1.0

*/

// [SG] Armor grades offer 1% more protection per rank
// Note: Read this grade to understand why few one are commented out.

// =============================================================================
actor PowerGrade1Armor : PowerProtection {
//	DamageFactor "Flash",			1.0 // There's no reason to reduce this damage.
	DamageFactor "Fist",			0.9
	DamageFactor "Knife",			0.9
	DamageFactor "Bullet",			0.9
	DamageFactor "Rifle",			0.9
	DamageFactor "Explosion",		0.9
	DamageFactor "MassDriver",		0.9
	DamageFactor "AntiArmor",		0.9
	DamageFactor "Mine",			0.9
	DamageFactor "Fire",			0.9
	DamageFactor "FireSpecial",		0.9
	DamageFactor "Chemical",		0.9
	DamageFactor "ChemicalSpecial",	0.9
	DamageFactor "Energy",			0.9
	DamageFactor "Plasma",			0.9
	DamageFactor "EnergyDecay",		0.9
	DamageFactor "Ice",				0.9
	DamageFactor "Time",			1.0
//	DamageFactor "Suicide",         1.0 // Ditto.
//	DamageFactor "Superweapon",		1.0	// Ditto.
//	DamageFactor "Disarm",			0.0 // Should not disarm players
//	DamageFactor "Deconstruction",	0.0 // or either deconstruct them.
	DamageFactor "Mechstomp",		0.9
	DamageFactor "Monster",			0.9
}

// =============================================================================
actor PowerGrade2Armor : PowerProtection {
	DamageFactor "Fist",			0.8
	DamageFactor "Knife",			0.8
	DamageFactor "Bullet",			0.8
	DamageFactor "Rifle",			0.8
	DamageFactor "Explosion",		0.8
	DamageFactor "MassDriver",		0.8
	DamageFactor "AntiArmor",		0.8
	DamageFactor "Mine",			0.8
	DamageFactor "Fire",			0.8
	DamageFactor "FireSpecial",		0.8
	DamageFactor "Chemical",		0.8
	DamageFactor "ChemicalSpecial",	0.8
	DamageFactor "Energy",			0.8
	DamageFactor "Plasma",			0.8
	DamageFactor "EnergyDecay",		0.8
	DamageFactor "Ice",				0.8
	DamageFactor "Time",			1.0
	DamageFactor "Mechstomp",		0.8
	DamageFactor "Monster",			0.8
}

// =============================================================================
actor PowerGrade3Armor : PowerProtection {
	DamageFactor "Fist",			0.7
	DamageFactor "Knife",			0.7
	DamageFactor "Bullet",			0.7
	DamageFactor "Rifle",			0.7
	DamageFactor "Explosion",		0.7
	DamageFactor "MassDriver",		0.7
	DamageFactor "AntiArmor",		0.7
	DamageFactor "Mine",			0.7
	DamageFactor "Fire",			0.7
	DamageFactor "FireSpecial",		0.7
	DamageFactor "Chemical",		0.7
	DamageFactor "ChemicalSpecial",	0.7
	DamageFactor "Energy",			0.7
	DamageFactor "Plasma",			0.7
	DamageFactor "EnergyDecay",		0.7
	DamageFactor "Ice",				0.7
	DamageFactor "Time",			1.0
	DamageFactor "Mechstomp",		0.7
	DamageFactor "Monster",			0.7
}

// =============================================================================
actor PowerGrade4Armor : PowerProtection {
	DamageFactor "Fist",			0.6
	DamageFactor "Knife",			0.6
	DamageFactor "Bullet",			0.6
	DamageFactor "Rifle",			0.6
	DamageFactor "Explosion",		0.6
	DamageFactor "MassDriver",		0.6
	DamageFactor "AntiArmor",		0.6
	DamageFactor "Mine",			0.6
	DamageFactor "Fire",			0.6
	DamageFactor "FireSpecial",		0.6
	DamageFactor "Chemical",		0.6
	DamageFactor "ChemicalSpecial",	0.6
	DamageFactor "Energy",			0.6
	DamageFactor "Plasma",			0.6
	DamageFactor "EnergyDecay",		0.6
	DamageFactor "Ice",				0.6
	DamageFactor "Time",			1.0
	DamageFactor "Mechstomp",		0.6
	DamageFactor "Monster",			0.6
}

// =============================================================================
actor PowerGrade5Armor : PowerProtection {
	DamageFactor "Fist",			0.5
	DamageFactor "Knife",			0.5
	DamageFactor "Bullet",			0.5
	DamageFactor "Rifle",			0.5
	DamageFactor "Explosion",		0.5
	DamageFactor "MassDriver",		0.5
	DamageFactor "AntiArmor",		0.5
	DamageFactor "Mine",			0.5
	DamageFactor "Fire",			0.5
	DamageFactor "FireSpecial",		0.5
	DamageFactor "Chemical",		0.5
	DamageFactor "ChemicalSpecial",	0.5
	DamageFactor "Energy",			0.5
	DamageFactor "Plasma",			0.5
	DamageFactor "EnergyDecay",		0.5
	DamageFactor "Ice",				0.5
	DamageFactor "Time",			1.0
	DamageFactor "Mechstomp",		0.5
	DamageFactor "Monster",			0.5
}

// =============================================================================
// Stealth trooper armor	[SG] equivalent to two negative grades
actor PowerGradeNeg1Armor : PowerProtection {
	DamageFactor "Fist",			1.2
	DamageFactor "Knife",			1.2
	DamageFactor "Bullet",			1.2
	DamageFactor "Rifle",			1.2
	DamageFactor "Explosion",		1.2
	DamageFactor "MassDriver",		1.2
	DamageFactor "AntiArmor",		1.2
	DamageFactor "Mine",			1.2
	DamageFactor "Fire",			1.2
	DamageFactor "FireSpecial",		1.2
	DamageFactor "Chemical",		1.2
	DamageFactor "ChemicalSpecial",	1.2
	DamageFactor "Energy",			1.2
	DamageFactor "Plasma",			1.2
	DamageFactor "EnergyDecay",		1.2
	DamageFactor "Ice",				1.2
	DamageFactor "Time",			1.0 // Be consistent
	DamageFactor "Mechstomp",		1.2
	DamageFactor "Monster",			1.2
}

// =============================================================================
actor PowerFireProof : PowerProtection {
	DamageFactor "Fire",			0.0
	DamageFactor "FireSpecial",		0.0
	
	DamageFactor "Chemical",		2.0
	DamageFactor "ChemicalSpecial",	2.0
}

// =============================================================================
actor PowerChemicalProof : PowerProtection {
	DamageFactor "Chemical",		0.0
	DamageFactor "ChemicalSpecial",	0.0

	DamageFactor "Fire",			2.0
	DamageFactor "FireSpecial",		2.0
}

// =============================================================================
actor PowerEnergyResistance : PowerProtection {
	DamageFactor "Energy",			0.5
	DamageFactor "Plasma",			0.5
	DamageFactor "EnergyDecay",		0.5

	DamageFactor "Explosion",		1.25
	DamageFactor "AntiArmor",		1.25
	DamageFactor "MassDriver",		1.25
}

// =============================================================================
actor PowerExplosiveResistance : PowerProtection {
	DamageFactor "Explosion",		0.5
	DamageFactor "AntiArmor",		0.5
	DamageFactor "MassDriver",		0.5

	DamageFactor "Energy",			1.25
	DamageFactor "Plasma",			1.25
	DamageFactor "EnergyDecay",		1.25
}

// =============================================================================

actor PowerBulletProof : PowerProtection {
	DamageFactor "Bullet",			0.4
	DamageFactor "Rifle",			0.4
	
	DamageFactor "Energy",			1.15
	DamageFactor "Plasma",			1.15
	DamageFactor "EnergyDecay",		1.15
	DamageFactor "Explosion",		1.15
	DamageFactor "AntiArmor",		1.15
	DamageFactor "MassDriver",		1.15

	DamageFactor "Ice",				1.25
}

// =============================================================================
actor PowerCryoResistance : PowerProtection {
	DamageFactor "Ice",				0.4

	DamageFactor "Energy",			1.15
	DamageFactor "Plasma",			1.15
	DamageFactor "EnergyDecay",		1.15
	DamageFactor "Explosion",		1.15
	DamageFactor "AntiArmor",		1.15
	DamageFactor "MassDriver",		1.15

	DamageFactor "Bullet",			1.25
	DamageFactor "Rifle",			1.25
}

// =============================================================================
actor Grade1Armor : PermanentPowerup {Powerup.Type "Grade1Armor"}
actor Grade2Armor : PermanentPowerup {Powerup.Type "Grade2Armor"}
actor Grade3Armor : PermanentPowerup {Powerup.Type "Grade3Armor"}
actor Grade4Armor : PermanentPowerup {Powerup.Type "Grade4Armor"}
actor Grade5Armor : PermanentPowerup {Powerup.Type "Grade5Armor"}
actor GradeNeg1Armor : PermanentPowerup {Powerup.Type "GradeNeg1Armor"}
actor FireProof : PermanentPowerup {Powerup.Type "FireProof"}
actor ChemicalProof : PermanentPowerup {Powerup.Type "ChemicalProof"}
actor ExplosiveResistance : PermanentPowerup {Powerup.Type "ExplosiveResistance"}
actor EnergyResistance : PermanentPowerup {Powerup.Type "EnergyResistance"}
actor BulletProof : PermanentPowerup {Powerup.Type "BulletProof"}
actor CryoResistance : PermanentPowerup {Powerup.Type "CryoResistance"}

// =============================================================================
// [Dusk] Harvesters get this to make sure they can not be harmed by
// Tiberium even if their chemical proof armor is somehow canceled.
actor PowerTiberiumProof : PowerProtection {
	DamageFactor "ChemicalSpecial", 0.0
}

actor TiberiumProof : PermanentPowerup {
	Powerup.Type "TiberiumProof"
}

// =============================================================================

// ============================================================================
// SPECIALIZED TYPES
// [Dusk] These should probably be moved out.

actor SpawnInvulnerability : PowerupGiver {
	+AUTOACTIVATE
	Inventory.MaxAmount 0
	Powerup.Type "PowerSpawnInvulnerability"
	Powerup.Color "FF FF FF", 0.1
	Powerup.Duration -5
}

actor PowerSpawnInvulnerability : PowerInvulnerable {}

// =============================================================================
// Given to terminals to weaken them on sudden death
actor SuddenDeathVulnerability : PermanentPowerup {Powerup.Type "SuddenDeathVulnerability"}
actor PowerSuddenDeathVulnerability : PowerProtection {
// It's a power protection so it does not change terminal original resistences.
	DamageFactor "Fist",			2.0
	DamageFactor "Knife",			2.0
	DamageFactor "Bullet",			2.0
	DamageFactor "Rifle",			2.0
	DamageFactor "Explosion",		1.5
	DamageFactor "MassDriver",		1.5
	DamageFactor "AntiArmor",		1.5
	DamageFactor "Mine",			2.0
	DamageFactor "Fire",			2.0
	DamageFactor "FireSpecial",		2.0
	DamageFactor "Chemical",		2.0
	DamageFactor "ChemicalSpecial",	2.0
	DamageFactor "Energy",			2.0
	DamageFactor "Plasma",			1.5
	DamageFactor "EnergyDecay",		1.5
	DamageFactor "Ice",				2.0
	DamageFactor "Time",			2.0
	DamageFactor "Suicide",         2.0
	DamageFactor "Superweapon",		2.0
	DamageFactor "Disarm",			2.0
	DamageFactor "Deconstruction",	2.0
	DamageFactor "Mechstomp",		2.0
	DamageFactor "Monster",			2.0
}
// =============================================================================
actor PowerGrade0DamagePower : PowerDamage {
	DamageFactor "Fist",			0.8
	DamageFactor "Knife",			0.8
	DamageFactor "Bullet",			0.8
	DamageFactor "Rifle",			0.8
	DamageFactor "Explosion",		0.8
	DamageFactor "MassDriver",		0.8
	DamageFactor "AntiArmor",		0.8
	DamageFactor "Fire",			0.8
	DamageFactor "FireSpecial",		0.8
	DamageFactor "Chemical",		0.8
	DamageFactor "ChemicalSpecial",	0.8
	DamageFactor "Energy",			0.8
	DamageFactor "Plasma",			0.8
	DamageFactor "EnergyDecay",		0.8
	DamageFactor "Ice",				0.8
	DamageFactor "Time",			0.8
	DamageFactor "Superweapon",		1.0
	DamageFactor "Disarm",			1.0
	DamageFactor "Deconstruction",	1.0
	DamageFactor "Mechstomp",		0.8
}

actor Grade0Damage : PermanentPowerup {
	Powerup.Type "Grade0DamagePower"
}

// =============================================================================
actor PowerFirepowerUpgrade : PowerDamage {
	DamageFactor "Fist",			1.3
	DamageFactor "Knife",			1.3
	DamageFactor "Bullet",			1.3
	DamageFactor "Rifle",			1.3
	DamageFactor "Explosion",		1.3
	DamageFactor "MassDriver",		1.3
	DamageFactor "AntiArmor",		1.3
	DamageFactor "Mine",			1.3
	DamageFactor "Fire",			1.3
	DamageFactor "Chemical",		1.3
	DamageFactor "ChemicalSpecial",	1.3 // Tiberium throw.
	DamageFactor "Energy",			1.3
	DamageFactor "Plasma",			1.3
	DamageFactor "EnergyDecay",		1.3
	DamageFactor "Ice",				1.3
	DamageFactor "Time",			1.3
	DamageFactor "Mechstomp",		1.3
}

actor FirepowerUpgrade : PermanentPowerup {
	Powerup.Type "FirepowerUpgrade"
}

// =============================================================================
// [SG] already defined in infoitems.txt
//actor HasArmorUpgrade : Inventory {}

// =============================================================================
// Xindage unused.
/*actor PowerGrade2ArmorFactoryPower : PowerProtection {
	DamageFactor "Fist",			0.9
	DamageFactor "Bullet",			0.9
	DamageFactor "Rifle",			0.9
	DamageFactor "Explosion",		0.9
	DamageFactor "Fire",			0.9
	DamageFactor "Chemical",		0.9
	DamageFactor "Energy",			0.9
	DamageFactor "AntiArmor",		0.9
	DamageFactor "Time",			1.0
	DamageFactor "MassDriver",		0.9
	DamageFactor "Mechstomp",		0.9
	DamageFactor "Monster",			0.9
	DamageFactor "StealthKnife",	0.9
	DamageFactor "Ice",				0.9
}
actor Grade2ArmorFactory : PermanentPowerup {
	Powerup.Type "Grade2ArmorFactoryPower"
}*/
