public static void FuelVehicle(string i_LicsenseNumber, Enums.eGasType i_GasType, float i_GasToFuel) { Engine engine = getVehicleByLicenseNumber(i_LicsenseNumber).Vehicle.Engine; FuelEngine fuelEngine = engine as FuelEngine; if (fuelEngine != null) { fuelEngine.FuelVehicle(i_GasToFuel, i_GasType); } else { throw new ArgumentException("Vehicle has an electric engine"); } }
public static void InitEngine(eVehicleType i_Type, float i_CurrentEnergy, out Engine o_Engine, Vehicle i_Vehicle) { float maxEnergy; eGasType gasType = k_EnumDefault; switch (i_Type) { case eVehicleType.ElectricCar: maxEnergy = k_MaxTimeElectricCar; break; case eVehicleType.ElectricMotorcycle: maxEnergy = k_MaxTimeElectricMotorcycle; break; case eVehicleType.FuelCar: maxEnergy = k_MaxFuelCar; gasType = k_CarGas; break; case eVehicleType.FuelMotorcycle: maxEnergy = k_MaxFuelMotorcycle; gasType = k_MotorcycleGas; break; case eVehicleType.Truck: maxEnergy = k_MaxFuelTruck; gasType = k_TruckGas; break; default: throw new FormatException("Invalid Vehicle Type"); } if (i_Type == eVehicleType.ElectricCar || i_Type == eVehicleType.ElectricMotorcycle) { o_Engine = new ElectricEngine(i_CurrentEnergy, maxEnergy); } else { o_Engine = new FuelEngine(gasType, i_CurrentEnergy, maxEnergy); } i_Vehicle.Engine = o_Engine; }