Esempio n. 1
0
        /// <summary>
        /// 中隊(航空機)あたりの制空値を計算します
        /// </summary>
        /// <param name="slotData">装備データ</param>
        /// <returns>中隊あたりの制空値</returns>
        public AirSupResult GetPlaneAirSup(Dictionary<int, SlotItem> slotData)
        {
            if (_airsup == null)
            {
                if (slotData == null)
                {
                    throw new NullReferenceException("GetPlaneAirSup で slotDataがNullです");
                }

                if (mstSlot == null)
                {
                    if (oslot == null)
                    {
                        if (!slotData.TryGetValue(_api_slot_id, out oslot)) throw new KeyNotFoundException("GetPlaneAirSup で 対象の装備データを取得できません");
                    }
                    mstSlot = oslot.DSlotitem;
                    if (mstSlot == null)
                    {
                        throw new KeyNotFoundException("GetPlaneAirSup で 対象のマスターデータを取得できません");
                    }
                }

                _airsup = AirSupResult.SingleSlotitemAirSup(mstSlot, (double)_api_count, oslot.api_alv);
            }

            return _airsup;
        }
Esempio n. 2
0
        /// <summary>
        /// ステータス : 中隊ベースのビュー用のデータを取得します
        /// </summary>
        /// <param name="slotData">装備データ</param>
        /// <returns>ビュー用のデータ</returns>
        public ViewStatus GetStatusViewData(Dictionary<int, SlotItem> slotData)
        {
            if(slotData == null) return null;

            if(oslot == null)
            {
                if (!slotData.TryGetValue(_api_slot_id, out oslot)) return null;
            }
            if(mstSlot == null)
            {
                mstSlot = oslot.DSlotitem;
                if(mstSlot == null) return null;
            }

            var airsup = GetPlaneAirSup(slotData);

            var result = new ViewStatus()
            {
                PlaneName = mstSlot.api_name,
                Training = "◆" + oslot.api_alv.ToString(),
                Cost = mstSlot.api_cost,
                Radius = mstSlot.api_distance,
                Dispatch = mstSlot.api_cost * this.api_max_count,
                AirSup = airsup,
            };

            return result;
        }