262 lines
11 KiB
JSON
262 lines
11 KiB
JSON
{
|
|
"schema": 1,
|
|
"contract_revision": "p10.1-siltwake-first-crossing-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"
|
|
},
|
|
"names_zh": {
|
|
"RG-02": "淤潮沼泽",
|
|
"CTR-R2-01": "淤潮初渡",
|
|
"EQ-041": "邻墙盾",
|
|
"EQ-042": "疏孔圆盾",
|
|
"EQ-043": "护盾虹吸环",
|
|
"EQ-044": "露阵军旗",
|
|
"EQ-045": "二击护板",
|
|
"EQ-046": "医者护栏",
|
|
"EQ-047": "易碎巨盾",
|
|
"EQ-048": "后向神盾",
|
|
"EN-R2-01": "芦钩兽",
|
|
"EN-R2-02": "泥灯水蛭",
|
|
"EN-R2-03": "淤泥拟形",
|
|
"EN-R2-04": "河岸龟",
|
|
"EN-R2-05": "沼泽笛手",
|
|
"EN-R2-06": "咸水灵火",
|
|
"EN-R2-07": "渡船蟹",
|
|
"BO-R2-01": "水闸背母兽",
|
|
"RO-R2-01": "芦岸探路",
|
|
"RO-R2-02": "泥灯水道",
|
|
"RO-R2-03": "断裂水闸"
|
|
},
|
|
"region": {
|
|
"id": "RG-02",
|
|
"name": "Siltwake Fens",
|
|
"pressure": "A disclosed tide-safe position shifts while pulls and healing denial destabilize the Company line.",
|
|
"progression": "The first crossing teaches stable order versus deliberate movement and ends at saved Market 2.",
|
|
"preview": "Read the current and next safe positions, then prepare for the enemy action that can move the line.",
|
|
"response_tags": ["stable_order", "deliberate_movement", "healing_timing"],
|
|
"tide": {
|
|
"position_count": 4,
|
|
"fixed_tick_ms": 100,
|
|
"shift_tick": 50,
|
|
"warning_ticks": 20,
|
|
"unsafe_status": "wet",
|
|
"unsafe_threshold": 3,
|
|
"threshold_result": "pull_toward_safe_index"
|
|
}
|
|
},
|
|
"contract": {
|
|
"id": "CTR-R2-01",
|
|
"name": "First Siltwake Crossing",
|
|
"region_id": "RG-02",
|
|
"market_count": 12,
|
|
"slice_end_market": 2,
|
|
"boss_id": "BO-R2-01",
|
|
"boss_executable": false,
|
|
"preview": "Complete one disclosed crossing and preserve its consequence at Market 2.",
|
|
"response_tags": ["first_crossing", "saved_market_2", "no_boss_execution"]
|
|
},
|
|
"equipment": [
|
|
{
|
|
"id": "EQ-041",
|
|
"name": "Neighborwall",
|
|
"fit": "guard; front",
|
|
"class": "B",
|
|
"effect": "Intercept the first direct hit aimed at the neighbor behind the wearer.",
|
|
"tradeoff": "The wearer becomes Exposed until its next basic action.",
|
|
"preview": "Protect the rear neighbor now, but draw pressure onto the front afterward.",
|
|
"response_tags": ["rear_protection", "stable_order", "intercept"]
|
|
},
|
|
{
|
|
"id": "EQ-042",
|
|
"name": "Porous Buckler",
|
|
"fit": "guard; any",
|
|
"class": "B",
|
|
"effect": "Split area damage taken by the wearer across both occupied neighbors.",
|
|
"tradeoff": "Each empty neighbor share returns to the wearer as Hindered.",
|
|
"preview": "Spread area pressure in a full line; avoid using it beside vacancies.",
|
|
"response_tags": ["area_split", "neighbor_spacing", "hindrance"]
|
|
},
|
|
{
|
|
"id": "EQ-043",
|
|
"name": "Guard Siphon Ring",
|
|
"fit": "charm; any",
|
|
"class": "B",
|
|
"effect": "Transfer half of expiring Guard to the occupied neighbor with the least Guard.",
|
|
"tradeoff": "The wearer cannot refresh Guard during that cadence.",
|
|
"preview": "Move expiring protection to the vulnerable neighbor, at the cost of the wearer's refresh.",
|
|
"response_tags": ["guard_transfer", "stable_order", "expiry_timing"]
|
|
},
|
|
{
|
|
"id": "EQ-044",
|
|
"name": "Exposed Standard",
|
|
"fit": "kit; front",
|
|
"class": "B",
|
|
"effect": "While Exposed, make enemies prefer the wearer and screen allies behind from projectiles.",
|
|
"tradeoff": "The projectile screen ends immediately when Exposed clears.",
|
|
"preview": "Hold enemy focus at the front to protect the rear, but only while Exposed remains.",
|
|
"response_tags": ["rear_protection", "threat_control", "projectile_screen"]
|
|
},
|
|
{
|
|
"id": "EQ-045",
|
|
"name": "Second Blow Plate",
|
|
"fit": "guard; any",
|
|
"class": "B",
|
|
"effect": "Ignore the rider effect of the second hit from the same enemy.",
|
|
"tradeoff": "Base damage still lands and changing the attacker resets the count.",
|
|
"preview": "Counter repeated setup from one attacker without preventing its damage.",
|
|
"response_tags": ["rider_block", "enemy_focus", "repeat_counter"]
|
|
},
|
|
{
|
|
"id": "EQ-046",
|
|
"name": "Mender's Guardrail",
|
|
"fit": "guard; support",
|
|
"class": "B",
|
|
"effect": "Effective healing gives the recipient protection from the next pull or push.",
|
|
"tradeoff": "Healing the wearer never grants this movement protection.",
|
|
"preview": "Time a real heal before displacement; self-healing cannot create the protection.",
|
|
"response_tags": ["healing_timing", "pull_resist", "displacement"]
|
|
},
|
|
{
|
|
"id": "EQ-047",
|
|
"name": "Brittle Pavise",
|
|
"fit": "guard; front",
|
|
"class": "B",
|
|
"effect": "Block every first-cadence projectile that crosses the wearer.",
|
|
"tradeoff": "The shield then shatters and Hinders the wearer.",
|
|
"preview": "Preserve the opening line against projectiles, then endure a slower front.",
|
|
"response_tags": ["projectile_block", "stable_order", "hindrance"]
|
|
},
|
|
{
|
|
"id": "EQ-048",
|
|
"name": "Rearward Aegis",
|
|
"fit": "guard; rear",
|
|
"class": "B",
|
|
"effect": "Protect the neighbor ahead from attacks originating behind the allied line.",
|
|
"tradeoff": "Normal front-origin attacks receive no protection.",
|
|
"preview": "Guard against a threat that crosses the line, without helping against the normal front.",
|
|
"response_tags": ["rear_origin_guard", "rear_protection", "line_crossing"]
|
|
}
|
|
],
|
|
"enemies": [
|
|
{
|
|
"id": "EN-R2-01",
|
|
"name": "Reed Hook",
|
|
"class": "ordinary",
|
|
"rule": "Pull the rearmost allied unit one position forward, then attack its new neighbor.",
|
|
"responses": "Resist the pull or place a durable unit at the rear before the cast.",
|
|
"preview": "The rear unit moves before the follow-up attack chooses its neighbor.",
|
|
"response_tags": ["pull_resist", "rear_durability", "stable_order"]
|
|
},
|
|
{
|
|
"id": "EN-R2-02",
|
|
"name": "Mudlamp Leech",
|
|
"class": "ordinary",
|
|
"rule": "Attach to the lowest-vitality ally in reach and convert incoming healing into Guard until damaged off.",
|
|
"responses": "Damage or cleanse the Leech before committing the heal.",
|
|
"preview": "Healing the attached ally strengthens the Leech instead of restoring vitality.",
|
|
"response_tags": ["focus_source", "healing_timing", "healing_denial"]
|
|
},
|
|
{
|
|
"id": "EN-R2-03",
|
|
"name": "Silt Mimic",
|
|
"class": "ordinary",
|
|
"rule": "Copy the last allied basic target rule and attack its mirrored legal candidate.",
|
|
"responses": "Feed it a harmless rule or reorder so the mirrored candidate is protected.",
|
|
"preview": "Its target rule changes after the last allied basic action.",
|
|
"response_tags": ["target_rule", "reorder", "guarded_candidate"]
|
|
},
|
|
{
|
|
"id": "EN-R2-04",
|
|
"name": "Bank Tortoise",
|
|
"class": "ordinary",
|
|
"rule": "Mark its indexed position; crossing that index by pull or push creates slowing mud.",
|
|
"responses": "Avoid the marked crossing or trigger it early and route around the known mud.",
|
|
"preview": "Displacement across the marked index leaves a hindering hazard.",
|
|
"response_tags": ["indexed_hazard", "deliberate_movement", "displacement"]
|
|
},
|
|
{
|
|
"id": "EN-R2-05",
|
|
"name": "Fen Piper",
|
|
"class": "ordinary",
|
|
"rule": "Complete a sound wind-up that moves the foremost enemy rearward before allied actions resolve.",
|
|
"responses": "Interrupt the sound or reserve actions with flexible retargeting.",
|
|
"preview": "Enemy order changes before reserved allied targets resolve.",
|
|
"response_tags": ["interrupt", "flexible_target", "enemy_reorder"]
|
|
},
|
|
{
|
|
"id": "EN-R2-06",
|
|
"name": "Brackwater Wisp",
|
|
"class": "ordinary",
|
|
"rule": "Apply a timed hindrance that becomes stronger if cleansed before its midpoint.",
|
|
"responses": "Protect through the first half, then cleanse after the disclosed midpoint.",
|
|
"preview": "An early cleanse strengthens the hindrance; the midpoint notch is safe.",
|
|
"response_tags": ["delay_cleanse", "timed_hindrance", "protection"]
|
|
},
|
|
{
|
|
"id": "EN-R2-07",
|
|
"name": "Ferry Crab",
|
|
"class": "ordinary",
|
|
"rule": "After being hit, side-step from the enemy front to rear and target that attacker through the line.",
|
|
"responses": "Finish it with line reach or alternate low-impact attackers behind Guard.",
|
|
"preview": "The first attacker remains its target after it moves to the rear.",
|
|
"response_tags": ["line_reach", "attacker_guard", "enemy_reorder"]
|
|
}
|
|
],
|
|
"boss": {
|
|
"id": "BO-R2-01",
|
|
"name": "Sluiceback Mother",
|
|
"region_id": "RG-02",
|
|
"executable": false,
|
|
"rule": "Carry a moving safe index and hatch pullers from eggs left at unsafe positions.",
|
|
"responses": "Follow the disclosed index or deliberately shift it when an area response is ready.",
|
|
"preview": "Future Contract target; not executable in the first-crossing slice.",
|
|
"response_tags": ["future_boss", "safe_index", "egg_pressure"]
|
|
},
|
|
"routes": [
|
|
{
|
|
"id": "RO-R2-01",
|
|
"name": "Reedbank Sounding",
|
|
"risk": 0,
|
|
"enemy_ids": ["EN-R2-01", "EN-R2-07"],
|
|
"wave_order": [["EN-R2-01"], ["EN-R2-07"]],
|
|
"reward_coin": 6,
|
|
"recovery_coin": 4,
|
|
"pressure": "The rear is pulled forward before a struck enemy changes sides.",
|
|
"failure_cause": "The pull exposed the next neighbor to the follow-up attack.",
|
|
"preview": "Protect the rear or preserve line reach after the pull.",
|
|
"response_tags": ["stable_order", "rear_protection", "line_reach"]
|
|
},
|
|
{
|
|
"id": "RO-R2-02",
|
|
"name": "Mudlamp Channel",
|
|
"risk": 1,
|
|
"enemy_ids": ["EN-R2-02", "EN-R2-06"],
|
|
"wave_order": [["EN-R2-06"], ["EN-R2-02", "EN-R2-06"]],
|
|
"reward_coin": 9,
|
|
"recovery_coin": 6,
|
|
"pressure": "Healing is converted while an early cleanse strengthens the timed hindrance.",
|
|
"failure_cause": "Recovery was committed before removing healing denial or reaching the cleanse midpoint.",
|
|
"preview": "Remove the Leech first and delay the cleanse until the visible notch.",
|
|
"response_tags": ["focus_source", "delay_cleanse", "healing_timing"]
|
|
},
|
|
{
|
|
"id": "RO-R2-03",
|
|
"name": "Broken Sluice",
|
|
"risk": 2,
|
|
"enemy_ids": ["EN-R2-01", "EN-R2-02", "EN-R2-04"],
|
|
"wave_order": [["EN-R2-04"], ["EN-R2-01", "EN-R2-02"]],
|
|
"reward_coin": 13,
|
|
"recovery_coin": 8,
|
|
"pressure": "A pull crosses the marked bank while healing denial competes with the tide shift.",
|
|
"failure_cause": "The Company crossed indexed mud and lost its healing window outside the safe position.",
|
|
"preview": "Move deliberately with the tide, resist the pull, or remove the Leech before healing.",
|
|
"response_tags": ["deliberate_movement", "pull_resist", "focus_source"]
|
|
}
|
|
]
|
|
}
|