//Default Methods virtual public void Damaged(cl_Weapon Weapon) { if (hp > 0) { hp--; } }
public override void Damaged(cl_Weapon Weapon, cl_SectorObject attacker) { base.Damaged(Weapon, attacker); if (hp <= 0) { OnDestroy(attacker); } }
//Default methods virtual public void Damaged(cl_Weapon Weapon, cl_SectorObject attacker) { int damageTaken = Weapon.GetVar <int>(cl_Weapon.DAMAGE); if (Weapon.tags.Contains(cl_Weapon.PIERCING) == false) { if (Weapon.tags.Contains(cl_Weapon.EXPLOSIVE)) { damageTaken *= 2; shield -= damageTaken; damageTaken = -(shield / 2); } else { shield -= damageTaken; damageTaken = -shield; } } if (damageTaken > 0) { if (Weapon.tags.Contains(cl_Weapon.KINETIC)) { hp -= damageTaken * 2; } else { hp -= damageTaken; } if (Weapon.tags.Contains(cl_Weapon.ENERGY) == false) { damageTaken /= 2; } for (int i = 0; i < damageTaken; i++) { int target = Random.Range(0, 4 + systems.Count); if (target - 4 >= 0) { systems[target].Damaged(Weapon); } } } }