private void SetEachResult(IReadOnlyList <ShipLabels> labelsList, BattleInfo.BattleResult.Combined fleet)
        {
            var ships = Ships(fleet);

            for (var i = 0; i < ships.Length; i++)
            {
                var labels = labelsList[i];
                if (i == fleet.Main.Length)
                {
                    labels.Name.Text = "護衛";
                    labels.Hp.Reset();
                    continue;
                }
                var ship = ships[i];
                if (ShipMaster.IsEnemyId(ship.Spec.Id))
                {
                    labels.Hp.Set(ship);
                    labels.Name.SetName(ShortenName(ship.Name));
                    labels.Name.Left = CalcEnemyNameLeft(labels.Hp.Width);
                    ToolTip.SetToolTip(labels.Name, ship.GetEquipString());
                }
                else
                {
                    labels.Set(ship, ToolTip);
                    if (ship.Name.StartsWith("基地航空隊"))
                    {
                        labels.Name.SetName(ship.Name.Substring(2));
                    }
                }
            }
            for (var i = ships.Length; i < labelsList.Count; i++)
            {
                labelsList[i].Reset();
            }
        }
示例#2
0
 private static BattleInfo.BattleResult.Combined FillEmpty(BattleInfo.BattleResult.Combined fleet)
 {
     return(new BattleInfo.BattleResult.Combined
     {
         Main = FillEmpty(fleet.Main),
         Guard = FillEmpty(fleet.Guard)
     });
 }
 private static ShipStatus[] Ships(BattleInfo.BattleResult.Combined fleet)
 {
     if (fleet.Guard.Length == 0)
     {
         return(fleet.Main);
     }
     return(fleet.Main.Concat(new[] { new ShipStatus() }.Concat(fleet.Guard)).ToArray());
 }
示例#4
0
        private static IEnumerable <string> GenerateShipList(BattleInfo.BattleResult.Combined fleet,
                                                             Func <ShipStatus, string> toName)
        {
            fleet = FillEmpty(fleet);
            if (fleet.Guard.Length > 0)
            {
                return(fleet.Main.Zip(fleet.Guard, (main, guard) =>
                {
                    if (main.Empty && guard.Empty)
                    {
                        return ",";
                    }
                    var name = "";
                    var hp = "";
                    if (!main.Empty)
                    {
                        name = toName(main);
                        hp = $"{main.NowHp}/{main.MaxHp}";
                    }
                    name += "・";
                    hp += "・";
                    if (!guard.Empty)
                    {
                        name += toName(guard);
                        hp += $"{guard.NowHp}/{guard.MaxHp}";
                    }
                    return name + "," + hp;
                }).ToList());
            }
            var ships = fleet.Main;

            if (fleet.Main.Length > 6)
            {
                var result = new List <string>();
                for (var i = 0; i < 12 - ships.Length; i++)
                {
                    var ship = fleet.Main[i];
                    result.Add($"{toName(ship)},{ship.NowHp}/{ship.MaxHp}");
                }
                for (var i = 0; i < ships.Length - 6; i++)
                {
                    var s1 = ships[12 - ships.Length + i];
                    var s2 = ships[6 + i];
                    result.Add(
                        $"{toName(s1)}・{toName(s2)}," +
                        $"{s1.NowHp}/{s1.MaxHp}・{s2.NowHp}/{s2.MaxHp}");
                }
                return(result);
            }
            return(ships.Select(ship => ship.Empty ? "," : $"{toName(ship)},{ship.NowHp}/{ship.MaxHp}"));
        }