public AbilityResult Perform(IMapAbilityView map, Point coords) { var ships = map.GetShipsAround(coords); var myColor = Game.Instance().CurrentPlayer.Color; var result = new AbilityResult{Name = AbilityName.Heal, Invoker = coords}; foreach (var ship in ships.Where(ship => ship.Color == myColor && ship.Health < ship.MaxHealth)) { result.Area.Add(map.GetShipPosition(ship)); ship.Health += Consts.HEAL_POWER; } return result; }
//this.List<AbilityResult> a = new ... public void AddAbilityToDraw(AbilityResult abilityResult) { //a.Add }
public void HealDockedShips() { foreach (var station in GetStations()) { var coord = GetStationPosition(station); var ship = GetShipFromPoint(coord); if (ship != null && ship.Color == Game.Instance().CurrentPlayer.Color && ship.Health < ship.MaxHealth) ship.Health += Consts.STATION_HEAL_POWER; var result = new AbilityResult { Name = AbilityName.Heal }; result.Area.Add(coord); Drawer.Instance().AddAbilityToDraw(result); } }