[gd_resource type="Resource" script_class="FeatTable" load_steps=2 format=3] [ext_resource type="Script" path="res://data/schemas/feat_table.gd" id="1"] [resource] script = ExtResource("1") ; 迭代 20 专长实装批 T3——专长重设计 27+2 件换代(奇物.md 基础件表 27 件+迁入登记 2 件=29 行; ; 件数口径=卡文 §10.4 推荐案:29 行=基础 27+迁入 2,V2/V3 断言按落表实数)。旧 27 件随本批整体 ; 退役(素材库表二);订阅行 on/when/do 词表=效果引擎封闭集;rarity 四级直映射令牌档;cap=已拿 ; 上限(案②解耦——拿了才计刷出不计);数值全 provisional 归调参批;desc 禁「雷/旗」字面 ; (契约 6 命名纪律:旗〔旧称〕=封印、危险格=陷阱/巢穴风味层)。dispatch 预评估口径注记:「每第 N 次/积 ; 满触发」系 when 于命中前读计数器现值——行 when 按 N-1 落值(双管镐 mod_eq ref 1/地质学家 eq 3/ ; 跳格 eq 2/封印匠 mod_eq ref 2/保险丝 eq 1——effect_words_t1_test mod_eq 断言钉住该口径)。 ; 迭代 31 卡② 凭证件裁削批 T5——完美保险自资源类迁入专长表(第 30 行):rarity rare/cap 省略 ; (承 twin_pick/seal_burst 惯例)/domain=battle 显式写出(现役 29 行全为 adventure 或不写,本行 ; 系战斗域首例——豁免计数每战清零)。限次落法=单订阅行:when counter(insurance_used) lt 1 承载 ; 「本场首次」,do 自带 counter_id 记账由授予段消费点落账(dispatch 不代执行计数器)。 rows = [ { "feat_id": "twin_pick", "display_name": "双管镐", "rarity": "common", "desc": "每第 2 次付费开格返 1 AP", "triggers": [ { "on": "dig_paid", "do": { "kind": "counter_add", "counter_id": "adv_twin_digs", "value": 1 } }, { "on": "dig_paid", "when": [ { "fact": "counter", "id": "adv_twin_digs", "op": "mod_eq", "value": 2, "ref": 1 } ], "do": { "kind": "grant_ap", "value": 1 } } ] }, { "feat_id": "geologist", "display_name": "地质学家", "rarity": "common", "desc": "每首开一种新类型资源格集 1 点,满 4 种→揭示 1 格", "triggers": [ { "on": "dig_reveal", "when": [ { "fact": "new_resource_type", "op": "eq", "value": true } ], "do": { "kind": "counter_add", "counter_id": "geo_types", "value": 1 } }, { "on": "dig_reveal", "when": [ { "fact": "counter", "id": "geo_types", "op": "eq", "value": 3 } ], "do": { "kind": "reveal_tiles", "value": 1 } }, { "on": "dig_reveal", "when": [ { "fact": "counter", "id": "geo_types", "op": "eq", "value": 3 } ], "do": { "kind": "counter_add", "counter_id": "geo_types", "set": 0 } } ] }, { "feat_id": "hard_hat", "display_name": "安全帽", "rarity": "excellent", "desc": "开安全格攒 1 层;触陷阱耗层,每层减 1 伤害(一次清零)", "triggers": [ { "on": "dig_reveal", "do": { "kind": "counter_add", "counter_id": "helm_layers", "value": 1 } }, { "on": "mine_hit", "do": { "kind": "damage_reduce", "value_counter": "helm_layers" } }, { "on": "mine_hit", "when": [ { "fact": "counter", "id": "helm_layers", "op": "gte", "value": 1 } ], "do": { "kind": "counter_add", "counter_id": "helm_layers", "set": 0 } } ] }, { "feat_id": "skip_mining", "display_name": "跳格采掘", "rarity": "excellent", "desc": "挖开空白格攒 1 点,3 点→揭示 1 格", "triggers": [ { "on": "dig_reveal", "when": [ { "fact": "is_blank_zero", "op": "eq", "value": true } ], "do": { "kind": "counter_add", "counter_id": "skip_pts", "value": 1 } }, { "on": "dig_reveal", "when": [ { "fact": "counter", "id": "skip_pts", "op": "eq", "value": 2 } ], "do": { "kind": "reveal_tiles", "value": 1 } }, { "on": "dig_reveal", "when": [ { "fact": "counter", "id": "skip_pts", "op": "eq", "value": 2 } ], "do": { "kind": "counter_add", "counter_id": "skip_pts", "set": 0 } } ] }, { "feat_id": "blast_accounting", "display_name": "爆破会计", "rarity": "common", "desc": "轮末:本轮开格花费 AP≥5 → +1 GP", "triggers": [ { "on": "dig_paid", "do": { "kind": "counter_add", "counter_id": "round_blast_spent", "value": 1, "value_event": "ap_cost" } }, { "on": "round_end", "when": [ { "fact": "counter", "id": "round_blast_spent", "op": "gte", "value": 5 } ], "do": { "kind": "grant_gp", "value": 1 } } ] }, { "feat_id": "frontier_miner", "display_name": "边陲矿工", "rarity": "common", "desc": "挖开棋盘边缘格:产出 +1", "triggers": [ { "on": "dig_reveal", "when": [ { "fact": "is_edge_cell", "op": "eq", "value": true } ], "do": { "kind": "grant_material", "value": 1 } } ] }, { "feat_id": "seal_echo", "display_name": "封印回响", "rarity": "excellent", "desc": "封印命中计数;轮末计数≥2 → 返 1 AP(下轮)", "triggers": [ { "on": "seal_hit", "do": { "kind": "counter_add", "counter_id": "echo_seals", "value": 1 } }, { "on": "round_end", "when": [ { "fact": "counter", "id": "echo_seals", "op": "gte", "value": 2 } ], "do": { "kind": "grant_ap", "value": 1, "mode": "queue" } }, { "on": "round_end", "when": [ { "fact": "counter", "id": "echo_seals", "op": "gte", "value": 2 } ], "do": { "kind": "counter_add", "counter_id": "echo_seals", "set": 0 } } ] }, { "feat_id": "warning_beacon", "display_name": "示警烟火", "rarity": "common", "desc": "封印命中:揭示周围 3×3 的资源类型(不揭安危)", "triggers": [ { "on": "seal_hit", "do": { "kind": "preview_area", "value": 1 } } ] }, { "feat_id": "seal_smith", "display_name": "封印匠", "rarity": "rare", "desc": "封印命中每第 3 次 → 该危险格中立移除", "triggers": [ { "on": "seal_hit", "do": { "kind": "counter_add", "counter_id": "smith_seals", "value": 1 } }, { "on": "seal_hit", "when": [ { "fact": "counter", "id": "smith_seals", "op": "mod_eq", "value": 3, "ref": 2 } ], "do": { "kind": "remove_mines", "value": 1 } } ] }, { "feat_id": "seal_stake", "display_name": "封印桩", "rarity": "common", "desc": "封印命中:本轮 AC +1", "triggers": [ { "on": "seal_hit", "do": { "kind": "ac_bonus", "value": 1, "mode": "round" } } ] }, { "feat_id": "pain_memory", "display_name": "疼痛记忆", "rarity": "rare", "desc": "触陷阱攒 1 层;下次攻击附加层值伤害,用后清零", "triggers": [ { "on": "mine_hit", "do": { "kind": "counter_add", "counter_id": "pain_layers", "value": 1 } }, { "on": "attack_commit", "when": [ { "fact": "counter", "id": "pain_layers", "op": "gte", "value": 1 } ], "do": { "kind": "attack_bonus", "value_counter": "pain_layers" } }, { "on": "attack_commit", "when": [ { "fact": "counter", "id": "pain_layers", "op": "gte", "value": 1 } ], "do": { "kind": "counter_add", "counter_id": "pain_layers", "set": 0 } } ] }, { "feat_id": "fuse_wire", "display_name": "保险丝", "rarity": "rare", "desc": "单次受伤 ≥5 攒 1 点,2 点→护盾 1 层", "triggers": [ { "on": "damage_taken", "when": [ { "fact": "amount", "op": "gte", "value": 5 } ], "do": { "kind": "counter_add", "counter_id": "fuse_pts", "value": 1 } }, { "on": "damage_taken", "when": [ { "fact": "counter", "id": "fuse_pts", "op": "eq", "value": 1 } ], "do": { "kind": "shield", "value": 1 } }, { "on": "damage_taken", "when": [ { "fact": "counter", "id": "fuse_pts", "op": "eq", "value": 1 } ], "do": { "kind": "counter_add", "counter_id": "fuse_pts", "set": 0 } } ] }, { "feat_id": "blood_insight", "display_name": "见血开窍", "rarity": "common", "desc": "触陷阱:揭示 1 格", "triggers": [ { "on": "mine_hit", "do": { "kind": "reveal_tiles", "value": 1 } } ] }, { "feat_id": "trap_instinct", "display_name": "陷阱本能", "rarity": "excellent", "desc": "触陷阱:本轮攻击 +2(走攻击面板乘区)", "triggers": [ { "on": "mine_hit", "do": { "kind": "counter_add", "counter_id": "round_instinct_atk", "value": 2 } }, { "on": "attack_commit", "do": { "kind": "attack_bonus", "value_counter": "round_instinct_atk" } } ] }, { "feat_id": "chain_traps", "display_name": "连环陷阱", "rarity": "excellent", "desc": "同轮第 2 次及以后的触陷阱:每次额外 +1 层(疼痛记忆同账)", "triggers": [ { "on": "mine_hit", "do": { "kind": "counter_add", "counter_id": "round_mines", "value": 1 } }, { "on": "mine_hit", "when": [ { "fact": "counter", "id": "round_mines", "op": "gte", "value": 1 } ], "do": { "kind": "counter_add", "counter_id": "pain_layers", "value": 1 } } ] }, { "feat_id": "trap_burst", "display_name": "陷阱爆发", "rarity": "rare", "desc": "触陷阱:全体存活敌受陷阱伤×1.5 直伤", "triggers": [ { "on": "mine_hit", "do": { "kind": "blast_scaled", "mult": 1.5 } } ] }, { "feat_id": "blood_honey", "display_name": "血蜜", "rarity": "common", "desc": "触陷阱:回复 2 生命(陷阱伤仍净亏血)", "triggers": [ { "on": "mine_hit", "do": { "kind": "heal", "value": 2 } } ] }, { "feat_id": "stone_skin", "display_name": "石肤", "rarity": "excellent", "desc": "受伤:AC +1(本场累计,上限 3)", "triggers": [ { "on": "damage_taken", "do": { "kind": "ac_bonus", "value": 1, "mode": "battle", "cap": 3 } } ] }, { "feat_id": "last_stand", "display_name": "背水", "rarity": "rare", "desc": "生命≤50%:受伤额外 −2", "triggers": [ { "on": "damage_taken", "when": [ { "fact": "hp_ratio", "op": "lte", "value": 50 } ], "do": { "kind": "damage_reduce", "value": 2 } } ] }, { "feat_id": "breaker_strike", "display_name": "破封一击", "rarity": "excellent", "desc": "挖开带封印的危险格:+1 层(疼痛记忆同账)", "triggers": [ { "on": "mine_hit", "when": [ { "fact": "dug_under_seal", "op": "eq", "value": true } ], "do": { "kind": "counter_add", "counter_id": "pain_layers", "value": 1 } } ] }, { "feat_id": "map_exchange", "display_name": "弃图兑换", "rarity": "excellent", "desc": "停手:剩余 AP≥3 → 折为攻击伤害", "triggers": [ { "on": "dig_stop", "when": [ { "fact": "ap_left", "op": "gte", "value": 3 } ], "do": { "kind": "counter_add", "counter_id": "stop_swap", "value": 0, "value_event": "ap_left" } }, { "on": "attack_commit", "when": [ { "fact": "counter", "id": "stop_swap", "op": "gte", "value": 1 } ], "do": { "kind": "attack_bonus", "value_counter": "stop_swap" } }, { "on": "attack_commit", "when": [ { "fact": "counter", "id": "stop_swap", "op": "gte", "value": 1 } ], "do": { "kind": "counter_add", "counter_id": "stop_swap", "set": 0 } } ] }, { "feat_id": "last_drop", "display_name": "一滴不剩", "rarity": "common", "desc": "上轮 AP 耗尽 → +1 AP", "triggers": [ { "on": "round_start", "when": [ { "fact": "ap_exhausted_last", "op": "eq", "value": true } ], "do": { "kind": "grant_ap", "value": 1, "mode": "queue" } } ] }, { "feat_id": "market_close", "display_name": "收盘", "rarity": "common", "desc": "轮末:本轮开格 ≥8 → +1 GP", "triggers": [ { "on": "dig_reveal", "do": { "kind": "counter_add", "counter_id": "round_digs", "value": 1 } }, { "on": "round_end", "when": [ { "fact": "counter", "id": "round_digs", "op": "gte", "value": 8 } ], "do": { "kind": "grant_gp", "value": 1 } } ] }, { "feat_id": "execution_scholar", "display_name": "斩首学者", "rarity": "common", "desc": "击杀:揭示 1 格", "triggers": [ { "on": "kill", "do": { "kind": "reveal_tiles", "value": 1 } } ] }, { "feat_id": "executioner", "display_name": "处刑台", "rarity": "excellent", "desc": "敌血量≤30%:主角对其伤害 +2", "triggers": [ { "on": "enemy_hp_threshold", "when": [ { "fact": "pct", "op": "lte", "value": 30 } ], "do": { "kind": "target_attack_bonus", "value": 2 } } ] }, { "feat_id": "field_dressing", "display_name": "战地包扎", "rarity": "common", "desc": "战斗胜利:回复 3 生命", "triggers": [ { "on": "battle_won", "do": { "kind": "heal", "value": 3 } } ] }, { "feat_id": "blood_tax", "display_name": "血税", "rarity": "rare", "desc": "本局每触一次陷阱,最大生命 −2;每封印命中一次,攻击 +1(下一战起生效)", "triggers": [ { "on": "mine_hit", "do": { "kind": "bonus_delta", "axis": "max_hp", "delta": -2 } }, { "on": "seal_hit", "do": { "kind": "bonus_delta", "axis": "atk", "delta": 1 } } ] }, { "feat_id": "venom_edge", "display_name": "淬毒刃纹", "rarity": "rare", "desc": "克制命中追加 +2 伤害", "triggers": [ { "on": "clamp_check", "when": [ { "fact": "matchup", "op": "advantageous" } ], "do": { "kind": "modify_ticket", "mode": "clamp_bonus", "delta": 2 } } ] }, { "feat_id": "seal_burst", "display_name": "封印爆裂", "rarity": "rare", "desc": "封印命中:全体存活敌 3 点群伤", "triggers": [ { "on": "seal_hit", "do": { "kind": "open_ticket", "channel": "blast", "value": 3 } } ] }, { "feat_id": "perfect_insurance", "display_name": "完美保险", "rarity": "rare", "desc": "本场首次封印落空,不计入完美封印判定", "triggers": [ { "on": "seal_missed", "when": [ { "fact": "counter", "id": "insurance_used", "op": "lt", "value": 1 } ], "do": { "kind": "forgive_seal_miss", "counter_id": "insurance_used", "value": 1 } } ] } ]