Ajout d'un mode infini
This commit is contained in:
@@ -1,16 +1,28 @@
|
||||
extends Resource
|
||||
class_name GameData
|
||||
|
||||
enum GameMode {STORY}
|
||||
enum Mode {STORY, INFINITE}
|
||||
|
||||
signal current_run_updated(r : RunData)
|
||||
signal current_region_data_updated(p : RegionData)
|
||||
|
||||
|
||||
func _init(
|
||||
_game_mode : Mode = Mode.STORY
|
||||
):
|
||||
game_mode = _game_mode
|
||||
if game_mode == Mode.STORY:
|
||||
progression_data = StoryProgressionData.new()
|
||||
elif game_mode == Mode.INFINITE:
|
||||
progression_data = InfiniteProgressionData.new()
|
||||
|
||||
|
||||
@export var game_mode : Mode = GameData.Mode.STORY
|
||||
|
||||
@export var player_data : PlayerData = PlayerData.new()
|
||||
|
||||
@export var progression_data : ProgressionData = ProgressionData.new()
|
||||
@export var progression_data : ProgressionData
|
||||
|
||||
@export var current_run : RunData = start_run() :
|
||||
@export var current_run : RunData :
|
||||
set(v):
|
||||
current_run = v
|
||||
current_run_updated.emit(v)
|
||||
@@ -30,8 +42,6 @@ signal current_region_data_updated(p : RegionData)
|
||||
|
||||
@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] = []
|
||||
|
||||
@@ -39,7 +49,7 @@ 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.story_step = progression_data.get_story_step().duplicate_deep()
|
||||
current_run.generate_next_run_points()
|
||||
current_run.current_run_point_changed.connect(
|
||||
func(rp : RunPoint):
|
||||
@@ -59,12 +69,14 @@ func start_region(region_param : RegionParameter):
|
||||
current_region_data = RegionData.new(region_param)
|
||||
|
||||
func give_up():
|
||||
progression_data.finish_run(current_run)
|
||||
current_region_data = null
|
||||
current_run = null
|
||||
start_run()
|
||||
SceneManager.change_to_scene(progression_data.story_step.get_respawn_scene())
|
||||
SceneManager.change_to_scene(progression_data.get_story_step().get_respawn_scene())
|
||||
|
||||
func finish_story_step():
|
||||
progression_data.finish_run(current_run)
|
||||
progression_data.next_story_step()
|
||||
current_region_data = null
|
||||
start_run()
|
||||
|
||||
Reference in New Issue
Block a user