T5开格流+蓄力流(迭代12——整合定稿S4/S6):relics.tres填7行(贪婪矿灯common·正25负25双向乘区/矿脉直觉rare·连击加成10%上限5踩雷清零/赌徒的血签rarest锚点·正50负100/深挖钻头rare·R4甲非信息税形态=开掘+1AP每4格深层产出对价/整备军备rarest锚点·停手剩余AP转蓄力层上限3每层下轮首段+1——cleared作废口径停手侧改写/铁壁整备rare·每层减伤1/厚积薄发rare·满3层×2必中);action_economy扩relic面(relic_ap_carry停手转存改写+relic_dig_extra挖掘成本+_charge_layers账本);orchestrator _relic_yield_adjust快照隔离乘区+连击计数+深层产出+蓄力层每轮注入(求值即注入——action_economy注入并进_relic_flags_for修断言面错位);damage_controller蓄力三面(整备加算/厚积spike必中/铁壁减伤过floor);冒烟+3断言表换代23行→695/0+run_all全绿

This commit is contained in:
DKChan committed 2026-10-04 01:58:41 +08:00
1 parent db65b73bc7
commit e216232e05
5 files changed
+178 -9

No files matched your search

+16
View File
@@ -211,6 +211,9 @@ func _resolve_hero_attack(t: Dictionary) -> void:
discount = rewrite
crit = false
roll_read["roll"] = 0
# 厚积薄发满层必中(迭代 12 T5 蓄力流——spike ready 时 discount 恒全额、暴击面走倍乘不加掷)
if int(relic_flags.get("spike_mult", 0)) > 0 and int(relic_flags.get("charge_layers", 0)) >= 3:
discount = 100
# 猎弱本能(迭代 12 T4 穿刺流——对轻甲敌折扣档改善 value 档:对冲 pierce 列 L1 −1 开局罚;
# 改善 = 折扣表向全额方向移档,nat 最大面/已全额不重复)
var shift := int(relic_flags.get("discount_shift", 0))
@@ -225,6 +228,15 @@ func _resolve_hero_attack(t: Dictionary) -> void:
var trade_atk := int(relic_flags.get("hit_trade_atk", 0))
if trade_atk > 0:
base_value *= 1.0 + float(trade_atk) / 100.0 # 重锤增伤面(交换的正向侧)
# 蓄力流(迭代 12 T5):整备军备「每层下轮首段 +1」(层数×value 加算)+厚积薄发满层(≥3)
# spike 倍乘+强制必中(discount 100/crit 关闭掷骰面——方差买断的爆发出口)
var charge_layers := int(relic_flags.get("charge_layers", 0))
if charge_layers > 0:
base_value += float(charge_layers * int(relic_flags.get("ap_carry_value", 0)))
var spike_mult := int(relic_flags.get("spike_mult", 0))
var spike_ready := spike_mult > 0 and charge_layers >= 3
if spike_ready:
base_value *= float(spike_mult)
var rolled: int = DamageMath.rolled_component(base_value, discount, crit, int(db.settlement.crit_multiplier), cdelta)
var payload: Dictionary = {"target": String(target.display_name)}
payload[atk_type] = rolled # 分量键 = 实际攻击类型(归因字段,单分量模型)
@@ -296,6 +308,10 @@ func _resolve_enemy_skill(t: Dictionary) -> void:
var rolled: int = DamageMath.rolled_component(float(t.base_value), discount, crit, int(db.settlement.crit_multiplier), 0)
var pooled: int = DamageMath.pool_damage(rolled, clamped_pool("hero_defense"), clamped_pool("enemy_output"))
var total: int = maxi(int(db.settlement.damage_floor), pooled) + int(t.rider) # rider 后置于伤害下限——独立必中加项,不进乘区
# 铁壁整备(迭代 12 T5 蓄力流——每层下轮开场 S 点减伤;减后过下限保底)
var shield := int(relic_flags.get("shield_per_layer", 0)) * int(relic_flags.get("charge_layers", 0))
if shield > 0:
total = maxi(int(db.settlement.damage_floor), total - shield)
units.apply_damage(hero, total)
var payload: Dictionary = {"target": "hero", "skill_id": String(t.context.get("skill_id", "")), "baseline": int(t.context.get("baseline", 0)),
"roll": int(roll_read.roll), "ac": threshold, "tier": discount}