Files
mmo/scripts/game_state.gd
Marek Lenczewski 04749104a0 update
2026-03-30 22:56:58 +02:00

43 lines
1.3 KiB
GDScript

extends Node
var player_health: float = -1.0
var player_max_health: float = -1.0
var player_shield: float = -1.0
var player_max_shield: float = -1.0
var player_role: int = 1
var portal_position: Vector3 = Vector3.ZERO
var returning_from_dungeon := false
var dungeon_cleared := false
func save_player(player: Node) -> void:
var health: Node = player.get_node("Health")
var shield: Node = player.get_node("Shield")
var role: Node = player.get_node("Role")
player_health = health.current_health
player_max_health = health.max_health
player_shield = shield.current_shield
player_max_shield = shield.max_shield
player_role = role.current_role
func restore_player(player: Node) -> void:
if player_health < 0:
return
var health: Node = player.get_node("Health")
var shield: Node = player.get_node("Shield")
var role: Node = player.get_node("Role")
health.current_health = player_health
shield.current_shield = player_shield
role.set_role(player_role)
EventBus.health_changed.emit(player, health.current_health, health.max_health)
EventBus.shield_changed.emit(player, shield.current_shield, shield.max_shield)
func clear_player() -> void:
player_health = -1.0
player_shield = -1.0
func clear() -> void:
clear_player()
portal_position = Vector3.ZERO
returning_from_dungeon = false
dungeon_cleared = false