public bool IsInterceptor => AirCombat[0] != Interception[0];\r
}\r
\r
+ public class Distance\r
+ {\r
+ public int Base { get; set; }\r
+ public int Bonus { get; set; }\r
+\r
+ public override string ToString() => Bonus > 0 ? $"{Base}+{Bonus}" : Base.ToString();\r
+ }\r
+\r
public class AirCorpsInfo\r
{\r
- public int Distance { get; set; }\r
+ public Distance Distance { get; set; }\r
public int Action { get; set; }\r
public PlaneInfo[] Planes { get; set; }\r
\r
group\r
new AirCorpsInfo\r
{\r
- Distance = (int)entry.api_distance,\r
+ Distance = CreateDistance(entry.api_distance),\r
Action = (int)entry.api_action_kind,\r
Planes = (from plane in (dynamic[])entry.api_plane_info\r
select new PlaneInfo\r
var values = HttpUtility.ParseQueryString(request);\r
var airCorps = GetBaseInfo(values).AirCorps[int.Parse(values["api_base_id"]) - 1];\r
if (json.api_distance()) // 2016春イベにはない\r
- airCorps.Distance = (int)json.api_distance;\r
+ airCorps.Distance = CreateDistance(json.api_distance);\r
foreach (var planeInfo in json.api_plane_info)\r
{\r
var planeId = (int)planeInfo.api_squadron_id - 1;\r
}\r
}\r
\r
+ private Distance CreateDistance(dynamic distance) => distance is double\r
+ // ReSharper disable once PossibleInvalidCastException\r
+ ? new Distance {Base = (int)distance}\r
+ : new Distance {Base = (int)distance.api_base, Bonus = (int)distance.api_bonus};\r
+\r
public void InspectSupply(string request, dynamic json)\r
{\r
InspectSetPlane(request, json);\r
{\r
Ship = name[i++] + " " + airCorps.ActionName,\r
Ship2 = $"出撃コスト:燃{cost[0]}弾{cost[1]}",\r
- Spec = spec + " 距離:" + airCorps.Distance,\r
+ Spec = spec + $" 距離:{airCorps.Distance}",\r
Spec2 = spec2\r
});\r
list.AddRange(airCorps.Planes.Select(plane =>\r