Enhance save system functionality; improve game state management and session tracking
This commit is contained in:
@@ -36,4 +36,4 @@ func on_exit_area_body_entered(_body: Node2D) -> void:
|
||||
|
||||
|
||||
func go_to_next_level() -> void:
|
||||
gm.try_to_go_to_next_level()
|
||||
gm.on_level_complete()
|
@@ -17,5 +17,5 @@ func _on_health_component_on_death() -> void:
|
||||
effect.scale = Vector2(1.5, 1.5)
|
||||
|
||||
gm.remove_lives(1)
|
||||
gm.set_coins(0)
|
||||
gm.reset_current_session_state()
|
||||
|
||||
|
@@ -6,10 +6,10 @@ extends Node
|
||||
|
||||
func _ready():
|
||||
await get_tree().process_frame
|
||||
var coins = get_tree().get_nodes_in_group("coins")
|
||||
var coins := get_tree().get_nodes_in_group("coins")
|
||||
|
||||
for coin in coins:
|
||||
coin.connect("collected", on_collected)
|
||||
coin.collected.connect(on_collected)
|
||||
|
||||
|
||||
func on_collected(amount: int, type: CollectableResource.CollectableType) -> void:
|
||||
@@ -17,4 +17,4 @@ func on_collected(amount: int, type: CollectableResource.CollectableType) -> voi
|
||||
return
|
||||
if type != CollectableResource.CollectableType.COIN:
|
||||
return
|
||||
game_manager.add_coins(amount)
|
||||
game_manager.current_session_state["coins_collected"] += amount
|
||||
|
@@ -6,6 +6,11 @@ extends Node
|
||||
@onready var game_manager: GM = $"/root/GameManager"
|
||||
|
||||
|
||||
|
||||
func has_enough_coins(amount: int) -> bool:
|
||||
return game_manager and game_manager.get_coins() >= amount
|
||||
|
||||
|
||||
func try_unlock_skill(skill_data: SkillData) -> bool:
|
||||
if not game_manager:
|
||||
return false
|
||||
@@ -13,11 +18,11 @@ func try_unlock_skill(skill_data: SkillData) -> bool:
|
||||
if game_manager.is_skill_unlocked(skill_data.name):
|
||||
return false
|
||||
|
||||
if game_manager.get_coins() < skill_data.cost:
|
||||
if not has_enough_coins(skill_data.cost):
|
||||
return false
|
||||
|
||||
game_manager.remove_coins(skill_data.cost)
|
||||
game_manager.unlock_skill(skill_data.name)
|
||||
game_manager.current_session_state["unlocked_skills"].append(skill_data.name)
|
||||
skill_manager.add_skill(skill_data)
|
||||
return true
|
||||
|
||||
@@ -30,9 +35,4 @@ func unlock_all_skills() -> void:
|
||||
skills.append(skill.name)
|
||||
|
||||
game_manager.unlock_skills(skills)
|
||||
skill_manager.apply_unlocked_skills()
|
||||
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
if event.is_action_pressed("unlock_skills"):
|
||||
unlock_all_skills()
|
||||
skill_manager.apply_unlocked_skills()
|
Reference in New Issue
Block a user