feat(progression): combo de mining + multiplicateur XP

Nouvel autoload ComboTracker: chaque cassage de bloc dans les 1.8s du
précédent étend le combo (+15% par palier, cap x3.0). Le multiplicateur
s'applique au gain XP de base.

HUD: panneau "COMBO xN (+X%)" animé (pop scale) à partir de x2, avec
barre de temps restant qui se vide. Combo ≥5 au break → bonus XP final
(3 * count) avec popup.

Rétention: incite à chaîner les actions, récompense la dextérité et crée
des pics d'intensité dans la boucle.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-20 18:14:02 +00:00
parent 27459e1eaa
commit 26f9609b53
4 changed files with 146 additions and 1 deletions

View File

@@ -247,7 +247,12 @@ func _award_break_xp(block_id: int, hit_position: Vector3) -> void:
var pp: Node = get_node_or_null("/root/PlayerProgress")
if pp == null:
return
var gain: int = pp.XP_BREAK_BY_BLOCK.get(block_id, pp.XP_BREAK_DEFAULT)
var base_gain: int = pp.XP_BREAK_BY_BLOCK.get(block_id, pp.XP_BREAK_DEFAULT)
var combo: Node = get_node_or_null("/root/ComboTracker")
var mult: float = 1.0
if combo != null:
mult = combo.bump()
var gain: int = int(round(base_gain * mult))
pp.award(gain, "bloc", hit_position)
_spawn_xp_popup(gain, hit_position)
var qm: Node = get_node_or_null("/root/QuestManager")