/// <summary> /// コンストラクタ /// </summary> /// <param name="ware">ウェア情報</param> /// <param name="shipType">艦船種別</param> /// <param name="macro">マクロ名</param> /// <param name="size">サイズ</param> /// <param name="mass">質量</param> /// <param name="drag">抗力</param> /// <param name="inertia">慣性</param> /// <param name="hull">船体強度</param> /// <param name="people">船員数</param> /// <param name="missileStorage">ミサイル搭載量</param> /// <param name="droneStorage">ドローン搭載量</param> /// <param name="cargoSize">カーゴサイズ</param> /// <param name="shipHanger">艦船のハンガー情報</param> /// <param name="loadouts">ロードアウト情報</param> /// <param name="equipments">装備一覧</param> public Ship( IWare ware, IShipType shipType, string macro, IX4Size size, double mass, Drag drag, Inertia inertia, long hull, long people, long missileStorage, long droneStorage, long cargoSize, IReadOnlyDictionary <string, IShipHanger> shipHanger, IReadOnlyDictionary <string, IReadOnlyList <IShipLoadout> > loadouts, IReadOnlyDictionary <string, IWareEquipment> equipments ) { ID = ware.ID; Name = ware.Name; WareGroup = ware.WareGroup; TransportType = ware.TransportType; Description = ware.Description; Volume = ware.Volume; MinPrice = ware.MinPrice; AvgPrice = ware.AvgPrice; MaxPrice = ware.MaxPrice; Owners = ware.Owners; Productions = ware.Productions; Resources = ware.Resources; Tags = ware.Tags; WareEffects = ware.WareEffects; ShipType = shipType; MacroName = macro; Size = size; Mass = mass; Drag = drag; Inertia = inertia; Hull = hull; People = people; MissileStorage = missileStorage; DroneStorage = droneStorage; CargoSize = cargoSize; ShipHanger = shipHanger; Loadouts = loadouts; Equipments = equipments; }
/// <summary> /// 現在装備可能な個数を取得する /// </summary> /// <param name="type">装備ID</param> /// <param name="size">装備サイズ</param> /// <returns>装備IDと装備サイズに対応する装備があと何個装備できるか</returns> public int GetEquippableCount(IEquipmentType type, IX4Size size) => Ware.Equipments.Values.Count(x =>