Files
gplan-2/game/data/tables/feats.tres
T

1084 lines
19 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
}
}
]
},
{
"feat_id": "vein_reserve",
"display_name": "矿脉储能",
"rarity": "excellent",
"cap": 1,
"desc": "挖格储能:每次受理的付费挖格 +1 储备点(RAP)",
"triggers": [
{
"on": "dig_paid",
"do": {
"kind": "grant_reserve_ap",
"value": 1
}
}
]
},
{
"feat_id": "easy_swap",
"display_name": "省力周转",
"rarity": "excellent",
"cap": 1,
"desc": "刷新半价:弃图刷新成本为基线 50%",
"triggers": [
{
"on": "refresh_request",
"do": {
"kind": "apply_discount",
"mode": "refresh",
"cost_mult": 50
}
}
]
},
{
"feat_id": "wall_blast",
"display_name": "崩壁冲击",
"rarity": "excellent",
"cap": 1,
"desc": "刷后群伤:成功刷新后全体存活敌各受 2 点",
"triggers": [
{
"on": "board_refreshed",
"do": {
"kind": "open_ticket",
"channel": "blast",
"value": 2
}
}
]
},
{
"feat_id": "mine_profit",
"display_name": "矿道红利",
"rarity": "rare",
"cap": 1,
"desc": "刷后GP:每次成功刷新固定 +1 GP",
"triggers": [
{
"on": "board_refreshed",
"do": {
"kind": "grant_gp",
"value": 1
}
}
]
},
{
"feat_id": "stone_mitigation",
"display_name": "石层缓冲",
"rarity": "common",
"cap": 1,
"desc": "当轮减伤:本轮成功刷新后,每次受伤固定 −2(多刷不叠加)",
"triggers": [
{
"on": "board_refreshed",
"do": {
"kind": "counter_add",
"counter_id": "round_swap_guard",
"value": 1
}
},
{
"on": "damage_taken",
"when": [
{
"fact": "counter",
"id": "round_swap_guard",
"op": "gte",
"value": 1
}
],
"do": {
"kind": "damage_reduce",
"value": 2
}
}
]
},
{
"feat_id": "charge_rotation",
"display_name": "蓄力周转",
"rarity": "excellent",
"cap": 1,
"desc": "刷后蓄力:每次刷新 +1 层(上限 3),下一次攻击消费全部层数",
"triggers": [
{
"on": "board_refreshed",
"when": [
{
"fact": "counter",
"id": "swap_charge_layers",
"op": "lt",
"value": 3
}
],
"do": {
"kind": "counter_add",
"counter_id": "swap_charge_layers",
"value": 1
}
},
{
"on": "attack_commit",
"when": [
{
"fact": "counter",
"id": "swap_charge_layers",
"op": "gte",
"value": 1
}
],
"do": {
"kind": "attack_bonus",
"value_counter": "swap_charge_layers"
}
},
{
"on": "attack_commit",
"when": [
{
"fact": "counter",
"id": "swap_charge_layers",
"op": "gte",
"value": 1
}
],
"do": {
"kind": "counter_add",
"counter_id": "swap_charge_layers",
"set": 0
}
}
]
},
{
"feat_id": "tunnel_rest",
"display_name": "坑道小憩",
"rarity": "common",
"cap": 1,
"desc": "当轮恢复:每次刷新累计 1 点(上限 3),本轮轮末合计回复",
"triggers": [
{
"on": "board_refreshed",
"when": [
{
"fact": "counter",
"id": "round_swap_rest",
"op": "lt",
"value": 3
}
],
"do": {
"kind": "counter_add",
"counter_id": "round_swap_rest",
"value": 1
}
},
{
"on": "round_end",
"when": [
{
"fact": "counter",
"id": "round_swap_rest",
"op": "gte",
"value": 1
}
],
"do": {
"kind": "heal",
"value_counter": "round_swap_rest"
}
},
{
"on": "round_end",
"when": [
{
"fact": "counter",
"id": "round_swap_rest",
"op": "gte",
"value": 1
}
],
"do": {
"kind": "counter_add",
"counter_id": "round_swap_rest",
"set": 0
}
}
]
}
]