feat: Level reveals only after first play
This commit is contained in:
parent
1c5caa5d29
commit
bf802571a2
@ -112,6 +112,18 @@ func get_savepoint(levelName: String) -> Vector2:
|
|||||||
else:
|
else:
|
||||||
return Vector2()
|
return Vector2()
|
||||||
|
|
||||||
|
func was_level_touched(levelName: String) -> bool:
|
||||||
|
if OS.is_debug_build():
|
||||||
|
return true
|
||||||
|
if !gsr.progress_dict.has(levelName) || !gsr.progress_dict[levelName].has("touched"):
|
||||||
|
return false
|
||||||
|
return gsr.progress_dict[levelName]["touched"]
|
||||||
|
|
||||||
|
func touch_level(levelName: String) -> void:
|
||||||
|
if !gsr.progress_dict.has(levelName):
|
||||||
|
gsr.progress_dict[levelName] = {}
|
||||||
|
gsr.progress_dict[levelName]["touched"] = true
|
||||||
|
|
||||||
|
|
||||||
# TODO This is permanent immediatly
|
# TODO This is permanent immediatly
|
||||||
func set_wallet(value) -> void:
|
func set_wallet(value) -> void:
|
||||||
|
|||||||
@ -3,18 +3,18 @@ extends Node
|
|||||||
export var save_location: String = "res://savefile.tres"
|
export var save_location: String = "res://savefile.tres"
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
load_initial_save()
|
load_initial_save()
|
||||||
|
|
||||||
func load_initial_save() -> void:
|
func load_initial_save() -> void:
|
||||||
var initial_state = load(save_location)
|
var initial_state = load(save_location)
|
||||||
if !initial_state:
|
if !initial_state:
|
||||||
initial_state = GlobalStateResource.new()
|
initial_state = GlobalStateResource.new()
|
||||||
GlobalState.gsr = initial_state
|
GlobalState.gsr = initial_state
|
||||||
GlobalState.reinstate()
|
GlobalState.reinstate()
|
||||||
|
|
||||||
func save_default() -> void:
|
func save_default() -> void:
|
||||||
var signal_manager = get_tree().root.get_child(4).get_node("%SignalManager")
|
var signal_manager = get_tree().root.get_child(4).get_node("%SignalManager")
|
||||||
for action in InputMap.get_actions():
|
for action in InputMap.get_actions():
|
||||||
GlobalState.gsr.input_map[action] = InputMap.get_action_list(action)
|
GlobalState.gsr.input_map[action] = InputMap.get_action_list(action)
|
||||||
ResourceSaver.save(save_location, GlobalState.gsr)
|
ResourceSaver.save(save_location, GlobalState.gsr)
|
||||||
signal_manager.emit_signal("savemanager_saved")
|
signal_manager.emit_signal("savemanager_saved")
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
extends AudibleButton
|
extends AudibleButton
|
||||||
|
|
||||||
export(String, FILE) var next_scene_path: String = ""
|
export(String, FILE) var next_scene_path: String = "res://src/Levels/Level 0.1.tscn"
|
||||||
onready var selected_level_base_path: String = "res://src/Levels/"
|
onready var selected_level_base_path: String = "res://src/Levels/"
|
||||||
|
|
||||||
func _on_button_up() -> void:
|
func _on_button_up() -> void:
|
||||||
|
|||||||
@ -38,6 +38,8 @@ func _fill_level_list():
|
|||||||
func _spawn_level_options(levels: Array):
|
func _spawn_level_options(levels: Array):
|
||||||
var first = true
|
var first = true
|
||||||
for level in levels:
|
for level in levels:
|
||||||
|
if !GlobalState.was_level_touched(LEVELS_PATH + level) && !first:
|
||||||
|
continue
|
||||||
var level_check_box = LEVEL_CHECK_BOX.instance()
|
var level_check_box = LEVEL_CHECK_BOX.instance()
|
||||||
vbox.add_child(level_check_box)
|
vbox.add_child(level_check_box)
|
||||||
level_check_box.initialize_with_progress(LEVELS_PATH + level)
|
level_check_box.initialize_with_progress(LEVELS_PATH + level)
|
||||||
|
|||||||
@ -13,6 +13,7 @@ var is_dead := false setget set_dead
|
|||||||
var level_time := 0.0
|
var level_time := 0.0
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
|
GlobalState.touch_level(levelName)
|
||||||
GlobalState.gsr.last_played_level = levelName
|
GlobalState.gsr.last_played_level = levelName
|
||||||
SaveManager.save_default()
|
SaveManager.save_default()
|
||||||
signal_manager.connect("level_completed", self, "_on_level_completed")
|
signal_manager.connect("level_completed", self, "_on_level_completed")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user