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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user