/// <summary> /// Initializes a new instance of the <see cref="MissileLauncher"/> 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 MissileLauncher(MissileWeaponStat stat, string name = null) : base(stat, name) { _activeFiredOrdnance = new HashSet<ITerminatableOrdnance>(); }
private IList<AWeaponStat> __CreateAvailableMissileWeaponStats(int quantity) { IList<AWeaponStat> statsList = new List<AWeaponStat>(quantity); for (int i = 0; i < quantity; i++) { WDVCategory deliveryVehicleCategory = WDVCategory.Missile; RangeCategory rangeCat = RangeCategory.Long; ; float maxSteeringInaccuracy = UnityEngine.Random.Range(UnityConstants.AngleEqualityPrecision, 3F); // 0.04 - 3 degrees float reloadPeriod = UnityEngine.Random.Range(10F, 12F); string name = "Torpedo Launcher"; float deliveryStrengthValue = UnityEngine.Random.Range(6F, 8F); var damageCategory = Enums<DamageCategory>.GetRandom(excludeDefault: true); float damageValue = UnityEngine.Random.Range(3F, 8F); float ordMaxSpeed = UnityEngine.Random.Range(4F, 6F); float ordMass = 5F; float ordDrag = 0.01F; float ordTurnRate = 700F; // degrees per hour float ordCourseUpdateFreq = 0.5F; // course updates per hour DamageStrength damagePotential = new DamageStrength(damageCategory, damageValue); WDVStrength deliveryVehicleStrength = new WDVStrength(deliveryVehicleCategory, deliveryStrengthValue); var weapStat = new MissileWeaponStat(name, AtlasID.MyGui, TempGameValues.AnImageFilename, "Description...", 0F, 0F, 0F, 0F, rangeCat, deliveryVehicleStrength, reloadPeriod, damagePotential, ordMaxSpeed, ordMass, ordDrag, ordTurnRate, ordCourseUpdateFreq, maxSteeringInaccuracy); statsList.Add(weapStat); } return statsList; }