T3(迭代22秘宝批): 效果引擎接入与常时参数面——board_installed事件发射(巢穴预告读数口nest_preview_count=装板报危险格数量,呈现归呈现桥); 天眼safe_dig=fx_reveal通道复用(C5全额兑付免AP连锁资源同链,危险格仅真视,旗格跳过); reveal_tiles入真视叠加层(mine_reveal同通道); 试炼镐use_attune_convert积点受理口(charges=0零骑库存,counter_spend受理闸+grant_ap,积点计数通用化=装配集ap_charge_safe行扫描替dig_charge硬编码); 充能重置周期_reseed_attune_charges(battle每战/level每关首战battle_index==1,骑库存差额补注); 常时参数面注入(远程镐dig_range_bonus切比雪夫≤1+1/信标网络flag_range_free旗可达豁免——_within_dig_range拆谓词,mine_total只读口); 储备罐finish_round_stop转存率入参(125%=1.25:1整除floor); 刷新练习refresh_stock_grant开局一次性加仓; 刷新执照shop_refresh_free_left装配叠加; 真视使用计数链(vision_counter共享dict→受理+1→summary→settle聚合入档+断点随件); validate_use扩cell档与新空间kind; 修现役潜伏缺陷=use_treasure板维度读Rules不存在的width(旧目录期零直呼掩盖); 新单测treasure_effects_test 22套(V7附属表12件逐件正常/边界/反例+计数链)。冒烟895/0+run_all 22套+探针全绿〔秘宝批 V7/V8/V10/V13〕
This commit is contained in:
1 parent
a7bd4e4132
commit
c813b2b042
9 files changed
+514
-28
No files matched your search
@@ -15,6 +15,12 @@ signal round_end_board(payload: Dictionary) # 双发射源之棋盘路径(
|
||||
|
||||
var db: ConfigDb
|
||||
var action_economy: ActionEconomy
|
||||
# 秘宝常时参数注入面(迭代 22 秘宝批 T3——编排器 begin_battle 按装配集 kind 分发注入:
|
||||
# dig_range_bonus=挖掘切比雪夫距离放宽〔远程镐 dig_range_bonus magnitude〕/flag_range_free=
|
||||
# 插旗不限相邻〔信标网络〕;缺省 0/false=零装配零扰动,棋盘事实不可变契约不受影响——
|
||||
# 两参数只放宽「动作可达性」判据,禁碰危险格/安全格分布)
|
||||
var dig_range_bonus := 0
|
||||
var flag_range_free := false
|
||||
# 棋盘状态私有(E2 封装收口 2026-09-13):对外只暴露 current_board()/reveal_record() 等查询面,
|
||||
# 禁止跨模块直读/直写原始字典——先例教训 = board_view 绕过查询面直读 revealed。
|
||||
var _board: BoardData = null
|
||||
@@ -322,7 +328,7 @@ func _do_dig(c: Vector2i) -> Dictionary:
|
||||
func _board_face_dig(c: Vector2i) -> String:
|
||||
if not _board.in_bounds(c):
|
||||
return "out_of_catalog"
|
||||
if not _adjacent_to_hero(c):
|
||||
if not _within_dig_range(c):
|
||||
return "not_adjacent"
|
||||
if is_revealed(c):
|
||||
return "target_revealed"
|
||||
@@ -395,8 +401,8 @@ func _do_flag_place(c: Vector2i) -> Dictionary:
|
||||
var sub := ""
|
||||
if not _board.in_bounds(c):
|
||||
sub = "out_of_catalog"
|
||||
elif not _adjacent_to_hero(c):
|
||||
sub = "not_adjacent"
|
||||
elif not (flag_range_free or _adjacent_to_hero(c)):
|
||||
sub = "not_adjacent" # 信标网络装配时豁免(插旗不限相邻——旗动作仍按标准价计费,规则放宽仅可达性)
|
||||
elif is_revealed(c):
|
||||
sub = "target_revealed"
|
||||
elif has_flag(c):
|
||||
@@ -489,5 +495,18 @@ func _adjacent_to_hero(c: Vector2i) -> bool:
|
||||
return maxi(d.x, d.y) == 1
|
||||
|
||||
|
||||
# 挖掘可达判据(迭代 22 秘宝批 T3——远程镐 dig_range_bonus 放宽:切比雪夫距离 ≤ 1+加值,
|
||||
# 加值 0=与旧「恰相邻」逐位一致;开格仍走既有格规则=不挖开不相邻事实之外 anything)
|
||||
func _within_dig_range(c: Vector2i) -> bool:
|
||||
var d := Vector2i(absi(c.x - _hero.x), absi(c.y - _hero.y))
|
||||
return maxi(d.x, d.y) <= 1 + dig_range_bonus
|
||||
|
||||
|
||||
# 本板危险格总数(迭代 22 秘宝批 T3——巢穴预告「装板后揭示本板危险格数量」取数口;
|
||||
# 只读投影 BoardData.mines 规模,零分布泄露——数量非位置)
|
||||
func mine_total() -> int:
|
||||
return _board.mines.size() if _board != null else 0
|
||||
|
||||
|
||||
func _outcome(accepted: bool, outcome: String, reason: String, sub: String) -> Dictionary:
|
||||
return {"accepted": accepted, "outcome": outcome, "reject_reason": reason, "sub_reason": sub}
|
||||
Reference in new issue
Block a user