Files
seeding-planets/common/game_data/scripts/game_data.gd
Zacharie Guet 91e266ec85 Et toujours du dev pour la béta
* Evolution de l'histoire avec de nouveaux dialogues, une plus grande durée de vie du jeu, des nouvelles zones d'histoire...
* Suppression du mode infini
* Ajout d'un écran des mutations découvertes
* Ajout d'un nouveau mécanisme de respawn situé dans le vaissau
* Ajout de 2 nouveaux modificateurs de région
* Quatre nouveaux artefacts
* Visuel de la décontamination de la planète 3D en cours de la partie
* Ajout d'une annonce visuelle des scène du jeu
* Fix sur la mutation Généreux pour être en accord avec sa description
* Amélioration de l'effet de la mutation Purification
* Fix de la mutation sociale aux niveau supérieurs
* Ajout d'un effet visuel de réacteur sur le joueur 3D
* Fix sur l'annonce de nouveaux objets qui se déclenchaient à une nouvelle run
* Amélioration des animation et des informations données dans le vaisseau
* Correction mineure des traductions
2026-04-28 23:41:36 +02:00

70 lines
1.8 KiB
GDScript

extends Resource
class_name GameData
enum GameMode {STORY}
signal current_run_updated(r : RunData)
signal current_region_data_updated(p : RegionData)
@export var player_data : PlayerData = PlayerData.new()
@export var progression_data : ProgressionData = ProgressionData.new()
@export var current_run : RunData = start_run() :
set(v):
current_run = v
current_run_updated.emit(v)
@export var current_region_data : RegionData = null :
set(v):
current_region_data = v
current_region_data_updated.emit(v)
@export var last_game_scene : Scene = null
@export var ship_in_space = false
@export var incubator_used = []
@export var dead_orchid_position : Vector3
@export var dead_orchid_rotation : Vector3
@export var item_announced = []
@export var game_mode : GameMode = GameMode.STORY
@export var dialogs_done : Array[String] = [] #Chemin des dialogues terminés
func start_run() -> RunData:
player_data.clear_inventory()
player_data.update_with_artefacts([])
current_run = RunData.new()
current_run.story_step = progression_data.story_step.duplicate_deep()
current_run.generate_next_run_points()
current_run.current_run_point_changed.connect(
func(rp : RunPoint):
start_region(rp.region_parameter)
)
ship_in_space = false
return current_run
func reset_player():
player_data = PlayerData.new()
func reset_all():
start_run()
reset_player()
func start_region(region_param : RegionParameter):
current_region_data = RegionData.new(region_param)
func give_up():
current_region_data = null
current_run = null
start_run()
SceneManager.change_to_scene(progression_data.story_step.get_respawn_scene())
func finish_story_step():
progression_data.next_story_step()
current_region_data = null
start_run()