* Ajout d'un tutoriel pour recommencer * Fix du Surchargeur de Talion qui ne fonctionnait pas * Suppression de flou sur beaucoup d'éléments visuels pour des raisons de performances * Augmentation du rayon de spawn du Talion * Fix léger de la météo (suppression du brouillard lors de la pluie)
71 lines
1.9 KiB
GDScript
71 lines
1.9 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
|
|
@export var tutorials_done : Array[String] = []
|
|
|
|
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()
|