# Leonida getaway controller
Owner-only PlayerPrototype controller for Lucia and Jason in Vice City. Start opens free roam. WASD walks relative to the camera; Shift sprints; E near the liquor-store marker starts an optional job, then takes the cash. E also enters/exits the coupe and changes to the motel escape van. Q switches protagonists on foot or driver/passenger role in the car. F fires at a pursuing patrol; three hits disable it. The partner drives the street ring while the player shoots. Space brakes; R replays the score.
The score progresses through robbery, two-star pursuit, eight seconds unseen, ditching the known red coupe at the motel, and leaving in an unknown white van for a clean getaway. Vehicle collisions use separating-axis tests of oriented body footprints for player/patrol and patrol/patrol contact, with separation and speed loss. Crashes reduce health and police can arrest a stationary player. WASTED or BUSTED shows a five-second countdown and returns the player to free roam outside Leonida Medical with restored health and a $500 deduction. Vehicles remain in the city. A new job can begin at the store.
Public methods: begin(), retry(), interact(), freeRoam(), swap(), shoot(), reportCrime(severity). Ambient pedestrian crimes call reportCrime without starting or advancing the robbery mission. Fields: phase, cash, wanted, health, driving, speed, objective, x, z, heading, heat, caught, respawnIn, activeCharacter, shooter, evidence, copsRemaining, shotsFired, vehicle. Heat and caught are normalized progress values. Presentation observes these fields.
Generated character bundles have painted textures and repaired meter-scale skeletons, rig data and fresh skinned meshes. Temporary visual roots, vehicle/cop roots and input claims are cleaned with the component. Retry resets vehicles, burned-car effect, health, heat and cash.