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() 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() for a in run_data.artefacts: v = a.modify_player_inventory_size(v) return v func clear_inventory(): inventory = Inventory.new(DEFAULT_INVENTORY_SIZE)