public Engine(IEngineClass engineClass, FuelSystem fuelSystem) { Class = engineClass ?? throw new ArgumentNullException(nameof(engineClass)); FuelSystem = fuelSystem ?? throw new ArgumentNullException(nameof(fuelSystem)); if (FuelSystem.Class.Fuel != Class.Fuel) { throw new ArgumentException($"Engine type '{Class.Type}' can't run on '{FuelSystem.Class.Fuel}' fuel."); } }
//public ShipClass(int techLevel, double efficiency, string name, string description, // Mass mass, IEngineClass impulseEngineClass, IEngineClass warpEngineClass, EnergyWeaponClass[] weaponSystems) // : base(techLevel, efficiency, name, description) public ShipClass(int techLevel, double efficiency, string name, string description, Mass mass, IEngineClass impulseEngineClass, IEngineClass warpEngineClass) : base(techLevel, efficiency, name, description) { Mass = mass ?? throw new ArgumentNullException(nameof(mass)); ImpulseEngineClass = impulseEngineClass ?? throw new ArgumentNullException(nameof(impulseEngineClass)); WarpEngineClass = warpEngineClass ?? throw new ArgumentNullException(nameof(warpEngineClass)); //WeaponSystems = weaponSystems ?? throw new ArgumentNullException(nameof(weaponSystems)); }