Script Do Simulador De Lavagem De Pressao Apr 2026

// Clamp limits current_temp = Clamp(current_temp, 20.0, 100.0)

return final_power Prevents infinite spraying and simulates engine wear.

int combo_counter = 0 float combo_multiplier = 1.0 function UpdateComboSystem(dirt_removed): if dirt_removed > 0: combo_timer = 3.0 // Reset timer to 3 seconds combo_counter += 1

// --- UI & Progression --- int player_score = 0 int current_level = 1 float combo_timer = 0.0 // Timer for consecutive cleaning bool is_overheated = false Executed when the level loads or the simulator resets. Script do Simulador de Lavagem de Pressao

if combo_counter >= 10: combo_multiplier = 1.5 if combo_counter >= 25: combo_multiplier = 2.0 if combo_counter >= 50: combo_multiplier = 3.0 else: // Called every frame: decrement timer combo_timer -= delta_time if combo_timer <= 0.0: combo_counter = 0 combo_multiplier = 1.0 function OnLevelComplete(): int bonus = player_score * (fuel_level / 100) // Fuel efficiency bonus int total = player_score + bonus UnlockNextLevel() ShowScoreScreen(total) class UpgradeManager: int coins = 0 // Upgrade paths float pressure_upgrade = 1.0 // Multiplier: 1.0, 1.2, 1.5, 2.0 float heat_upgrade = 1.0 // Max temp: 100, 120, 150°C float fuel_capacity = 1.0 // Multiplier

// 4. Visual & Audio feedback if dirt_removed > 0: SpawnDirtParticles(hit_point, dirt_removed) PlaySound("pressure_hiss", volume = cleaning_power / 100) UpdateComboSystem(dirt_removed) player_score += dirt_removed * 10

UpdateUI() // Refresh HUD PlaySound("pump_idle_loop") This is the main loop triggered every frame while the player holds the trigger. // Clamp limits current_temp = Clamp(current_temp, 20

// Overheat logic if current_temp >= 100.0: is_overheated = true ForceStopSpray() PlaySound("overheat_alarm") ShowMessage("Machine Overheated! Wait to cool down.")

function IsFullyClean(): return GetAverageDirt() < 0.01 To reward continuous cleaning without stopping.

function UpdateTemperature(delta_time, cleaning_power): // Heat generation: more power = more heat float heat_generated = cleaning_power * 0.05 * delta_time // Passive cooling float cooling = 15.0 * delta_time // 15°C per second idle Visual & Audio feedback if dirt_removed &gt; 0:

// 1. Consume resources fuel_level -= (0.5 * delta_time) // Fuel drain rate if active_nozzle == NozzleType.SOAP: soap_level -= (1.0 * delta_time) if soap_level <= 0: SwitchNozzle(NozzleType.GREEN) // Auto-switch to water

if is_overheated and current_temp <= 70.0: is_overheated = false ShowMessage("Machine cooled. Ready to spray.") function RefillResources(): // Called at refill stations fuel_level = 100.0 soap_level = 100.0 current_temp = 40.0 // Reset to warm but not hot PlaySound("refill_click") Each cleanable object (wall, floor, vehicle) follows this interface.

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)

float final_power = base * nozzle_mod * temp_mod

Menu