/// <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; }
/// <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; }