public ShipDesign(Player player, string designName, ShipHullStat hullStat, EnginesStat enginesStat, ShipCombatStance combatStance, IEnumerable<WeaponDesign> weaponDesigns, IEnumerable<PassiveCountermeasureStat> passiveCmStats, IEnumerable<ActiveCountermeasureStat> activeCmStats, IEnumerable<SensorStat> sensorStats, IEnumerable<ShieldGeneratorStat> shieldGenStats, Priority hqPriority) : base(player, designName, weaponDesigns, passiveCmStats, activeCmStats, sensorStats, shieldGenStats, hqPriority) { HullStat = hullStat; EnginesStat = enginesStat; CombatStance = combatStance; }
/// <summary> /// Initializes a new instance of the <see cref="ShipHullEquipment"/> class. /// </summary> /// <param name="stat">The stat.</param> /// <param name="name">The optional unique name for this equipment. If not provided, the name embedded in the stat will be used.</param> public ShipHullEquipment(ShipHullStat stat, string name = null) : base(stat, name) { }
private void MakeAndRecordElementDesign(string designName, Player owner, ShipHullStat hullStat, IEnumerable<AWeaponStat> weaponStats, IEnumerable<PassiveCountermeasureStat> passiveCmStats, IEnumerable<ActiveCountermeasureStat> activeCmStats, IEnumerable<SensorStat> sensorStats, IEnumerable<ShieldGeneratorStat> shieldGenStats, Priority hqPriority, ShipCombatStance stance) { ShipHullCategory hullCategory = hullStat.HullCategory; var engineStat = MakeEnginesStat(hullCategory); var weaponDesigns = _factory.__MakeWeaponDesigns(hullCategory, weaponStats); var design = new ShipDesign(owner, designName, hullStat, engineStat, stance, weaponDesigns, passiveCmStats, activeCmStats, sensorStats, shieldGenStats, hqPriority); _gameMgr.PlayersDesigns.Add(design); }
private FollowableItemCameraStat MakeElementCameraStat(ShipHullStat hullStat) { ShipHullCategory hullCat = hullStat.HullCategory; float fov; switch (hullCat) { case ShipHullCategory.Dreadnought: case ShipHullCategory.Carrier: case ShipHullCategory.Troop: fov = 70F; break; case ShipHullCategory.Cruiser: case ShipHullCategory.Colonizer: case ShipHullCategory.Investigator: fov = 65F; break; case ShipHullCategory.Destroyer: case ShipHullCategory.Support: fov = 60F; break; case ShipHullCategory.Frigate: fov = 55F; break; case ShipHullCategory.Fighter: case ShipHullCategory.Scout: case ShipHullCategory.None: default: throw new NotImplementedException(ErrorMessages.UnanticipatedSwitchValue.Inject(hullCat)); } float radius = hullStat.HullDimensions.magnitude / 2F; //D.Log(ShowDebugLog, "Radius of {0} is {1:0.##}.", hullCat.GetValueName(), radius); float minViewDistance = radius * 2F; float optViewDistance = radius * 3F; float distanceDampener = 3F; // default float rotationDampener = 10F; // ships can change direction pretty fast return new FollowableItemCameraStat(minViewDistance, optViewDistance, fov, distanceDampener, rotationDampener); }