public static void ShieldDamageEnergy(float damage, float goThroughShield, DamageType damageType, Ship ship, Shield shield) { if (Globals.Randomizer.Next(0, 101) < shield.Chance && ship.GetType().Name == "Player") { Player p = (Player)ship; p.Energy.Change(-damage); } else { ship.TakeDamage(damage, goThroughShield, damageType, true); } }
public static void ShieldReflect(float damage, float goThroughShield, DamageType damageType, Ship ship, Shield shield) { if (damageType == DamageType.laser && Globals.Randomizer.Next(0, 101) < shield.Chance) { List <string> targets = new List <string>(); targets.Add(ship.GetType().Name == "Player" ? "Enemy" : "Player"); SceneManager.mapScene.CurrentLevel.ToAdd.Add(new Shot(ship.Position, MathHelper.Lerp((float)Math.PI + 0.2f, (float)Math.PI * 2 - 0.2f, (float)Globals.Randomizer.NextDouble()), damage, Shot.HitBasic, targets, 0f, 0)); } else { ship.TakeDamage(damage, goThroughShield, damageType, true); } }
public static void HitEnemyShotDelay(Level level, Shot shot) { if (CollisionTarget(level, shot) != null) { Ship ship = CollisionTarget(level, shot); ship.TakeDamage(shot.Damage, shot.ShieldPiercing, DamageType.laser, false); if (Globals.Randomizer.Next(0, 101) < shot.Chance) { ship.Weapons[Globals.Randomizer.Next(0, ship.Weapons.Count)].Disabled = 120; level.CombatText(ship.GetType().Name + " Weapon Jammed!"); } shot.Dead = true; } }
public static void HitEnemyShotDelay(Ship ship, Level level, Shot shot) { ship.TakeDamage(shot.Damage, shot.ShieldPiercing, DamageType.laser); if (Globals.Randomizer.Next(0, 101) < shot.Chance) { ship.Weapons[Globals.Randomizer.Next(0, ship.Weapons.Count)].Disabled = 120; level.CombatText(ship.GetType().Name + " Weapon Jammed!"); } }