335 lines
14 KiB
JSON
335 lines
14 KiB
JSON
{
|
|
"schema": 1,
|
|
"contract_revision": "p10.2-siltwake-mid-contract-r1",
|
|
"source": {
|
|
"region_catalog_path": "docs/content/REGION_CATALOG.md",
|
|
"region_catalog_blob": "2ca533feb82bdedf6f141c6381319c3a56759ba3",
|
|
"enemy_catalog_path": "docs/content/ENEMY_CATALOG.md",
|
|
"enemy_catalog_blob": "cdf05128cfd1832835712e37c3eb200595983613",
|
|
"equipment_catalog_path": "docs/content/EQUIPMENT_CATALOG.md",
|
|
"equipment_catalog_blob": "3fd34ef951056b02749137f7bff2e66fb94b8375",
|
|
"economy_path": "docs/product/ECONOMY_AND_BALANCE.md",
|
|
"economy_blob": "0cb57e7b44d983f61c27e8b60da43d4728950e33"
|
|
},
|
|
"names_zh": {
|
|
"RG-02": "淤潮沼泽",
|
|
"CTR-R2-01": "淤潮初渡",
|
|
"EQ-049": "借护坠饰",
|
|
"EQ-050": "破阵盔",
|
|
"EQ-051": "静默拦截盾",
|
|
"EQ-052": "蓄热斗篷",
|
|
"EQ-053": "空护笼",
|
|
"EQ-054": "三击灯台",
|
|
"EQ-055": "邻誓护板",
|
|
"EQ-056": "反推架",
|
|
"EN-R2-08": "沉籽荚",
|
|
"EN-R2-09": "泥沼医师",
|
|
"EN-R2-10": "雾颚兽",
|
|
"RO-R2-M02-Q0": "潮玻边洲",
|
|
"RO-R2-M02-Q1": "笛沼回湾",
|
|
"RO-R2-M02-Q2": "沉籽堤渡",
|
|
"RO-R2-M03-Q0": "静水浅台",
|
|
"RO-R2-M03-Q1": "泥医泽道",
|
|
"RO-R2-M03-Q2": "雾颚切口",
|
|
"RO-R2-M04-Q0": "钩籽河汊",
|
|
"RO-R2-M04-Q1": "镜雾滩",
|
|
"RO-R2-M04-Q2": "沉育池"
|
|
},
|
|
"region": {
|
|
"id": "RG-02",
|
|
"name": "Siltwake Fens",
|
|
"preview": "Read the changing safe index, target access and recovery timing before committing each route.",
|
|
"response_tags": ["stable_order", "deliberate_movement", "focus_timing"]
|
|
},
|
|
"contract": {
|
|
"id": "CTR-R2-01",
|
|
"name": "First Siltwake Contract",
|
|
"region_id": "RG-02",
|
|
"slice_start_market": 2,
|
|
"slice_end_market": 5,
|
|
"boss_executable": false,
|
|
"preview": "Clear Rounds 2 through 4, restore the Reed Ferry and preserve the Run at Market 5.",
|
|
"response_tags": ["three_round_arc", "capacity_growth", "ferry_restoration"]
|
|
},
|
|
"equipment": [
|
|
{
|
|
"id": "EQ-049",
|
|
"name": "Borrowed Cover",
|
|
"fit": "charm; any",
|
|
"class": "B",
|
|
"effect": "When the wearer steps behind a Guarded ally, copy one Guard token.",
|
|
"tradeoff": "The copied token expires on the wearer's next movement.",
|
|
"preview": "Move behind protection to borrow it once, then decide whether another movement is worth losing it.",
|
|
"response_tags": ["deliberate_movement", "guard_copy", "neighbor_protection"]
|
|
},
|
|
{
|
|
"id": "EQ-050",
|
|
"name": "Strike-Open Helm",
|
|
"fit": "guard; pressure",
|
|
"class": "B",
|
|
"effect": "Becoming Exposed advances the wearer's next basic action.",
|
|
"tradeoff": "Exposed cannot be cleansed before that basic action.",
|
|
"preview": "Accept one disclosed vulnerable window to reach the next target sooner.",
|
|
"response_tags": ["exposed_timing", "action_advance", "focus_window"]
|
|
},
|
|
{
|
|
"id": "EQ-051",
|
|
"name": "Quiet Interceptor",
|
|
"fit": "guard; any",
|
|
"class": "B",
|
|
"effect": "The first intercepted hit generates no enemy on-hit resource.",
|
|
"tradeoff": "The wearer's own on-hit resource also does not trigger.",
|
|
"preview": "Silence the first enemy rider, but give up the wearer's matching resource trigger.",
|
|
"response_tags": ["intercept", "resource_denial", "stable_order"]
|
|
},
|
|
{
|
|
"id": "EQ-052",
|
|
"name": "Heatcatch Mantle",
|
|
"fit": "garb; any",
|
|
"class": "B",
|
|
"effect": "Store the first area burst and release it after the wearer moves.",
|
|
"tradeoff": "If the wearer cannot move within two cadences, the burst resolves on the wearer.",
|
|
"preview": "Turn a planned movement into delayed area retaliation before the stored burst backfires.",
|
|
"response_tags": ["deliberate_movement", "area_storage", "countdown"]
|
|
},
|
|
{
|
|
"id": "EQ-053",
|
|
"name": "Empty Guard Cage",
|
|
"fit": "guard; any",
|
|
"class": "B",
|
|
"effect": "With zero Guard, incoming Guard strip becomes one Guard instead.",
|
|
"tradeoff": "The wearer cannot receive normal Guard during that cadence.",
|
|
"preview": "Invert one protection strip only when the wearer enters it with no Guard.",
|
|
"response_tags": ["guard_inversion", "timing", "resource_control"]
|
|
},
|
|
{
|
|
"id": "EQ-054",
|
|
"name": "Three-Hit Sconce",
|
|
"fit": "charm; front",
|
|
"class": "B",
|
|
"effect": "The third direct hit lights a screen against the next spell.",
|
|
"tradeoff": "Moving resets the direct-hit count.",
|
|
"preview": "Hold the front through three hits to gain a spell screen, or move and lose the count.",
|
|
"response_tags": ["stable_order", "hit_count", "spell_screen"]
|
|
},
|
|
{
|
|
"id": "EQ-055",
|
|
"name": "Adjacent Oathplate",
|
|
"fit": "guard; any",
|
|
"class": "B",
|
|
"effect": "Choose ahead or behind in Prepare; protection flows only in that direction and lasts longer.",
|
|
"tradeoff": "The wearer cannot protect the other neighbor.",
|
|
"preview": "Commit protection toward the threatened side and leave the opposite neighbor exposed.",
|
|
"response_tags": ["directional_guard", "neighbor_protection", "prepare_choice"]
|
|
},
|
|
{
|
|
"id": "EQ-056",
|
|
"name": "Pushback Frame",
|
|
"fit": "guard; front",
|
|
"class": "B",
|
|
"effect": "Reflect the first blocked push onto its source when that movement is legal.",
|
|
"tradeoff": "The reflection consumes all Guard on the wearer.",
|
|
"preview": "Reverse one push at the cost of all current front-line Guard.",
|
|
"response_tags": ["push_reflect", "front_guard", "displacement"]
|
|
}
|
|
],
|
|
"enemies": [
|
|
{
|
|
"id": "EN-R2-08",
|
|
"name": "Drownseed Pod",
|
|
"class": "ordinary",
|
|
"rule": "On defeat, place a visible seed at the defeating ally's position; it bursts after two cadences unless that ally moves.",
|
|
"responses": "Move after the defeat, or delay the final hit until movement is ready.",
|
|
"preview": "The defeating ally has two cadences to leave the marked seed position.",
|
|
"response_tags": ["deliberate_movement", "defeat_trigger", "countdown"]
|
|
},
|
|
{
|
|
"id": "EN-R2-09",
|
|
"name": "Mire Medic",
|
|
"class": "ordinary",
|
|
"rule": "Restore the enemy with the oldest hindrance, shortening that hindrance with every heal.",
|
|
"responses": "Focus the Medic, or use a short hindrance so its heal removes the enemy setup.",
|
|
"preview": "Its heal targets the oldest hindered enemy and shortens that same hindrance.",
|
|
"response_tags": ["focus_source", "hindrance_timing", "enemy_healing"]
|
|
},
|
|
{
|
|
"id": "EN-R2-10",
|
|
"name": "Fogjaw",
|
|
"class": "ordinary",
|
|
"rule": "It cannot be targeted beyond reach one until it attacks; that attack reveals it for one cadence and targets the center band.",
|
|
"responses": "Hold a short-reach counter, or bait the reveal with a guarded center target.",
|
|
"preview": "A center attack opens one short reveal window for every legal attacker.",
|
|
"response_tags": ["center_protection", "reveal_window", "short_reach"]
|
|
}
|
|
],
|
|
"routes": [
|
|
{
|
|
"id": "RO-R2-M02-Q0",
|
|
"name": "Tideglass Verge",
|
|
"market_index": 2,
|
|
"round_index": 2,
|
|
"risk": 0,
|
|
"enemy_ids": ["EN-R2-01", "EN-R2-03"],
|
|
"wave_order": [{"tick": 0, "enemy_id": "EN-R2-01"}, {"tick": 16, "enemy_id": "EN-R2-03"}],
|
|
"reward_coin": 24,
|
|
"recovery_coin": 6,
|
|
"pressure": "Rear pull changes the Mimic's legal mirrored target.",
|
|
"failure_cause": "The pulled rear exposed an unguarded mirrored target.",
|
|
"preview": "A durable stable rear makes the first copied target predictable.",
|
|
"response_tags": ["stable_order", "rear_durability", "target_rule"]
|
|
},
|
|
{
|
|
"id": "RO-R2-M02-Q1",
|
|
"name": "Piper's Backwater",
|
|
"market_index": 2,
|
|
"round_index": 2,
|
|
"risk": 1,
|
|
"enemy_ids": ["EN-R2-05", "EN-R2-07"],
|
|
"wave_order": [{"tick": 0, "enemy_id": "EN-R2-05"}, {"tick": 12, "enemy_id": "EN-R2-07"}],
|
|
"reward_coin": 31,
|
|
"recovery_coin": 8,
|
|
"pressure": "Enemy reorder preserves the first attacker's tether through the line.",
|
|
"failure_cause": "Rigid targeting followed the Crab into an unsafe rear attack.",
|
|
"preview": "Interrupt the Piper or keep a flexible attacker ready for the reordered Crab.",
|
|
"response_tags": ["interrupt", "flexible_target", "enemy_reorder"]
|
|
},
|
|
{
|
|
"id": "RO-R2-M02-Q2",
|
|
"name": "Seedbank Crossing",
|
|
"market_index": 2,
|
|
"round_index": 2,
|
|
"risk": 2,
|
|
"enemy_ids": ["EN-R2-04", "EN-R2-08"],
|
|
"wave_order": [{"tick": 0, "enemy_id": "EN-R2-04"}, {"tick": 8, "enemy_id": "EN-R2-08"}],
|
|
"reward_coin": 38,
|
|
"recovery_coin": 10,
|
|
"pressure": "Defeating the Pod forces movement across a marked index.",
|
|
"failure_cause": "The seed burst pulled both neighbors into indexed mud.",
|
|
"preview": "Delay the final hit or preserve a legal move away from the seed.",
|
|
"response_tags": ["deliberate_movement", "indexed_hazard", "countdown"]
|
|
},
|
|
{
|
|
"id": "RO-R2-M03-Q0",
|
|
"name": "Stillwater Shelf",
|
|
"market_index": 3,
|
|
"round_index": 3,
|
|
"risk": 0,
|
|
"enemy_ids": ["EN-R2-06", "EN-R2-09"],
|
|
"wave_order": [{"tick": 0, "enemy_id": "EN-R2-06"}, {"tick": 18, "enemy_id": "EN-R2-09"}],
|
|
"reward_coin": 26,
|
|
"recovery_coin": 7,
|
|
"pressure": "Cleanse timing changes which hindered enemy receives healing.",
|
|
"failure_cause": "An early cleanse strengthened the hindrance before the Medic restored it.",
|
|
"preview": "Wait for the midpoint, or focus the Medic before cleansing.",
|
|
"response_tags": ["delay_cleanse", "focus_source", "hindrance_timing"]
|
|
},
|
|
{
|
|
"id": "RO-R2-M03-Q1",
|
|
"name": "Medic's Mire",
|
|
"market_index": 3,
|
|
"round_index": 3,
|
|
"risk": 1,
|
|
"enemy_ids": ["EN-R2-02", "EN-R2-09"],
|
|
"wave_order": [{"tick": 0, "enemy_id": "EN-R2-02"}, {"tick": 10, "enemy_id": "EN-R2-09"}],
|
|
"reward_coin": 33,
|
|
"recovery_coin": 9,
|
|
"pressure": "Source focus decides whether healing is converted or restored.",
|
|
"failure_cause": "Healing into the Leech fed Guard while the Medic erased damage.",
|
|
"preview": "Remove the Leech or Medic before committing the next heal.",
|
|
"response_tags": ["focus_source", "healing_denial", "healing_timing"]
|
|
},
|
|
{
|
|
"id": "RO-R2-M03-Q2",
|
|
"name": "Fogjaw Cut",
|
|
"market_index": 3,
|
|
"round_index": 3,
|
|
"risk": 2,
|
|
"enemy_ids": ["EN-R2-10", "EN-R2-05", "EN-R2-07"],
|
|
"wave_order": [{"tick": 0, "enemy_id": "EN-R2-10"}, {"tick": 9, "enemy_id": "EN-R2-05"}, {"tick": 20, "enemy_id": "EN-R2-07"}],
|
|
"reward_coin": 40,
|
|
"recovery_coin": 11,
|
|
"pressure": "Center bait and enemy reorder create one short reveal window.",
|
|
"failure_cause": "The line had no legal short-reach answer during Fogjaw's reveal.",
|
|
"preview": "Guard the center and hold one close attacker for the reveal cadence.",
|
|
"response_tags": ["center_protection", "short_reach", "enemy_reorder"]
|
|
},
|
|
{
|
|
"id": "RO-R2-M04-Q0",
|
|
"name": "Hookseed Reach",
|
|
"market_index": 4,
|
|
"round_index": 4,
|
|
"risk": 0,
|
|
"enemy_ids": ["EN-R2-01", "EN-R2-08"],
|
|
"wave_order": [{"tick": 0, "enemy_id": "EN-R2-01"}, {"tick": 15, "enemy_id": "EN-R2-08"}],
|
|
"reward_coin": 28,
|
|
"recovery_coin": 8,
|
|
"pressure": "Pull competes with the movement needed to disarm the seed.",
|
|
"failure_cause": "A reserved move was consumed by the Hook before the seed burst.",
|
|
"preview": "Brace the Hook or delay the Pod defeat until movement is free.",
|
|
"response_tags": ["pull_resist", "deliberate_movement", "countdown"]
|
|
},
|
|
{
|
|
"id": "RO-R2-M04-Q1",
|
|
"name": "Mirrored Fog",
|
|
"market_index": 4,
|
|
"round_index": 4,
|
|
"risk": 1,
|
|
"enemy_ids": ["EN-R2-03", "EN-R2-10"],
|
|
"wave_order": [{"tick": 0, "enemy_id": "EN-R2-03"}, {"tick": 14, "enemy_id": "EN-R2-10"}],
|
|
"reward_coin": 35,
|
|
"recovery_coin": 10,
|
|
"pressure": "Target-rule feeding must preserve a guarded center reveal.",
|
|
"failure_cause": "The Mimic copied a rule that left Fogjaw's center target unprotected.",
|
|
"preview": "Feed the Mimic a safe target before Fogjaw opens the center.",
|
|
"response_tags": ["target_rule", "center_protection", "guarded_candidate"]
|
|
},
|
|
{
|
|
"id": "RO-R2-M04-Q2",
|
|
"name": "Sinking Nursery",
|
|
"market_index": 4,
|
|
"round_index": 4,
|
|
"risk": 2,
|
|
"enemy_ids": ["EN-R2-04", "EN-R2-08", "EN-R2-09"],
|
|
"wave_order": [{"tick": 0, "enemy_id": "EN-R2-04"}, {"tick": 8, "enemy_id": "EN-R2-08"}, {"tick": 21, "enemy_id": "EN-R2-09"}],
|
|
"reward_coin": 42,
|
|
"recovery_coin": 12,
|
|
"pressure": "Indexed mud, seed movement and enemy sustain overlap.",
|
|
"failure_cause": "The seed forced a marked crossing while the Medic restored the Pod.",
|
|
"preview": "Focus the Medic, then defeat the Pod with an unmarked move available.",
|
|
"response_tags": ["focus_source", "indexed_hazard", "deliberate_movement"]
|
|
}
|
|
],
|
|
"markets": [
|
|
{
|
|
"market_index": 2,
|
|
"round_index": 2,
|
|
"cleared_rounds_before": 1,
|
|
"line_capacity": 4,
|
|
"offer_level": 1,
|
|
"route_ids": ["RO-R2-M02-Q0", "RO-R2-M02-Q1", "RO-R2-M02-Q2"],
|
|
"required_equipment_ids": ["EQ-049", "EQ-055"],
|
|
"first_order_changer_id": "EN-R2-01"
|
|
},
|
|
{
|
|
"market_index": 3,
|
|
"round_index": 3,
|
|
"cleared_rounds_before": 2,
|
|
"line_capacity": 5,
|
|
"offer_level": 1,
|
|
"route_ids": ["RO-R2-M03-Q0", "RO-R2-M03-Q1", "RO-R2-M03-Q2"],
|
|
"required_equipment_ids": ["EQ-050", "EQ-051"],
|
|
"first_order_changer_id": "EN-R2-05"
|
|
},
|
|
{
|
|
"market_index": 4,
|
|
"round_index": 4,
|
|
"cleared_rounds_before": 3,
|
|
"line_capacity": 5,
|
|
"offer_level": 2,
|
|
"route_ids": ["RO-R2-M04-Q0", "RO-R2-M04-Q1", "RO-R2-M04-Q2"],
|
|
"required_equipment_ids": ["EQ-052", "EQ-056"],
|
|
"first_order_changer_id": "EN-R2-01"
|
|
}
|
|
]
|
|
}
|