Compare commits
2 commits
42ec6fb114
...
d717e73fa8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d717e73fa8 | ||
|
|
97380291eb |
|
|
@ -65,6 +65,7 @@ func start_encounter(encounter : BattleEncounter, enemy_pos : Vector3, sent : Se
|
|||
|
||||
_running = true
|
||||
GameData.in_battle = true
|
||||
GameData.battle_started.emit() #les elements d'interface (TeamHUD...) se cachent ici, avant la pause du monde
|
||||
get_tree().paused = true
|
||||
battle_started.emit()
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ extends Node
|
|||
|
||||
signal selected_pokemon_changed
|
||||
signal battle_requested(sent : SentPokemon, target : Node) #emis par ThrowState : BattleLauncher s'y branche
|
||||
signal battle_started #emis par BattleLauncher au debut d'un combat (avant la pause du monde)
|
||||
signal battle_finished(outcome : int, target : Node) #emis par BattleLauncher (outcome = valeur de Battle.Outcome)
|
||||
|
||||
signal save_started
|
||||
|
|
|
|||
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)
|
||||
@export var prev_action : StringName = &"hud_team_prev"
|
||||
@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_input_hints : bool = true #icones de touches de part et d'autre des icones
|
||||
@export var portrait_size : float = 120.0
|
||||
|
|
@ -50,6 +51,8 @@ var _next_icon : TextureRect
|
|||
var _balls : Array[BallIcon] = []
|
||||
var _ball_signatures : Array = []
|
||||
var _info_signature : Array = []
|
||||
var _hidden_for_battle : bool = false
|
||||
var _visible_before_battle : bool = true
|
||||
|
||||
#---------- elements dessines ----------
|
||||
|
||||
|
|
@ -105,6 +108,20 @@ class PortraitFrame extends Control:
|
|||
func _ready() -> void:
|
||||
_ensure_actions()
|
||||
_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:
|
||||
_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://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://c3b263k0gt0ck" path="res://game/ui/hide_during_battle.gd" id="3_8ujol"]
|
||||
|
||||
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_uyiaf"]
|
||||
|
||||
|
|
@ -95,6 +96,9 @@ layout_mode = 2
|
|||
text = "Accepter"
|
||||
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]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
|
|
|
|||
Loading…
Reference in a new issue