コード例 #1
0
 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);
     }
 }
コード例 #2
0
 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);
 }
コード例 #3
0
ファイル: Shot.cs プロジェクト: kraban/Outer-Space
 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;
     }
 }
コード例 #4
0
ファイル: Shot.cs プロジェクト: kraban/Outer-Space
 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;
     }
 }
コード例 #5
0
ファイル: Shot.cs プロジェクト: indietom/Outer-Space
 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);
     }
 }
コード例 #6
0
 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);
     }
 }
コード例 #7
0
 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);
     }
 }
コード例 #8
0
ファイル: Shot.cs プロジェクト: kraban/Outer-Space
 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;
     }
 }
コード例 #9
0
 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);
     }
 }
コード例 #10
0
 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);
     }
 }
コード例 #11
0
ファイル: Shot.cs プロジェクト: indietom/Outer-Space
 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!");
     }
 }
コード例 #12
0
ファイル: Shot.cs プロジェクト: indietom/Outer-Space
 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);
 }
コード例 #13
0
ファイル: Shot.cs プロジェクト: indietom/Outer-Space
 public static void HitBasic(Ship ship, Level level, Shot shot)
 {
     ship.TakeDamage(shot.Damage, shot.ShieldPiercing, DamageType.laser);
 }
コード例 #14
0
ファイル: Weapon.cs プロジェクト: kraban/Outer-Space
 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);
     }
 }
コード例 #15
0
 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);
 }
コード例 #16
0
 public static void ShieldStandard(float damage, float goThroughShield, DamageType damageType, Ship ship, Shield shield)
 {
     ship.TakeDamage(damage, goThroughShield, damageType, true);
 }