use Vehicle.Car; use Vehicle.Engine; Car/Equinox -> hasEngine { String model; Integer year; Decimal fuelEfficiency; Boolean isRunning; Decimal fuelLevel; Decimal mileage; fn on_create(String model, Integer year) -> [Null] { my.model.set(model); my.year.set(year); my.fuelEfficiency.set(28.5); my.isRunning.set(False); my.fuelLevel.set(100.0); my.mileage.set(0.0); rtn Null; } fn startEngine() -> [Boolean] { Boolean engineStatus.set(Boolean.and(my.isRunning.not(True), my.fuelLevel.gt(0.0))); my.isRunning.set(engineStatus); rtn engineStatus; } fn calculateFuelConsumption(Decimal distance) -> [Decimal] { Decimal consumption.set(distance.divide(my.fuelEfficiency)); rtn consumption; } fn checkMaintenance() -> [Boolean] { Boolean needsMaintenance.set(my.mileage.gte(50000.0)); rtn needsMaintenance; } +fn drive(Decimal miles) -> [Null] { my.mileage.add(miles); my.fuelLevel.subtract(my.calculateFuelConsumption(miles)); rtn Null; } }