feat(achievements): Example when entering cocina, unlock once ignore after, notification glitch when changing room. #168

This commit is contained in:
2025-10-27 01:06:16 +01:00
parent 5f4ab5354e
commit 96b0de7405
3 changed files with 18 additions and 12 deletions

View File

@@ -20,13 +20,14 @@ func reset_achievements() -> void:
func unlock_achievement(achievement_id) -> void:
escoria.logger.info(self, "Achievent '%s' unlocked." % achievement_id)
_achievement_tracker.set(achievement_id, true)
unlocked.emit(achievement_id)
if not is_unlocked(achievement_id):
escoria.logger.info(self, "Achievent '%s' unlocked." % achievement_id)
_achievement_tracker.set(achievement_id, true)
unlocked.emit(achievement_id)
func is_unlocked(achievement_id: String) -> bool:
if has(achievement_id):
if not has(achievement_id):
escoria.logger.error(self, "Achievement '%s' not found.")
return false
return _achievement_tracker.get(achievement_id)

View File

@@ -7,6 +7,8 @@ const _FADE_OUT_TIME: float = 0.5
var _timer: Timer = Timer.new()
var _first_time = true
var achievement_id: String:
get:
return achievement_id
@@ -16,14 +18,16 @@ var achievement_id: String:
func _enter_tree() -> void:
var _tween: Tween = create_tween()
_tween.tween_property(self, "modulate:a",1.0,_FADE_IN_TIME).from(0.0)
_timer.one_shot = true
_timer.timeout.connect(_clear_timer_timeout)
add_child(_timer)
_timer.start(_CLEAR_DELAY)
if _first_time:
var _tween: Tween = create_tween()
_tween.tween_property(self, "modulate:a",1.0,_FADE_IN_TIME).from(0.0)
_timer.one_shot = true
_timer.timeout.connect(_clear_timer_timeout)
add_child(_timer)
_timer.start(_CLEAR_DELAY)
_first_time = false
func _clear_timer_timeout() -> void:
var _tween: Tween = create_tween()

View File

@@ -72,3 +72,4 @@
inc_global("turno_cocina_mikel_played_times", 1)
debug_time_stop()
unlock_achievement("test_achievement")