Files
gplan-2/game/core/settlement/verdict_segment.gd
T
DKChan 8fb3310cae 卡①T3(拆件批wr5): 宿主超标函数拆分全清+_emit_row束形改形——begin_battle(141行/17分支/16局部/7返回四键)拆编排骨架+_begin_<段>私有族(accept含spawn受理门/dice区间骰+_dice_roll单轴函数/preview_economy),段序=受理与敌人spawn→装板→同调/fx运行态与订阅重建→常时参数与充能重置→巢穴预告与经济注入→轮始发射,取号序逐字(数量骰先/atk骰后/行集空不开流);_place_variants(52行/14局部/6嵌套三键)拆_place_variants_apply+_variants_fringe(嵌套深度5→3,variant_place取号序逐字:vrow单抽先于片生长);_emit_row 8参→5参head归因束(键集type/source_class/origin_cell/highlight缺省空,行字典字段与step_row载荷逐字)调用点全量改形28处=宿主2+grant段6+combat段2+verdict段3+decay段1+battle_fx_host emit_cb 3+reward_grant 9+damage_controller emit_row_cb 6+damage_controller_test _on_row签名+extended_row_violation直调2(卡面G5/G6清单漏计combat2/verdict3/decay1与grant段实为6处、两测试消费方,实查补全);宿主行数压至999≤1000(契约2还债归绿:拆分壳开销以家族归并+陈旧横幅合并+叙事类注释清理吸收,禁删注释凑行数红线未碰——所删皆变更叙事/三写重复说明);gdstyle键账=宿主仅剩类变量38(豁免第三条在案)行数键消失,全闸0 NEW。验收:十套件绿(round_flow/seal/feats/settle/treasure/level_shop/forge/damage/contracts/node_map_determinism)+零SCRIPT ERROR〔拆件批 V9〕
2026-10-27 07:11:56 +08:00

34 lines
1.6 KiB
GDScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
class_name VerdictSegment
extends RefCounted
# ⑤ 判定段 Segment(P1-1 结算巨函数拆段;段边界=审计五段〔裁点③甲〕)。
# 职责:防御性优先级 hero 先判(双死结构不可达的纵深防御)→ 全量状态快照(despawn 前
# 组装——终局含 result)→ 终局行+收束分派 / 下一轮出口分发。
# 返回值 = 裁定("victory"/"defeat"/"continue")——宿主 _settle 据此保持旧早退语义
#(终局不回置 _settling,_battle_over 接管);本段零算法改动(🔴 零行为变更契约)。
var oc: BattleOrchestrator # 宿主(类型标注=段内 := 推断前提;循环类名引用 Godot 4 全局类安全) 宿主
func _init(host) -> void:
oc = host
func run(ri: int) -> String:
var verdict := "continue"
if int(oc._enemy_system.hero_unit().get("hp", 0)) <= 0:
verdict = "defeat"
elif oc._enemy_system.query_alive("enemy").is_empty():
verdict = "victory"
oc._emit_settlement_snapshot(verdict) # 全量状态快照(despawn 前组装——终局含 result)
if verdict == "defeat":
oc._emit_row({"type": "verdict", "source_class": "", "origin_cell": Vector2i(-1, -1)}, ri, "战斗失败", 0, {})
oc._battle_over("defeat")
return verdict
if verdict == "victory":
oc._emit_row({"type": "verdict", "source_class": "", "origin_cell": Vector2i(-1, -1)}, ri, "战斗胜利", 1, {})
oc._battle_over("victory")
return verdict
oc._emit_row({"type": "verdict", "source_class": "", "origin_cell": Vector2i(-1, -1)}, ri, "下一轮次", 0, {})
oc._exit_distribution()
return verdict