Hide UI elements during battles
This commit is contained in:
parent
97380291eb
commit
d717e73fa8
33
game/ui/hide_during_battle.gd
Normal file
33
game/ui/hide_during_battle.gd
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
class_name HideDuringBattle
|
||||||
|
extends Node
|
||||||
|
|
||||||
|
#fait disparaitre un element de l'interface pendant un combat et le remet a la fin.
|
||||||
|
#usage : ajoute ce node comme ENFANT de l'element a cacher (minimap, indicateur de visee, suivi de quete,
|
||||||
|
#message d'interaction...). Par defaut c'est son parent qui est cache ; sinon, assigne "target".
|
||||||
|
#marche avec tout node qui a une propriete "visible" : Control, CanvasLayer, Node3D...
|
||||||
|
#
|
||||||
|
#si l'element etait deja cache avant le combat, il le reste apres.
|
||||||
|
|
||||||
|
@export var target : Node #vide = le parent de ce node
|
||||||
|
|
||||||
|
var _was_visible : bool = true
|
||||||
|
var _hidden_by_us : bool = false
|
||||||
|
|
||||||
|
func _ready() -> void:
|
||||||
|
process_mode = Node.PROCESS_MODE_ALWAYS
|
||||||
|
if target == null: target = get_parent()
|
||||||
|
GameData.battle_started.connect(_on_battle_started)
|
||||||
|
GameData.battle_finished.connect(_on_battle_finished)
|
||||||
|
if GameData.in_battle: _on_battle_started() #cree pendant un combat
|
||||||
|
|
||||||
|
func _on_battle_started() -> void:
|
||||||
|
if _hidden_by_us or !is_instance_valid(target) or !("visible" in target): return
|
||||||
|
_was_visible = target.visible
|
||||||
|
target.visible = false
|
||||||
|
_hidden_by_us = true
|
||||||
|
|
||||||
|
func _on_battle_finished(_outcome : int, _battle_target : Node) -> void:
|
||||||
|
if !_hidden_by_us: return
|
||||||
|
_hidden_by_us = false
|
||||||
|
if is_instance_valid(target) and _was_visible:
|
||||||
|
target.visible = true
|
||||||
1
game/ui/hide_during_battle.gd.uid
Normal file
1
game/ui/hide_during_battle.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://c3b263k0gt0ck
|
||||||
|
|
@ -30,6 +30,7 @@ const COLOR_FAINTED : Color = Color(1.0, 0.4, 0.4)
|
||||||
#actions creees automatiquement si elles n'existent pas (croix gauche/droite, fleches du clavier)
|
#actions creees automatiquement si elles n'existent pas (croix gauche/droite, fleches du clavier)
|
||||||
@export var prev_action : StringName = &"hud_team_prev"
|
@export var prev_action : StringName = &"hud_team_prev"
|
||||||
@export var next_action : StringName = &"hud_team_next"
|
@export var next_action : StringName = &"hud_team_next"
|
||||||
|
@export var hide_during_battle : bool = true #disparait pendant un combat et revient a la fin
|
||||||
@export var show_empty_slots : bool = false #false : seulement les icones des pokemon de l'equipe ; true : toujours 6 icones (les vides en Poke Ball pale)
|
@export var show_empty_slots : bool = false #false : seulement les icones des pokemon de l'equipe ; true : toujours 6 icones (les vides en Poke Ball pale)
|
||||||
@export var show_input_hints : bool = true #icones de touches de part et d'autre des icones
|
@export var show_input_hints : bool = true #icones de touches de part et d'autre des icones
|
||||||
@export var portrait_size : float = 120.0
|
@export var portrait_size : float = 120.0
|
||||||
|
|
@ -50,6 +51,8 @@ var _next_icon : TextureRect
|
||||||
var _balls : Array[BallIcon] = []
|
var _balls : Array[BallIcon] = []
|
||||||
var _ball_signatures : Array = []
|
var _ball_signatures : Array = []
|
||||||
var _info_signature : Array = []
|
var _info_signature : Array = []
|
||||||
|
var _hidden_for_battle : bool = false
|
||||||
|
var _visible_before_battle : bool = true
|
||||||
|
|
||||||
#---------- elements dessines ----------
|
#---------- elements dessines ----------
|
||||||
|
|
||||||
|
|
@ -105,6 +108,20 @@ class PortraitFrame extends Control:
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
_ensure_actions()
|
_ensure_actions()
|
||||||
_build_ui()
|
_build_ui()
|
||||||
|
GameData.battle_started.connect(_on_battle_started)
|
||||||
|
GameData.battle_finished.connect(_on_battle_finished)
|
||||||
|
if GameData.in_battle: _on_battle_started()
|
||||||
|
|
||||||
|
func _on_battle_started() -> void:
|
||||||
|
if !hide_during_battle or _hidden_for_battle: return
|
||||||
|
_visible_before_battle = visible
|
||||||
|
visible = false
|
||||||
|
_hidden_for_battle = true
|
||||||
|
|
||||||
|
func _on_battle_finished(_outcome : int, _battle_target : Node) -> void:
|
||||||
|
if !_hidden_for_battle: return
|
||||||
|
_hidden_for_battle = false
|
||||||
|
visible = _visible_before_battle
|
||||||
|
|
||||||
func _ensure_actions() -> void:
|
func _ensure_actions() -> void:
|
||||||
_ensure_action(prev_action, [_joy_event(JOY_BUTTON_DPAD_LEFT), _key_event(KEY_LEFT)])
|
_ensure_action(prev_action, [_joy_event(JOY_BUTTON_DPAD_LEFT), _key_event(KEY_LEFT)])
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@
|
||||||
[ext_resource type="Script" uid="uid://7hglx6nfu063" path="res://addons/controller_icons/objects/ControllerIconTexture.gd" id="1_4xhdt"]
|
[ext_resource type="Script" uid="uid://7hglx6nfu063" path="res://addons/controller_icons/objects/ControllerIconTexture.gd" id="1_4xhdt"]
|
||||||
[ext_resource type="Script" uid="uid://rgm6aitwyxdv" path="res://game/ui/hud/save_hud.gd" id="1_euh0j"]
|
[ext_resource type="Script" uid="uid://rgm6aitwyxdv" path="res://game/ui/hud/save_hud.gd" id="1_euh0j"]
|
||||||
[ext_resource type="Script" uid="uid://b3ddqgiawrh5c" path="res://game/ui/hud/team_hud.gd" id="2_lkjh2"]
|
[ext_resource type="Script" uid="uid://b3ddqgiawrh5c" path="res://game/ui/hud/team_hud.gd" id="2_lkjh2"]
|
||||||
|
[ext_resource type="Script" uid="uid://c3b263k0gt0ck" path="res://game/ui/hide_during_battle.gd" id="3_8ujol"]
|
||||||
|
|
||||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_uyiaf"]
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_uyiaf"]
|
||||||
|
|
||||||
|
|
@ -95,6 +96,9 @@ layout_mode = 2
|
||||||
text = "Accepter"
|
text = "Accepter"
|
||||||
label_settings = SubResource("LabelSettings_3agn1")
|
label_settings = SubResource("LabelSettings_3agn1")
|
||||||
|
|
||||||
|
[node name="HideDuringBattle" type="Node" parent="MarginContainer" unique_id=1229951221]
|
||||||
|
script = ExtResource("3_8ujol")
|
||||||
|
|
||||||
[node name="TeamHud" type="Control" parent="." unique_id=687093905]
|
[node name="TeamHud" type="Control" parent="." unique_id=687093905]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue