Files
seeding-planets/entities/player/scripts/player_data.gd
T
zacharie 9fdf8d2888 Dev 0.1
* Ajout des modes de jeu
* Dev de subterra et estia
* Ajout de tous les dialogues et traduction
* Ajout d'un splashscreen
2026-07-19 12:08:29 +02:00

42 lines
1.3 KiB
GDScript

extends Resource
class_name PlayerData
signal updated(player_data : PlayerData)
const DEFAULT_MAX_ENERGY = 3
const DEFAULT_INVENTORY_SIZE = 3
@export var max_energy : int = DEFAULT_MAX_ENERGY
@export var energy : int = DEFAULT_MAX_ENERGY :
set(v):
energy = min(v,max_energy)
updated.emit(self)
@export var inventory := Inventory.new(DEFAULT_INVENTORY_SIZE)
func get_artefacts() -> Array[Artefact]:
if GameInfo and GameInfo.game_data and GameInfo.game_data.current_run:
return GameInfo.game_data.current_run.artefacts
return []
func update_with_run_data(run_data : RunData):
inventory.seeds_size = calculate_inventory_size(run_data)
max_energy = calculate_max_energy(run_data)
updated.emit()
func calculate_max_energy(run_data : RunData) -> int:
var v = run_data.story_step.get_player_max_energy(run_data.difficulty_setting)
for a in run_data.artefacts:
v = a.modify_player_max_energy(v)
return v
func calculate_inventory_size(run_data : RunData) -> int:
var v = run_data.story_step.get_player_max_inventory(run_data.difficulty_setting)
for a in run_data.artefacts:
v = a.modify_player_inventory_size(v)
return v
func clear_inventory():
inventory = Inventory.new(DEFAULT_INVENTORY_SIZE)