* ajout des artefacts avec la pile et l'emplacement de graine * affichage des artefacts dans le vaisseau sur une étagère * ajout des distributeurs d'artefacts dans les régions * affichage des attributs de bases de plantes dans le vaisseau * changement de l'affichage du choix des régions * changement des icônes du détecteur
42 lines
1.2 KiB
GDScript
42 lines
1.2 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 = 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 _on_artefacts_updated(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)
|