Пример #1
0
        private void UpdateFleets(
            int api_deck_id,
            ICommonBattleMembers data,
            int[] api_formation = null)
        {
            this.UpdatedTime = DateTimeOffset.Now;
            this.UpdateFriendFleets(api_deck_id);

            this.Enemies = new FleetData(
                data.ToMastersShipDataArray(),
                this.Enemies?.Formation ?? Formation.なし,
                this.Enemies?.Name ?? "",
                FleetType.Enemy);

            if (api_formation != null)
            {
                this.BattleSituation = (BattleSituation)api_formation[2];
                if (this.FirstFleet != null)
                {
                    this.FirstFleet.Formation = (Formation)api_formation[0];
                }
                if (this.Enemies != null)
                {
                    this.Enemies.Formation = (Formation)api_formation[1];
                }
            }

            this.CurrentDeckId = api_deck_id;
        }
Пример #2
0
        private void UpdateFleets(int api_deck_id, ICommonBattleMembers data, int[] api_formation = null)
        {
            // 아군 정보 모항 기준으로 갱신
            this.UpdateFriendFleets(api_deck_id);

            this.EnemyFirst = new FleetData(
                data.ToMastersShipDataArray(),
                this.EnemyFirst?.Formation ?? Formation.없음,
                this.EnemyFirst?.Name ?? "",
                FleetType.EnemyFirst
                );

            // 제 2함대는 없음
            this.EnemySecond = new FleetData(
                new MembersShipData[0],
                Formation.없음,
                "",
                FleetType.EnemySecond
                );

            // 진형과 전투형태 존재하면
            if (api_formation != null)
            {
                if (this.AliasFirst != null)
                {
                    this.AliasFirst.Formation = (Formation)api_formation[0];
                }

                if (this.EnemyFirst != null)
                {
                    this.EnemyFirst.Formation = (Formation)api_formation[1];
                }
            }
        }
Пример #3
0
 private void UpdateEnemyFleets(ICommonBattleMembers data)
 {
     this.EnemyFleet.Update(data.GetEnemyFleets());
     if (!string.IsNullOrEmpty(this.NextCell.EnemyName))
     {
         this.EnemyFleet.Name = this.NextCell.EnemyName;
     }
 }
Пример #4
0
 public static MastersShipData[] GetEnemySecondFleetData(this ICommonBattleMembers data)
 {
     return(data.api_ship_ke_combined?.GetSection(0)
            .ToMastersShipDataArray(
                data.api_ship_lv_combined.GetSection(0).ToArray(),
                data.api_e_maxhps_combined.GetEnemyData().ToArray(),
                data.api_e_nowhps_combined.GetEnemyData().ToArray(),
                data.api_eParam_combined,
                data.api_eSlot_combined));
 }
Пример #5
0
 public static MastersShipData[] GetEnemyFirstFleetData(this ICommonBattleMembers data)
 {
     return(data.api_ship_ke
            .ToMastersShipDataArray(
                data.api_ship_lv.ToArray(),
                data.api_e_maxhps.GetEnemyData().ToArray(),
                data.api_e_nowhps.GetEnemyData().ToArray(),
                data.api_eParam,
                data.api_eSlot));
 }
Пример #6
0
        private void UpdateFleetsHPs(ICommonBattleMembers data)
        {
            this.FriendFleet.Fleets[1].UpdateHPs(data.api_f_maxhps.GetFriendData(), data.api_f_nowhps.GetFriendData());
            this.EnemyFleet.Fleets[1].UpdateHPs(data.api_e_maxhps.GetEnemyData(), data.api_e_nowhps.GetEnemyData());

            if (this.FriendFleet.FleetCount > 1)
            {
                this.FriendFleet.Fleets[2].UpdateHPs(data.api_f_maxhps_combined.GetFriendData(), data.api_f_nowhps_combined.GetFriendData());
            }
            if (this.EnemyFleet.FleetCount > 1)
            {
                this.EnemyFleet.Fleets[2].UpdateHPs(data.api_e_maxhps_combined.GetEnemyData(), data.api_e_nowhps_combined.GetEnemyData());
            }
        }
Пример #7
0
        public static FleetData[] GetEnemyFleets(this ICommonBattleMembers data)
        {
            var fleet1 = data.GetEnemyFirstFleetData();
            var fleet2 = data.GetEnemySecondFleetData();

            if (fleet2 != null)
            {
                return(new[] { new FleetData(fleet1), new FleetData(fleet2) });
            }
            else
            {
                return(new[] { new FleetData(fleet1) });
            }
        }
Пример #8
0
        private void UpdateFleetsHPsEc(ICommonBattleMembers data)
        {
            this.FriendFleet.Fleets[1].UpdateHPs(data.api_f_maxhps.GetFriendData(), data.api_f_nowhps.GetFriendData());
            this.EnemyFleet.Fleets[1].UpdateHPs(data.api_e_maxhps.GetEnemyData(), data.api_e_nowhps.GetEnemyData());

            if (this.FriendFleet.FleetCount > 1)
            {
                // each_battle->ec_midnight_battle api_maxhp_combined[1..6]==api_nowhp_combined[1..6]
                this.FriendFleet.Fleets[2].UpdateNowHPs(data.api_f_nowhps_combined.GetFriendData());
            }
            if (this.EnemyFleet.FleetCount > 1)
            {
                this.EnemyFleet.Fleets[2].UpdateHPs(data.api_e_maxhps_combined.GetEnemyData(), data.api_e_nowhps_combined.GetEnemyData());
            }
        }
Пример #9
0
        public static MastersShipData[] ToMastersShipDataArray(this ICommonBattleMembers data)
        {
            var master = KanColleClient.Current.Master;

            return(data.api_ship_ke
                   .Where(x => x != -1)
                   .Select((x, i) => new MastersShipData(master.Ships[x])
            {
                Slots = data.api_eSlot[i]
                        .Where(s => 0 < s)
                        .Select(s => master.SlotItems[s])
                        .Select(s => new ShipSlotData(s))
                        .ToArray(),
            })
                   .ToArray());
        }
Пример #10
0
        public static MastersShipData[] ToMastersShipDataArray(this ICommonBattleMembers data)
        {
            var master = KanColleClient.Current.Master;

            return(data.api_ship_ke
                   .Where(x => x != -1)
                   .Select((x, i) => new MastersShipData(master.Ships[x])
            {
                Level = data.api_ship_lv[i],
                Firepower = data.api_eParam[i][0],
                Torpedo = data.api_eParam[i][1],
                AA = data.api_eParam[i][2],
                Armer = data.api_eParam[i][3],
                Slots = data.api_eSlot[i]
                        .Where(s => 0 < s)
                        .Select(s => master.SlotItems[s])
                        .Select(s => new ShipSlotData(s))
                        .ToArray(),
            })
                   .ToArray());
        }
Пример #11
0
 private void UpdateEnemyFleets(ICommonBattleMembers data, string enemyName)
 {
     this.EnemyFleet.Update(data.GetEnemyFleets());
     this.EnemyFleet.Name = enemyName;
 }
Пример #12
0
        private void UpdateFleets(
            int api_deck_id,
            ICommonBattleMembers data,
            int[] api_formation = null)
        {
            this.UpdatedTime = DateTimeOffset.Now;
            this.UpdateFriendFleets(api_deck_id);
            
            this.Enemies = new FleetData(
                data.ToMastersShipDataArray(),
                this.Enemies?.Formation ?? Formation.なし,
                this.Enemies?.Name ?? "",
                FleetType.Enemy);

            if (api_formation != null)
            {
                this.BattleSituation = (BattleSituation)api_formation[2];
                if (this.FirstFleet != null) this.FirstFleet.Formation = (Formation)api_formation[0];
                if (this.Enemies != null) this.Enemies.Formation = (Formation)api_formation[1];
            }

            this.CurrentDeckId = api_deck_id;
        }