diff --git a/game/core/damage_controller.gd b/game/core/damage_controller.gd index ad8b68cb..a27469fb 100644 --- a/game/core/damage_controller.gd +++ b/game/core/damage_controller.gd @@ -469,7 +469,7 @@ func _resolve_enemy_skill(t: Dictionary) -> void: # damage_taken 发射(kind=enemy_skill;铁壁整备减伤订阅面:shield 加法族合计 value×per(charge_layers), # 稳健拓荒树规则同面(rebuild 合成订阅);减后过下限保底。damage_reduce〔背水 hp_ratio when〕/ # counter_add〔保险丝/石肤〕/ac_bonus〔石肤〕同面施加;hp_ratio fact 由 _fx_fact 补充事实面回落提供) - var dt_res: Dictionary = _emit_hero_damage_taken(total, "enemy_skill", String(t.context.get("skill_id", "")), t.origin_cell, int(t.round_index)) + var dt_res := _emit_hero_damage_taken(total, "enemy_skill", String(t.context.get("skill_id", "")), t.origin_cell, int(t.round_index)) total = int(dt_res["total"]) units.apply_damage(hero, total) var payload: Dictionary[Variant, Variant] = {"target": "hero", "skill_id": String(t.context.get("skill_id", "")), "baseline": int(t.context.get("baseline", 0)), @@ -509,7 +509,7 @@ func _emit_hero_damage_taken(amount: int, damage_kind: String, source: String, c var hu: Dictionary[Variant, Variant] = units.hero_unit() var payload: Dictionary[Variant, Variant] = {"kind": damage_kind, "amount": amount, "source": source, "cell": cell, "round": ri, "hp_ratio": int(round(100.0 * float(int(hu.get("hp", 0))) / float(maxi(1, int(hu.get("max_hp", 1))))))} - var hits: Array = _fx_hits("damage_taken", payload) + var hits := _fx_hits("damage_taken", payload) return {"total": int(_apply_hero_damage_effects(hits, amount)["total"]), "hits": hits} @@ -583,7 +583,7 @@ func _resolve_board_blast(t: Dictionary) -> void: func _resolve_board_flat_hero(t: Dictionary) -> void: var dealt: int = int(t.base_value) if not bool((t.get("context", {}) as Dictionary).get("hero_damage_consumed", false)): - var res_flat: Dictionary = _emit_hero_damage_taken(dealt, "board_flat_hero", String(t.get("source_class", "")), t.origin_cell, int(t.round_index)) + var res_flat := _emit_hero_damage_taken(dealt, "board_flat_hero", String(t.get("source_class", "")), t.origin_cell, int(t.round_index)) dealt = int(res_flat["total"]) dealt = maxi(int(db.combat.settlement.damage_roll.damage_floor), dealt) # 伤害下限全来源(减后过下限) units.apply_damage(units.hero_unit(), dealt) diff --git a/game/core/settlement/grant_segment.gd b/game/core/settlement/grant_segment.gd index d2a5d3e5..6cdec2ab 100644 --- a/game/core/settlement/grant_segment.gd +++ b/game/core/settlement/grant_segment.gd @@ -194,7 +194,7 @@ func _terrain_batch(ri: int) -> void: # hero_damage_consumed 标记入单据 context——战斗段末 _resolve_board_flat_hero 跳过重复发射; # grant_material〔荆棘/地脉〕移到单据提交后(兑付值序一致——收益不因减伤变化)) var dt_amount := int(vrow.get("effect_value", 0)) - var dt_res: Dictionary = oc._damage._emit_hero_damage_taken(dt_amount, "terrain", String(vid), evt.cell, ri) + var dt_res := oc._damage._emit_hero_damage_taken(dt_amount, "terrain", String(vid), evt.cell, ri) dt_amount = int(dt_res["total"]) var vt := oc._damage.open_ticket(DamageController.KIND_BOARD_FLAT_HERO, "地形变异", String(vrow.get("display_name", vid)), {"channel": "board", "base_value": dt_amount, "target_rule": DamageController.TARGET_HERO,