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");
        }
Exemple #5
0
            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");
            }
Exemple #6
0
        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");
        }