public PhaseJetBaseAirAttackUnit(BattleData data, string title, int index) : base(data, title) { if (index == -1) { AirAttackIndex = 0; AirBattleData = data.RawData.api_air_base_injection; } else { AirAttackIndex = index; AirBattleData = data.RawData.api_air_base_injection[index]; } if (AirBattleData != null) { StageFlag = new int[] { AirBattleData.api_stage1() ? 1 : 0, AirBattleData.api_stage2() ? 1 : 0, AirBattleData.api_stage3() ? 1 : 0, }; } _squadrons = GetSquadrons().ToArray(); TorpedoFlags = ConcatStage3Array <int>("api_frai_flag", "api_erai_flag"); BomberFlags = ConcatStage3Array <int>("api_fbak_flag", "api_ebak_flag"); Criticals = ConcatStage3Array <int>("api_fcl_flag", "api_ecl_flag"); Damages = ConcatStage3Array <double>("api_fdam", "api_edam"); }
/// <summary> /// 航空機を発艦させた艦船のインデックスを取得します。 /// </summary> /// <param name="index">取得する配列のインデックス。基本的に 0=自軍, 1=敵軍</param> protected int[] GetLaunchedShipIndex(int index) { if (AirBattleData == null) { return(null); } if (!AirBattleData.api_plane_from()) { return(new int[0]); } dynamic data = AirBattleData.api_plane_from; if (data == null || !data.IsArray) { return(new int[0]); } var planes = (dynamic[])data; if (index < planes.Length) { var plane = (int[])planes[index]; if (plane == null) { return(new int[0]); } return(plane.Where(i => i > 0).Select(i => i - 1).ToArray()); } return(new int[0]); }
public PhaseBaseAirAttackUnit(BattleData data, string title, int index) : base(data, title, "_it_will_never_be_processed_") { AirAttackIndex = index; AirBattleData = data.RawData.api_air_base_attack[index]; StageFlag = AirBattleData.api_stage_flag() ? (int[])AirBattleData.api_stage_flag : null; TorpedoFlags = ConcatStage3Array("api_frai_flag", "api_erai_flag"); BomberFlags = ConcatStage3Array("api_fbak_flag", "api_ebak_flag"); Criticals = ConcatStage3Array("api_fcl_flag", "api_ecl_flag"); Damages = ConcatStage3Array("api_fdam", "api_edam"); }
public PhaseBaseAirRaid(BattleData data, string title) : base(data, title) { AirBattleData = data.RawData.api_air_base_attack; StageFlag = AirBattleData.api_stage_flag() ? (int[])AirBattleData.api_stage_flag : null; LaunchedShipIndexFriend = GetLaunchedShipIndex(0); LaunchedShipIndexEnemy = GetLaunchedShipIndex(1); _squadrons = GetSquadrons().ToArray(); TorpedoFlags = ConcatStage3Array <int>("api_frai_flag", "api_erai_flag"); BomberFlags = ConcatStage3Array <int>("api_fbak_flag", "api_ebak_flag"); Criticals = ConcatStage3Array <int>("api_fcl_flag", "api_ecl_flag"); Damages = ConcatStage3Array <double>("api_fdam", "api_edam"); }
public PhaseBaseAirAttackUnit(BattleData data, string title, int index) : base(data, title) { AirAttackIndex = index; AirBattleData = data.RawData.api_air_base_attack[index]; StageFlag = AirBattleData.api_stage_flag() ? (int[])AirBattleData.api_stage_flag : null; LaunchedShipIndexEnemy = GetLaunchedShipIndex(0); _squadrons = GetSquadrons().ToArray(); TorpedoFlags = ConcatStage3Array("api_frai_flag", "api_erai_flag"); BomberFlags = ConcatStage3Array("api_fbak_flag", "api_ebak_flag"); Criticals = ConcatStage3Array("api_fcl_flag", "api_ecl_flag"); Damages = ConcatStage3Array("api_fdam", "api_edam"); }
public PhaseJetAirBattle(BattleData data, string title) : base(data, title) { AirBattleData = RawData.api_injection_kouku() ? RawData.api_injection_kouku : null; if (AirBattleData != null) { StageFlag = new int[] { AirBattleData.api_stage1() ? 1 : 0, AirBattleData.api_stage2() ? 1 : 0, AirBattleData.api_stage3() ? 1 : 0, }; } LaunchedShipIndexFriend = GetLaunchedShipIndex(0); LaunchedShipIndexEnemy = GetLaunchedShipIndex(1); TorpedoFlags = ConcatStage3Array("api_frai_flag", "api_erai_flag"); BomberFlags = ConcatStage3Array("api_fbak_flag", "api_ebak_flag"); Criticals = ConcatStage3Array("api_fcl_flag", "api_ecl_flag"); Damages = ConcatStage3Array("api_fdam", "api_edam"); }