fn config() { let config = SceneConfig(); config.show_starfield(true); config.show_phys(true); return config } fn init(state) { let ring = SpriteBuilder( "ring", "ui::status", Rect( -5.0, -5.0, 100.0, 100.0, SpriteAnchor::NorthEast, SpriteAnchor::NorthEast ) ); let shield = RadialBuilder( "shield", 2.5, Color(0.3, 0.6, 0.8, 1.0), Rect( -9.5, -9.5, 91.0, 91.0, SpriteAnchor::NorthEast, SpriteAnchor::NorthEast ) ); shield.set_progress(1.0); let hull = RadialBuilder( "hull", 2.5, Color(0.8, 0.7, 0.5, 1.0), Rect( -13.5, -13.5, 83.0, 83.0, SpriteAnchor::NorthEast, SpriteAnchor::NorthEast ) ); hull.set_progress(1.0); return [ ring, shield, hull ]; } fn event(state, event) { if type_of(event) == "PlayerShipStateEvent" { if state.player_ship().is_landed() { return SceneAction::GoTo("landed"); } return; } } fn step(state, elements) { elements["shield"].set_val( state.player_ship().get_shields() / state.player_ship().get_total_shields() ); elements["hull"].set_val( state.player_ship().get_hull() / state.player_ship().get_total_hull() ); }