863 lines
14 KiB
Plaintext
863 lines
14 KiB
Plaintext
[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")
|
||
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
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|