public RawAerialPhase(BattleDetailJson.Aerial api) : base(SelectStage3(api.api_stage3, 0).Concat(SelectStage3(api.api_stage3_combined, 6))) { if (api.api_stage1 != null) { FightingResult = (AirFightingResult?)api.api_stage1.api_disp_seiku; ally.FightedPlanes = (api.api_stage1.api_f_lostcount, api.api_stage1.api_f_count); enemy.FightedPlanes = (api.api_stage1.api_e_lostcount, api.api_stage1.api_e_count); ally.PlanesFrom = api.api_plane_from.At(0); enemy.PlanesFrom = api.api_plane_from.At(1); ally.TouchingPlane = (EquipmentInfoId?)RawBattle.SelectPositive(api.api_stage1.api_touch_plane, 0); enemy.TouchingPlane = (EquipmentInfoId?)RawBattle.SelectPositive(api.api_stage1.api_touch_plane, 1); } if (api.api_stage2 != null) { ally.ShootedPlanes = (api.api_stage2.api_f_lostcount, api.api_stage2.api_f_count); enemy.ShootedPlanes = (api.api_stage2.api_e_lostcount, api.api_stage2.api_e_count); if (api.api_stage2.api_air_fire != null) { AntiAirFire = new RawAntiAirFire(api.api_stage2.api_air_fire.api_idx, api.api_stage2.api_air_fire.api_kind, api.api_stage2.api_air_fire.api_use_items.Select(x => (EquipmentInfoId)x).ToArray()); } } }
public AntiAirFire(MasterDataRoot masterData, Side ally, RawAntiAirFire raw) { Ship = ally.FindShip(raw.Index); Type = raw.Type; EquipmentUsed = masterData.EquipmentInfos[raw.EquipmentUsed]; }