Inheritance: Livet.NotificationObject
示例#1
0
        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 ? "連合艦隊" : "敵連合艦隊";
 }