private AirCombat AirBattle(sortie_battle.airbattle api, bool issupport) { if (api == null) { return(null); } AirCombat combat = new AirCombat(); ShipInBattle friendtorpedo = null, friendbomb = null, enemytorpedo = null, enemybomb = null; if (!issupport) { if (api.api_stage1 != null)//stage1一直都有吧 { combat.AirControl = (AirControl)api.api_stage1.api_disp_seiku; combat.FriendStage1 = new LimitedValue(api.api_stage1.api_f_count - api.api_stage1.api_f_lostcount, api.api_stage1.api_f_count); combat.EnemyStage1 = new LimitedValue(api.api_stage1.api_e_count - api.api_stage1.api_e_lostcount, api.api_stage1.api_e_count); } if (api.api_stage2 != null) { combat.FriendStage2 = new LimitedValue(api.api_stage2.api_f_count - api.api_stage2.api_f_lostcount, api.api_stage2.api_f_count); combat.EnemyStage2 = new LimitedValue(api.api_stage2.api_e_count - api.api_stage2.api_e_lostcount, api.api_stage2.api_e_count); } friendtorpedo = Fleet1.Where(x => x.CanAerialTorpedo).TakeIfSingle(); friendbomb = Fleet1.Where(x => x.CanAerialBomb).TakeIfSingle(); enemytorpedo = EnemyFleet.Where(x => x.CanAerialTorpedo).TakeIfSingle(); enemybomb = EnemyFleet.Where(x => x.CanAerialBomb).TakeIfSingle(); } if (api.api_stage3 != null) { if (!issupport) { Fleet1.ArrayZip(api.api_stage3.api_fdam, 1, Delegates.SetDamage); } EnemyFleet.ArrayZip(api.api_stage3.api_edam, 1, Delegates.SetDamage); if (!issupport) { for (int i = 1; i < api.api_stage3.api_fdam.Length; i++) { if (api.api_stage3.api_frai_flag[i] != 0) { if (api.api_stage3.api_fbak_flag[i] != 0) { if (enemytorpedo == enemybomb && enemytorpedo != null) { enemytorpedo.DamageGiven += (int)api.api_stage3.api_fdam[i]; } else { AnonymousEnemyDamage += (int)api.api_stage3.api_fdam[i]; } } else if (enemytorpedo != null) { enemytorpedo.DamageGiven += (int)api.api_stage3.api_fdam[i]; } else { AnonymousEnemyDamage += (int)api.api_stage3.api_fdam[i]; } } else if (api.api_stage3.api_fbak_flag[i] != 0) { if (enemybomb != null) { enemybomb.DamageGiven += (int)api.api_stage3.api_fdam[i]; } else { AnonymousEnemyDamage += (int)api.api_stage3.api_fdam[i]; } } } for (int i = 1; i < api.api_stage3.api_edam.Length; i++) { if (api.api_stage3.api_erai_flag[i] != 0) { if (api.api_stage3.api_ebak_flag[i] != 0) { if (friendtorpedo == friendbomb && friendtorpedo != null) { friendtorpedo.DamageGiven += (int)api.api_stage3.api_edam[i]; } else { AnonymousFriendDamage += (int)api.api_stage3.api_edam[i]; } } else if (friendtorpedo != null) { friendtorpedo.DamageGiven += (int)api.api_stage3.api_edam[i]; } else { AnonymousFriendDamage += (int)api.api_stage3.api_edam[i]; } } else if (api.api_stage3.api_ebak_flag[i] != 0) { if (friendbomb != null) { friendbomb.DamageGiven += (int)api.api_stage3.api_edam[i]; } else { AnonymousFriendDamage += (int)api.api_stage3.api_edam[i]; } } } } } if (api.api_stage3_combined != null) { if (api.api_stage3_combined.api_fdam != null) { Fleet2?.ArrayZip(api.api_stage3_combined.api_fdam, 1, Delegates.SetDamage); for (int i = 1; i < api.api_stage3_combined.api_fdam.Length; i++) { if (api.api_stage3_combined.api_frai_flag[i] != 0) { if (api.api_stage3_combined.api_fbak_flag[i] != 0) { if (enemytorpedo == enemybomb && enemytorpedo != null) { enemytorpedo.DamageGiven += (int)api.api_stage3_combined.api_fdam[i]; } else { AnonymousEnemyDamage += (int)api.api_stage3_combined.api_fdam[i]; } } else if (enemytorpedo != null) { enemytorpedo.DamageGiven += (int)api.api_stage3_combined.api_fdam[i]; } else { AnonymousEnemyDamage += (int)api.api_stage3_combined.api_fdam[i]; } } else if (api.api_stage3_combined.api_fbak_flag[i] != 0) { if (enemybomb != null) { enemybomb.DamageGiven += (int)api.api_stage3_combined.api_fdam[i]; } else { AnonymousEnemyDamage += (int)api.api_stage3_combined.api_fdam[i]; } } } } if (api.api_stage3_combined.api_edam != null) { EnemyFleet2?.ArrayZip(api.api_stage3_combined.api_edam, 1, Delegates.SetDamage); for (int i = 1; i < api.api_stage3_combined.api_edam.Length; i++) { if (api.api_stage3_combined.api_erai_flag[i] != 0) { if (api.api_stage3_combined.api_ebak_flag[i] != 0) { if (friendtorpedo == friendbomb && friendtorpedo != null) { friendtorpedo.DamageGiven += (int)api.api_stage3_combined.api_edam[i]; } else { AnonymousFriendDamage += (int)api.api_stage3_combined.api_edam[i]; } } else if (friendtorpedo != null) { friendtorpedo.DamageGiven += (int)api.api_stage3_combined.api_edam[i]; } else { AnonymousFriendDamage += (int)api.api_stage3_combined.api_edam[i]; } } else if (api.api_stage3_combined.api_ebak_flag[i] != 0) { if (friendbomb != null) { friendbomb.DamageGiven += (int)api.api_stage3_combined.api_edam[i]; } else { AnonymousFriendDamage += (int)api.api_stage3_combined.api_edam[i]; } } } } } return(combat); }
private AirCombat AirBattle(sortie_battle.airbattle api, bool issupport) { if (api == null) return null; AirCombat combat = new AirCombat(); ShipInBattle friendtorpedo = null, friendbomb = null, enemytorpedo = null, enemybomb = null; if (!issupport) { if (api.api_stage1 != null)//stage1一直都有吧 { combat.AirControl = (AirControl)api.api_stage1.api_disp_seiku; combat.FriendStage1 = new LimitedValue(api.api_stage1.api_f_count - api.api_stage1.api_f_lostcount, api.api_stage1.api_f_count); combat.EnemyStage1 = new LimitedValue(api.api_stage1.api_e_count - api.api_stage1.api_e_lostcount, api.api_stage1.api_e_count); } if (api.api_stage2 != null) { combat.FriendStage2 = new LimitedValue(api.api_stage2.api_f_count - api.api_stage2.api_f_lostcount, api.api_stage2.api_f_count); combat.EnemyStage2 = new LimitedValue(api.api_stage2.api_e_count - api.api_stage2.api_e_lostcount, api.api_stage2.api_e_count); } friendtorpedo = Fleet1.Where(x => x.CanAerialTorpedo).TakeIfSingle(); friendbomb = Fleet1.Where(x => x.CanAerialBomb).TakeIfSingle(); enemytorpedo = EnemyFleet.Where(x => x.CanAerialTorpedo).TakeIfSingle(); enemybomb = EnemyFleet.Where(x => x.CanAerialBomb).TakeIfSingle(); } if (api.api_stage3 != null) { if (!issupport) Fleet1.ArrayZip(api.api_stage3.api_fdam, 1, Delegates.SetDamage); EnemyFleet.ArrayZip(api.api_stage3.api_edam, 1, Delegates.SetDamage); if (!issupport) { for (int i = 1; i < api.api_stage3.api_fdam.Length; i++) if (api.api_stage3.api_frai_flag[i] != 0) if (api.api_stage3.api_fbak_flag[i] != 0) if (enemytorpedo == enemybomb && enemytorpedo != null) enemytorpedo.DamageGiven += (int)api.api_stage3.api_fdam[i]; else AnonymousEnemyDamage += (int)api.api_stage3.api_fdam[i]; else if (enemytorpedo != null) enemytorpedo.DamageGiven += (int)api.api_stage3.api_fdam[i]; else AnonymousEnemyDamage += (int)api.api_stage3.api_fdam[i]; else if (api.api_stage3.api_fbak_flag[i] != 0) if (enemybomb != null) enemybomb.DamageGiven += (int)api.api_stage3.api_fdam[i]; else AnonymousEnemyDamage += (int)api.api_stage3.api_fdam[i]; for (int i = 1; i < api.api_stage3.api_edam.Length; i++) if (api.api_stage3.api_erai_flag[i] != 0) if (api.api_stage3.api_ebak_flag[i] != 0) if (friendtorpedo == friendbomb && friendtorpedo != null) friendtorpedo.DamageGiven += (int)api.api_stage3.api_edam[i]; else AnonymousFriendDamage += (int)api.api_stage3.api_edam[i]; else if (friendtorpedo != null) friendtorpedo.DamageGiven += (int)api.api_stage3.api_edam[i]; else AnonymousFriendDamage += (int)api.api_stage3.api_edam[i]; else if (api.api_stage3.api_ebak_flag[i] != 0) if (friendbomb != null) friendbomb.DamageGiven += (int)api.api_stage3.api_edam[i]; else AnonymousFriendDamage += (int)api.api_stage3.api_edam[i]; } } if (api.api_stage3_combined != null) { if (api.api_stage3_combined.api_fdam != null) { Fleet2?.ArrayZip(api.api_stage3_combined.api_fdam, 1, Delegates.SetDamage); for (int i = 1; i < api.api_stage3_combined.api_fdam.Length; i++) if (api.api_stage3_combined.api_frai_flag[i] != 0) if (api.api_stage3_combined.api_fbak_flag[i] != 0) if (enemytorpedo == enemybomb && enemytorpedo != null) enemytorpedo.DamageGiven += (int)api.api_stage3_combined.api_fdam[i]; else AnonymousEnemyDamage += (int)api.api_stage3_combined.api_fdam[i]; else if (enemytorpedo != null) enemytorpedo.DamageGiven += (int)api.api_stage3_combined.api_fdam[i]; else AnonymousEnemyDamage += (int)api.api_stage3_combined.api_fdam[i]; else if (api.api_stage3_combined.api_fbak_flag[i] != 0) if (enemybomb != null) enemybomb.DamageGiven += (int)api.api_stage3_combined.api_fdam[i]; else AnonymousEnemyDamage += (int)api.api_stage3_combined.api_fdam[i]; } if (api.api_stage3_combined.api_edam != null) { EnemyFleet2?.ArrayZip(api.api_stage3_combined.api_edam, 1, Delegates.SetDamage); for (int i = 1; i < api.api_stage3_combined.api_edam.Length; i++) if (api.api_stage3_combined.api_erai_flag[i] != 0) if (api.api_stage3_combined.api_ebak_flag[i] != 0) if (friendtorpedo == friendbomb && friendtorpedo != null) friendtorpedo.DamageGiven += (int)api.api_stage3_combined.api_edam[i]; else AnonymousFriendDamage += (int)api.api_stage3_combined.api_edam[i]; else if (friendtorpedo != null) friendtorpedo.DamageGiven += (int)api.api_stage3_combined.api_edam[i]; else AnonymousFriendDamage += (int)api.api_stage3_combined.api_edam[i]; else if (api.api_stage3_combined.api_ebak_flag[i] != 0) if (friendbomb != null) friendbomb.DamageGiven += (int)api.api_stage3_combined.api_edam[i]; else AnonymousFriendDamage += (int)api.api_stage3_combined.api_edam[i]; } } return combat; }