public void NightBattle(sortie_battle api) { if (api.api_friendly_info != null) { var friend = api.api_friendly_info; FriendFleet = friend.api_ship_id .Select((x, i) => new ShipInBattle { Index = i + 1, ShipInfo = Staff.Current.MasterData.ShipInfo[x], Level = friend.api_ship_lv[i], Equipments = friend.api_Slot[i].Select(y => Staff.Current.MasterData.EquipInfo[y]).Where(y => y != null).Select(y => new EquipInBattle(y)).ToArray(), Firepower = friend.api_Param[i][0], Torpedo = friend.api_Param[i][1], AA = friend.api_Param[i][2], Armor = friend.api_Param[i][3] }).ToArray(); SetHPs(FriendFleet, friend.api_nowhps, friend.api_maxhps); var fleet1 = Fleet1; Fleet1 = FriendFleet; FriendNight = new NightCombat(this, api.api_friendly_battle, FriendFleet, AllEnemies.ToArray()); Fleet1 = fleet1; } if (api.api_active_deck != null) { Night = new NightCombat(this, api, NightOrTorpedo, api.api_active_deck[1] == 1 ? EnemyFleet : EnemyFleet2); } else { Night = new NightCombat(this, api, NightOrTorpedo, EnemyFleet); } EndApplyBattle(); }
private void Update(sortie_battle data) { this.Name = "通常 - 昼戦"; this.UpdateShipData(data.api_dock_id.ToString(), data.api_ship_ke, false); this.UpdateMaxHP(data.api_maxhps); this.UpdateNowHP(data.api_nowhps); this.FirstFleet.CalcDamages( data.api_kouku.GetFirstFleetDamages(), data.api_opening_atack.GetFriendDamages(), data.api_hougeki1.GetFriendDamages(), data.api_hougeki2.GetFriendDamages(), data.api_raigeki.GetFriendDamages() ); this.Enemies.CalcDamages( data.api_support_info.GetEnemyDamages(), data.api_kouku.GetEnemyDamages(), data.api_opening_atack.GetEnemyDamages(), data.api_hougeki1.GetEnemyDamages(), data.api_hougeki2.GetEnemyDamages(), data.api_raigeki.GetEnemyDamages() ); }
private void Update(sortie_battle data) { this.Name = "通常 - 昼戦"; this.UpdateFleets(data.api_dock_id, data.api_ship_ke, data.api_formation, data.api_eSlot, data.api_eKyouka, data.api_eParam, data.api_ship_lv); this.UpdateMaxHP(data.api_maxhps); this.UpdateNowHP(data.api_nowhps); this.PreUpdateBattleRank(); this.FirstFleet.CalcDamages( data.api_kouku.GetFirstFleetDamages(), data.api_opening_atack.GetFriendDamages(), data.api_hougeki1.GetFriendDamages(), data.api_hougeki2.GetFriendDamages(), data.api_raigeki.GetFriendDamages() ); this.Enemies.CalcDamages( data.api_support_info.GetEnemyDamages(), data.api_kouku.GetEnemyDamages(), data.api_opening_atack.GetEnemyDamages(), data.api_hougeki1.GetEnemyDamages(), data.api_hougeki2.GetEnemyDamages(), data.api_raigeki.GetEnemyDamages() ); this.UpdateBattleRank(); this.FriendAirSupremacy = data.api_kouku.GetAirSupremacy(); this.provider.UpdateBattleTypes(data); }
private void Update(sortie_battle data) { this.Name = "通常 - 昼戦"; this.UpdateFleets(data.api_dock_id, data, data.api_formation); this.UpdateMaxHP(data.api_maxhps); this.UpdateNowHP(data.api_nowhps); this.FirstFleet.CalcDamages( data.api_kouku.GetFirstFleetDamages(), data.api_opening_atack.GetFriendDamages(), data.api_hougeki1.GetFriendDamages(), data.api_hougeki2.GetFriendDamages(), data.api_raigeki.GetFriendDamages() ); this.Enemies.CalcDamages( data.api_support_info.GetEnemyDamages(), data.api_kouku.GetEnemyDamages(), data.api_opening_atack.GetEnemyDamages(), data.api_hougeki1.GetEnemyDamages(), data.api_hougeki2.GetEnemyDamages(), data.api_raigeki.GetEnemyDamages() ); this.FriendAirSupremacy = data.api_kouku.GetAirSupremacy(); this.AirCombatResults = data.api_kouku.ToResult(); }
public NightCombat(sortie_battle api, ShipInBattle[] friends, ShipInBattle[] enemies) : base(api.api_hougeki, friends, enemies) { if (api.api_touch_plane != null) { FriendTouch = Staff.Current.MasterData.EquipInfo[api.api_touch_plane[0]]; EnemyTouch = Staff.Current.MasterData.EquipInfo[api.api_touch_plane[1]]; } if (api.api_flare_pos != null) { int pos = api.api_flare_pos[0]; if (pos >= 1 && pos <= 6) { FriendFlare = friends[pos - 1]; } pos = api.api_flare_pos[1]; if (pos >= 1 && pos <= 6) { EnemyFlare = enemies[pos - 1]; } } foreach (var ship in friends) { if (FriendLight != null) { break; } if (ship.IsEscaped) { continue; } foreach (var equip in ship.Equipments) { int id = equip.EquipInfo.EquipType.Id; if (id == 29 || id == 42) { FriendLight = ship; break; } } } foreach (var ship in enemies) { if (EnemyLight != null) { break; } foreach (var equip in ship.Equipments) { int id = equip.EquipInfo.EquipType.Id; if (id == 29 || id == 42) { EnemyLight = ship; break; } } } }
private void Update(sortie_battle data) { this.provider.UpdateEnemyData( data.api_ship_ke, data.api_formation, data.api_eSlot, data.api_eKyouka, data.api_eParam, data.api_ship_lv, data.api_maxhps); this.provider.UpdateBattleTypes(data); }
public void NightBattle(sortie_battle api) { if (api.api_active_deck != null) { Night = new NightCombat(api, NightOrTorpedo, api.api_active_deck[1] == 1 ? EnemyFleet : EnemyFleet2); } else { Night = new NightCombat(api, NightOrTorpedo, EnemyFleet); } EndApplyBattle(); }
public void Update(sortie_battle data, bool isCombined = false) { this.Update(new CommonBattleData { api_injection_kouku = data.api_injection_kouku, api_kouku = data.api_kouku, api_opening_taisen = data.api_opening_taisen, api_opening_atack = data.api_opening_atack, api_hougeki1 = data.api_hougeki1, api_hougeki2 = data.api_hougeki2, api_hougeki3 = data.api_hougeki3, api_raigeki = data.api_raigeki }, isCombined); }
private void Battle(sortie_battle data) { ResetEnemy(data.api_ship_ke); UpdateEnemyMaxHP(data.api_maxhps); UpdateEnemyNowHP(data.api_nowhps); CalcEnemyDamages( data.api_support_info.GetEnemyDamages(), data.api_kouku.GetEnemyDamages(), data.api_opening_atack.GetEnemyDamages(), data.api_hougeki1.GetEnemyDamages(), data.api_hougeki2.GetEnemyDamages(), data.api_raigeki.GetEnemyDamages() ); }
public void NightBattle(sortie_battle api) { if (api.api_active_deck != null) { if (api.api_active_deck[1] == 1) { FireAttack(api.api_hougeki, NightOrTorpedo, EnemyFleet); } else { FireAttack(api.api_hougeki, NightOrTorpedo, EnemyFleet2); } } else { FireAttack(api.api_hougeki, NightOrTorpedo); } EndApplyBattle(); }
private void StartBattle(sortie_battle api) { ShipInBattle[] fleet1, fleet2; fleet1 = (SortieFleet1?.Ships ?? Staff.Current.Homeport.Fleets[api.api_deck_id + api.api_dock_id].Ships) .Select((x, i) => new ShipInBattle(x) { Index = i + 1 }).ToArray(); fleet2 = SortieFleet2?.Ships .Select((x, i) => new ShipInBattle(x) { Index = i + 7 }).ToArray(); if (SortieFleet1 == null)//演习 { Staff.Current.Homeport.Fleets[api.api_deck_id + api.api_dock_id].Ships.ForEach(x => x.IgnoreNextCondition()); } CurrentBattle = new Battle(api, CurrentFleetType ?? CombinedFleetType.None, CurrentNode?.Type ?? MapNodeType.Battle, fleet1, fleet2); }
private void Update(sortie_battle data) { this.Update(() => { this.UpdateInfo(data); this.AirBaseAttack(data.api_air_base_attack); this.AirCombat(data.api_kouku); this.Support(data.api_support_info); this.Shelling(data.api_opening_taisen); this.Torpedo(data.api_opening_atack); this.Shelling(data.api_hougeki1); this.Shelling(data.api_hougeki2); this.Torpedo(data.api_raigeki); }, "通常 - 昼戦"); }
private void NightBattle(sortie_battle api) => (CurrentBattle as Battle).NightBattle(api);
private void StartBattle(sortie_battle api) => CurrentBattle = new Battle(api, CurrentFleetType ?? CombinedFleetType.None, CurrentNode?.Type ?? MapNodeType.Battle, this);
public Battle(sortie_battle api, CombinedFleetType fleettype, MapNodeType battletype, ShipInBattle[] fleet1, ShipInBattle[] fleet2) { FleetType = fleettype; BattleType = battletype; Fleet1 = fleet1; Fleet2 = fleet2; bool isEnemyCombined = battletype == MapNodeType.Combined || battletype == MapNodeType.CombinedBOSS; if (api.api_formation != null) { FriendFormation = (Formation)api.api_formation[0]; EnemyFormation = (Formation)api.api_formation[1]; Direction = (Direction)api.api_formation[2]; } if (api.api_search != null) { FriendSearching = api.api_search[0]; EnemySearching = api.api_search[1]; } EnemyFleet = api.api_ship_ke .Select((x, i) => new ShipInBattle { Index = i + 1, IsEnemy = true, ShipInfo = Staff.Current.MasterData.ShipInfo[x], Level = api.api_ship_lv[i], Equipments = api.api_eSlot[i].Select(y => Staff.Current.MasterData.EquipInfo[y]).Where(y => y != null).Select(y => new EquipInBattle(y)).ToArray(), Firepower = api.api_eParam[i][0], Torpedo = api.api_eParam[i][1], AA = api.api_eParam[i][2], Armor = api.api_eParam[i][3] }) .ToArray(); EnemyFleet2 = api.api_ship_ke_combined? .Select((x, i) => new ShipInBattle { Index = i + 7, IsEnemy = true, ShipInfo = Staff.Current.MasterData.ShipInfo[x], Level = api.api_ship_lv_combined[i], Equipments = api.api_eSlot_combined[i].Select(y => Staff.Current.MasterData.EquipInfo[y]).Where(y => y != null).Select(y => new EquipInBattle(y)).ToArray(), Firepower = api.api_eParam_combined[i][0], Torpedo = api.api_eParam_combined[i][1], AA = api.api_eParam_combined[i][2], Armor = api.api_eParam_combined[i][3] }) .ToArray(); EnemyShipIds = api.api_ship_ke.ConcatNotNull(api.api_ship_ke_combined).ToArray(); SetHPs(Fleet1, api.api_f_nowhps, api.api_f_maxhps); SetHPs(EnemyFleet, api.api_e_nowhps, api.api_e_maxhps); SetHPs(Fleet2, api.api_f_nowhps_combined, api.api_f_maxhps_combined); SetHPs(EnemyFleet2, api.api_e_nowhps_combined, api.api_e_maxhps_combined); api.api_escape_idx?.ForEach(x => Fleet1[x - 1].IsEscaped = true); api.api_escape_idx_combined?.ForEach(x => Fleet2[x - 1].IsEscaped = true); if (api.api_n_support_info != null) { Support = new SupportAttack(this, api.api_n_support_info, api.api_n_support_flag); } if (api.api_n_hougeki1 != null) { NightToDay1 = new FireCombat(this, api.api_n_hougeki1); } if (api.api_n_hougeki2 != null) { NightToDay2 = new FireCombat(this, api.api_n_hougeki2); } if (api.api_air_base_injection != null) { AirBaseJet = new JetPlaneAttack(this, api.api_air_base_injection, true); } if (api.api_injection_kouku != null) { Jet = new JetPlaneAttack(this, api.api_injection_kouku, false); } if (api.api_air_base_attack != null) { AirBaseAttacks = api.api_air_base_attack.Select(x => new AirBaseAttack(this, x)).ToArray(); } if (api.api_kouku != null) { AirCombat1 = new AerialCombat(this, api.api_kouku); } if (api.api_kouku2 != null) { AirCombat2 = new AerialCombat(this, api.api_kouku2); } if (api.api_support_flag != 0) { Support = new SupportAttack(this, api.api_support_info, api.api_support_flag); } if (api.api_opening_taisen != null) { OpeningASW = new FireCombat(this, api.api_opening_taisen); } if (api.api_opening_atack != null) { OpeningTorpedo = new TorpedoCombat(this, api.api_opening_atack); } if (isEnemyCombined) { switch (fleettype) { case CombinedFleetType.None: if (api.api_hougeki1 != null) { FireStage1 = new FireCombat(this, api.api_hougeki1); } if (api.api_raigeki != null) { TorpedoStage = new TorpedoCombat(this, api.api_raigeki); } if (api.api_hougeki2 != null) { FireStage2 = new FireCombat(this, api.api_hougeki2); } if (api.api_hougeki3 != null) { FireStage3 = new FireCombat(this, api.api_hougeki3); } break; case CombinedFleetType.Carrier: case CombinedFleetType.Transport: if (api.api_hougeki1 != null) { FireStage1 = new FireCombat(this, api.api_hougeki1); } if (api.api_hougeki2 != null) { FireStage2 = new FireCombat(this, api.api_hougeki2); } if (api.api_raigeki != null) { TorpedoStage = new TorpedoCombat(this, api.api_raigeki); } if (api.api_hougeki3 != null) { FireStage3 = new FireCombat(this, api.api_hougeki3); } break; case CombinedFleetType.Surface: if (api.api_hougeki1 != null) { FireStage1 = new FireCombat(this, api.api_hougeki1); } if (api.api_hougeki2 != null) { FireStage2 = new FireCombat(this, api.api_hougeki2); } if (api.api_hougeki3 != null) { FireStage3 = new FireCombat(this, api.api_hougeki3); } if (api.api_raigeki != null) { TorpedoStage = new TorpedoCombat(this, api.api_raigeki); } break; } } else { switch (fleettype) { case CombinedFleetType.None: if (api.api_hougeki1 != null) { FireStage1 = new FireCombat(this, api.api_hougeki1); } if (api.api_hougeki2 != null) { FireStage2 = new FireCombat(this, api.api_hougeki2); } if (api.api_raigeki != null) { TorpedoStage = new TorpedoCombat(this, api.api_raigeki); } break; case CombinedFleetType.Carrier: case CombinedFleetType.Transport: if (api.api_hougeki1 != null) { FireStage1 = new FireCombat(this, api.api_hougeki1); } if (api.api_raigeki != null) { TorpedoStage = new TorpedoCombat(this, api.api_raigeki); } if (api.api_hougeki2 != null) { FireStage2 = new FireCombat(this, api.api_hougeki2); } if (api.api_hougeki3 != null) { FireStage3 = new FireCombat(this, api.api_hougeki3); } break; case CombinedFleetType.Surface: if (api.api_hougeki1 != null) { FireStage1 = new FireCombat(this, api.api_hougeki1); } if (api.api_hougeki2 != null) { FireStage2 = new FireCombat(this, api.api_hougeki2); } if (api.api_hougeki3 != null) { FireStage3 = new FireCombat(this, api.api_hougeki3); } if (api.api_raigeki != null) { TorpedoStage = new TorpedoCombat(this, api.api_raigeki); } break; } } if (api.api_hougeki != null || api.api_friendly_info != null) { NightBattle(api); } else { EndApplyBattle(); } }
public Battle(sortie_battle api, CombinedFleetType fleettype, MapNodeType battletype, ShipInBattle[] fleet1, ShipInBattle[] fleet2) { FleetType = fleettype; BattleType = battletype; Fleet1 = fleet1; Fleet2 = fleet2; if (api.api_formation != null) { FriendFormation = (Formation)api.api_formation[0]; EnemyFormation = (Formation)api.api_formation[1]; Direction = (Direction)api.api_formation[2]; } if (api.api_search != null) { FriendSearching = api.api_search[0]; EnemySearching = api.api_search[1]; } bool iscombined = fleettype != CombinedFleetType.None; bool isenemycombined = battletype == MapNodeType.Combined || battletype == MapNodeType.CombinedBOSS; EnemyFleet = api.api_ship_ke.Where(x => x != -1) .Select((x, i) => new ShipInBattle { Index = i + 1, IsEnemy = true, ShipInfo = Staff.Current.MasterData.ShipInfo[x], Level = api.api_ship_lv[i + 1], Equipments = api.api_eSlot[i].Select(y => Staff.Current.MasterData.EquipInfo[y]).Where(y => y != null).Select(y => new EquipInBattle(y)).ToArray(), Firepower = api.api_eParam[i][0], Torpedo = api.api_eParam[i][1], AA = api.api_eParam[i][2], Armor = api.api_eParam[i][3] }) .ToArray(); EnemyFleet2 = api.api_ship_ke_combined?.Where(x => x != -1) .Select((x, i) => new ShipInBattle { Index = i + 7, IsEnemy = true, ShipInfo = Staff.Current.MasterData.ShipInfo[x], Level = api.api_ship_lv_combined[i + 1], Equipments = api.api_eSlot_combined[i].Select(y => Staff.Current.MasterData.EquipInfo[y]).Where(y => y != null).Select(y => new EquipInBattle(y)).ToArray(), Firepower = api.api_eParam_combined[i][0], Torpedo = api.api_eParam_combined[i][1], AA = api.api_eParam_combined[i][2], Armor = api.api_eParam_combined[i][3] }) .ToArray(); EnemyShipIds = api.api_ship_ke.Skip(1).ConcatNotNull(api.api_ship_ke_combined?.Skip(1)).ToArray(); void SetHPs(ShipInBattle[] fleet, int index, int[] hps, int[] maxhps) { if (fleet == null) { return; } for (int i = 0; i < fleet.Length; i++) { var ship = fleet[i]; ship.MaxHP = maxhps[i + index]; ship.FromHP = ship.ToHP = hps[i + index]; } } SetHPs(Fleet1, 1, api.api_nowhps, api.api_maxhps); SetHPs(EnemyFleet, 7, api.api_nowhps, api.api_maxhps); SetHPs(Fleet2, 1, api.api_nowhps_combined, api.api_maxhps_combined); SetHPs(EnemyFleet2, 7, api.api_nowhps_combined, api.api_maxhps_combined); api.api_escape_idx?.ForEach(x => Fleet1[x - 1].IsEscaped = true); api.api_escape_idx_combined?.ForEach(x => Fleet2[x - 1].IsEscaped = true); if (api.api_air_base_injection != null) { AirBaseJet = new JetPlaneAttack(this, api.api_air_base_injection, true); } if (api.api_injection_kouku != null) { Jet = new JetPlaneAttack(this, api.api_injection_kouku, false); } if (api.api_air_base_attack != null) { AirBaseAttacks = api.api_air_base_attack.Select(x => new AirBaseAttack(this, x)).ToArray(); } if (api.api_kouku != null) { AirCombat1 = new AerialCombat(this, api.api_kouku); } if (api.api_kouku2 != null) { AirCombat2 = new AerialCombat(this, api.api_kouku2); } if (api.api_support_flag != 0) { Support = new SupportAttack(this, api.api_support_info, api.api_support_flag); } if (isenemycombined) { if (api.api_opening_taisen != null) { OpeningASW = new ECFireCombat(this, api.api_opening_taisen); } if (api.api_opening_atack != null) { OpeningTorpedo = new ECTorpedoCombat(this, api.api_opening_atack); } if (api.api_hougeki1 != null) { FireStage1 = new ECFireCombat(this, api.api_hougeki1); } if (api.api_hougeki2 != null) { FireStage2 = new ECFireCombat(this, api.api_hougeki2); } if (api.api_hougeki3 != null) { FireStage3 = new ECFireCombat(this, api.api_hougeki3); } if (api.api_raigeki != null) { TorpedoStage = new ECTorpedoCombat(this, api.api_raigeki); } } else { if (api.api_opening_taisen != null) { OpeningASW = new FireCombat(api.api_opening_taisen, NightOrTorpedo, EnemyFleet); } if (api.api_opening_atack != null) { OpeningTorpedo = new TorpedoCombat(api.api_opening_atack, NightOrTorpedo, EnemyFleet); } switch (fleettype) { case CombinedFleetType.None: if (api.api_hougeki1 != null) { FireStage1 = new FireCombat(api.api_hougeki1, Fleet1, EnemyFleet); } if (api.api_hougeki2 != null) { FireStage2 = new FireCombat(api.api_hougeki2, Fleet1, EnemyFleet); } break; case CombinedFleetType.Carrier: case CombinedFleetType.Transport: if (api.api_hougeki1 != null) { FireStage1 = new FireCombat(api.api_hougeki1, Fleet2, EnemyFleet); } if (api.api_hougeki2 != null) { FireStage2 = new FireCombat(api.api_hougeki2, Fleet1, EnemyFleet); } if (api.api_hougeki3 != null) { FireStage3 = new FireCombat(api.api_hougeki3, Fleet1, EnemyFleet); } break; case CombinedFleetType.Surface: if (api.api_hougeki1 != null) { FireStage1 = new FireCombat(api.api_hougeki1, Fleet1, EnemyFleet); } if (api.api_hougeki2 != null) { FireStage2 = new FireCombat(api.api_hougeki2, Fleet1, EnemyFleet); } if (api.api_hougeki3 != null) { FireStage3 = new FireCombat(api.api_hougeki3, Fleet2, EnemyFleet); } break; } if (api.api_raigeki != null) { TorpedoStage = new TorpedoCombat(api.api_raigeki, NightOrTorpedo, EnemyFleet); } } if (api.api_hougeki != null) { NightBattle(api); } else { EndApplyBattle(); } }
public Battle(sortie_battle api, CombinedFleetType fleettype, MapNodeType battletype, BattleManager source) { FleetType = fleettype; BattleType = battletype; Fleet1 = (source.SortieFleet1?.Ships ?? Staff.Current.Homeport.Fleets[api.api_deck_id + api.api_dock_id].Ships) .Select(x => new ShipInBattle(x)).ToArray(); Fleet2 = source.SortieFleet2?.Ships .Select(x => new ShipInBattle(x)).ToArray(); if (source.SortieFleet1 == null)//演习 { Staff.Current.Homeport.Fleets[api.api_deck_id + api.api_dock_id].Ships.ForEach(x => x.IgnoreNextCondition()); } if (api.api_formation != null) { FriendFormation = (Formation)api.api_formation[0]; EnemyFormation = (Formation)api.api_formation[1]; Direction = (Direction)api.api_formation[2]; } bool iscombined = fleettype != CombinedFleetType.None; bool isenemycombined = battletype == MapNodeType.Combined || battletype == MapNodeType.CombinedBOSS; EnemyFleet = api.api_ship_ke.Where(x => x != -1) .Select((x, i) => new ShipInBattle { ShipInfo = Staff.Current.MasterData.ShipInfo[x], Level = api.api_ship_lv[i + 1], Equipments = api.api_eSlot[i].Select(y => Staff.Current.MasterData.EquipInfo[y]).Where(y => y != null).ToArray(), Firepower = api.api_eParam[i][0], Torpedo = api.api_eParam[i][1], AA = api.api_eParam[i][2], Armor = api.api_eParam[i][3] }) .ToArray(); EnemyFleet2 = api.api_ship_ke_combined?.Where(x => x != -1) .Select((x, i) => new ShipInBattle { ShipInfo = Staff.Current.MasterData.ShipInfo[x], Level = api.api_ship_lv_combined[i + 1], Equipments = api.api_eSlot_combined[i].Select(y => Staff.Current.MasterData.EquipInfo[y]).Where(y => y != null).ToArray(), Firepower = api.api_eParam_combined[i][0], Torpedo = api.api_eParam_combined[i][1], AA = api.api_eParam_combined[i][2], Armor = api.api_eParam_combined[i][3] }) .ToArray(); EnemyShipIds = api.api_ship_ke.Skip(1).ConcatNotNull(api.api_ship_ke_combined?.Skip(1)).ToArray(); Fleet1.ArrayZip(api.api_maxhps, 1, Delegates.SetMaxHP); Fleet2?.ArrayZip(api.api_maxhps_combined, 1, Delegates.SetMaxHP); EnemyFleet.ArrayZip(api.api_maxhps, 7, Delegates.SetMaxHP); EnemyFleet2?.ArrayZip(api.api_maxhps_combined, 7, Delegates.SetMaxHP); Fleet1.ArrayZip(api.api_nowhps, 1, Delegates.SetStartHP); Fleet2?.ArrayZip(api.api_nowhps_combined, 1, Delegates.SetStartHP); EnemyFleet.ArrayZip(api.api_nowhps, 7, Delegates.SetStartHP); EnemyFleet2?.ArrayZip(api.api_nowhps_combined, 7, Delegates.SetStartHP); api.api_escape_idx?.ForEach(x => Fleet1[x - 1].IsEscaped = true); api.api_escape_idx_combined?.ForEach(x => Fleet2[x - 1].IsEscaped = true); JetAttack(api.api_air_base_injection); JetAttack(api.api_injection_kouku); AirBaseAttack(api.api_air_base_attack); AirCombat1 = AirBattle(api.api_kouku, false); AirCombat2 = AirBattle(api.api_kouku2, false); SupportAttack(api.api_support_info); FireAttack(api.api_opening_taisen, NightOrTorpedo); if (isenemycombined) { ECTorpedoAttack(api.api_opening_atack); } else { TorpedoAttack(api.api_opening_atack); } if (isenemycombined) { ECFireAttack(api.api_hougeki1); ECFireAttack(api.api_hougeki2); ECFireAttack(api.api_hougeki3); } else { switch (fleettype) { case CombinedFleetType.None: FireAttack(api.api_hougeki1, Fleet1); FireAttack(api.api_hougeki2, Fleet1); break; case CombinedFleetType.Carrier: case CombinedFleetType.Transport: FireAttack(api.api_hougeki1, Fleet2); FireAttack(api.api_hougeki2, Fleet1); FireAttack(api.api_hougeki3, Fleet1); break; case CombinedFleetType.Surface: FireAttack(api.api_hougeki1, Fleet1); FireAttack(api.api_hougeki2, Fleet1); FireAttack(api.api_hougeki3, Fleet2); break; } } if (isenemycombined) { ECTorpedoAttack(api.api_raigeki); } else { TorpedoAttack(api.api_raigeki); } NightBattle(api); }
public void NightBattle(sortie_battle api) { FireAttack(api.api_hougeki, NightOrTorpedo); EndApplyBattle(); }