84 lines
2.3 KiB
GDScript
84 lines
2.3 KiB
GDScript
extends Control
|
|
|
|
@onready var menu_list : Array = [
|
|
{
|
|
"option": %STORY,
|
|
"mode" : Game.Modes.STORY,
|
|
"scene" : preload("res://scenes/character_select.tscn")
|
|
},
|
|
{
|
|
"option": %"VS-COM",
|
|
"mode" : Game.Modes.VS_COM,
|
|
"scene" : preload("res://scenes/character_select.tscn")
|
|
},
|
|
{
|
|
"option": %"VS-MAN",
|
|
"mode" : Game.Modes.VS_MAN,
|
|
"scene" : preload("res://scenes/multiplayer_setup.tscn")
|
|
},
|
|
{
|
|
"option": %STORY,
|
|
"mode" : Game.Modes.STORY,
|
|
"scene" : preload("res://scenes/character_select.tscn")
|
|
},
|
|
{
|
|
"option": %RECORD,
|
|
"mode" : Game.Modes.STORY,
|
|
"scene" : preload("res://scenes/character_select.tscn")
|
|
},
|
|
{
|
|
"option": %OPTION,
|
|
"mode" : Game.Modes.STORY,
|
|
"scene" : preload("res://scenes/character_select.tscn")
|
|
}
|
|
]
|
|
@onready var switch_sound : AudioStreamPlayer = %SwitchSound
|
|
@onready var select_sound : AudioStreamPlayer = %SelectSound
|
|
@onready var menu : Control = %Menu
|
|
@onready var start : Label = %START
|
|
@onready var target : TextureRect = %Target
|
|
|
|
var opened : bool = false
|
|
var menu_choice : int = 0
|
|
var shot_tween : Tween
|
|
var glow_tween : Tween
|
|
|
|
func _ready() -> void:
|
|
shot_tween = create_tween()
|
|
target.scale = Vector2(2,2)
|
|
target.modulate.a = 0
|
|
shot_tween.set_parallel(true)
|
|
shot_tween.tween_property(target, "modulate:a", 1, 1)
|
|
shot_tween.tween_property(target, "scale", Vector2(1,1), 1)
|
|
shot_tween.tween_property(target, "rotation", PI / 4, 1)
|
|
glow_tween = create_tween()
|
|
glow_tween.set_loops(-1)
|
|
glow_tween.tween_property(target, "modulate:a", .8, .5)
|
|
glow_tween.tween_property(target, "modulate:a", 1, .5)
|
|
|
|
func _process(delta: float) -> void:
|
|
if Input.is_action_just_pressed("ui_menu"):
|
|
opened = !opened
|
|
start.visible = !opened
|
|
menu.visible = opened
|
|
select_sound.play()
|
|
if opened:
|
|
switch_menu(0)
|
|
|
|
if opened:
|
|
var menu_dir = 0
|
|
menu_dir += 1 if Input.is_action_just_pressed("ui_down") else 0
|
|
menu_dir -= 1 if Input.is_action_just_pressed("ui_up") else 0
|
|
if menu_dir != 0:
|
|
switch_sound.play()
|
|
switch_menu(wrapi(menu_choice + menu_dir, 0, len(menu_list)))
|
|
if Input.is_action_just_pressed("ui_accept"):
|
|
Game.mode = menu_list[menu_choice].mode
|
|
Game.switch_scene(menu_list[menu_choice].scene, false)
|
|
|
|
|
|
func switch_menu(new_choice : int) -> void:
|
|
menu_list[menu_choice].option.visible = false
|
|
menu_choice = new_choice
|
|
menu_list[menu_choice].option.visible = true
|