public float ReduceDamage(DamageMetadata dm) { float dmg = dm.Damage; switch (dm.DamageType) { case DamageType.Gun: return(dmg *= GunDamageMult); case DamageType.Cannon: return(dmg *= CannonDamageMult); case DamageType.Grenade: return(dmg *= GrenadeDamageMult); case DamageType.Rocket: return(dmg *= RocketDamageMult); case DamageType.Sniper: return(dmg *= SniperDamageMult); default: return(dmg); } }
public void TakeDamage(DamageMetadata dm) { // to prevent double deaths if (Health <= 0) { return; } this.Health -= _armorRef.ReduceDamage(dm); if (Health <= 0) { Die(); } }
// Start is called before the first frame update void Start() { DamageMetadata = new DamageMetadata(DamageMetadata.Damage / NumberOfRockets, DamageMetadata.DamageType); FireRocket(); }