function InitializeSimulator(): current_psi = 300.0 // Start with medium pressure current_temp = 20.0 // Cold water active_nozzle = NozzleType.GREEN fuel_level = 100.0 soap_level = 100.0 is_overheated = false combo_timer = 0.0 // Reset all dirt decals on surfaces for each surface in scene_surfaces: surface.dirt_amount = GetInitialDirtByLevel(current_level)
function IsFullyClean(): return GetAverageDirt() < 0.01 To reward continuous cleaning without stopping.
float nozzle_mod = 1.0 switch active_nozzle: case RED: nozzle_mod = 2.5 // Very high impact, narrow angle case YELLOW: nozzle_mod = 1.8 case GREEN: nozzle_mod = 1.0 case WHITE: nozzle_mod = 0.6 case SOAP: nozzle_mod = 0.2 // Soap doesn't blast, it chemically loosens
// Soap effect: reduces dirt resistance for a few seconds if active_nozzle == NozzleType.SOAP: hit_surface.temp_dirt_resistance *= 0.7
float final_power = base * nozzle_mod * temp_mod
return final_power Prevents infinite spraying and simulates engine wear.
// --- Cleaning System --- float dirt_resistance = 0.0 to 1.0 (0 = clean, 1 = muddy) float heat_effectiveness = 0.5 // Hotter water cleans grease faster
// Clamp limits current_temp = Clamp(current_temp, 20.0, 100.0)



