public static void ShieldChanceReduceDamage(float damage, float goThroughShield, DamageType damageType, Ship ship, Shield shield) { if (Globals.Randomizer.Next(0, 101) < 50) { ship.TakeDamage(damage / 2, goThroughShield, damageType, true); } else { ship.TakeDamage(damage, goThroughShield, damageType, true); } }
public static void ShieldCounterShoot(float damage, float goThroughShield, DamageType damageType, Ship ship, Shield shield) { if (Globals.Randomizer.Next(0, 101) < shield.Chance) { ship.CurrentWeapon.Method(ship, ship.CurrentWeapon, 3, SceneManager.mapScene.CurrentLevel, false); } ship.TakeDamage(damage, goThroughShield, damageType, true); }
public static void HitCrit(Level level, Shot shot) { if (CollisionTarget(level, shot) != null) { Ship ship = CollisionTarget(level, shot); if (Globals.Randomizer.Next(0, 101) < shot.Chance) { ship.TakeDamage(shot.Damage * 1.5f, shot.ShieldPiercing, DamageType.laser, false); level.CombatText("CRIT!"); } else { ship.TakeDamage(shot.Damage, shot.ShieldPiercing, DamageType.laser, false); } shot.Dead = true; } }
public static void HitBasic(Level level, Shot shot) { if (CollisionTarget(level, shot) != null) { Ship ship = CollisionTarget(level, shot); ship.TakeDamage(shot.Damage, shot.ShieldPiercing, DamageType.laser, false); shot.Dead = true; } }
public static void HitCrit(Ship ship, Level level, Shot shot) { if (Globals.Randomizer.Next(0, 101) < shot.Chance) { ship.TakeDamage(shot.Damage * 2, shot.ShieldPiercing, DamageType.laser); level.CombatText("CRIT!"); } else { ship.TakeDamage(shot.Damage, shot.ShieldPiercing, DamageType.laser); } }
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 FireChanceToBreak(Ship shooter, Weapon weapon, int tilesMatched, Level level, bool initialize) { if (!initialize) { if (Globals.Randomizer.Next(0, 101) < 100 - weapon.WeaponChance(shooter)) { weapon.Disabled = 180; shooter.TakeDamage(weapon.Damage / 2, weapon.ShieldPiercing, DamageType.laser, false); } level.ToAdd.Add(new Shot(shooter.Position, shooter.Direction, weapon.ShotDamage(tilesMatched, shooter), Shot.HitBasic, shooter.Targets, weapon.ShieldPiercing, weapon.WeaponChance(shooter))); } else { weapon.Chance += Globals.Randomizer.Next(30, 50); weapon.Damage += Globals.Randomizer.Next(5, 7); } }
public static void ShieldChanceToTeleport(float damage, float goThroughShield, DamageType damageType, Ship ship, Shield shield) { if (Globals.Randomizer.Next(0, 101) < shield.Chance) { List <int> locations = new List <int>(); for (int i = 0; i < 3; i++) { if (i != (int)ship.ShipLocation) { locations.Add(i); } } ship.ShipLocation = (Location)locations[Globals.Randomizer.Next(0, locations.Count())]; ship.Size = 0; ship.Position = new Vector2((int)ship.ShipLocation * 100 + 200, ship.Position.Y); } else { ship.TakeDamage(damage, goThroughShield, damageType, 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!"); } }
public static void HitDamageOverTime(Ship ship, Level level, Shot shot) { ship.TakeDamage(shot.Damage, shot.ShieldPiercing, DamageType.laser); ship.SetDamageOverTime(shot.Damage / 6, 6, shot.ShieldPiercing); }
public static void HitBasic(Ship ship, Level level, Shot shot) { ship.TakeDamage(shot.Damage, shot.ShieldPiercing, DamageType.laser); }
public static void ShieldBonusDamage(float damage, float goThroughShield, DamageType damageType, Ship ship, Shield shield) { ship.TakeDamage(damage, goThroughShield, damageType, true); ship.BonusDamageOneFight += Globals.Randomizer.Next(1, 4); }
public static void ShieldStandard(float damage, float goThroughShield, DamageType damageType, Ship ship, Shield shield) { ship.TakeDamage(damage, goThroughShield, damageType, true); }