feat(progression): succès/achievements + toasts notification

Nouvel autoload AchievementManager avec 12 succès (Premier éclat, Mineur
confirmé, Chasseur de perles, Fouilleur d'épaves, Abysses, Légende des
océans, etc.). Chaque déblocage donne un bonus XP et joue un son.

HUD: toasts dorés avec icône + titre + desc + fade-in/out, empilés en
haut centre. Son bulle au déblocage.

Long-terme: cible des milestones cumulatifs qui donnent un sentiment de
progression durable.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-20 18:11:33 +00:00
parent 610d766cb2
commit 7f6811995d
6 changed files with 201 additions and 0 deletions

View File

@@ -251,6 +251,9 @@ func _award_break_xp(block_id: int, hit_position: Vector3) -> void:
var qm: Node = get_node_or_null("/root/QuestManager")
if qm != null:
qm.note_block_break(block_id)
var am: Node = get_node_or_null("/root/AchievementManager")
if am != null:
am.note_block_break(block_id)
func _spawn_xp_popup(amount: int, world_pos: Vector3) -> void:
@@ -289,6 +292,9 @@ func _on_block_place(hit_position: Vector3, normal: Vector3) -> void:
func _on_echolocation(position: Vector3, _radius: float) -> void:
AudioManager.play_bubble_sfx(position)
var am: Node = get_node_or_null("/root/AchievementManager")
if am != null:
am.note_echolocation()
# Called by WorldSyncComponent when server confirms a block was broken by this client