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 = v 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_artefacts(artefacts : Array[Artefact]): inventory.seeds_size = calculate_inventory_size(artefacts) max_energy = calculate_max_energy(artefacts) updated.emit() func calculate_max_energy(artefacts : Array[Artefact]) -> int: var v = DEFAULT_MAX_ENERGY for a in artefacts: v = a.modify_player_max_energy(v) return v func calculate_inventory_size(artefacts : Array[Artefact]) -> int: var v = DEFAULT_INVENTORY_SIZE for a in artefacts: v = a.modify_player_inventory_size(v) return v func clear_inventory(): inventory = Inventory.new(DEFAULT_INVENTORY_SIZE)