From b55e6eaadffbe4f5a43fb131e786cdcbc622c68d Mon Sep 17 00:00:00 2001 From: Joywayer Date: Tue, 21 Jul 2026 15:16:37 +0800 Subject: [PATCH] =?UTF-8?q?feat(mana):=20=E9=AD=94=E5=8A=9B=E8=99=B9?= =?UTF-8?q?=E5=90=B8=E5=A4=9A=E6=9D=A5=E6=BA=90=EF=BC=88Core=20base=20+=20?= =?UTF-8?q?=E5=8D=A1=E7=BB=84=20meta.mana=5Fleech=20=E6=B1=82=E5=92=8C?= =?UTF-8?q?=EF=BC=8C=E6=8D=A2=E6=9D=96=E9=87=8D=E7=AE=97=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/autoloads/wand_preset.gd | 1 + scripts/domain/combat/combat_manager.gd | 5 +++++ scripts/domain/spell_system/core_definition.gd | 1 + 3 files changed, 7 insertions(+) diff --git a/scripts/autoloads/wand_preset.gd b/scripts/autoloads/wand_preset.gd index aeb12ba..29f8254 100644 --- a/scripts/autoloads/wand_preset.gd +++ b/scripts/autoloads/wand_preset.gd @@ -37,6 +37,7 @@ func _core_from_dict(cid: String, d: Dictionary) -> CoreDefinition: c.edges = d.get("edges", []) c.base_mana_max = float(d.get("mana_max", 100.0)) c.base_mana_regen = float(d.get("mana_regen", 5.0)) + c.base_mana_leech = float(d.get("mana_leech", 0.0)) return c ## 默认装备(combat_test 等用):wand_basic + 第一个 ACTION 法术 diff --git a/scripts/domain/combat/combat_manager.gd b/scripts/domain/combat/combat_manager.gd index 4f5fced..ed8e797 100644 --- a/scripts/domain/combat/combat_manager.gd +++ b/scripts/domain/combat/combat_manager.gd @@ -256,6 +256,11 @@ func _rebuild_wand() -> void: continue nodes.append(SpellRegistry.get_spell(sid)) # 纯数据驱动;未知 id → null(下游按位置跳过) _equipped_compiled = SpellEvaluator.compile_wand(_equipped_core, nodes) + var leech: float = _equipped_core.base_mana_leech if _equipped_core else 0.0 + for n in nodes: + if n != null: + leech += float(n.meta.get("mana_leech", 0.0)) + PlayerStats.mana_leech = leech # ── 法杖存档(ProfileManager A/B 槽,ADR-A2)───────────────── func get_wand_save_data() -> Dictionary: diff --git a/scripts/domain/spell_system/core_definition.gd b/scripts/domain/spell_system/core_definition.gd index b360c19..1f58269 100644 --- a/scripts/domain/spell_system/core_definition.gd +++ b/scripts/domain/spell_system/core_definition.gd @@ -30,3 +30,4 @@ var topology: int = Topology.LINEAR ## 魔力池(MVP)——由 WandPreset 从 cores.json 读入 @export var base_mana_max: float = 100.0 @export var base_mana_regen: float = 5.0 # 每秒回复 +@export var base_mana_leech: float = 0.0 # 击杀回蓝基础值(可叠加卡组内 meta.mana_leech)