判式换代批T4(迭代14②):标中兑付溢价机制——settlement新键flag_hit_premium=125(percent域[100,999]域校验,100=无溢价直通零扰动)+grant单点乘溢价(_grant_routed只挂flag_hit正向:flat power乘后入单据/治疗/排队,percent幅度经premium_pct贯穿_apply_percent_row应用与呈现同乘+容器magnitude_override同快照);取整四舍五入与伤害管线floor分域(registry登记);标空/挖格/清图不乘;DamageController零改/雷安同池冻结/直伤6-8-8与p_perfect不动;冒烟断言+3(配置在位/标中行逐型=同型正向×125/100九型全确定/标空负向直伤零溢价);max路径存储种子42→43重采(δ换代战局位移=断言注释既定程序);闸=冒烟750/0

This commit is contained in:
DKChan committed 2026-10-05 04:35:03 +08:00
1 parent 26374accb3
commit fdc43ef538
5 files changed
+69 -4

No files matched your search

+22 -3
View File
@@ -687,6 +687,17 @@ func _grant_routed(snap: Dictionary, polarity: String, source_class: String, cel
return false
if polarity == "positive":
row["power"] = int(snap.get("power", int(row.power))) # 区间行快照 power(身份批 roll 值)覆盖表值——授予期零随机口径(E14)
# 标中兑付溢价(迭代14②判式换代批 T4——条款3 条件二旗溢价形态 a,2026-10-04 用户裁 P3):
# δ 读 settlement.flag_hit_premium(percent 域 125=×1.25 provisional);100=无溢价直通零扰动。
# 兑付公式一处=本块:只乘标中旗正向(flat power 乘后入单据/治疗/排队;percent 幅度经
# premium_pct 贯穿 _apply_percent_row 应用与呈现同乘)——标空/挖格/清图不乘,雷安同池冻结不动。
# 取整=四舍五入(与伤害管线 round_direction=floor 分域——registry clause3_inequality 随批登记;
# 1 点量纲行 ac_up/action 取整后不变=整数粒度地板)。
if source_class == "flag_hit" and int(db.settlement.flag_hit_premium) != 100:
var prem_pct: int = int(db.settlement.flag_hit_premium)
row = row.duplicate()
row["power"] = int(round(int(row.power) * prem_pct / 100.0))
row["premium_pct"] = prem_pct
# 惊巢反制(迭代 11 同调批 T5——底稿 §3:挖开雷格该次惩罚减半 + 反弹 N;duplicate 隔离——减半
# 不回写极性字典;仅 source_class=mine_hit 受理,标错旗/负向字典行走原通道)
if polarity == "negative" and source_class == "mine_hit" and _attune_has("nest_counter"):
@@ -717,10 +728,18 @@ func _apply_percent_row(row: Dictionary, source_class: String, cell: Vector2i, r
var eff := String(row.effect_id)
if eff == "gp_gain" or eff == "gp_loss":
return _apply_gp_row(row, source_class, cell, ri, highlight, label_suffix)
var ok: bool = _status_effects.apply_effect(eff, {"source_class": source_class, "origin_cell": cell, "round_index": ri})
var srow: Dictionary = db.status_effect_row(eff)
# 旗溢价贯穿(迭代14② T4——仅标中旗正向行携带 premium_pct;其余授予路径缺省 100 零扰动):
# 应用幅度与呈现行值同乘,容器经 magnitude_override 拿同一快照(抗表重载口径保持)。
var prem_pct: int = int(row.get("premium_pct", 100))
var eff_mag: int = int(srow.magnitude)
var src := {"source_class": source_class, "origin_cell": cell, "round_index": ri}
if prem_pct != 100:
eff_mag = int(round(eff_mag * prem_pct / 100.0))
src["magnitude_override"] = eff_mag
var ok: bool = _status_effects.apply_effect(eff, src)
if ok:
var srow: Dictionary = db.status_effect_row(eff)
_emit_row("effect", source_class, cell, ri, String(srow.display_name) + label_suffix, int(srow.magnitude), {"effect_id": eff, "pool_value": _pool_effective(eff)}, highlight)
_emit_row("effect", source_class, cell, ri, String(srow.display_name) + label_suffix, eff_mag, {"effect_id": eff, "pool_value": _pool_effective(eff)}, highlight)
return true
_emit_row("reward_ineffective", source_class, cell, ri, "奖励未生效(满层)%s" % label_suffix, 0, {"batch_key": eff}, highlight)
return false
+2
View File
@@ -42,6 +42,8 @@ func apply_effect(effect_id: String, source: Dictionary, duration_override: int
var max_stack: int = int(row.max_stack)
# 授予时快照(抗表重载——EC9)
var snap_m: int = int(row.magnitude)
if source.has("magnitude_override"):
snap_m = int(source["magnitude_override"]) # 旗溢价贯穿(迭代14② T4——标中旗 percent 形态同乘快照;缺省路径零扰动)
var snap_unit: String = String(row.unit)
var snap_display: String = String(row.display_name)
match policy: