mirror of
				https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
				synced 2025-11-04 08:35:41 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			GDScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			GDScript
		
	
	
	
	
	
extends Control
 | 
						|
 | 
						|
const RANK_MESSAGES = ["F_RANK_MESSAGE", "D_RANK_MESSAGE", "C_RANK_MESSAGE", "B_RANK_MESSAGE", "A_RANK_MESSAGE", "S_RANK_MESSAGE", "P_RANK_MESSAGE"]
 | 
						|
 | 
						|
var selected_index := 0
 | 
						|
 | 
						|
func _ready() -> void:
 | 
						|
	pass
 | 
						|
 | 
						|
func open() -> void:
 | 
						|
	setup_visuals()
 | 
						|
	show()
 | 
						|
	set_focus(true)
 | 
						|
	await get_tree().physics_frame
 | 
						|
	[%Continue, %Retry, %LevelSelect, %ReturnMenu][selected_index].grab_focus()
 | 
						|
 | 
						|
func setup_visuals() -> void:
 | 
						|
	%Score.text = str(Global.score)
 | 
						|
	var rank_idx = DiscoLevel.RANK_IDs.find(DiscoLevel.current_rank)
 | 
						|
	%Medal.region_rect.position.x = 16 * (rank_idx + 1)
 | 
						|
	%RankMessage.text = RANK_MESSAGES[rank_idx]
 | 
						|
	%RankMessage.modulate = GameHUD.RANK_COLOURS[DiscoLevel.current_rank]
 | 
						|
 | 
						|
func close() -> void:
 | 
						|
	hide()
 | 
						|
 | 
						|
func set_focus(enabled := false) -> void:
 | 
						|
	for i in [%Continue, %Retry, %LevelSelect, %ReturnMenu]:
 | 
						|
		i.focus_mode = 0 if enabled == false else 2
 | 
						|
 | 
						|
func continue_to_next_level() -> void:
 | 
						|
	if Global.world_num == 8 and Global.level_num == 4:
 | 
						|
		go_to_menu()
 | 
						|
		return
 | 
						|
	Global.current_level.transition_to_next_level()
 | 
						|
	Global.disco_level_continued.emit()
 | 
						|
	close()
 | 
						|
 | 
						|
func set_index(idx := 0) -> void:
 | 
						|
	selected_index = idx
 | 
						|
 | 
						|
func restart_level() -> void:
 | 
						|
	LevelTransition.level_to_transition_to = Level.get_scene_string(Global.world_num, Global.level_num)
 | 
						|
	Global.reset_values()
 | 
						|
	DiscoLevel.reset_values()
 | 
						|
	Global.transition_to_scene("res://Scenes/Levels/LevelTransition.tscn")
 | 
						|
	close()
 | 
						|
 | 
						|
func go_to_menu() -> void:
 | 
						|
	Global.transition_to_scene("res://Scenes/Levels/TitleScreen.tscn")
 | 
						|
	close()
 |