Files
gplan-2/game/data/tables/feats.tres
T
DKChan 7f45f90484 feat(卡② T6): feats.tres counter_id 改名 + domain/reset_at 键删除 + DO_KEYS 收缩
- twin_digs→adv_twin_digs、instinct_atk→round_instinct_atk(写点+读点 value_counter 成对改)
- 删 9 处 domain/reset_at 键行(含 pain_layers 三处归 battle、insurance_used domain=battle 删键)
- 引擎 DO_KEYS 删 domain/reset_at;do 键白名单注释改前缀归属口径
config_db_test 26 checks 全绿(feats.tres 加载校验通过、跨表护栏零违例)。
2026-10-20 23:04:16 +08:00

874 lines
16 KiB
Plaintext
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.
[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
}
}
]
}
]