var result = _battleInfo.Result.Enemy.Main.Concat(Enumerable.Repeat(new ShipStatus(), 6)).Take(6);\r
if (_battleInfo.Result.Enemy.Guard.Length == 0)\r
{\r
- return result.Select(s => s.Id == -1 ? "," : $"{s.Name},{s.NowHp}/{s.MaxHp}").ToList();\r
+ return result.Select(s => s.Empty ? "," : $"{s.Name},{s.NowHp}/{s.MaxHp}").ToList();\r
}\r
var main = result;\r
var guard = _battleInfo.Result.Enemy.Guard.Concat(Enumerable.Repeat(new ShipStatus(), 6)).Take(6);\r
return main.Zip(guard, (m, g) =>\r
{\r
- if (m.Id == -1 && g.Id == -1)\r
+ if (m.Empty && g.Empty)\r
return ",";\r
var name = "";\r
var hp = "";\r
- if (m.Id != -1)\r
+ if (!m.Empty)\r
{\r
name = $"{m.Name}";\r
hp = $"{m.NowHp}/{m.MaxHp}";\r
}\r
name += "・";\r
hp += "・";\r
- if (g.Id != -1)\r
+ if (!g.Empty)\r
{\r
name += $"{g.Name}";\r
hp += $"{g.NowHp}/{g.MaxHp}";\r
{\r
var planeId = (int)planeInfo.api_squadron_id - 1;\r
var prev = airCorps.Planes[planeId];\r
- if (prev.Slot.Id != -1)\r
+ if (!prev.Slot.Empty)\r
_relocationgPlanes.Add(prev.Slot.Id);\r
airCorps.Planes[planeId] = new PlaneInfo\r
{\r
return itemIds.Select(itemId =>\r
{\r
var spec = _itemMaster[itemId];\r
- if (spec.Id == -1)\r
+ if (spec.Empty)\r
{\r
spec = new ItemSpec {Id = itemId};\r
_itemMaster[itemId] = spec;\r
{\r
public static bool IncreaceLandPowerTp = false;\r
public int Id;\r
+ public bool Empty => Id == -1;\r
public string Name;\r
public int Type;\r
public string TypeName;\r
public class ItemStatus\r
{\r
public int Id { get; set; }\r
+ public bool Empty => Id == -1;\r
+ public bool Unimplemented => Id == 0;\r
public ItemSpec Spec { get; set; } = new ItemSpec();\r
public int Level { get; set; }\r
public int Alv { get; set; }\r
var spec = ship.Spec;\r
if (spec.NumEquips != -1 || ship.Id <= MaxId)\r
return;\r
- spec.NumEquips = ship.Slot.Count(item => item.Id != -1);\r
+ spec.NumEquips = ship.Slot.Count(item => !item.Empty);\r
}\r
}\r
\r
public class ShipStatus : ICloneable\r
{\r
public int Id { get; set; }\r
+ public bool Empty => Id == -1;\r
public Fleet Fleet { get; set; }\r
public int DeckIndex { get; set; }\r
public ShipSpec Spec { get; set; }\r
{\r
get\r
{\r
- if (AllSlot.All(item => item.Id == -1 || item.Id == 0))\r
+ if (AllSlot.All(item => item.Empty || item.Unimplemented))\r
return AntiAir;\r
var vanilla = AntiAir - AllSlot.Sum(item => item.Spec.AntiAir);\r
var x = vanilla + AllSlot.Sum(item => item.EffectiveAntiAirForShip);\r
=> "区分,装備名,熟練度,改修,個数\r\n" +\r
string.Join("\r\n",\r
(from item in itemList\r
- where item.Spec.Id != -1\r
+ where !item.Spec.Empty\r
orderby item.Spec.Type, item.Spec.Id, item.Alv, item.Level\r
group item by\r
$"{item.Spec.TypeName},{item.Spec.Name},{item.Alv},{item.Level}"\r
select ($"{s.Name} Lv{s.Level} " +\r
string.Join(",",\r
from item in s.AllSlot\r
- where item.Id != -1\r
+ where !item.Empty\r
select dict[item.Spec.Name] + ItemStatusString(item))).TrimEnd(' ') + "\r\n"));\r
var fp = target.FighterPower;\r
sb.Append($"制空: {(fp[0] == fp[1] ? fp[0].ToString() : fp[0] + "~" + fp[1])} " +\r
for (var i = 0; i < items.Length; i++)\r
{\r
var item = items[i];\r
- if (item.Id == -1)\r
+ if (item.Empty)\r
continue;\r
if (i != 0)\r
sb.Append(",");\r
sb.Append($"\"i{i + 1}\":{{\"id\":{item.Spec.Id},\"rf\":{item.Level},\"mas\":{item.Alv}}}");\r
}\r
- if (ship.SlotEx.Id != 0 && ship.SlotEx.Id != -1)\r
+ if (!ship.SlotEx.Unimplemented && !ship.SlotEx.Empty)\r
{\r
- if (ship.Slot.Any(item => item.Id != -1))\r
+ if (ship.Slot.Any(item => !item.Empty))\r
sb.Append(",");\r
var name = ship.Spec.SlotNum == 5 ? "ix" : $"i{ship.Spec.SlotNum + 1}";\r
sb.Append($"\"{name}\":{{\"id\":{ship.SlotEx.Spec.Id},\"rf\":{ship.SlotEx.Level}}}");\r
var result =\r
(from i in Enumerable.Range(0, ship.Slot.Length)\r
let item = ship.Slot[i]\r
- where item.Id != -1\r
+ where !item.Empty\r
select item.Spec.Name + (item.Spec.IsAircraft && ship.OnSlot.Length > 0 && ship.Spec.MaxEq.Length > 0\r
? $"{ship.OnSlot[i]}/{ship.Spec.MaxEq[i]}"\r
: ""));\r
var item = s.Slot[i];\r
var onslot = s.OnSlot[i];\r
var max = s.Spec.MaxEq[i];\r
- if (item.Id == -1)\r
+ if (item.Empty)\r
continue;\r
var airspec = "";\r
if (item.Spec.IsDiveBomber) // 爆撃\r
private TreeNode CreateItemNodes(IEnumerable<ItemStatus> itemList)\r
{\r
var grouped = from item in itemList\r
- where item.Spec.Id != -1\r
+ where !item.Spec.Empty\r
orderby item.Spec.Type, item.Spec.Id, item.Alv, item.Level\r
group item by item.Spec.Type\r
into byTypeGroup\r
foreach (var byShip in byParam)\r
{\r
var ship = byShip.First().Holder;\r
- var name = byShip.Key == -1\r
+ var name = ship.Empty\r
? "未装備x" + byShip.Count()\r
: (ship.Fleet == null ? "" : ship.Fleet.Number + 1 + " ") +\r
ship.Name + (ship.Level > 0 ? "Lv" + ship.Level : "") + "x" + byShip.Count();\r
return;\r
}\r
var empty = SlotStatus.Equipped;\r
- if (status.Id != -1)\r
+ if (!status.Empty)\r
{\r
- if (status.Slot.All(item => item.Id == -1))\r
+ if (status.Slot.All(item => item.Empty))\r
empty |= SlotStatus.NormalEmpty;\r
- if (status.SlotEx.Id == -1)\r
+ if (status.SlotEx.Empty)\r
empty |= SlotStatus.ExtraEmpty;\r
}\r
var dc = status.PreparedDamageControl;\r