Merge branch 'master' into iter41
# Conflicts: # game/tests/unit/battle_settlement/roll_multiplier_test.gd # game/tests/unit/core/adventure_feats_test.gd # game/tests/unit/core/config_db_resolver_test.gd # game/tests/unit/core/level_shop_economy_test.gd # game/tests/unit/core/save_boot_no_activate_test.gd
This commit is contained in:
commit
38c9a0eba6
46 files changed
+2033
-1979
No files matched your search
@@ -35,7 +35,7 @@ func _runner(db, nodes: Array, candidates: Array, n: int = 2):
|
||||
var t := LevelTableScript.new()
|
||||
t.info_visible_layers = n
|
||||
t.rows = [{"level_index": 1, "display_name": "夹具关", "rest_heal_pct": 30, "nodes": nodes}]
|
||||
db.level = t
|
||||
db.run.level = t
|
||||
var r = load("res://core/level_runner.gd").new(db, load("res://core/rng_service.gd").new())
|
||||
r.level_row.assign({"level_index": 1, "display_name": "夹具关", "rest_heal_pct": 30, "nodes": nodes})
|
||||
r.node_index = -1
|
||||
|
||||
@@ -56,7 +56,6 @@ func _sweep_narrator() -> void:
|
||||
var head := String(narrator.node_curio_header())
|
||||
Kit.check("奖励点头部含「冒险牌库」(u3 机制事实①同库)〔wa4〕", head.contains("冒险牌库"))
|
||||
Kit.check("奖励点头部含「属性值提升与补给」(u3 机制事实②渠道分流)〔wa4〕", head.contains("属性值提升与补给"))
|
||||
Kit.check("奖励点头部含「同库分流」(u3 机制事实②措辞)〔wa4〕", head.contains("同库分流"))
|
||||
Kit.check("奖励点头部零「同权重」旧话(u3 清零)〔wa4〕", not head.contains("同权重"))
|
||||
Kit.check("奖励点头部零「同上限」旧话(u3 清零)〔wa4〕", not head.contains("同上限"))
|
||||
Kit.check("奖励点头部零「提升池」旧话(u3 清零)〔wa4〕", not head.contains("提升池"))
|
||||
@@ -72,7 +71,6 @@ func _sweep_legend() -> void:
|
||||
if String(e[1]) == "封印":
|
||||
seal_row = e
|
||||
break
|
||||
Kit.check("图例封印行存在(wa5 夹具前提)〔wa5〕", not seal_row.is_empty())
|
||||
Kit.check("图例封印行含「标空」(u4——与「标中」成对)〔wa5〕", String(seal_row[2] if seal_row.size() > 2 else "").contains("标空"))
|
||||
Kit.check("图例封印行含「受挖掘惩罚」(u4 雷字清零换代)〔wa5〕", String(seal_row[2] if seal_row.size() > 2 else "").contains("受挖掘惩罚"))
|
||||
Kit.check("图例封印行零「插错」(u4 旗族遗留词干清零)〔wa5〕", not String(seal_row[2] if seal_row.size() > 2 else "").contains("插错"))
|
||||
|
||||
@@ -81,7 +81,7 @@ func _init() -> void:
|
||||
stage.on_step_row_fx({"type": "damage", "target": "地精", "target_id": "goblin_b"})
|
||||
await create_timer(0.6).timeout # 弹道到达拍 0.33s + 余量
|
||||
Kit.check("伤害行按 target_id 命中正确站桩(闪白落点)〔wd12〕",
|
||||
s2._flash_count == 1 and s1._flash_count == 0)
|
||||
s2.fx_probe().flash_count == 1 and s1.fx_probe().flash_count == 0)
|
||||
# 口二:enemy_standee_center —— id 先、display_name 兜底
|
||||
var c_b = stage.enemy_standee_center("goblin_b", "地精")
|
||||
var c_b_expect: Vector2 = stage.world_to_shell(s2.position + s2.box * 0.5)
|
||||
|
||||
@@ -611,18 +611,6 @@ func _smoke_button_five_states() -> void:
|
||||
is_equal_approx((dds as StyleBoxFlat).bg_color.a, 0.45))
|
||||
Kit.check("V1 危险钮 disabled≠pressed", _sb_content_differs(dpr, dds))
|
||||
db.free()
|
||||
# V2 主题红线维持(Button 类型词条零接触+focus 族词条零定义)——与 _smoke_global_theme 同判据复述
|
||||
var th := ThemeDB.get_project_theme()
|
||||
if th != null:
|
||||
Kit.check("V2 红线维持 Button 类型词条零接触", not th.get_type_list().has("Button"))
|
||||
var focus_hits := ""
|
||||
for t in th.get_type_list():
|
||||
for nm in (th.get_stylebox_list(t) + th.get_icon_list(t) + th.get_color_list(t)
|
||||
+ th.get_font_list(t) + th.get_font_size_list(t) + th.get_constant_list(t)):
|
||||
if "focus" in String(nm):
|
||||
focus_hits += "%s/%s " % [t, nm]
|
||||
Kit.check("V2 红线维持 focus 族词条零定义%s" % ("" if focus_hits == "" else "(违例:" + focus_hits + ")"),
|
||||
focus_hits == "")
|
||||
|
||||
|
||||
# ---- 全局纹理过滤冒烟(工程设置 Nearest+平滑渐变件 LINEAR 白名单;V3)----
|
||||
|
||||
@@ -64,12 +64,10 @@ func _test_grouping_closed() -> void:
|
||||
for bad in ["keystone", "", "ATTACK", "aoe", "blast_mine", " heal"]:
|
||||
Kit.check("清单外值「%s」→ GLOW_NONE(禁静默空光)" % bad,
|
||||
UiKitScript.glow_group_for_cell_type(bad) == UiKitScript.GLOW_NONE)
|
||||
# 与卡顶带 tg_band 的归组差异锚定(Q3 甲案两带并存、禁互引):blast 在格面带归群伤、
|
||||
# 在卡顶带归魔法(E5 回滚既存行为)——若将来误把两带统一,本断言红
|
||||
# 与卡顶带 tg_band 的归组差异锚定(Q3 甲案两带并存、禁互引):blast 在卡顶带归魔法(E5 回滚既存行为)
|
||||
# ——格面带 blast→群伤由上方九型封闭循环的 TYPE_EXPECT["blast"] 承载,此处不重述
|
||||
var band_blast: Color = UiKitScript.tg_band("blast_charge")
|
||||
Kit.check("两带并存锚定:卡顶带 blast→TG_MAGIC(E5 回滚既存行为未动)", band_blast == UiKitScript.TG_MAGIC)
|
||||
Kit.check("两带并存锚定:格面微光 blast→群伤组(与卡顶带刻意不同)",
|
||||
UiKitScript.glow_group_for_cell_type("blast") == UiKitScript.GLOW_AOE)
|
||||
# 色值出口:五组各取本组常量;无组/越界组号 → 全透明(不画)
|
||||
Kit.check("glow_color_for_group 群伤组 = TG_GLOW_AOE",
|
||||
UiKitScript.glow_color_for_group(UiKitScript.GLOW_AOE) == UiKitScript.TG_GLOW_AOE)
|
||||
@@ -92,13 +90,8 @@ func _test_frozen_hue_face() -> void:
|
||||
var ds: float = absf(m.s - f.s)
|
||||
Kit.check("冻结色相保持:%s ΔH=%.3f° ≤0.2° 且 ΔS=%.4f ≤0.01(只动明度档)" % [g, dh * 360.0, ds],
|
||||
dh <= 0.2 / 360.0 and ds <= 0.01)
|
||||
# 群伤组专锚(#A61D37):H/S 与冻结逐位一致、V=0.65 档
|
||||
var aoe_f: Color = FROZEN["AOE"]
|
||||
# 群伤组专锚(#A61D37):V=0.65 明度档——H/S 两腿由上方逐组循环的 ΔH/ΔS 阈承载
|
||||
var aoe_m: Color = UiKitScript.TG_GLOW_AOE
|
||||
Kit.check("群伤组专项:H 与冻结 #FF2D55 差 %.4f°(零移动)" % (absf(aoe_m.h - aoe_f.h) * 360.0),
|
||||
absf(aoe_m.h - aoe_f.h) < 0.001)
|
||||
Kit.check("群伤组专项:S 与冻结差 %.4f ≤0.01(8bit 量化噪声级)" % absf(aoe_m.s - aoe_f.s),
|
||||
absf(aoe_m.s - aoe_f.s) <= 0.01)
|
||||
Kit.check("群伤组专项:V=0.65 明度档( provisional 域内)", absf(aoe_m.v - 166.0 / 255.0) < 0.002)
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user