* Ajout des modes de jeu * Dev de subterra et estia * Ajout de tous les dialogues et traduction * Ajout d'un splashscreen
42 lines
1.3 KiB
GDScript
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)
|