//----------------------------------------------------------------------------- // Sword Methods //----------------------------------------------------------------------------- private void SpawnSwordBeam() { ItemSword itemSword = Weapon as ItemSword; if (itemSword.BeamTracker.IsAvailable && player.IsAtFullHealth && itemSword.Level > Item.Level1) { // Spawn a sword beam. SwordBeam beam = new SwordBeam(); beam.Owner = Player; beam.Position = Player.Center + (Directions.ToVector(Player.Direction) * 12.0f); beam.ZPosition = Player.ZPosition; beam.Direction = Player.Direction; beam.Physics.Velocity = Directions.ToVector(Player.Direction) * GameSettings.PROJECTILE_SWORD_BEAM_SPEED; // Adjust the beam spawn position based on player direction. if (Directions.IsHorizontal(player.Direction)) { beam.Position += new Vector2F(0, 4); } else if (player.Direction == Directions.Up) { beam.Position -= new Vector2F(4, 0); } else if (player.Direction == Directions.Down) { beam.Position += new Vector2F(3, 0); } player.RoomControl.SpawnEntity(beam); itemSword.BeamTracker.TrackEntity(beam); AudioSystem.PlaySound(GameData.SOUND_SWORD_BEAM); } }
//----------------------------------------------------------------------------- // Overridden Methods //----------------------------------------------------------------------------- public override void OnInitialize() { base.OnInitialize(); itemSword = (ItemSword)unit.GameControl.Inventory.GetItem("item_sword"); }