public static FleetStatus GetStatus(this BattleFleet fleet) { var ships = fleet.Fleets .SelectMany(f => f.Ships) .Where(s => !s.IsInEvacuationOrTow()) .ToArray(); var totalOriginalHp = ships.Sum(s => s.OriginalHP); var totalNowHp = ships.Sum(s => Math.Max(s.NowHP, 0)); var totalLostHp = Math.Max(totalOriginalHp - totalNowHp, 0); return(new FleetStatus { TotalOriginalHP = totalOriginalHp, TotalNowHP = totalNowHp, TotalLostHP = totalLostHp, ShipCount = ships.Length, LostCount = ships.Count(s => s.NowHP <= 0), LostGauge = (double)totalLostHp / totalOriginalHp }); }
public BattleFleetViewModel(BattleFleet fleets, string defaultName) { this._fleet = fleets; this._defaultName = defaultName; this._combinedName = fleets.Type == FleetType.Friend ? "連合艦隊" : "敵連合艦隊"; }