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