示例#1
0
 // Constructor(s)
 public Rock(Player player, Level level)
     : base()
 {
     this.Texture   = TextureManager.rock;
     this.Position  = new Vector2(Globals.Randomizer.Next(400, Globals.ScreenSize.X - 300), -100);
     this.Direction = (float)Math.Atan2((player.Position - Position).Y, (player.Position - Position).X);
     level.CombatText("Rock heading towards you! Move!");
 }
示例#2
0
 // Constructor(s)
 public Rock(Player player, Level level)
     : base()
 {
     this.Texture = TextureManager.rock;
     this.Position = new Vector2(Globals.Randomizer.Next(400, Globals.ScreenSize.X - 300), -100);
     this.Direction = (float)Math.Atan2((player.Position - Position).Y, (player.Position - Position).X);
     level.CombatText("|0,0,0|Rock heading |0,0,255|towards you!|255,0,0| Move!");
 }
示例#3
0
 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);
     }
 }
示例#4
0
 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;
     }
 }
示例#5
0
 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;
     }
 }
示例#6
0
        public void Action(int tilesMatched, TileType tileType, Level level, bool manuallyMatched)
        {
            if (tileType == TileType.cog)
            {
                Energy.Change(tilesMatched * 5 + (tilesMatched - 3) * 10);
                SoundManager.match.Play();
            }
            else if (Energy.Value > 10 || !manuallyMatched)
            {
                SoundManager.match.Play();
                if (manuallyMatched)
                {
                    Energy.Change(-10);
                }

                if (tileType == TileType.shoot && Weapons[SelectedWeapon].Disabled < 0)
                {
                    KnockBack = 3;
                    Weapons[SelectedWeapon].Method(this, Weapons[SelectedWeapon], tilesMatched, level, false);
                }

                if (tileType == TileType.left && ShipLocation != Location.left)
                {
                    MoveLeft += 20 * tilesMatched;
                }

                if (tileType == TileType.right && ShipLocation != Location.right)
                {
                    MoveRight += 20 * tilesMatched;
                }

                if (tileType == TileType.shield && ShipShield.Value != ShipShield.Width)
                {
                    ShipShield.Change((ShipShield.ShieldHeal / 3) * tilesMatched);
                }
            }
            else
            {
                level.CombatText("NOT ENOUGH ENERGY!");
                SoundManager.notEnoughEnergy.Play();
            }
        }
示例#7
0
        public void Action(int tilesMatched, TileType tileType, Level level, bool manuallyMatched)
        {
            if (tileType == TileType.cog)
            {
                Energy.Change(tilesMatched * 5 + (tilesMatched - 3) * 10);
                SoundManager.match.Play();
            }
            else if (Energy.Value > 10 || !manuallyMatched)
            {
                SoundManager.match.Play();
                if (manuallyMatched)
                {
                    Energy.Change(-10);
                }

                if (tileType == TileType.shoot && Weapons[SelectedWeapon].Disabled < 0)
                {
                    KnockBack = 3;
                    Weapons[SelectedWeapon].Method(this, Weapons[SelectedWeapon], tilesMatched, level, false);
                }

                if (tileType == TileType.left && ShipLocation != Location.left)
                {
                    MoveLeft += 20 * tilesMatched;
                }

                if (tileType == TileType.right && ShipLocation != Location.right)
                {
                    MoveRight += 20 * tilesMatched;
                }

                if (tileType == TileType.shield && ShipShield.Value != ShipShield.Width)
                {
                    ShipShield.Change((ShipShield.ShieldHeal / 3) * tilesMatched);
                }
            }
            else
            {
                level.CombatText("NOT ENOUGH ENERGY!");
                SoundManager.notEnoughEnergy.Play();
            }
        }
示例#8
0
 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!");
     }
 }
示例#9
0
 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;
     }
 }
示例#10
0
 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;
     }
 }
示例#11
0
        public void Action(int tilesMatched, TileType tileType, Level level, bool manuallyMatched)
        {
            if (tileType == TileType.cog)
            {
                Energy.Change(tilesMatched * 5 + (tilesMatched - 3) * 10);
            }
            else if (Energy.Value > 10 || !manuallyMatched)
            {
                if (manuallyMatched)
                {
                    Energy.Change(-10);
                }

                if (tileType == TileType.shoot && Weapons[SelectedWeapon].Disabled < 0)
                {
                    Weapons[SelectedWeapon].ShootMethods[Weapons[SelectedWeapon].Action](new Vector2(Position.X, Position.Y - Texture.Height / 2), Direction, tilesMatched, level, false);
                }

                if (tileType == TileType.left && ShipLocation != Location.left)
                {
                    MoveLeft += 20 * tilesMatched;
                    DirectionSpeed = -0.0005f;
                }

                if (tileType == TileType.right && ShipLocation != Location.right)
                {
                    MoveRight += 20 * tilesMatched;
                    DirectionSpeed = 0.0005f;
                }

                if (tileType == TileType.shield && ShipShield.Value != ShipShield.Width)
                {
                    ShipShield.Change(10 * tilesMatched);
                }
            }
            else
            {
                level.CombatText("NOT ENOUGH ENERGY!");
            }
        }