| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- extends Control
- signal full_run_selected
- signal level_run_selected
- signal cancelled
- var selected := 0
- var active := false
- func open() -> void:
- setup_visuals()
- [$PanelContainer/VBoxContainer/HBoxContainer/Full, $PanelContainer/VBoxContainer/HBoxContainer/Level][selected].grab_focus()
- show()
- await get_tree().process_frame
- active = true
- func close() -> void:
- hide()
- active = false
- func _process(_delta: float) -> void:
- if active:
- if Input.is_action_just_pressed("ui_accept"):
- [full_run_selected, level_run_selected][selected].emit()
- Global.current_game_mode = [Global.GameMode.MARATHON, Global.GameMode.MARATHON_PRACTICE][selected]
- close()
- elif Input.is_action_just_pressed("ui_back"):
- close()
- cancelled.emit()
- if Input.is_action_just_pressed("ui_left"):
- selected -= 1
- if Input.is_action_just_pressed("ui_right"):
- selected += 1
- selected = clamp(selected, 0, 1)
- %MarathonName.text = ["MARATHON_FULL", "MARATHON_LEVEL"][selected]
- for i in [$PanelContainer/VBoxContainer/HBoxContainer/Full, $PanelContainer/VBoxContainer/HBoxContainer/Level]:
- i.get_node("Label").visible = selected == i.get_index()
- func setup_visuals() -> void:
- if SpeedrunHandler.marathon_best_warpless_time <= 0:
- %FullRunPB.text = "--:--:--"
- else:
- %FullRunPB.text = SpeedrunHandler.gen_time_string(SpeedrunHandler.format_time(SpeedrunHandler.marathon_best_warpless_time))
-
- if SpeedrunHandler.marathon_best_any_time <= 0:
- %WarpedRunPB.text = "--:--:--"
- else:
- %WarpedRunPB.text = SpeedrunHandler.gen_time_string(SpeedrunHandler.format_time(SpeedrunHandler.marathon_best_any_time))
- for i in %FullMedals.get_children():
- i.get_node("Full").visible = SpeedrunHandler.marathon_best_warpless_time <= SpeedrunHandler.GOLD_WARPLESS_TIMES[Global.current_campaign] * SpeedrunHandler.MEDAL_CONVERSIONS[i.get_index()] and SpeedrunHandler.marathon_best_warpless_time > 0
- for i in %WarpedMedals.get_children():
- i.get_node("Full").visible = SpeedrunHandler.marathon_best_any_time <= SpeedrunHandler.GOLD_ANY_TIMES[Global.current_campaign] * SpeedrunHandler.MEDAL_CONVERSIONS[i.get_index()] and SpeedrunHandler.marathon_best_any_time > 0
|