From 7af690205c01040a696606ca6bdfe8a8a0cedb72 Mon Sep 17 00:00:00 2001 From: slaguru666 <111923774+slaguru666@users.noreply.github.com> Date: Wed, 5 Aug 2026 19:22:01 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20wild=20family=20complete=20=E2=80=94=20?= =?UTF-8?q?cave,=20mountain,=20river,=20lake,=20valley=20theme=20packs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Five wild-kernel themes, each 4 motifs: cave dark · deep · echo · keeping (cave geometry) mountain ascent · cold · pass · weight (cave) river crossing · current · course · drowned (fen) lake stillness · mirror · sunken · rising (fen) valley ridges · shelter · bottom · weather (forest) Two rendering fixes surfaced by the new claimants, both in skeleton.mjs: - `{conscript}'s` rendered "the climbers's"; conscripts are plural noun phrases, so fill() now collapses s's to s'. - claimants carrying their own article rendered "The The Grey"; named() only prefixes when one is absent. All 16 themes validate; 39 tests pass. Module → 0.6.0. Co-Authored-By: Claude Opus 5 --- core/content/cave.json | 1173 +++++++++++++++++ core/content/index.json | 30 + core/content/lake.json | 1164 ++++++++++++++++ core/content/mountain.json | 1165 ++++++++++++++++ core/content/river.json | 1164 ++++++++++++++++ core/content/valley.json | 1173 +++++++++++++++++ core/skeleton.mjs | 12 +- foundry-module/module.json | 2 +- foundry-module/module/core/content/cave.json | 1173 +++++++++++++++++ foundry-module/module/core/content/index.json | 30 + foundry-module/module/core/content/lake.json | 1164 ++++++++++++++++ .../module/core/content/mountain.json | 1165 ++++++++++++++++ foundry-module/module/core/content/river.json | 1164 ++++++++++++++++ .../module/core/content/valley.json | 1173 +++++++++++++++++ foundry-module/module/core/skeleton.mjs | 12 +- 15 files changed, 11757 insertions(+), 7 deletions(-) create mode 100644 core/content/cave.json create mode 100644 core/content/lake.json create mode 100644 core/content/mountain.json create mode 100644 core/content/river.json create mode 100644 core/content/valley.json create mode 100644 foundry-module/module/core/content/cave.json create mode 100644 foundry-module/module/core/content/lake.json create mode 100644 foundry-module/module/core/content/mountain.json create mode 100644 foundry-module/module/core/content/river.json create mode 100644 foundry-module/module/core/content/valley.json diff --git a/core/content/cave.json b/core/content/cave.json new file mode 100644 index 0000000..a15f9da --- /dev/null +++ b/core/content/cave.json @@ -0,0 +1,1173 @@ +{ + "id": "cave", + "label": "Cave", + "forgeStageType": "cave", + "schema": 1, + "placeNameStyle": "claimant", + "_model": "Wild kernel underground. The appetite belongs to the hole itself — it wants to be gone into, gone down, spoken to, and to keep whatever comes. Claimants are the cave's own names for itself, and the accommodation is what it did to whoever came in.", + "facetProgression": { + "approach": "institution", + "complication": "ritual", + "turn": "demand", + "descent": "wound", + "threshold": "anchor", + "ending": "demand" + }, + "claimants": [ + "Deep Dark", + "Stone Throat", + "Thing in the Sump", + "First Hollow", + "Lightless", + "Old Mouth", + "Long Swallow" + ], + "appetites": [ + { + "id": "unlit", + "want": "never to have a light brought into it", + "lack": "lit", + "purpose": "it would be dark all the way down", + "motif": "dark", + "prize": "flame", + "conscript": "the lamp-carriers", + "asks": "\"Why did you bring that in here?\"", + "appeasement": { + "move": "put out a light of your own, deliberately, and stand in it", + "attribute": "Poise", + "successes": 2, + "why": "the dark was let be", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "deepened", + "want": "that everything which comes in should go further down", + "lack": "turned back", + "purpose": "nothing would ever stop and go back up", + "motif": "deep", + "prize": "plumb", + "conscript": "the turners-back", + "asks": "\"Is that as far as you go?\"", + "appeasement": { + "move": "go down one level further than you meant to", + "attribute": "Brawn", + "successes": 2, + "why": "something went deeper", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "answered", + "want": "that everything said in it should be said back", + "lack": "unanswered", + "purpose": "nothing would ever go unheard", + "motif": "echo", + "prize": "voice", + "conscript": "the silent", + "asks": "\"Say that again?\"", + "appeasement": { + "move": "say something aloud into the dark and wait for it to come back", + "attribute": "Poise", + "successes": 2, + "why": "it was answered", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "keeping", + "want": "that nothing which comes in should ever leave", + "lack": "emptied", + "purpose": "it would still have all of it", + "motif": "keeping", + "prize": "stone", + "conscript": "the ones who got out", + "asks": "\"You're not taking that out, are you?\"", + "appeasement": { + "move": "leave something of your own down here on purpose", + "attribute": "Wits", + "successes": 2, + "why": "it kept something", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + } + ], + "accommodations": [ + { + "id": "swallowed", + "text": "took {conscript} in and closed behind them", + "cruelty": 3, + "fits": [ + "keeping", + "deepened", + "unlit" + ] + }, + { + "id": "unlit", + "text": "let {conscript}'s lights go out one by one", + "cruelty": 3, + "fits": [ + "unlit", + "deepened" + ] + }, + { + "id": "turned", + "text": "turned {conscript} around so gently they never noticed", + "cruelty": 2, + "fits": [ + "deepened", + "unlit", + "keeping" + ] + }, + { + "id": "grown", + "text": "grew over {conscript} where they sat down to rest", + "cruelty": 2, + "fits": [ + "keeping", + "answered" + ] + }, + { + "id": "answered", + "text": "answered {conscript} in their own voices until they followed", + "cruelty": 3, + "fits": [ + "answered", + "unlit", + "deepened" + ] + }, + { + "id": "kept", + "text": "kept {conscript} at the mouth, facing in, so the next lot would come", + "cruelty": 2, + "fits": [ + "keeping", + "answered" + ] + } + ], + "prizes": { + "flame": { + "label": "the last flame that went out down here", + "function": "the only light that ever reached the bottom" + }, + "plumb": { + "label": "the line that was let down and came back up", + "function": "the only thing here that ever measured the depth" + }, + "voice": { + "label": "the one word the cave says in somebody else's voice", + "function": "the only thing down here that was ever answered honestly" + }, + "stone": { + "label": "the stone that grew around something and let it go", + "function": "the only thing the cave ever gave back" + } + }, + "placeNames": { + "first": [ + "The Hole of the", + "Under the", + "The Deep of the", + "The Mouth of the", + "The Swallow of the" + ] + }, + "areaNames": { + "approach": [ + "The Mouth", + "The Entrance Chamber", + "The Daylight Hole", + "The Rift", + "The Spoil Slope" + ], + "complication": [ + "The Crawl", + "The Boulder Choke", + "The Streamway", + "The Flowstone Gallery", + "The Traverse" + ], + "turn": [ + "The Great Chamber", + "The Aven", + "The Cathedral", + "The Junction", + "The Bone Floor" + ], + "descent": [ + "The Pitch", + "The Sump", + "The Muddy Way", + "The Squeeze", + "The Dead Passage" + ], + "threshold": [ + "The Last Chamber", + "The Terminal Sump", + "The Deep Rift", + "The Curtain", + "The Airbell" + ], + "ending": [ + "The Bottom", + "Where the Line Ended", + "The Lightless Room", + "Under the Stone" + ] + }, + "factions": [ + { + "id": "kept", + "name": "the Kept", + "kind": "undead", + "essence": "came in and never got out, and have stopped minding", + "handledBy": "courtesy" + }, + { + "id": "miners", + "name": "the miners", + "kind": "living", + "essence": "came down for the workings and cannot find the way up", + "handledBy": "trade" + }, + { + "id": "dark", + "name": "what the dark does when it is not watched", + "kind": "beast", + "essence": "has never once been seen whole", + "handledBy": "light" + }, + { + "id": "deep", + "name": "what came up from the sump", + "kind": "beast", + "essence": "lives below the water and does not need to breathe", + "handledBy": "force" + } + ], + "triggerGlossary": { + "announced": "came in at the mouth in daylight, with a light burning", + "seenTwice": "passed the same formation twice, going different ways", + "loud": "a raised voice underground, which the cave repeats", + "lingering": "stayed still long enough for the cave to grow a little over you", + "disturbed": "broke a formation, moved a cairn, or let a stone go down a pitch" + }, + "rosters": { + "skirmish": { + "line": "a Bat Swarm and 2 Giant Rats in the entrance chamber", + "foes": [ + { + "n": 1, + "name": "Bat Swarm", + "atk": 3, + "def": 4, + "grit": 4, + "nerve": 3, + "note": "douses open flames on a hit" + }, + { + "n": 2, + "name": "Giant Rat", + "atk": 2, + "def": 3, + "grit": 2, + "nerve": 2, + "note": "go for the light-carrier" + } + ], + "harmedBy": "anything; area attacks and fire do best against the swarm", + "avoid": "shutter your lights and they lose interest entirely" + }, + "fight": { + "line": "1 Ogre in the low passage", + "foes": [ + { + "n": 1, + "name": "Ogre", + "atk": 5, + "def": 3, + "grit": 12, + "nerve": 3, + "note": "cannot follow into a crawl or a squeeze" + } + ], + "harmedBy": "anything", + "avoid": "it cannot fit where you can — the crawl is the answer, and say so" + }, + "battle": { + "line": "1 Troll out of the sump and a Bat Swarm", + "foes": [ + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES 2 Grit a round unless the wound was burnt" + }, + { + "n": 1, + "name": "Bat Swarm", + "atk": 3, + "def": 4, + "grit": 4, + "nerve": 3, + "note": "douses open flames on a hit" + } + ], + "harmedBy": "anything, but the Troll only stays down if fire touches it — say so before initiative, and note the swarm is putting your fires out", + "avoid": "it will not leave the water; stay off the streamway and it stays in" + }, + "nightmare": { + "line": "1 Troll, 1 Ogre and 3 Ghouls of the Kept", + "foes": [ + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES unless burnt" + }, + { + "n": 1, + "name": "Ogre", + "atk": 5, + "def": 3, + "grit": 12, + "nerve": 3, + "note": "blocks the passage behind you" + }, + { + "n": 3, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze on a hit" + } + ], + "harmedBy": "anything; fire for the Troll", + "avoid": "do not run this without an appeasement route open and a way out at your back" + } + }, + "motifs": { + "dark": { + "danger": "the dark", + "dangerLine": "the cave has been dark for a very long time and it has not enjoyed the interruption", + "trigger": "announced", + "facets": { + "institution": [ + "a dark so complete that your eyes invent things in it", + "passages that have never had light in them at any point", + "a mouth where the daylight stops in a hard line" + ], + "ritual": [ + "a candle set in a niche at every junction and lit going in", + "lights counted at the mouth and counted again coming out", + "a lamp left burning at the bottom for whoever is still down" + ], + "demand": [ + "a niche with a candle in it, unlit, and the wick trimmed", + "a lamp guttering with the oil not yet gone", + "a hard line of daylight that stops exactly where you are standing" + ], + "wound": [ + "candles in every niche, all of them burnt out together", + "a lamp smashed against the wall from the inside", + "a line of spent matches going one way down a passage" + ], + "anchor": [ + "the last flame that went out down here", + "a lamp that has never needed filling", + "a candle that will light in any air" + ] + }, + "features": [ + "an unlit candle in a niche", + "a lamp guttering with oil left", + "spent matches in a line", + "a smashed lamp against a wall", + "burnt-out candles in every niche", + "daylight stopping in a hard line" + ], + "decisions": [ + { + "cue": "a niche with a candle in it, unlit, with the wick trimmed ready", + "cost": "lighting it is a courtesy or an intrusion, depending", + "resolve": { + "roll": "Poise 2", + "success": "you light it and the cave lets you pass this junction unmolested, both ways", + "failure": "you light it and something further in sees exactly where you are: +1 Bane", + "orElse": "leave the niche dark; the junction will not stay in the same place behind you" + } + }, + { + "cue": "a lamp guttering on the floor with oil still in the reservoir", + "cost": "it is going out for a reason, not for want of fuel", + "resolve": { + "roll": "Wits 2", + "success": "you work out what is putting it out and can keep your own lights alive down here", + "failure": "you refill it and it goes out anyway, and takes your lights with it", + "orElse": "leave it; your own lights start to gutter within the Turn" + } + }, + { + "cue": "a line of spent matches going one way down a passage", + "cost": "somebody was striking one at a time and losing them", + "resolve": { + "roll": "Wits 2", + "success": "you follow the matches and find where they ran out, and what they had reached", + "failure": "you follow them the wrong way and come out somewhere you have already been", + "orElse": "ignore them; you have no line to follow through the middle passages" + } + }, + { + "cue": "all the candles in every niche burnt out together, at the same length", + "cost": "they went out at once, which takes doing", + "resolve": { + "roll": "Wits 2", + "success": "you find what put them out and can force it back for one scene with fire", + "failure": "you relight the run and it happens again, to yours: roll the clock", + "orElse": "leave them; the dark here is not ordinary and you will not know why" + } + }, + { + "cue": "a hard line of daylight stopping exactly where you stand", + "cost": "crossing it is the last unambiguous decision you will make", + "resolve": { + "roll": "Poise 1", + "success": "you mark the line and can find your way back to it from anywhere", + "failure": "you cross without marking it and the mouth is not where you left it", + "orElse": "turn back at the line; the delve does not happen, and the cave keeps everything" + } + }, + { + "cue": "a lamp smashed against the wall from the inside", + "cost": "somebody down here chose the dark", + "resolve": { + "roll": "Wits 2", + "success": "you find who broke it and why, and the reason is worth knowing", + "failure": "you leave your own light where theirs was and something takes it too", + "orElse": "leave the glass; you never learn what makes a person put their own light out" + } + } + ], + "situations": [ + { + "occupant": "one of the Kept", + "doing": "sitting in a niche with an unlit candle in its hands", + "onArrival": "it holds the candle out toward you without looking up", + "because": "the candle is lit going in and it never went in", + "offer": "light the candle for it and it will walk you to any junction here" + }, + { + "occupant": "a living miner", + "doing": "striking matches one at a time in a passage", + "onArrival": "he asks how many you have left", + "because": "he has been going through them since his lamp failed", + "offer": "give him a light and he will show you the way the workings run" + }, + { + "occupant": "the dark", + "doing": "standing in a chamber where your lights do not reach the walls", + "onArrival": "your flames shorten as you come in and do not go out", + "because": "the cave has never had light this far in", + "offer": "put your lights out on purpose and it will let you through anything" + }, + { + "occupant": "two of the Kept", + "doing": "carrying a lamp between them that is not burning", + "onArrival": "they stop and offer it to you, handle first", + "because": "the lamp goes to the bottom for whoever is still down", + "offer": "take the lamp down and everything here treats you as one of the party" + }, + { + "occupant": "a candle", + "doing": "burning in a niche in a passage nobody has entered", + "onArrival": "the flame leans toward the way you came in", + "because": "somebody lit it going in and never came back past it", + "offer": "take the candle and the cave will not put your lights out" + }, + { + "occupant": "the mouth", + "doing": "showing as a hard line of daylight a long way behind you", + "onArrival": "the line is narrower than when you passed it", + "because": "the cave keeps what comes in and the mouth is how it does that", + "offer": "go back and touch the line and it stops narrowing" + } + ], + "temptations": [ + { + "id": "flame", + "cue": "a stub of the last flame", + "benefit": "once, have light where light does not work", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the cave knows exactly where the flame is at all times", + "acceptanceCost": { + "vice": "Pride" + } + }, + { + "id": "candle", + "cue": "a candle that lights in any air", + "benefit": "your lights cannot be put out by the dark", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the dark attends to you personally instead" + }, + { + "id": "lamp", + "cue": "a lamp that has never needed filling", + "benefit": "light for as long as you want it", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it was somebody's and they are still using it" + }, + { + "id": "matches", + "cue": "a handful of dry matches", + "benefit": "once, buy yourself one scene of light", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the count is finite and you will know when it runs low" + }, + { + "id": "line", + "cue": "a mark cut at the daylight line", + "benefit": "once, find your way back to the mouth", + "useCost": { + "bane": 1 + }, + "standingDrawback": "whatever is between you and it also knows the way now" + } + ] + }, + "deep": { + "danger": "the pitch", + "dangerLine": "the cave goes down further than anybody has been and it would like you to see", + "trigger": "disturbed", + "facets": { + "institution": [ + "a system that goes down in steps, each one further than the last", + "pitches rigged with somebody else's rope, still hanging", + "a survey that stops with the word CONTINUES" + ], + "ritual": [ + "a stone dropped at every pitch head and counted down", + "the line let out and knotted at each ten fathoms", + "a cairn built at the deepest point reached" + ], + "demand": [ + "a pitch head with a rope hanging down it and no knot at the bottom", + "a stone dropped that has not landed yet", + "a cairn half built at the lip of something" + ], + "wound": [ + "a rope cut at the pitch head and the rest of it down there", + "cairns knocked flat all the way down", + "a survey ending mid-word" + ], + "anchor": [ + "the line that was let down and came back up", + "a survey with a bottom marked on it", + "a rope that reaches" + ] + }, + "features": [ + "a rope hanging down a pitch", + "a half-built cairn at a lip", + "a survey ending mid-word", + "a cut rope end at a pitch head", + "knots at every ten fathoms", + "a stone that has not landed" + ], + "decisions": [ + { + "cue": "a pitch head with a rope hanging down it and no knot at the bottom", + "cost": "the rope may not reach and there is no way to know from up here", + "resolve": { + "roll": "Brawn 2", + "success": "you rig it properly off your own gear and get down and back with the rope still there", + "failure": "you go down on it as found and it ends in air: you are down, and it is not coming back up", + "orElse": "do not descend; the way on is through the sump instead, and the sump is worse" + } + }, + { + "cue": "a stone dropped at a pitch head that has not landed yet", + "cost": "the count is still going", + "resolve": { + "roll": "Wits 2", + "success": "you count it out and know exactly what is below, and can plan for it", + "failure": "you stop counting and go down on an assumption", + "orElse": "throw nothing; you descend without knowing what is under you" + } + }, + { + "cue": "a cairn half built at the lip of something", + "cost": "somebody was marking their deepest point and stopped", + "resolve": { + "roll": "Wits 2", + "success": "you finish the cairn and the cave accepts the mark — everything below it is passable", + "failure": "you knock it and the cave stops acknowledging any depth you reach", + "orElse": "leave the cairn; nothing down here will treat you as having got anywhere" + } + }, + { + "cue": "a survey ending mid-word with the word CONTINUES", + "cost": "whoever wrote it went on and did not come back to finish", + "resolve": { + "roll": "Wits 2", + "success": "you read the survey and know the shape of everything below, including the way out", + "failure": "you take the survey as complete and trust a passage that closes", + "orElse": "leave it; you go down blind from here on" + } + }, + { + "cue": "a rope cut clean at the pitch head with the rest of it below", + "cost": "somebody cut it from up here, on purpose", + "resolve": { + "roll": "Wits 2", + "success": "you find who was cut off and why, and what they became down there", + "failure": "you splice on and go down after it, and it is cut again behind you", + "orElse": "leave the rope; whoever is down there stays down there" + } + }, + { + "cue": "a line knotted at every ten fathoms, coiled and dry", + "cost": "the knots say how far it has been", + "resolve": { + "roll": "Brawn 2", + "success": "you use the line and can go down and come back up as often as you need", + "failure": "you let the whole line out and the end goes on falling: roll the clock", + "orElse": "leave the line; every descent from here is one-way" + } + } + ], + "situations": [ + { + "occupant": "a caver of the Kept", + "doing": "standing at a pitch head with a rope in its hands", + "onArrival": "it offers you the end and points down", + "because": "the pitch was never bottomed and it will not go alone", + "offer": "take the rope and it will hold it for you, indefinitely" + }, + { + "occupant": "the pitch", + "doing": "dropping away into air at your feet with a rope hanging in it", + "onArrival": "a stone you did not throw is still falling", + "because": "it has never been bottomed and it wants to be", + "offer": "go down and the cave will let you back up, once" + }, + { + "occupant": "two living miners", + "doing": "paying a line out over a lip and not stopping", + "onArrival": "they ask how deep you think it goes", + "because": "they have been letting it out since their lamps were full", + "offer": "tell them a depth and they will haul, and bring up what is on the end" + }, + { + "occupant": "one of the Kept", + "doing": "building a cairn at a lip, stone by stone", + "onArrival": "it sets a stone and looks at you to approve it", + "because": "it was marking the deepest point reached and never reached further", + "offer": "add a stone and everything below this point lets you through" + }, + { + "occupant": "a survey", + "doing": "hanging pinned to a boulder with the last word unfinished", + "onArrival": "the ink of the last word is still wet", + "because": "whoever wrote it went on and the page waits", + "offer": "finish the word and the cave shows you what is beyond it" + }, + { + "occupant": "the Long Swallow", + "doing": "filling a chamber whose floor you cannot see", + "onArrival": "the air comes up warm and smells of somewhere else", + "because": "everything that comes in goes down and it is still waiting for you", + "offer": "go down willingly and it will not close behind you" + } + ], + "temptations": [ + { + "id": "plumb", + "cue": "the line that came back up", + "benefit": "once, know exactly what is below you", + "useCost": { + "bane": 1 + }, + "standingDrawback": "what is below you knows the same about you" + }, + { + "id": "rope", + "cue": "a rope that reaches", + "benefit": "once, get down and back up anything", + "useCost": { + "bane": 2 + }, + "standingDrawback": "it reaches because something at the bottom is holding it", + "acceptanceCost": { + "vice": "Sloth" + } + }, + { + "id": "survey", + "cue": "the survey with a bottom marked", + "benefit": "know the shape of the system below", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the marked bottom is not the bottom" + }, + { + "id": "cairnstone", + "cue": "a stone off the deepest cairn", + "benefit": "once, be treated as having got there", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the cave expects you to go further next time" + }, + { + "id": "knots", + "cue": "a knotted measuring line", + "benefit": "measure any drop before you take it", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you will measure one you cannot avoid" + } + ] + }, + "echo": { + "danger": "the answer", + "dangerLine": "everything said down here comes back, and lately it has been coming back changed", + "trigger": "loud", + "facets": { + "institution": [ + "chambers shaped so that a word spoken at one end arrives whole at the other", + "a system that carries a voice further than a light", + "passages that answer in a different order than you spoke" + ], + "ritual": [ + "a name called at every junction and waited for", + "the same phrase said at the entrance by everyone going in", + "a whistle used instead of shouting, three notes, always" + ], + "demand": [ + "a chamber that has just stopped repeating something", + "a whistle answered from further in, correctly", + "your own voice arriving from a direction you have not gone" + ], + "wound": [ + "a chamber that repeats a scream at the same interval", + "voices calling names of people who are not down here", + "an answer that comes before the call" + ], + "anchor": [ + "the one word the cave says in somebody else's voice", + "a chamber that gives a true echo", + "a whistle that only carries to the living" + ] + }, + "features": [ + "a chamber still repeating something", + "a whistle answered from ahead", + "your own voice from the wrong direction", + "a name called at a junction", + "an answer arriving before the call", + "three notes with no whistler" + ], + "decisions": [ + { + "cue": "a chamber that has just stopped repeating something you did not say", + "cost": "answering it starts a conversation", + "resolve": { + "roll": "Poise 2", + "success": "you answer carefully and the cave tells you, truthfully, where somebody is", + "failure": "you answer freely and it has your voice now, and uses it: +1 Bane", + "orElse": "say nothing; whatever was calling calls somewhere else, to somebody else" + } + }, + { + "cue": "a whistle of three notes answered correctly from further in", + "cost": "the answer means somebody living, or something that learned", + "resolve": { + "roll": "Wits 2", + "success": "you test it with a fourth note and know which, before you meet it", + "failure": "you whistle back and go toward it, and it is the other one", + "orElse": "stay silent; you never establish whether anybody else is down here" + } + }, + { + "cue": "your own voice arriving from a direction you have not gone", + "cost": "the cave has kept it and is using it", + "resolve": { + "roll": "Poise 2", + "success": "you recognise it as yours and are not drawn — and you learn which passage it came from", + "failure": "one of you follows it, briefly, and is separated", + "orElse": "block your ears; you also cannot hear each other, for a Turn" + } + }, + { + "cue": "a name being called at a junction, over and over, for somebody not down here", + "cost": "the caller does not know they are alone", + "resolve": { + "roll": "Poise 2", + "success": "you tell it the truth gently and it stops, and thanks you, and helps", + "failure": "you answer to the name and it takes you for them: +1 Bane", + "orElse": "walk past; the calling follows you at exactly the same distance" + } + }, + { + "cue": "an answer that arrives before the call it answers", + "cost": "the cave is ahead of you in the conversation", + "resolve": { + "roll": "Wits 2", + "success": "you work out what you are about to say and choose not to say it, which unnerves it", + "failure": "you say the thing anyway and confirm that it knows you", + "orElse": "ignore it; every route from here is chosen for you, quietly" + } + }, + { + "cue": "a chamber repeating a scream at exactly the same interval", + "cost": "the interval is the useful part", + "resolve": { + "roll": "Wits 2", + "success": "you time it and use the gap to cross, or to be heard, exactly once", + "failure": "you cross on the scream and everything down here turns toward the chamber", + "orElse": "go the long way, costing a Turn, and hear it the whole way" + } + } + ], + "situations": [ + { + "occupant": "a voice", + "doing": "calling a name at a junction with nobody there to own it", + "onArrival": "it stops when you arrive and starts again when you move", + "because": "somebody called and was never answered", + "offer": "answer to the name and every passage here will carry your voice truly" + }, + { + "occupant": "one of the Kept", + "doing": "whistling three notes and waiting for the reply", + "onArrival": "it whistles again when it sees you, and waits", + "because": "the reply comes from further in and it will not go alone", + "offer": "whistle the reply and it will lead you to whatever has been answering" + }, + { + "occupant": "a living surveyor", + "doing": "shouting measurements to somebody who is not writing them down", + "onArrival": "she asks you to repeat the last one back", + "because": "her partner stopped answering a long time ago", + "offer": "repeat it back and she will give you the survey she has made" + }, + { + "occupant": "the Stone Throat", + "doing": "filling a chamber with your own voice from a passage you have not entered", + "onArrival": "the voice says something you have not said yet", + "because": "the cave keeps voices and it has kept yours", + "offer": "let it finish and it will tell you one true thing in your own words" + }, + { + "occupant": "two of the Kept", + "doing": "standing apart in a chamber and speaking in turn", + "onArrival": "they leave a gap in the exchange exactly the length of a sentence", + "because": "the third of them stopped speaking and they carried on", + "offer": "say anything into the gap and both will do whatever you ask" + }, + { + "occupant": "an echo", + "doing": "repeating a scream at the same interval in an empty chamber", + "onArrival": "the interval shortens slightly while you listen", + "because": "it happened here and the chamber will not let it go", + "offer": "name what happened and the chamber goes quiet, and stays quiet" + } + ], + "temptations": [ + { + "id": "voice", + "cue": "the word the cave says in another voice", + "benefit": "once, be believed by anything that knew that person", + "useCost": { + "bane": 2 + }, + "standingDrawback": "you say it in their voice and something of them comes with it", + "acceptanceCost": { + "vice": "Envy" + } + }, + { + "id": "whistle", + "cue": "a caver's whistle", + "benefit": "once, be heard by everything living down here", + "useCost": { + "bane": 1 + }, + "standingDrawback": "and by everything that is not" + }, + { + "id": "chamber", + "cue": "a knack for the true-echo chamber", + "benefit": "once, ask the cave a question and get an answer", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it asks one back, and expects it answered" + }, + { + "id": "name", + "cue": "a name called and never answered", + "benefit": "once, make something come to you", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it comes expecting the person whose name it is" + }, + { + "id": "silence", + "cue": "a stretch of passage that does not echo", + "benefit": "once, move or speak without the cave hearing", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you cannot hear it coming either" + } + ] + }, + "keeping": { + "danger": "what it kept", + "dangerLine": "the cave has kept everything that ever came in, and it is still adding", + "trigger": "lingering", + "facets": { + "institution": [ + "formations grown over things that were not stone to begin with", + "a floor of bones with the newest ones on top", + "a system where nothing rots and nothing goes away" + ], + "ritual": [ + "a thing left at the mouth by everyone going in", + "stone laid down a hair a year over whatever is under it", + "the dead left where they fall and grown into the floor" + ], + "demand": [ + "a formation with a shape under it you can nearly make out", + "a shelf of offerings at the mouth with a gap in the row", + "a hand of stone reaching out of a wall, worn smooth" + ], + "wound": [ + "formations broken off and carried out", + "a bone floor dug through in one place, recently", + "the mouth shelf swept clean and the offerings gone" + ], + "anchor": [ + "the stone that grew around something and let it go", + "a formation with a whole thing visible inside it", + "the offering shelf, complete" + ] + }, + "features": [ + "a formation with a shape inside it", + "a gap in a row of offerings", + "a bone floor dug through", + "a stone hand worn smooth", + "broken flowstone carried out", + "a shelf swept clean" + ], + "decisions": [ + { + "cue": "a shelf of offerings at the mouth with a gap in the row", + "cost": "filling the gap pays your way in", + "resolve": { + "roll": "Wits 2", + "success": "you leave something that genuinely costs you and the cave lets you back out", + "failure": "you leave something worthless and it is noticed and remembered: +1 Bane", + "orElse": "leave the gap; the mouth will be smaller on the way out than the way in" + } + }, + { + "cue": "a formation with a shape under it you can nearly make out", + "cost": "breaking it open frees what is inside, or ends it", + "resolve": { + "roll": "Brawn 2", + "success": "you open it carefully and what is inside is grateful, and knows the way", + "failure": "you break it and take the piece, and the cave starts growing over you", + "orElse": "leave it grown over; whatever is in there stays in there, and it was watching" + } + }, + { + "cue": "a bone floor dug through in one place, recently", + "cost": "somebody was looking for something in the older layers", + "resolve": { + "roll": "Wits 2", + "success": "you find what they dug for and get it before they come back", + "failure": "you dig further and the floor gives out into what is under it", + "orElse": "leave the hole; you never learn what is worth digging a bone floor for" + } + }, + { + "cue": "a hand of stone reaching out of a wall, worn smooth by touching", + "cost": "people have been shaking it for a long time", + "resolve": { + "roll": "Poise 2", + "success": "you take the hand properly and the Kept accept you as one who came in politely", + "failure": "you take it and it does not let go until you leave something behind", + "orElse": "do not touch it; the Kept treat you as having walked past them" + } + }, + { + "cue": "broken flowstone stacked ready to be carried out", + "cost": "somebody is taking the cave away in pieces", + "resolve": { + "roll": "Wits 2", + "success": "you find the carriers and can trade — they know every way out because they use them", + "failure": "you carry a piece yourself and the cave will not let you out with it", + "orElse": "leave the stack; the carriers stay hidden and unhelpful" + } + }, + { + "cue": "a stone that has grown around something and split, leaving it loose", + "cost": "the cave gave one thing back, once", + "resolve": { + "roll": "Wits 2", + "success": "you understand what it took to make that happen and can do it again at the ending", + "failure": "you pocket it and the cave takes the equivalent from you: +1 Bane", + "orElse": "leave it; there is no precedent for the cave giving anything up" + } + } + ], + "situations": [ + { + "occupant": "a stone hand", + "doing": "reaching out of a wall at the height of a handshake", + "onArrival": "the fingers are warm and worn smooth", + "because": "everyone who came in shook it and one of them did not let go", + "offer": "take the hand and the Kept will treat you as expected and welcome" + }, + { + "occupant": "one of the Kept", + "doing": "sitting half grown into a flowstone curtain, still able to turn its head", + "onArrival": "it asks how long it has been", + "because": "it sat down to rest and the cave got on with it", + "offer": "give it a number and it will tell you where everything down here was left" + }, + { + "occupant": "two living carriers", + "doing": "stacking broken formations by the passage mouth", + "onArrival": "they ask whether you are here to help carry", + "because": "they have been taking the cave out a sack at a time", + "offer": "carry a sack and they will show you every way out they use" + }, + { + "occupant": "the offering shelf", + "doing": "standing at the mouth with a gap in the row", + "onArrival": "the objects on it are dusted and the gap is not", + "because": "everybody leaves something and somebody took theirs back", + "offer": "fill the gap and the cave lets you out again afterwards" + }, + { + "occupant": "a formation", + "doing": "standing in a chamber with a shape clearly inside it", + "onArrival": "the shape is facing the way you came in", + "because": "the cave keeps things and this is how", + "offer": "speak to it and it answers, and it knows what the cave wants" + }, + { + "occupant": "the bone floor", + "doing": "lying dug through in one place with the spoil beside it", + "onArrival": "the newest bones are on top and one of them is clean", + "because": "the dead are left where they fall and grown over", + "offer": "put the clean bone back and the floor lets you cross anywhere" + } + ], + "temptations": [ + { + "id": "stone", + "cue": "the stone that let something go", + "benefit": "once, get a thing out that the cave has kept", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the cave takes the nearest equivalent, and chooses", + "acceptanceCost": { + "vice": "Greed" + } + }, + { + "id": "offering", + "cue": "something off the mouth shelf", + "benefit": "once, be owed a way out", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you took somebody's passage out, and they are still in here" + }, + { + "id": "bone", + "cue": "a clean bone off the floor", + "benefit": "once, be recognised by the Kept", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they recognise you as one of them" + }, + { + "id": "flowstone", + "cue": "a piece of broken formation", + "benefit": "once, have exactly the thing the cave grew over", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the cave grows over you a little each time you rest" + }, + { + "id": "hand", + "cue": "a cast of the stone hand", + "benefit": "once, be greeted rather than swallowed", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the greeting is binding both ways" + } + ] + } + } +} \ No newline at end of file diff --git a/core/content/index.json b/core/content/index.json index 42f28da..b19616b 100644 --- a/core/content/index.json +++ b/core/content/index.json @@ -13,6 +13,12 @@ "geometry": "barrow", "motifs": 4 }, + { + "id": "cave", + "label": "Cave", + "geometry": "cave", + "motifs": 4 + }, { "id": "church", "label": "Church", @@ -31,12 +37,24 @@ "geometry": "forest", "motifs": 4 }, + { + "id": "lake", + "label": "Lake", + "geometry": "fen", + "motifs": 4 + }, { "id": "market", "label": "Market", "geometry": "village", "motifs": 4 }, + { + "id": "mountain", + "label": "Mountain", + "geometry": "cave", + "motifs": 4 + }, { "id": "palace", "label": "Palace", @@ -49,6 +67,12 @@ "geometry": "village", "motifs": 4 }, + { + "id": "river", + "label": "River", + "geometry": "fen", + "motifs": 4 + }, { "id": "temple", "label": "Temple", @@ -61,6 +85,12 @@ "geometry": "village", "motifs": 4 }, + { + "id": "valley", + "label": "Valley", + "geometry": "forest", + "motifs": 4 + }, { "id": "village", "label": "Village", diff --git a/core/content/lake.json b/core/content/lake.json new file mode 100644 index 0000000..a79a915 --- /dev/null +++ b/core/content/lake.json @@ -0,0 +1,1164 @@ +{ + "id": "lake", + "label": "Lake", + "forgeStageType": "fen", + "schema": 1, + "placeNameStyle": "claimant", + "_model": "Wild kernel in still water. Where the river wants movement, the lake wants none: to be left flat, to be looked into, to keep what is under it exactly as it was, and to be a little bigger every year. Claimants are the water's own names for itself.", + "facetProgression": { + "approach": "institution", + "complication": "ritual", + "turn": "demand", + "descent": "wound", + "threshold": "anchor", + "ending": "demand" + }, + "claimants": [ + "The Still", + "Mother of the Deep", + "Thing in the Middle", + "First Water", + "Under-Lady", + "The Wide Eye", + "The Level" + ], + "appetites": [ + { + "id": "undisturbed", + "want": "never to be broken", + "lack": "broken", + "purpose": "the surface would never move again", + "motif": "stillness", + "prize": "stone", + "conscript": "the swimmers", + "asks": "\"Was that you?\"", + "appeasement": { + "move": "stand at the edge and put nothing at all into the water", + "attribute": "Poise", + "successes": 2, + "why": "it was left flat", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "lookedinto", + "want": "that everything should stop and look into it", + "lack": "looked past", + "purpose": "nobody would ever walk by", + "motif": "mirror", + "prize": "glass", + "conscript": "the passers-by", + "asks": "\"Don't you want to see?\"", + "appeasement": { + "move": "look into the water, properly, and do not look away first", + "attribute": "Poise", + "successes": 2, + "why": "it was looked into", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "remembered", + "want": "that what is under it should be remembered as it was", + "lack": "forgotten", + "purpose": "nothing down there would ever be given up", + "motif": "sunken", + "prize": "bell", + "conscript": "the drowned parish", + "asks": "\"Do you know what's down there?\"", + "appeasement": { + "move": "name something that is under the water, and where it stood", + "attribute": "Wits", + "successes": 2, + "why": "it was remembered", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "rising", + "want": "to be a little wider every year", + "lack": "held to a line", + "purpose": "it would go on getting bigger forever", + "motif": "rising", + "prize": "shore", + "conscript": "the drainers", + "asks": "\"Where do you think my edge is?\"", + "appeasement": { + "move": "let the water have one thing it is reaching for", + "attribute": "Wits", + "successes": 2, + "why": "it came up a little", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + } + ], + "accommodations": [ + { + "id": "middle", + "text": "took {conscript} out to the middle and let them look down", + "cruelty": 3, + "fits": [ + "lookedinto", + "undisturbed" + ] + }, + { + "id": "closed", + "text": "closed over {conscript} without a ripple", + "cruelty": 3, + "fits": [ + "undisturbed", + "remembered", + "lookedinto" + ] + }, + { + "id": "rose", + "text": "rose over {conscript}'s ground one summer and did not go back", + "cruelty": 2, + "fits": [ + "rising", + "remembered" + ] + }, + { + "id": "justunder", + "text": "kept {conscript} just under, where they can still be seen from the bank", + "cruelty": 3, + "fits": [ + "remembered", + "lookedinto" + ] + }, + { + "id": "showed", + "text": "showed {conscript} themselves until they went in", + "cruelty": 3, + "fits": [ + "lookedinto", + "undisturbed", + "rising" + ] + }, + { + "id": "furnished", + "text": "keeps {conscript}'s house, furnished, thirty feet down", + "cruelty": 2, + "fits": [ + "remembered", + "rising", + "undisturbed" + ] + } + ], + "prizes": { + "stone": { + "label": "the stone that was thrown and made no ring", + "function": "the only thing that ever went in without disturbing it" + }, + "glass": { + "label": "a piece of the surface that stayed hard", + "function": "the only reflection here that shows what is actually there" + }, + "bell": { + "label": "the bell out of the drowned steeple", + "function": "the only thing down there that can still be heard from the bank" + }, + "shore": { + "label": "the old shore mark, from before it started rising", + "function": "the only record of how big this water is supposed to be" + } + }, + "placeNames": { + "first": [ + "The Water of the", + "The Mere of the", + "The Still Water of the", + "Under the", + "The Deep of the" + ] + }, + "areaNames": { + "approach": [ + "The Shingle", + "The Boathouse", + "The Shore Path", + "The Reed Bed", + "The Jetty" + ], + "complication": [ + "The Shallows", + "The Island", + "The Old Landing", + "The Alder Carr", + "The Cut" + ], + "turn": [ + "The Middle Water", + "The Drowned Steeple", + "The Slipway", + "The Point", + "The Open Water" + ], + "descent": [ + "The Weed Beds", + "The Sunken Village", + "The Cold Layer", + "The Silt", + "The Undercut Shore" + ], + "threshold": [ + "The Last Jetty", + "The Water Line", + "The Bell Tower", + "The Flat Calm", + "The Far Shore" + ], + "ending": [ + "The Middle", + "Where the Bell Is", + "Under the Still Water", + "The Old Shore" + ] + }, + "factions": [ + { + "id": "still", + "name": "the Still", + "kind": "undead", + "essence": "are under it, arranged as they were, and would rather not be moved", + "handledBy": "courtesy" + }, + { + "id": "fishers", + "name": "the fishers", + "kind": "living", + "essence": "work a water that has stopped giving anything up", + "handledBy": "trade" + }, + { + "id": "weed", + "name": "what lives in the weed beds", + "kind": "beast", + "essence": "has never been on the surface and does not want to be", + "handledBy": "force" + }, + { + "id": "reflection", + "name": "what is in the reflection", + "kind": "undead", + "essence": "is on the other side of the surface doing what you do, nearly", + "handledBy": "not looking" + } + ], + "triggerGlossary": { + "announced": "came down to the shore in the open and stood where the water could see you", + "seenTwice": "reflected twice, from two different points of the shore", + "loud": "a raised voice over flat water, which carries to the far bank", + "lingering": "stayed at the edge long enough to be looked at properly", + "disturbed": "threw a stone, put in an oar, or broke the surface in any way at all" + }, + "rosters": { + "skirmish": { + "line": "3 Giant Rats in the reed bed", + "foes": [ + { + "n": 3, + "name": "Giant Rat", + "atk": 2, + "def": 3, + "grit": 2, + "nerve": 2, + "note": "swim better than they run" + } + ], + "harmedBy": "anything", + "avoid": "they will not come out of the reeds onto open shingle" + }, + "fight": { + "line": "3 Ghouls out of the weed beds", + "foes": [ + { + "n": 3, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze on a hit; they come up without a sound" + } + ], + "harmedBy": "anything", + "avoid": "they will not leave the water — get clear of the shallows and they stop at the line" + }, + "battle": { + "line": "1 Troll in the shallows and 2 Ghouls", + "foes": [ + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES 2 Grit a round unless the wound was burnt; wet, so fire is hard here" + }, + { + "n": 2, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze on a hit" + } + ], + "harmedBy": "anything, but the Troll only stays down if fire touches it, and everything here is wet — say so before initiative", + "avoid": "it will not go into deep water; the boat is safe from it and the shore is not" + }, + "nightmare": { + "line": "1 Wraith standing on the water, 1 Troll and 4 Ghouls", + "foes": [ + { + "n": 1, + "name": "Wraith", + "atk": 5, + "def": 3, + "grit": 10, + "nerve": 5, + "note": "INCORPOREAL — chill touch ignores armour, drains 1 max Grit; it does not break the surface" + }, + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES unless burnt" + }, + { + "n": 4, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze" + } + ], + "harmedBy": "blessed, silvered or magical weapons for the Wraith ONLY; anything for the rest, fire for the Troll and it is wet", + "avoid": "do not run this without an appeasement route open" + } + }, + "motifs": { + "stillness": { + "danger": "the surface", + "dangerLine": "the water has been flat for a long time and it notices everything that touches it", + "trigger": "disturbed", + "facets": { + "institution": [ + "a water that is flat in weather that is moving the trees", + "a shore of shingle laid so fine that nothing rolls into the water", + "boats drawn up above the line and none of them wet" + ], + "ritual": [ + "boats carried down and set in without a sound", + "nothing thrown, ever, by anybody who lives here", + "the surface read each morning for anything that broke it in the night" + ], + "demand": [ + "a surface with one ring on it, spreading, from nothing", + "a slipway with the water lying against it and not lapping", + "a stone in your hand and a flat water in front of you" + ], + "wound": [ + "a surface broken all over at once and set that way", + "boats swamped at their moorings on a calm night", + "a shore raked over to hide what came out of the water" + ], + "anchor": [ + "the stone that was thrown and made no ring", + "a boat that goes in without a sound", + "a shore that shows what touched it" + ] + }, + "features": [ + "one ring spreading from nothing", + "boats drawn up dry above the line", + "a shore raked over recently", + "water lying flat against a slipway", + "a swamped boat at a mooring", + "fine shingle that does not roll" + ], + "decisions": [ + { + "cue": "a surface with one ring on it, spreading, from nothing that fell", + "cost": "something came up, or something is about to", + "resolve": { + "roll": "Wits 2", + "success": "you read the ring and know what is under it and how far off", + "failure": "you throw something to see and the water counts that against you: +1 Bane", + "orElse": "back off the shore; whatever made the ring surfaces behind you later" + } + }, + { + "cue": "a slipway with the water lying against it and not lapping at all", + "cost": "putting a boat in will be the loudest thing that has happened here in years", + "resolve": { + "roll": "Poise 2", + "success": "you launch without a sound and the water lets the boat cross the middle", + "failure": "you put it in badly and the whole lake registers it, at once: roll the clock", + "orElse": "stay ashore; the far side is a full day round, and it gets dark" + } + }, + { + "cue": "a shore raked over recently to hide what came out of the water", + "cost": "somebody is tidying up after it", + "resolve": { + "roll": "Wits 2", + "success": "you read what was raked over and know what comes ashore and how often", + "failure": "you rake it again yourself and are taken for the one who has been doing it", + "orElse": "leave the shingle; you camp on it not knowing what uses it" + } + }, + { + "cue": "boats swamped at their moorings on a night with no wind at all", + "cost": "the water came up into them deliberately", + "resolve": { + "roll": "Wits 2", + "success": "you find the one boat it left alone and understand why, and can use it", + "failure": "you bail one out and it is swamped again with you in it", + "orElse": "take no boat; every route is round the shore, and the shore is long" + } + }, + { + "cue": "a stone in your hand and a flat water in front of you", + "cost": "throwing it is the most natural thing in the world", + "resolve": { + "roll": "Poise 1", + "success": "you put the stone down and the water is pleased, and shows you something", + "failure": "you throw it, of course you do, and the rings do not stop spreading", + "orElse": "throw it deliberately, as a challenge; it answers, and it is bigger than you" + } + }, + { + "cue": "fine shingle laid so nothing can roll into the water", + "cost": "somebody made this shore so that nothing would ever disturb it", + "resolve": { + "roll": "Wits 2", + "success": "you find who has been maintaining it and they know exactly what they are keeping calm", + "failure": "you walk it carelessly and send a stone in, and the flatness ends", + "orElse": "go along the bank above the shingle, costing a Turn in the alder carr" + } + } + ], + "situations": [ + { + "occupant": "the water", + "doing": "lying dead flat while the wind moves everything on the bank", + "onArrival": "a single ring spreads on it from nothing at all", + "because": "it has been flat a long time and something has just moved under it", + "offer": "put nothing in and stand still, and it will show you what is down there" + }, + { + "occupant": "a living fisher", + "doing": "holding an oar above the water without putting it in", + "onArrival": "he asks whether you would mind waiting a moment", + "because": "he has not broken the surface in years and it is how he still has a boat", + "offer": "wait with him and he will row you anywhere on it" + }, + { + "occupant": "one of the Still", + "doing": "standing waist-deep with the water flat against it", + "onArrival": "it does not ripple and neither does the water", + "because": "it went in without a sound and the lake approved", + "offer": "go in as quietly and it will take you across the middle" + }, + { + "occupant": "a boat", + "doing": "lying drawn up dry on a slipway with the water against it", + "onArrival": "the water does not lap at the slip and the boat is warm", + "because": "boats go in silently here or not at all", + "offer": "launch it without a sound and the middle water opens to you" + }, + { + "occupant": "a shore", + "doing": "lying raked flat with something dragged across it and smoothed over", + "onArrival": "the rake marks stop halfway and are not resumed", + "because": "somebody tidies up after what comes out and stopped mid-job", + "offer": "finish the raking and whatever comes ashore treats you as its keeper" + }, + { + "occupant": "the Wide Eye", + "doing": "filling the whole middle of the lake with a flatness you can see from the bank", + "onArrival": "it goes flatter, visibly, as you come down to the water", + "because": "it wants no ring on it at all, ever", + "offer": "give it a still hour and it will let you cross without a boat" + } + ], + "temptations": [ + { + "id": "stone", + "cue": "the stone that made no ring", + "benefit": "once, do a thing without being noticed", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the lake watches you continuously instead", + "acceptanceCost": { + "vice": "Sloth" + } + }, + { + "id": "oar", + "cue": "a muffled oar", + "benefit": "cross the water without breaking it", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you cannot move fast on the water at all" + }, + { + "id": "shingle", + "cue": "a handful of the fine shingle", + "benefit": "once, make ground that does not give you away", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it gives away whoever crosses it after you" + }, + { + "id": "rake", + "cue": "the shore-keeper's rake", + "benefit": "once, hide that something came out", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you are taken for its keeper by what comes out" + }, + { + "id": "ring", + "cue": "a knack for reading rings", + "benefit": "know what is under the surface near you", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you know before you can do anything about it" + } + ] + }, + "mirror": { + "danger": "the reflection", + "dangerLine": "the water shows you what is there, and lately it has been showing a little more than that", + "trigger": "seenTwice", + "facets": { + "institution": [ + "a water that reflects the far bank perfectly and the near bank not at all", + "a surface that is clearer looking down than the air is looking across", + "a shore where everyone stops and looks in, and always has" + ], + "ritual": [ + "a look taken into the water at the same point by everyone passing", + "the reflection greeted, politely, before anything else", + "nobody looking in twice from the same place" + ], + "demand": [ + "a reflection that is a half-second behind you", + "a still panel of water in the reeds, exactly face-height", + "a surface showing somebody standing beside you" + ], + "wound": [ + "a reflection that stayed after the person left", + "reeds cut down all along the shore so nothing can be reflected", + "a surface showing a village that is not on the bank" + ], + "anchor": [ + "a piece of the surface that stayed hard", + "a reflection that has never once been wrong", + "a mirror that shows the bank behind you" + ] + }, + "features": [ + "a reflection a half-second late", + "a panel of still water at face height", + "reeds cut down along a shore", + "a reflection with one extra figure", + "a reflected village not on the bank", + "a surface that stayed hard" + ], + "decisions": [ + { + "cue": "a reflection that comes a half-second behind you", + "cost": "the delay is small and it is getting smaller", + "resolve": { + "roll": "Poise 2", + "success": "you catch the delay and can tell reflection from thing for the rest of the delve", + "failure": "you watch it until it catches up and it is level with you now: +1 Bane", + "orElse": "stop looking in; you cannot tell, later, which of two things is which" + } + }, + { + "cue": "a still panel of water in the reeds at exactly face height", + "cost": "it is at that height because that is where faces go", + "resolve": { + "roll": "Poise 2", + "success": "you look in deliberately and do not look away first, and it yields something true", + "failure": "you look and look away, and it keeps the part you did not finish looking at", + "orElse": "do not look; the water asks you again in every area after this" + } + }, + { + "cue": "a reflection showing somebody standing beside you who is not", + "cost": "the extra figure is doing what you do, nearly", + "resolve": { + "roll": "Poise 2", + "success": "you speak to it rather than about it and it answers, and it is useful", + "failure": "you turn to look and it is behind you now instead of beside you", + "orElse": "ignore it entirely; it walks with the party from here and nobody says so" + } + }, + { + "cue": "reeds cut down the whole length of a shore so nothing reflects", + "cost": "somebody stopped this water being able to show anything", + "resolve": { + "roll": "Wits 2", + "success": "you find who cut them and what they were stopping being seen", + "failure": "you clear a panel to look and it shows you what they were preventing", + "orElse": "leave the shore bare; you never get a straight look at anything here" + } + }, + { + "cue": "a surface showing a village that is not on the bank", + "cost": "the reflection is of what was there, not what is", + "resolve": { + "roll": "Wits 2", + "success": "you read the reflected village and know the parish exactly as it stood", + "failure": "you go toward the reflected shore and are wading before you notice", + "orElse": "look away; you come to the ending without knowing what was drowned" + } + }, + { + "cue": "a piece of the surface that has stayed hard, lying on the shingle", + "cost": "the water shed a bit of itself and it is still reflecting", + "resolve": { + "roll": "Wits 2", + "success": "you take it and can see what is actually in front of you, always", + "failure": "you look into it too long and what is in it is looking back, from close", + "orElse": "leave it; the lake keeps its one honest reflection" + } + } + ], + "situations": [ + { + "occupant": "a reflection", + "doing": "standing in the water beside yours and copying you a half-second late", + "onArrival": "it raises a hand slightly before you decide to", + "because": "the lake shows what is there and it has been embellishing", + "offer": "greet it rather than turn round, and it will show you what is under the water" + }, + { + "occupant": "one of the Still", + "doing": "standing at the water's edge looking at its own reflection", + "onArrival": "it asks you whether that looks like it", + "because": "it went in looking at itself and cannot stop", + "offer": "tell it the truth and it will let you look in safely, once" + }, + { + "occupant": "a living reed-cutter", + "doing": "cutting the last reeds along a shore that is already bare", + "onArrival": "he asks whether you have looked in yet", + "because": "he has been stopping the water reflecting anything for years", + "offer": "ask him why and he will tell you exactly what the lake shows" + }, + { + "occupant": "a panel of still water", + "doing": "lying in the reeds at exactly the height of a face", + "onArrival": "the reeds around it are pressed back at shoulder width", + "because": "everyone who passes looks in here", + "offer": "look in and do not look away, and the water gives you something true" + }, + { + "occupant": "the reflected village", + "doing": "showing under the surface with the lanes and the roofs clear", + "onArrival": "a light goes on in one of the reflected windows", + "because": "it shows what was there before the water rose", + "offer": "name a building aloud and the water will give up what is in it" + }, + { + "occupant": "the Under-Lady", + "doing": "standing in the reflection of the bank you are on, facing out", + "onArrival": "she is not standing on the bank itself", + "because": "she is on the other side of the surface, doing what you do", + "offer": "match her, exactly, and she will let you through to what is under" + } + ], + "temptations": [ + { + "id": "glass", + "cue": "the piece of surface that stayed hard", + "benefit": "see what is actually there, always", + "useCost": { + "bane": 2 + }, + "standingDrawback": "what is actually there also sees you", + "acceptanceCost": { + "vice": "Pride" + } + }, + { + "id": "panel", + "cue": "a knowledge of the face-height panels", + "benefit": "once, ask the water a question and be shown", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it shows you more than you asked" + }, + { + "id": "reed", + "cue": "a cut reed off the bare shore", + "benefit": "once, stop a thing being reflected", + "useCost": { + "bane": 1 + }, + "standingDrawback": "including yourself, which has consequences" + }, + { + "id": "double", + "cue": "a reflection that walks with you", + "benefit": "once, be in two places to anything watching", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it does what you do, nearly, and the difference grows" + }, + { + "id": "village", + "cue": "a knowledge of the drowned parish as it stood", + "benefit": "know where everything under the water is", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the Still know that you know" + } + ] + }, + "sunken": { + "danger": "what is under it", + "dangerLine": "there is a parish under this water and it has not been told that it drowned", + "trigger": "loud", + "facets": { + "institution": [ + "a steeple standing out of the water at low summer", + "a village kept whole thirty feet down, furnished", + "a shore with the road going into the water and out the other side" + ], + "ritual": [ + "the bell heard from the bank at the turn of the year", + "names of the drowned parish read on the shore each spring", + "a boat rowed over the steeple and nothing said while above it" + ], + "demand": [ + "a steeple showing with the weathercock just clear", + "a bell heard on a day that is not the turn of the year", + "a road going into the water with fresh tracks on it" + ], + "wound": [ + "a steeple with the top courses taken for building stone", + "the reading of the names given up in somebody's lifetime", + "a village down there with the doors standing open" + ], + "anchor": [ + "the bell out of the drowned steeple", + "a list of the parish as it was, house by house", + "a road that comes out the other side" + ] + }, + "features": [ + "a steeple showing at low water", + "a road going into the water", + "a bell heard out of season", + "doors standing open underwater", + "a parish list, house by house", + "stone robbed off a steeple top" + ], + "decisions": [ + { + "cue": "a steeple showing above the water with the weathercock just clear", + "cost": "the tower is enterable at this level and will not be for long", + "resolve": { + "roll": "Brawn 2", + "success": "you get into the tower and the bell is there, and it can still be rung", + "failure": "you go in on a falling level and the water comes back over the door", + "orElse": "stay off it; the bell stays down there and the ending has no voice" + } + }, + { + "cue": "a bell heard from the bank on a day that is not the turn of the year", + "cost": "something is ringing it, or something wants it rung", + "resolve": { + "roll": "Poise 2", + "success": "you answer the bell properly and the drowned parish receives you as visitors", + "failure": "you row out to it and the ringing stops while you are over the tower", + "orElse": "ignore it; it rings every area from here, closer each time" + } + }, + { + "cue": "a road going into the water with fresh tracks on it", + "cost": "something has been using the road, in or out", + "resolve": { + "roll": "Wits 2", + "success": "you read the tracks and know which way and how recently, and can be elsewhere", + "failure": "you follow them in and the road goes on down for a long way", + "orElse": "take the shore path; it costs a Turn and passes the weed beds" + } + }, + { + "cue": "a village thirty feet down with the doors standing open", + "cost": "open doors mean they left, or mean something got in", + "resolve": { + "roll": "Wits 2", + "success": "you work out which and know what is down there before you have to meet it", + "failure": "you go down to look and one of the doors closes above you", + "orElse": "stay on the surface; you meet what is in the village without warning" + } + }, + { + "cue": "stone robbed off the top courses of the drowned steeple", + "cost": "somebody has been taking the church for building", + "resolve": { + "roll": "Wits 2", + "success": "you find where the stone went and it is standing in something you will visit", + "failure": "you take a course yourself and the parish notices immediately", + "orElse": "leave it; the theft is unacknowledged and the parish blames whoever comes" + } + }, + { + "cue": "a list of the parish as it was, house by house, in a dry hand", + "cost": "the list is the whole memory of the place", + "resolve": { + "roll": "Wits 2", + "success": "you read it and can name anything down there, which is the appeasement in your hand", + "failure": "you take it away and the parish loses the last record of itself", + "orElse": "leave it; you go to the ending unable to name a single one of them" + } + } + ], + "situations": [ + { + "occupant": "a steeple", + "doing": "standing out of flat water with the weathercock just clear", + "onArrival": "the vane turns although there is no wind on the water", + "because": "the parish is down there and the tower is how you reach it", + "offer": "go in at the belfry window and the bell will answer to you" + }, + { + "occupant": "one of the Still", + "doing": "standing in a doorway thirty feet down, quite visible", + "onArrival": "it lifts a hand as your shadow crosses the water above", + "because": "it is at its own front door and has not been told", + "offer": "name its house aloud and it will open every door down there" + }, + { + "occupant": "a living stone-robber", + "doing": "landing dressed stone off a boat at a slipway", + "onArrival": "he asks whether you are here about the church", + "because": "he has been taking the steeple down a course at a time", + "offer": "tell him to stop and the parish will treat you as its advocate" + }, + { + "occupant": "a bell", + "doing": "sounding under the water on a day that is not the turn of the year", + "onArrival": "the sound arrives at the bank a moment after the water moves", + "because": "it is rung at the turn of the year and something has rung it early", + "offer": "answer it from the shore and the drowned parish comes up to talk" + }, + { + "occupant": "a road", + "doing": "running down into the water with tracks on it going both ways", + "onArrival": "the tracks below the waterline are as fresh as the ones above", + "because": "the road went to the village and it still goes there", + "offer": "walk it in and the water lets you down as far as the crossroads" + }, + { + "occupant": "the drowned parish", + "doing": "standing in its lanes under thirty feet of still water", + "onArrival": "every face down there turns up toward the boat at once", + "because": "they are kept as they were and would like to be remembered so", + "offer": "read them their own names and they will give you anything they have" + } + ], + "temptations": [ + { + "id": "bell", + "cue": "the bell out of the steeple", + "benefit": "once, be heard by everything drowned here", + "useCost": { + "bane": 2 + }, + "standingDrawback": "everything drowned here comes when it hears it", + "acceptanceCost": { + "vice": "Wrath" + } + }, + { + "id": "list", + "cue": "the parish list, house by house", + "benefit": "name anything under the water", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the parish expects to be visited" + }, + { + "id": "vane", + "cue": "the weathercock off the steeple", + "benefit": "once, know which way a thing is turning", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the steeple has no mark and the water rises over it" + }, + { + "id": "key", + "cue": "a house key off a drowned door", + "benefit": "once, open a door that is under water", + "useCost": { + "bane": 1 + }, + "standingDrawback": "whoever lived there comes with you through it" + }, + { + "id": "stone", + "cue": "a dressed stone off the church", + "benefit": "once, build something that will stand", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the parish knows exactly where its stone went" + } + ] + }, + "rising": { + "danger": "the level", + "dangerLine": "the water is bigger than it was last year and nobody has ever seen it go down", + "trigger": "lingering", + "facets": { + "institution": [ + "a shore with three old waterlines above the present one", + "trees standing dead in the shallows a long way out", + "a boathouse with the doors under water and the roof dry" + ], + "ritual": [ + "the level read off a marked post each spring", + "a stone set at the edge each year and left", + "the drainage cut opened every summer and every summer refilled" + ], + "demand": [ + "a level post with the water at the newest mark", + "a stone set at last year's edge, standing in water", + "a drainage cut with the water sitting level in it, not draining" + ], + "wound": [ + "level posts pulled up and thrown in", + "a village street with water standing in the doorways", + "drainage cuts filled in by somebody in a hurry" + ], + "anchor": [ + "the old shore mark, from before it started rising", + "a post with every year's level cut into it", + "a cut that still drains" + ] + }, + "features": [ + "a level post with the water at the newest mark", + "a marker stone standing in water", + "three old waterlines above the present one", + "dead trees out in the shallows", + "a drainage cut sitting level", + "water standing in doorways" + ], + "decisions": [ + { + "cue": "a level post with the water standing at the newest mark", + "cost": "cutting a new mark records the rise; pulling the post denies it", + "resolve": { + "roll": "Wits 2", + "success": "you cut the year honestly and the water is satisfied to be measured, and eases", + "failure": "you pull the post up and the water comes to where the post was: +1 Bane", + "orElse": "leave it; the rise is unrecorded and nobody downstream is warned" + } + }, + { + "cue": "a marker stone set at last year's edge, now standing in water", + "cost": "the stones say how fast, if you can find enough of them", + "resolve": { + "roll": "Wits 2", + "success": "you find the run of stones and know exactly how fast it is coming and when it reaches you", + "failure": "you move one to where you would rather it were and the water follows it", + "orElse": "ignore the stones; you camp somewhere that is under water by morning" + } + }, + { + "cue": "a drainage cut with the water sitting level in it and not draining", + "cost": "the cut works and the lake is refusing to use it", + "resolve": { + "roll": "Brawn 2", + "success": "you find the blockage and the cut runs, and one field comes back out of the water", + "failure": "you deepen it and the lake comes up the cut instead, faster", + "orElse": "fill the cut in; the lake is pleased and everything low is lost" + } + }, + { + "cue": "three old waterlines showing on a shore above the present one", + "cost": "the lines are not evenly spaced and the gaps are the point", + "resolve": { + "roll": "Wits 2", + "success": "you read the spacing and know when it rose fastest, and what happened that year", + "failure": "you read them wrong and are confident about a shore that is not safe", + "orElse": "leave the shore; you have no idea how quickly this can move" + } + }, + { + "cue": "a village street with water standing in the doorways, ankle deep", + "cost": "people are still living in some of these houses", + "resolve": { + "roll": "Poise 2", + "success": "you get the last of them out and they know every drain, cut and sluice here", + "failure": "you go through and leave them, and they are part of the water by the ending", + "orElse": "go round; the street is under to the sill by the time you come back" + } + }, + { + "cue": "dead trees standing a long way out in the shallows", + "cost": "the water came up around them and they took years to die", + "resolve": { + "roll": "Wits 2", + "success": "you count the rings on a fallen one and know how long this has been happening", + "failure": "you take one for a raft and the lake takes exception to being crossed on itself", + "orElse": "leave them; you have no idea how old this appetite is" + } + } + ], + "situations": [ + { + "occupant": "a level post", + "doing": "standing in water with every year cut into it and the newest mark under", + "onArrival": "the water is exactly at the top cut and is not moving", + "because": "the level is read each spring and the reading stopped", + "offer": "cut this year's mark and the water will not come further while you are here" + }, + { + "occupant": "a living drainer", + "doing": "digging a cut that is already full of level water", + "onArrival": "she asks whether it looks like it is running to you", + "because": "she has been opening the same cut every summer for thirty years", + "offer": "tell her the truth and she will show you every low place here" + }, + { + "occupant": "one of the Still", + "doing": "standing in a doorway with water to its knees, keeping house", + "onArrival": "it apologises for the state of the floor", + "because": "the water rose over it and it has not accepted that it has", + "offer": "help it bail and it will tell you how far this water means to come" + }, + { + "occupant": "a run of marker stones", + "doing": "standing in a line out into the water from the shore", + "onArrival": "the nearest one is dry and the next one is not", + "because": "a stone is set at the edge each year and the line goes out a long way", + "offer": "set a stone at today's edge and the lake will stop at it for the delve" + }, + { + "occupant": "dead trees", + "doing": "standing far out in the shallows with the bark long gone", + "onArrival": "the water around their roots is warmer than the rest", + "because": "the lake came up around them and they were years dying", + "offer": "count them and the lake will tell you what it is reaching for" + }, + { + "occupant": "the Level", + "doing": "lying against a shore that is plainly not its original one", + "onArrival": "the water is a hand's width higher on the shingle than your first look", + "because": "it wants to be wider every year and nothing has ever stopped it", + "offer": "give it one thing it is reaching for and it will leave the rest" + } + ], + "temptations": [ + { + "id": "shore", + "cue": "the old shore mark", + "benefit": "once, hold the water to a line", + "useCost": { + "bane": 2 + }, + "standingDrawback": "it takes the difference somewhere else, and lower", + "acceptanceCost": { + "vice": "Gluttony" + } + }, + { + "id": "post", + "cue": "a level post with every year on it", + "benefit": "know exactly how fast this is happening", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you know which night you should not be here" + }, + { + "id": "stone", + "cue": "a marker stone off the run", + "benefit": "once, set where the edge is", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the water accepts the mark and comes to it" + }, + { + "id": "cut", + "cue": "a drainer's plan of the cuts", + "benefit": "move water off ground that is going under", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it goes onto ground somebody else is standing on" + }, + { + "id": "ring", + "cue": "a section cut from a drowned tree", + "benefit": "know how old this appetite is", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it is older than you would like, and it knows you counted" + } + ] + } + } +} \ No newline at end of file diff --git a/core/content/mountain.json b/core/content/mountain.json new file mode 100644 index 0000000..452c2e7 --- /dev/null +++ b/core/content/mountain.json @@ -0,0 +1,1165 @@ +{ + "id": "mountain", + "label": "Mountain", + "forgeStageType": "cave", + "schema": 1, + "placeNameStyle": "claimant", + "_model": "Wild kernel at altitude. The appetite belongs to the hill — it wants to be gone up, to be cold, to be the only way through, and to have everything come to rest at its foot. Claimants are the mountain's own names, and its cruelties are all things weather does anyway.", + "facetProgression": { + "approach": "institution", + "complication": "ritual", + "turn": "demand", + "descent": "wound", + "threshold": "anchor", + "ending": "demand" + }, + "claimants": [ + "White Head", + "Old Cold", + "Thing Above the Snow", + "First Stone", + "Grandfather", + "Cloud-Sitter", + "The Watcher" + ], + "appetites": [ + { + "id": "climbed", + "want": "to be gone up and not come down from", + "lack": "descended", + "purpose": "everything that went up would stay up", + "motif": "ascent", + "prize": "cairn", + "conscript": "the climbers", + "asks": "\"Is that as high as you're going?\"", + "appeasement": { + "move": "go up one stretch you did not have to", + "attribute": "Brawn", + "successes": 2, + "why": "something went higher", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "cold", + "want": "never to have anything warm on it", + "lack": "warmed", + "purpose": "nothing would ever be comfortable up here", + "motif": "cold", + "prize": "fire", + "conscript": "the fire-lighters", + "asks": "\"Are you cold yet?\"", + "appeasement": { + "move": "go without your fire for a night, on purpose", + "attribute": "Brawn", + "successes": 2, + "why": "it was cold and you bore it", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "crossed", + "want": "that nothing should get past it without asking", + "lack": "gone round", + "purpose": "every crossing would come through it", + "motif": "pass", + "prize": "waystone", + "conscript": "the travellers", + "asks": "\"And where do you think you're going?\"", + "appeasement": { + "move": "ask the pass for leave, aloud, before you go through", + "attribute": "Poise", + "successes": 2, + "why": "it was asked", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "settled", + "want": "that everything should come down to it and stay", + "lack": "carried off", + "purpose": "nothing would ever be taken away again", + "motif": "weight", + "prize": "stone", + "conscript": "the carriers", + "asks": "\"Why are you carrying that?\"", + "appeasement": { + "move": "put something down and leave it where it falls", + "attribute": "Wits", + "successes": 2, + "why": "something came to rest", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + } + ], + "accommodations": [ + { + "id": "kepthigh", + "text": "kept {conscript} at the top, facing out, where they can still be seen", + "cruelty": 3, + "fits": [ + "climbed", + "cold", + "settled" + ] + }, + { + "id": "goodweather", + "text": "let {conscript} go up in good weather and did not let them down in it", + "cruelty": 3, + "fits": [ + "climbed", + "cold" + ] + }, + { + "id": "chilled", + "text": "took {conscript}'s warmth a finger at a time until they stopped noticing", + "cruelty": 2, + "fits": [ + "cold", + "crossed", + "climbed" + ] + }, + { + "id": "camedown", + "text": "came down on {conscript} in the night, all at once", + "cruelty": 3, + "fits": [ + "settled", + "cold" + ] + }, + { + "id": "closed", + "text": "closed the pass behind {conscript} and did not open it again", + "cruelty": 2, + "fits": [ + "crossed", + "settled", + "climbed" + ] + }, + { + "id": "landmark", + "text": "made a landmark of {conscript}, which travellers still steer by", + "cruelty": 2, + "fits": [ + "settled", + "crossed", + "cold" + ] + } + ], + "prizes": { + "cairn": { + "label": "the topmost stone of the summit cairn", + "function": "the only proof anybody ever got all the way up" + }, + "fire": { + "label": "the fire that stayed lit above the snowline", + "function": "the only warm thing this hill ever allowed" + }, + "waystone": { + "label": "the waystone from the top of the pass", + "function": "the only thing that ever said which way was through" + }, + "stone": { + "label": "the stone that stopped rolling", + "function": "the only thing here that ever came to rest of its own accord" + } + }, + "placeNames": { + "first": [ + "The Mountain of the", + "Above the", + "The Head of the", + "The Cold of the", + "The High Place of the" + ] + }, + "areaNames": { + "approach": [ + "The Corrie", + "The Shieling", + "The Lower Slopes", + "The Bothy", + "The Path Up" + ], + "complication": [ + "The Scree", + "The Ridge", + "The Boulder Field", + "The Steep Ground", + "The Traverse Ledge" + ], + "turn": [ + "The Bealach", + "The Snowline", + "The Cairn", + "The Great Buttress", + "The Plateau" + ], + "descent": [ + "The Gully", + "The Cornice", + "The North Face", + "The Frozen Burn", + "The Avalanche Ground" + ], + "threshold": [ + "The Last Cairn", + "The Shoulder", + "The Summit Ridge", + "The Windbreak", + "The Cleft" + ], + "ending": [ + "The Summit", + "Where the Stones Are Piled", + "Above the Cloud", + "The Cold Place" + ] + }, + "factions": [ + { + "id": "left", + "name": "the Left", + "kind": "undead", + "essence": "went up and are still up, and are past minding about it", + "handledBy": "courtesy" + }, + { + "id": "drovers", + "name": "the drovers", + "kind": "living", + "essence": "were taking stock over the pass when it closed", + "handledBy": "trade" + }, + { + "id": "cold", + "name": "the cold itself", + "kind": "beast", + "essence": "is not hunting you and will kill you anyway", + "handledBy": "shelter" + }, + { + "id": "above", + "name": "what walks above the snowline", + "kind": "beast", + "essence": "has never been down and does not intend to be", + "handledBy": "force" + } + ], + "triggerGlossary": { + "announced": "came up the path in daylight, where the whole hill can see you", + "seenTwice": "skylined twice on the same ridge", + "loud": "a raised voice on a slope with snow above it", + "lingering": "stopped moving long enough for the cold to start working", + "disturbed": "took a stone off a cairn, crossed a cornice, or lit a fire above the snowline" + }, + "rosters": { + "skirmish": { + "line": "2 Dire Wolves on the lower slopes", + "foes": [ + { + "n": 2, + "name": "Dire Wolf", + "atk": 4, + "def": 3, + "grit": 5, + "nerve": 3, + "note": "work you downhill, away from the path" + } + ], + "harmedBy": "anything", + "avoid": "get above them and they will not come up at you" + }, + "fight": { + "line": "1 Ogre on the ridge", + "foes": [ + { + "n": 1, + "name": "Ogre", + "atk": 5, + "def": 3, + "grit": 12, + "nerve": 3, + "note": "one push and you are off the ridge — Poise 1 or fall" + } + ], + "harmedBy": "anything", + "avoid": "it holds the ridge and nothing else; the scree slope below is open the whole way" + }, + "battle": { + "line": "1 Troll in the gully and 2 Dire Wolves above it", + "foes": [ + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES 2 Grit a round unless the wound was burnt" + }, + { + "n": 2, + "name": "Dire Wolf", + "atk": 4, + "def": 3, + "grit": 5, + "nerve": 3, + "note": "hold the top of the gully" + } + ], + "harmedBy": "anything, but the Troll only stays down if fire touches it — say so before initiative, and there is no fuel above the snowline", + "avoid": "it will not leave the gully; the buttress is longer and it is climbable" + }, + "nightmare": { + "line": "1 Wraith above the snowline, 1 Troll and 3 Dire Wolves", + "foes": [ + { + "n": 1, + "name": "Wraith", + "atk": 5, + "def": 3, + "grit": 10, + "nerve": 5, + "note": "INCORPOREAL — chill touch ignores armour, drains 1 max Grit; the cold is already doing that" + }, + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES unless burnt" + }, + { + "n": 3, + "name": "Dire Wolf", + "atk": 4, + "def": 3, + "grit": 5, + "nerve": 3, + "note": "cut the line of retreat" + } + ], + "harmedBy": "blessed, silvered or magical weapons for the Wraith ONLY; anything for the rest, fire for the Troll", + "avoid": "do not run this without an appeasement route open and shelter within a Turn" + } + }, + "motifs": { + "ascent": { + "danger": "the height", + "dangerLine": "the hill takes everything that goes up and it has never once had to come and get it", + "trigger": "announced", + "facets": { + "institution": [ + "a path that only goes one way and does not branch", + "cairns set at every point where you might doubt the route", + "a summit that is visible from everywhere and reached from nowhere" + ], + "ritual": [ + "a stone carried up and added to the cairn at the top", + "a rest taken at the same rock each time by everyone who goes", + "boots turned to face downhill when you stop" + ], + "demand": [ + "a cairn one stone short and a flat stone beside it", + "a path going up with nothing coming down it", + "boots left turned to face uphill" + ], + "wound": [ + "cairns pushed over in a line all the way to the top", + "a path worn deep in one direction only", + "a rest-rock with everything on it that somebody was carrying" + ], + "anchor": [ + "the topmost stone of the summit cairn", + "a route description that reaches the top and back", + "a path that goes down as well as up" + ] + }, + "features": [ + "a cairn one stone short", + "boots turned to face uphill", + "a rest-rock with a pack still on it", + "cairns pushed over in a line", + "a path worn deep one way", + "a flat stone set ready" + ], + "decisions": [ + { + "cue": "a cairn one stone short with a flat stone laid ready beside it", + "cost": "adding it finishes somebody else's climb", + "resolve": { + "roll": "Brawn 2", + "success": "you place the stone and the route ahead is marked all the way, both directions", + "failure": "you take a stone instead and the route unmarks itself behind you: +1 Bane", + "orElse": "leave it short; the cairns stop being where you remember them" + } + }, + { + "cue": "boots left turned to face uphill at a rest place", + "cost": "they are turned downhill by anyone intending to go home", + "resolve": { + "roll": "Wits 2", + "success": "you turn them down and whatever wore them can go, and tells you what it saw", + "failure": "you turn yours uphill to match and the hill counts you among the ones going up", + "orElse": "leave them; the rest place is not a place you can rest" + } + }, + { + "cue": "a path worn deep in one direction and unworn in the other", + "cost": "everybody came up this and nobody went down it", + "resolve": { + "roll": "Wits 2", + "success": "you find the descent route that was actually used, which is not this one", + "failure": "you plan to go down the way you came and the way is not there", + "orElse": "accept it; every route from here is committed, and the hill knows" + } + }, + { + "cue": "a rest-rock with a pack still on it and the straps done up", + "cost": "somebody sat down and went on without it", + "resolve": { + "roll": "Wits 2", + "success": "you go through the pack and learn how far they thought they had to go", + "failure": "you shoulder the pack and the hill treats you as the one who left it", + "orElse": "leave it; you carry your own weight and it tells at the top" + } + }, + { + "cue": "cairns pushed over in a line all the way up", + "cost": "somebody unmade the route on purpose, going up or coming down", + "resolve": { + "roll": "Wits 2", + "success": "you work out which direction they were going and what they were stopping", + "failure": "you rebuild them and everything that uses the route comes back to it", + "orElse": "leave them flat; nothing will find you up here, including help" + } + }, + { + "cue": "a route description that reaches the top and describes the way back down", + "cost": "the descent half is the valuable half", + "resolve": { + "roll": "Wits 2", + "success": "you read it and can get off the hill from anywhere on it", + "failure": "you read only the ascent and are on the summit with no way described down", + "orElse": "leave the paper; the top is the easy part and you have not read the hard part" + } + } + ], + "situations": [ + { + "occupant": "one of the Left", + "doing": "carrying a stone uphill with both hands", + "onArrival": "it stops and offers you the stone", + "because": "the cairn is one short and it has been carrying this a long time", + "offer": "take the stone up for it and it will show you the way down" + }, + { + "occupant": "a living drover", + "doing": "sitting on a rest-rock with the stock long gone", + "onArrival": "he asks whether the pass is open above", + "because": "he came up to take them over and never got word", + "offer": "tell him the pass and he will point out every safe line on the face" + }, + { + "occupant": "a pair of boots", + "doing": "standing turned to face uphill at a windbreak", + "onArrival": "they are dry inside and there is frost on the laces", + "because": "they are turned downhill by anyone meaning to go home", + "offer": "turn them down and whoever wore them speaks, and answers you" + }, + { + "occupant": "two of the Left", + "doing": "standing on the skyline facing outward", + "onArrival": "they turn together as you come onto the ridge", + "because": "they were kept at the top facing out, so travellers could see them", + "offer": "stand between them once and every route off this hill opens to you" + }, + { + "occupant": "the path", + "doing": "running up past you with nothing at all coming down it", + "onArrival": "the ground is worn a hand's depth in one direction", + "because": "everything went up and the hill kept it", + "offer": "go up willingly and it will let you come back down" + }, + { + "occupant": "a cairn", + "doing": "standing one stone short on a false summit", + "onArrival": "the flat stone beside it has been placed ready and not set", + "because": "somebody was finishing the route and stopped here", + "offer": "set the stone and the true summit shows itself" + } + ], + "temptations": [ + { + "id": "cairnstone", + "cue": "the topmost stone off the summit cairn", + "benefit": "once, be counted as having got to the top", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the hill considers the top unmarked while you have it", + "acceptanceCost": { + "vice": "Pride" + } + }, + { + "id": "route", + "cue": "a route description with the descent on it", + "benefit": "get off this hill from anywhere", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it is written for weather you do not have" + }, + { + "id": "boots", + "cue": "a dead climber's boots, dry", + "benefit": "once, go up ground you could not", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they go up more readily than they come down" + }, + { + "id": "pack", + "cue": "an abandoned pack, still full", + "benefit": "once, have what somebody prepared for", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they prepared for a night you have not had yet" + }, + { + "id": "stone", + "cue": "a flat stone cut for a cairn", + "benefit": "once, mark a route so it stays marked", + "useCost": { + "bane": 1 + }, + "standingDrawback": "everything that reads cairns follows it too" + } + ] + }, + "cold": { + "danger": "the cold", + "dangerLine": "the cold is not hunting anybody and it will still have all of you by morning", + "trigger": "lingering", + "facets": { + "institution": [ + "a snowline that does not move all year", + "bothies built every few miles because the gaps kill people", + "ground that is frozen a spade deep in every season" + ], + "ritual": [ + "a fire laid in every bothy by whoever leaves it", + "dry wood carried up and never burnt on the way", + "hands checked at every stop, each of the party in turn" + ], + "demand": [ + "a bothy with the fire laid and no one to light it", + "dry wood stacked above the treeline where none grows", + "frost forming on the inside of something" + ], + "wound": [ + "bothies with the doors off and the fires long cold", + "wood burnt all at once in a single night", + "frost on the inside of a shelter that was occupied" + ], + "anchor": [ + "the fire that stayed lit above the snowline", + "a bothy that has never been let go out", + "dry wood that does not run out" + ] + }, + "features": [ + "a fire laid but unlit in a bothy", + "dry wood stacked above the treeline", + "frost on the inside of a wall", + "a door off a shelter", + "ash from a single great burning", + "hands going white at a stop" + ], + "decisions": [ + { + "cue": "a bothy with the fire laid and nobody there to light it", + "cost": "lighting it is warm and visible for miles", + "resolve": { + "roll": "Brawn 2", + "success": "you light it and the party is warm, and the Left come in politely rather than otherwise", + "failure": "you light it and everything cold on this hill knows exactly where you are: +1 Bane", + "orElse": "sleep cold; -1 die on everything for the next area" + } + }, + { + "cue": "dry wood stacked neatly above the treeline where none grows", + "cost": "somebody carried it up and did not burn it", + "resolve": { + "roll": "Wits 2", + "success": "you find who carried it and why they were saving it, and it matters", + "failure": "you burn it and whatever it was being saved for happens anyway, without fuel", + "orElse": "leave the stack; there is nothing to burn between here and the top" + } + }, + { + "cue": "frost forming on the inside of a shelter that is occupied", + "cost": "the cold is getting in, or something cold is already in", + "resolve": { + "roll": "Wits 2", + "success": "you find the way it is getting in and can shut it, and the shelter holds", + "failure": "you assume it is weather and sleep, and wake with one of you colder than the rest", + "orElse": "stay out of the shelter; the night is spent moving, and costs a Turn" + } + }, + { + "cue": "ash from a great burning where somebody used everything at once", + "cost": "they burnt it all in a single night and had a reason", + "resolve": { + "roll": "Wits 2", + "success": "you read the ash and learn what they were keeping off, and how well it worked", + "failure": "you scatter it and what was kept off comes back to the same place", + "orElse": "leave the ash; you camp there anyway and find out the hard way" + } + }, + { + "cue": "a bothy door lying off its hinges in the snow", + "cost": "hanging it takes time and makes the place usable", + "resolve": { + "roll": "Brawn 2", + "success": "you hang the door and the bothy is shelter again — one safe rest for the delve", + "failure": "you hang it badly and it comes in on you in the night", + "orElse": "leave the door; there is no shelter on this side of the hill" + } + }, + { + "cue": "hands going white at a stop, and one of you not saying so", + "cost": "the cold has already started and somebody is hiding it", + "resolve": { + "roll": "Poise 2", + "success": "you catch it in time and can keep everybody moving and whole", + "failure": "it goes unsaid and that person loses 1 max Grit for the rest of the delve", + "orElse": "stop and warm up properly, costing a Turn while the light goes" + } + } + ], + "situations": [ + { + "occupant": "a bothy", + "doing": "standing with the fire laid and the door pulled to", + "onArrival": "the kindling is dry and there is frost on the inside of the walls", + "because": "whoever laid it went out and did not come back", + "offer": "light the fire and the Left will come in and talk rather than take" + }, + { + "occupant": "one of the Left", + "doing": "sitting against a wall with frost on the inside of its coat", + "onArrival": "it asks whether you would mind shutting the door", + "because": "it sat down out of the wind and never got up", + "offer": "shut the door and it will tell you where the wood is cached" + }, + { + "occupant": "a living shepherd", + "doing": "stacking dry wood above the treeline, load by load", + "onArrival": "she asks whether you have come for it", + "because": "she has been carrying it up for a fire that was never lit", + "offer": "help her carry and she will show you every bothy on the hill" + }, + { + "occupant": "the cold", + "doing": "filling a still, clear night with no wind at all", + "onArrival": "your breath stops showing while you stand there", + "because": "it is not hunting anybody and it will have you anyway", + "offer": "give up your fire for the night and it will let you through the high ground" + }, + { + "occupant": "two of the Left", + "doing": "standing at a fire with no fuel in it", + "onArrival": "they hold their hands out over nothing at all", + "because": "the fire went out and nobody put it back", + "offer": "light anything at all in the grate and both will guide you to the pass" + }, + { + "occupant": "frost", + "doing": "spreading on the inside of a shelter while you watch", + "onArrival": "it forms fastest on the wall you came in by", + "because": "the cold gets in somewhere and nobody found where", + "offer": "find the gap and the shelter holds for as long as you need" + } + ], + "temptations": [ + { + "id": "fire", + "cue": "an ember off the fire that stayed lit", + "benefit": "once, be warm anywhere on this hill", + "useCost": { + "bane": 2 + }, + "standingDrawback": "everything cold up here can see it burning", + "acceptanceCost": { + "vice": "Sloth" + } + }, + { + "id": "wood", + "cue": "dry wood that does not run out", + "benefit": "fuel wherever you are", + "useCost": { + "bane": 1 + }, + "standingDrawback": "somebody carried it up for a purpose you are spending" + }, + { + "id": "coat", + "cue": "a dead climber's coat", + "benefit": "the cold works on you slower", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it works on whoever you took it from faster" + }, + { + "id": "bothykey", + "cue": "the key of a locked bothy", + "benefit": "one guaranteed shelter", + "useCost": { + "bane": 1 + }, + "standingDrawback": "whatever else needs the shelter comes to the door" + }, + { + "id": "frost", + "cue": "a knack for reading the frost", + "benefit": "know when the cold is about to turn", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you know, and you cannot always act on it" + } + ] + }, + "pass": { + "danger": "the way through", + "dangerLine": "the pass is the only way through and it has views about who uses it", + "trigger": "disturbed", + "facets": { + "institution": [ + "a single notch in a ridge that runs forty miles either way", + "waystones set the whole length of the crossing, in sight of each other", + "a hospice at the top for the people the crossing catches" + ], + "ritual": [ + "leave asked of the pass, out loud, before setting foot in it", + "a stone touched at every waystone going through", + "the crossing made before noon or not at all" + ], + "demand": [ + "a waystone with the next one not visible from it", + "a pass standing open with nothing moving in it", + "a hospice door open and the bell rope hanging" + ], + "wound": [ + "waystones thrown down along the whole crossing", + "a pass closed by a fall and the fall not cleared", + "a hospice with the door barred and the bell cut down" + ], + "anchor": [ + "the waystone from the top of the pass", + "a bell that carries the whole length of the crossing", + "a line of stones you can always see the next of" + ] + }, + "features": [ + "a waystone with no next one visible", + "a hospice bell rope hanging", + "a fall of rock across the way", + "stones thrown down in a line", + "a door barred from inside", + "a track going in with none coming out" + ], + "decisions": [ + { + "cue": "a waystone with the next one not visible from it", + "cost": "the line is broken and the crossing is committed either way", + "resolve": { + "roll": "Wits 2", + "success": "you find the next stone by dead reckoning and the whole line comes back into sight", + "failure": "you press on by guess and are somewhere the stones do not go", + "orElse": "turn back down; the pass is not crossed and the ending is on the far side" + } + }, + { + "cue": "a hospice with the door open and the bell rope hanging", + "cost": "ringing it calls whoever keeps the hospice", + "resolve": { + "roll": "Poise 2", + "success": "you ring properly and are given shelter, and told what is on the crossing", + "failure": "you ring it and something answers that is not the keeper: +1 Bane", + "orElse": "go past; you cross in whatever weather comes, unwarned" + } + }, + { + "cue": "a fall of rock lying across the way with old boots under it", + "cost": "clearing it opens the pass for everything, both ways", + "resolve": { + "roll": "Brawn 2", + "success": "you clear a line through and the pass is open — the drovers can get out, and will help", + "failure": "you bring the rest of the slope down and the pass is shut for good: roll the clock", + "orElse": "climb over the fall; the pass stays closed behind you and nothing follows, including help" + } + }, + { + "cue": "waystones thrown down along the whole crossing, deliberately", + "cost": "somebody wanted this crossing to stop being possible", + "resolve": { + "roll": "Wits 2", + "success": "you learn who threw them and why, and it is the transgression in miniature", + "failure": "you set one back up and whatever they were keeping out finds the line again", + "orElse": "leave them down; you cross by luck, which runs out on the descent" + } + }, + { + "cue": "a hospice door barred from the inside with the bell cut down", + "cost": "whoever is in there stopped answering", + "resolve": { + "roll": "Poise 2", + "success": "you talk them into opening and they have kept everything anybody left here", + "failure": "you force it and what is inside was barred in, not out", + "orElse": "leave it barred; the crossing is made without rest or news" + } + }, + { + "cue": "a track going into the pass with none at all coming out", + "cost": "everything that went through is still in there", + "resolve": { + "roll": "Wits 2", + "success": "you read what went in and how long ago, and can time your crossing to miss it", + "failure": "you go in behind it and catch it up in the narrows", + "orElse": "go round the hill, costing a Turn and putting you on the wrong side at dark" + } + } + ], + "situations": [ + { + "occupant": "a waystone", + "doing": "standing at the top of the pass with the next one down", + "onArrival": "it is warm on the side out of the wind and the wind is not blowing", + "because": "the line is walked stone to stone and one is missing", + "offer": "set the fallen stone up and the whole crossing lets you through" + }, + { + "occupant": "the hospice keeper", + "doing": "ringing a bell that has been cut down", + "onArrival": "it moves the rope and no sound comes", + "because": "the bell is rung for whoever is on the crossing and there is no bell", + "offer": "give it a bell and it will shelter you, and everything else stays outside" + }, + { + "occupant": "two living drovers", + "doing": "waiting at a rockfall with stock they cannot move", + "onArrival": "they ask whether the far side is any clearer", + "because": "the pass closed with them on the wrong side of it", + "offer": "clear a line and they will drive you through anything on this hill" + }, + { + "occupant": "one of the Left", + "doing": "standing in the narrows facing the way out", + "onArrival": "it steps aside and then steps back", + "because": "the pass asks leave and it never gave any", + "offer": "ask leave aloud and it will let you and everything behind you through" + }, + { + "occupant": "the pass", + "doing": "standing open and empty with tracks going in and none out", + "onArrival": "the wind in it drops entirely as you come to the mouth", + "because": "it is the only way through and it likes being asked", + "offer": "ask it properly and it will be a road rather than a trap" + }, + { + "occupant": "a bell", + "doing": "hanging in a frame at the top of the crossing with the rope gone", + "onArrival": "it sounds once when the wind moves and not again", + "because": "it is rung to bring people in off the pass", + "offer": "ring it and everything still out on the crossing comes in" + } + ], + "temptations": [ + { + "id": "waystone", + "cue": "the waystone from the top", + "benefit": "once, always know which way is through", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the crossing has no top stone while you carry it, and closes", + "acceptanceCost": { + "vice": "Pride" + } + }, + { + "id": "bell", + "cue": "a hand-bell that carries the crossing", + "benefit": "once, be heard the whole length of the pass", + "useCost": { + "bane": 1 + }, + "standingDrawback": "everything on the crossing hears it" + }, + { + "id": "hospicekey", + "cue": "the hospice key", + "benefit": "shelter at the top of the crossing", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you are the keeper now, and callers come" + }, + { + "id": "leave", + "cue": "leave asked and granted", + "benefit": "once, pass anything that guards a way", + "useCost": { + "bane": 1 + }, + "standingDrawback": "leave given can be withdrawn" + }, + { + "id": "stock", + "cue": "a drover's stock-stick", + "benefit": "once, move something that will not move", + "useCost": { + "bane": 1 + }, + "standingDrawback": "whatever you move, the hill wants back at the bottom" + } + ] + }, + "weight": { + "danger": "what comes down", + "dangerLine": "everything on this hill is on its way to the bottom and most of it has not started yet", + "trigger": "loud", + "facets": { + "institution": [ + "scree slopes that move a little every time anything crosses them", + "a corrie floor made entirely of what used to be above it", + "boulders standing where nothing else is, having stopped" + ], + "ritual": [ + "a stone rolled down at the same place by everyone who passes", + "the avalanche ground crossed one at a time, never together", + "nothing carried down that was not carried up" + ], + "demand": [ + "a boulder balanced with a clear run below it", + "a cornice overhanging with a crack behind it", + "scree with one line of prints across it and no more" + ], + "wound": [ + "a whole slope come down at once onto the path", + "a corrie floor with something under it that was walking", + "boulders stacked by hands rather than fallen" + ], + "anchor": [ + "the stone that stopped rolling", + "a slope that has finished moving", + "a line across the scree that has held" + ] + }, + "features": [ + "a boulder balanced with a run below", + "a crack behind a cornice", + "one line of prints across scree", + "a slope come down onto a path", + "boulders stacked by hands", + "a stone that stopped rolling" + ], + "decisions": [ + { + "cue": "a boulder standing balanced with a clear run below it", + "cost": "it is going down; the only question is when and onto what", + "resolve": { + "roll": "Brawn 2", + "success": "you put it down deliberately, into nothing, and the slope settles for good", + "failure": "you cross beneath it and it goes while you are under: roll the clock", + "orElse": "go round above it, costing a Turn on ground that also moves" + } + }, + { + "cue": "a cornice overhanging the gully with a crack behind it", + "cost": "it will not hold and the gully is the fast way down", + "resolve": { + "roll": "Wits 2", + "success": "you read the crack and take the buttress instead, and watch the cornice go behind you", + "failure": "you take the gully and it comes off above you", + "orElse": "wait for the cold to firm it, costing a Turn and a night out" + } + }, + { + "cue": "scree with one line of prints across it and nothing since", + "cost": "one crossing held; a second might not", + "resolve": { + "roll": "Poise 2", + "success": "you cross one at a time on the same line and the slope holds for all of you", + "failure": "you cross together and take the slope with you", + "orElse": "go round the scree entirely, adding a Turn and putting you on the skyline" + } + }, + { + "cue": "a whole slope come down at once onto the path below", + "cost": "there is something under it and it was recent", + "resolve": { + "roll": "Wits 2", + "success": "you find what is under it and get it out, and it is owed to somebody at the ending", + "failure": "you dig and start the rest of the slope moving", + "orElse": "leave it; whatever is under there is not accounted for and the ending is poorer" + } + }, + { + "cue": "boulders stacked by hands rather than fallen, in a line", + "cost": "somebody built this and it is holding something back", + "resolve": { + "roll": "Wits 2", + "success": "you see what it holds back and can keep it holding", + "failure": "you take one out to see and the line goes, and so does what it held", + "orElse": "leave it; you never learn what somebody thought worth stacking against" + } + }, + { + "cue": "a stone lying at the foot of a slope that clearly stopped rolling short", + "cost": "everything else went to the bottom and this did not", + "resolve": { + "roll": "Wits 2", + "success": "you understand why it stopped and can make one other thing stop too", + "failure": "you move it and it resumes, immediately, taking the slope with it", + "orElse": "leave it; nothing you set down on this hill stays where you put it" + } + } + ], + "situations": [ + { + "occupant": "one of the Left", + "doing": "standing under a balanced boulder with its hands up", + "onArrival": "it has been holding the boulder and it is not holding the boulder", + "because": "it was under the slope when the slope came down", + "offer": "take the weight for a moment and it will step out and tell you everything" + }, + { + "occupant": "a living stone-man", + "doing": "stacking boulders into a line, one at a time", + "onArrival": "he asks whether you can hear it moving yet", + "because": "he has been building against the slope for years", + "offer": "help him place one and he will tell you which ground will hold you" + }, + { + "occupant": "a boulder", + "doing": "standing alone on a corrie floor with a clear run behind it", + "onArrival": "the ground around it is undisturbed and it is warm to touch", + "because": "it stopped rolling and nothing else here did", + "offer": "ask it how and it will hold whatever you need held" + }, + { + "occupant": "the scree", + "doing": "lying with one line of prints across it and nothing since", + "onArrival": "the whole slope shifts an inch as you set foot on it", + "because": "it moves when anything crosses and it has been crossed once", + "offer": "cross one at a time and the slope will hold for you every time after" + }, + { + "occupant": "two of the Left", + "doing": "digging at a slope that came down on the path", + "onArrival": "they dig with their hands and do not get anywhere", + "because": "there is somebody under it and there always has been", + "offer": "dig with them and what comes out is owed at the ending" + }, + { + "occupant": "a cornice", + "doing": "overhanging a gully with a crack running behind it", + "onArrival": "snow slides off the lip while you are looking at it", + "because": "it is going to come off and it has not chosen when", + "offer": "bring it down on your terms and the gully is safe the whole way" + } + ], + "temptations": [ + { + "id": "stone", + "cue": "the stone that stopped rolling", + "benefit": "once, make a thing stay where you put it", + "useCost": { + "bane": 2 + }, + "standingDrawback": "everything else you have set down starts moving", + "acceptanceCost": { + "vice": "Sloth" + } + }, + { + "id": "wedge", + "cue": "a wedge cut for a balanced boulder", + "benefit": "once, hold back what is coming down", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it holds until you need it somewhere else" + }, + { + "id": "line", + "cue": "a knowledge of which line holds", + "benefit": "cross moving ground safely", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the line holds for you and not for those behind you" + }, + { + "id": "stack", + "cue": "a stone off the built line", + "benefit": "once, know what a thing is holding back", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the line is one stone weaker" + }, + { + "id": "print", + "cue": "a set of prints that held", + "benefit": "once, follow ground that will take your weight", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they lead where the maker was going, not where you are" + } + ] + } + } +} \ No newline at end of file diff --git a/core/content/river.json b/core/content/river.json new file mode 100644 index 0000000..5a43158 --- /dev/null +++ b/core/content/river.json @@ -0,0 +1,1164 @@ +{ + "id": "river", + "label": "River", + "forgeStageType": "fen", + "schema": 1, + "placeNameStyle": "claimant", + "_model": "Wild kernel in moving water. The appetite belongs to the river — it wants to be asked before it is crossed, to carry things away, to run where it has always run, and to be given somebody rather than have to take them. Claimants are the river's own names.", + "facetProgression": { + "approach": "institution", + "complication": "ritual", + "turn": "demand", + "descent": "wound", + "threshold": "anchor", + "ending": "demand" + }, + "claimants": [ + "Old Man", + "The Grey", + "Mother of Eels", + "First Water", + "The Drowner", + "Long Wet", + "She Who Takes One" + ], + "appetites": [ + { + "id": "crossed", + "want": "that nothing should get over it without asking", + "lack": "gone over", + "purpose": "every crossing would be by its leave", + "motif": "crossing", + "prize": "pole", + "conscript": "the fordmen", + "asks": "\"Did you ask?\"", + "appeasement": { + "move": "ask the water leave before you set foot in it", + "attribute": "Poise", + "successes": 2, + "why": "it was asked", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "carrying", + "want": "that everything given to it should be carried away for good", + "lack": "given back", + "purpose": "nothing would ever come back upstream", + "motif": "current", + "prize": "float", + "conscript": "the salvagers", + "asks": "\"Are you going to let go of that?\"", + "appeasement": { + "move": "put something into the water and let it go", + "attribute": "Wits", + "successes": 2, + "why": "something went downstream", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "running", + "want": "that it should run exactly where it has always run", + "lack": "straightened", + "purpose": "the old channel would still be the channel", + "motif": "course", + "prize": "mark", + "conscript": "the engineers", + "asks": "\"This isn't where I go.\"", + "appeasement": { + "move": "walk a stretch of the old course, end to end", + "attribute": "Brawn", + "successes": 2, + "why": "the old way was used", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "given", + "want": "to be given somebody, rather than to have to take them", + "lack": "taking", + "purpose": "nobody would ever have to be taken", + "motif": "drowned", + "prize": "gift", + "conscript": "the yearly one", + "asks": "\"Who's coming in, then?\"", + "appeasement": { + "move": "give the water something you could not afford to lose", + "attribute": "Poise", + "successes": 2, + "why": "it was given, not taken", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + } + ], + "accommodations": [ + { + "id": "took", + "text": "took {conscript} at the ford, one at a time, in low water", + "cruelty": 3, + "fits": [ + "given", + "crossed" + ] + }, + { + "id": "carried", + "text": "carried {conscript} away and put them down a long way off", + "cruelty": 2, + "fits": [ + "carrying", + "crossed", + "given" + ] + }, + { + "id": "changed", + "text": "changed its course through {conscript}'s ground while they slept", + "cruelty": 2, + "fits": [ + "running", + "carrying" + ] + }, + { + "id": "partly", + "text": "gave {conscript} back, but not all at once", + "cruelty": 3, + "fits": [ + "given", + "carrying", + "running" + ] + }, + { + "id": "turning", + "text": "kept {conscript} at the bend, turning, where everyone could see", + "cruelty": 3, + "fits": [ + "given", + "running" + ] + }, + { + "id": "letcross", + "text": "let {conscript} cross the first time, and the second", + "cruelty": 2, + "fits": [ + "crossed", + "given", + "carrying" + ] + } + ], + "prizes": { + "pole": { + "label": "the pole the ferry was worked with", + "function": "the only thing that ever got anybody over and back" + }, + "float": { + "label": "the one thing the river ever brought back upstream", + "function": "the only thing it gave up after it had it" + }, + "mark": { + "label": "the mark cut where the old channel ran", + "function": "the only record of where the water actually belongs" + }, + "gift": { + "label": "what was given willingly, the one year", + "function": "the only time it did not have to take anybody" + } + }, + "placeNames": { + "first": [ + "The Water of the", + "The River of the", + "Along the", + "The Reach of the", + "The Run of the" + ] + }, + "areaNames": { + "approach": [ + "The Ford", + "The Landing", + "The Towpath", + "The Willow Holt", + "The Bank Below" + ], + "complication": [ + "The Weir", + "The Mill Race", + "The Withy Beds", + "The Eyot", + "The Staithe" + ], + "turn": [ + "The Bridge", + "The Ferry", + "The Deep Pool", + "The Confluence", + "The Lock" + ], + "descent": [ + "The Old Channel", + "The Ox-Bow", + "The Drowned Meadow", + "The Sluice", + "The Undercut Bank" + ], + "threshold": [ + "The Head of the Reach", + "The Last Ford", + "The Eel Trap", + "The Slack Water", + "The Bend" + ], + "ending": [ + "Where the Water Turns", + "The Deep", + "Under the Bridge", + "The Given Place" + ] + }, + "factions": [ + { + "id": "given", + "name": "the Given", + "kind": "undead", + "essence": "went in willingly, once a year, and are still down there being polite about it", + "handledBy": "courtesy" + }, + { + "id": "bargees", + "name": "the bargees", + "kind": "living", + "essence": "were working the reach when the water changed and cannot get off it", + "handledBy": "trade" + }, + { + "id": "eels", + "name": "what lives in the deep pool", + "kind": "beast", + "essence": "was here before the river had a name", + "handledBy": "force" + }, + { + "id": "oldchannel", + "name": "what the river left behind", + "kind": "beast", + "essence": "is still in the old course, waiting for the water to come back", + "handledBy": "a toll paid" + } + ], + "triggerGlossary": { + "announced": "came down to the water in the open and stood at the edge", + "seenTwice": "seen from the water twice, on both banks", + "loud": "a raised voice over water, which carries the length of a reach", + "lingering": "stayed on the bank long enough for the water to work at it", + "disturbed": "set foot in the ford, moved a mark, or took something off the water" + }, + "rosters": { + "skirmish": { + "line": "3 Giant Rats in the withy beds", + "foes": [ + { + "n": 3, + "name": "Giant Rat", + "atk": 2, + "def": 3, + "grit": 2, + "nerve": 2, + "note": "swim as fast as you wade" + } + ], + "harmedBy": "anything", + "avoid": "get onto dry ground and they will not follow up the bank" + }, + "fight": { + "line": "3 Ghouls of the drowned on the bank", + "foes": [ + { + "n": 3, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze on a hit; they fight better in water" + } + ], + "harmedBy": "anything", + "avoid": "they will not leave the waterline — ten paces up the bank and they stop" + }, + "battle": { + "line": "1 Troll under the bridge and 2 Ghouls in the shallows", + "foes": [ + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES 2 Grit a round unless the wound was burnt; wet, so fire is hard here" + }, + { + "n": 2, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze on a hit" + } + ], + "harmedBy": "anything, but the Troll only stays down if fire touches it, and everything here is wet — say so before initiative", + "avoid": "it holds the bridge and takes a toll; pay it and it lets you over" + }, + "nightmare": { + "line": "1 Wraith at the ford, 1 Troll and 4 Ghouls", + "foes": [ + { + "n": 1, + "name": "Wraith", + "atk": 5, + "def": 3, + "grit": 10, + "nerve": 5, + "note": "INCORPOREAL — chill touch ignores armour, drains 1 max Grit" + }, + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES unless burnt" + }, + { + "n": 4, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze" + } + ], + "harmedBy": "blessed, silvered or magical weapons for the Wraith ONLY; anything for the rest, fire for the Troll and it is wet", + "avoid": "do not run this without an appeasement route open" + } + }, + "motifs": { + "crossing": { + "danger": "the ford", + "dangerLine": "the river is crossable in four places and it is paying attention to all of them", + "trigger": "disturbed", + "facets": { + "institution": [ + "a ford, a ferry, a bridge and a weir, and forty miles of nothing between them", + "a crossing that is safe at one state of water and at no other", + "banks cut down on both sides where everybody goes in" + ], + "ritual": [ + "leave asked at the water's edge before anybody steps in", + "the ferry worked across and back empty, each time", + "a coin put on the parapet by everyone who uses the bridge" + ], + "demand": [ + "a ford with the water at exactly the height it is safe at", + "a ferry lying at the far bank with the rope slack", + "a parapet with a row of coins and one gap" + ], + "wound": [ + "a ford with the bottom washed out and the marker poles still standing", + "a ferry rope cut on the far side", + "a bridge with the parapet gone and the coins in the water" + ], + "anchor": [ + "the pole the ferry was worked with", + "a set of marker poles that still read true", + "a bridge that has never been taken by the water" + ] + }, + "features": [ + "marker poles standing in the ford", + "a ferry lying at the far bank", + "a row of coins with one gap", + "a cut rope end at a landing", + "a bottom washed out under the poles", + "a parapet down into the water" + ], + "decisions": [ + { + "cue": "a ford with the water at exactly the height it is safe at", + "cost": "the height is right and the bottom may not be", + "resolve": { + "roll": "Wits 2", + "success": "you read the bottom off the marker poles and cross dry-shod, all of you", + "failure": "you go in on the height alone and the bottom is gone under you: roll the clock", + "orElse": "go round to the bridge, costing a Turn and a toll" + } + }, + { + "cue": "a ferry lying at the far bank with the rope gone slack", + "cost": "hauling it over takes both banks and there is only one of you on this side", + "resolve": { + "roll": "Brawn 2", + "success": "you get the ferry across and have a crossing you control for the whole delve", + "failure": "you haul on a rope that is cut and go in with it", + "orElse": "swim it; you cross wet, cold and without your gear, and the water notes it" + } + }, + { + "cue": "a parapet with a row of coins along it and one gap", + "cost": "the coin is a toll and the gap is somebody who did not pay", + "resolve": { + "roll": "Wits 2", + "success": "you fill the gap and the bridge is yours to cross, both ways, unbothered", + "failure": "you take a coin instead and the bridge takes the equivalent: +1 Bane", + "orElse": "cross without paying; something under the bridge follows you the whole reach" + } + }, + { + "cue": "marker poles standing in a ford with the bottom washed out under them", + "cost": "the poles say safe and the river disagrees", + "resolve": { + "roll": "Wits 2", + "success": "you reset the poles honestly and the crossing works for whoever comes after", + "failure": "you leave them and somebody uses them later, and that is on you", + "orElse": "pull the poles down; nothing crosses here again, including you" + } + }, + { + "cue": "a ferry rope cut clean on the far side", + "cost": "somebody cut it from the bank you are not on", + "resolve": { + "roll": "Wits 2", + "success": "you work out who cut it and why, and it is the whole shape of the transgression", + "failure": "you splice and cross, and it is cut again while you are mid-stream", + "orElse": "leave it; the far bank is reachable only by the deep pool" + } + }, + { + "cue": "a bridge with the parapet gone and coins visible in the water beneath", + "cost": "somebody swept the tolls off into the river", + "resolve": { + "roll": "Wits 2", + "success": "you retrieve enough to pay the arrears and the bridge lets everything over", + "failure": "you take them for yourself and every crossing after costs you double", + "orElse": "leave them; the toll is outstanding and the bridge collects it another way" + } + } + ], + "situations": [ + { + "occupant": "a ferryman", + "doing": "working an empty ferry across and back with a pole", + "onArrival": "he brings it in to your bank and waits without speaking", + "because": "the ferry is worked across and back and nobody has been aboard", + "offer": "get aboard and he will take you across anything, once" + }, + { + "occupant": "one of the Given", + "doing": "standing waist-deep at the ford, facing the far bank", + "onArrival": "it turns its head and asks whether you are going over", + "because": "it was taken at the ford and never got over", + "offer": "cross beside it and the water lets you both over" + }, + { + "occupant": "two living bargees", + "doing": "waiting at a landing with a boat and nowhere to take it", + "onArrival": "they ask whether the weir is passable yet", + "because": "the reach closed at both ends with them on it", + "offer": "tell them and they will carry you the whole length of the water" + }, + { + "occupant": "a row of coins", + "doing": "lying along a parapet with one gap in the line", + "onArrival": "the coins are bright and the stone under them is not", + "because": "everybody pays and one did not", + "offer": "put a coin in the gap and the bridge will not let anything follow you" + }, + { + "occupant": "the ford", + "doing": "running at exactly the height it is safe at, and no other", + "onArrival": "the water is glass-flat and there is a wind on the trees", + "because": "it is crossable here and it likes to be asked first", + "offer": "ask leave aloud and it will be crossable whenever you come back" + }, + { + "occupant": "the Mother of Eels", + "doing": "standing in the shallows in the shape of a woman up to the knee", + "onArrival": "the water around her does not move at all", + "because": "she takes one at every crossing and has not been given one", + "offer": "offer her something instead and she will let the whole party over" + } + ], + "temptations": [ + { + "id": "pole", + "cue": "the ferryman's pole", + "benefit": "once, cross anything on foot", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the ferry cannot be worked while you have it" + }, + { + "id": "coin", + "cue": "a toll coin off the parapet", + "benefit": "once, pass a thing that takes tolls", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the toll is now outstanding in your name", + "acceptanceCost": { + "vice": "Greed" + } + }, + { + "id": "poles", + "cue": "a set of true marker poles", + "benefit": "read any crossing correctly", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the crossing you left unmarked catches somebody" + }, + { + "id": "rope", + "cue": "a spliced ferry rope", + "benefit": "once, get everybody across together", + "useCost": { + "bane": 1 + }, + "standingDrawback": "whatever is on the far bank comes over on it too" + }, + { + "id": "leave", + "cue": "leave asked at the water", + "benefit": "once, enter water safely", + "useCost": { + "bane": 1 + }, + "standingDrawback": "leave is given for one crossing, and it counts them" + } + ] + }, + "current": { + "danger": "what it carries", + "dangerLine": "the river takes things away and it has been taking them away from here for a long time", + "trigger": "lingering", + "facets": { + "institution": [ + "a reach that runs one way and has never once run the other", + "eddies at every bend where everything it carries collects", + "a mill race that takes whatever the river is carrying and stops it" + ], + "ritual": [ + "something floated off at the head of the reach every year", + "the eddies raked out each spring and what is in them laid on the bank", + "a float sent down to see whether the reach is clear" + ], + "demand": [ + "an eddy turning slowly with something in it that has not come out", + "a float sent down and not arrived", + "a mill race with the hatch up and nothing coming through" + ], + "wound": [ + "an eddy raked out and everything in it left on the bank, named", + "a reach with the current running backwards for a hundred yards", + "a race choked with what it stopped" + ], + "anchor": [ + "the one thing the river ever brought back upstream", + "a float that always arrives", + "an eddy that gives up what it holds" + ] + }, + "features": [ + "an eddy turning with something in it", + "a float that has not arrived", + "a race hatch up and nothing coming", + "things laid out on a bank, named", + "current running the wrong way", + "a mill race choked" + ], + "decisions": [ + { + "cue": "an eddy turning slowly with something in it that has not come out", + "cost": "reaching in gets it and puts you in the turn", + "resolve": { + "roll": "Brawn 2", + "success": "you get it out clean and it is what somebody at the ending needs to see", + "failure": "you go in after it and the eddy has you for a round: roll the clock", + "orElse": "leave it turning; it turns behind you the whole delve, and you know what is in it" + } + }, + { + "cue": "a float sent down the reach that has not arrived", + "cost": "something between here and there stopped it", + "resolve": { + "roll": "Wits 2", + "success": "you work out where it stopped and what is there, before you get to it", + "failure": "you send another and follow it, and arrive where the first one did", + "orElse": "send nothing; you walk the reach blind, and it is not clear" + } + }, + { + "cue": "a mill race with the hatch up and nothing at all coming through", + "cost": "the race is stopped and the river is not", + "resolve": { + "roll": "Brawn 2", + "success": "you clear the race and what it has been stopping comes through, and it is a lot", + "failure": "you open it wider and it comes through all at once, onto you", + "orElse": "leave the hatch; the water is going somewhere else and that is where the ending is" + } + }, + { + "cue": "things raked out of the eddies and laid on the bank, each with a name", + "cost": "somebody has been recovering and naming them for years", + "resolve": { + "roll": "Poise 2", + "success": "you find who has been doing it and they know every name the river has taken", + "failure": "you disturb the row and the names come off, and cannot be put back", + "orElse": "walk past; you have no names for anything at the ending" + } + }, + { + "cue": "a reach with the current running backwards for a hundred yards", + "cost": "the river is doing something it does not do", + "resolve": { + "roll": "Wits 2", + "success": "you find what is making it run back and can use it to go up the reach", + "failure": "you go into it and are carried the wrong way, fast, into the pool", + "orElse": "stay on the bank; the reach is walked, slowly, and the water watches" + } + }, + { + "cue": "a thing lying on the shingle that the river brought back up", + "cost": "the river gave something back, once, and that is the leverage", + "resolve": { + "roll": "Wits 2", + "success": "you take it and understand what makes it give things up, and can ask again", + "failure": "you take it as salvage and the river takes the equivalent off you", + "orElse": "leave it; nothing here is negotiable and the ending is fought" + } + } + ], + "situations": [ + { + "occupant": "an eddy", + "doing": "turning slowly at a bend with something pale in it", + "onArrival": "the turn slows while you watch and then resumes", + "because": "everything the river carries collects here and one thing will not go on", + "offer": "take what is in it and the river will carry you rather than take you" + }, + { + "occupant": "a living rake-man", + "doing": "laying things out along the bank in a row and naming each one", + "onArrival": "he asks whether you have lost anybody", + "because": "he has been recovering and naming since before the reach closed", + "offer": "give him a name and he will give you what the water took with it" + }, + { + "occupant": "one of the Given", + "doing": "standing chest-deep in the current facing upstream", + "onArrival": "it does not move at all and the water goes round it", + "because": "it went in willingly and the river never carried it off", + "offer": "ask it to move and it will, and the reach clears the whole way down" + }, + { + "occupant": "a mill race", + "doing": "standing with the hatch up and nothing coming through it", + "onArrival": "the water above the hatch is higher than it should be", + "because": "the race stops what the river carries and it is full", + "offer": "clear it and everything the river has been holding comes down at once, usefully" + }, + { + "occupant": "the current", + "doing": "running backwards along a hundred yards of the reach", + "onArrival": "sticks on the surface go up past you at walking pace", + "because": "the river is doing something it does not do", + "offer": "go up with it and it will put you where nothing else could" + }, + { + "occupant": "the Old Man", + "doing": "lying full length in the shallows in the shape of a drowned man", + "onArrival": "the water around him runs uphill an inch", + "because": "he carries things away and he has stopped", + "offer": "give him something to carry and the reach runs true again" + } + ], + "temptations": [ + { + "id": "float", + "cue": "the thing the river brought back", + "benefit": "once, get back something the water took", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the river takes something of equal weight, and chooses", + "acceptanceCost": { + "vice": "Greed" + } + }, + { + "id": "rake", + "cue": "the rake-man's rake", + "benefit": "once, recover what an eddy holds", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the eddy takes you in to the waist each time" + }, + { + "id": "name", + "cue": "a name off the row on the bank", + "benefit": "once, be known to the drowned", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they take you for that person" + }, + { + "id": "hatch", + "cue": "a race hatch pin", + "benefit": "once, stop what the water is carrying", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it stacks up behind, and then comes at once" + }, + { + "id": "stick", + "cue": "a float that always arrives", + "benefit": "once, know what is ahead of you on the water", + "useCost": { + "bane": 1 + }, + "standingDrawback": "whatever is ahead sees it coming too" + } + ] + }, + "course": { + "danger": "where it belongs", + "dangerLine": "the river was moved and it has never accepted that it was", + "trigger": "announced", + "facets": { + "institution": [ + "an old channel running dry beside a new one running full", + "embankments raised on both sides for eight miles", + "a straight cut where every other stretch of the water wanders" + ], + "ritual": [ + "the banks walked each spring and the marks checked", + "the old course kept clear of building, by custom, though it is dry", + "a stone cut where the water used to run" + ], + "demand": [ + "a dry channel with water standing in the bottom of it after no rain", + "an embankment with a wet patch on the dry side", + "a mark cut for the old course, still legible" + ], + "wound": [ + "an embankment cut through in the night, from the field side", + "a drowned meadow where the old channel came back", + "marks for the old course chiselled off" + ], + "anchor": [ + "the mark cut where the old channel ran", + "a survey of both courses, old and new", + "a stretch of bank that has never been raised" + ] + }, + "features": [ + "water standing in a dry channel", + "a wet patch on a dry bank", + "a mark cut for the old course", + "an embankment cut from the field side", + "a drowned meadow", + "a straight cut in a winding river" + ], + "decisions": [ + { + "cue": "a dry channel with water standing in the bottom after weeks of no rain", + "cost": "the river is coming back to it, slowly", + "resolve": { + "roll": "Wits 2", + "success": "you trace how far it has come back and can be somewhere else when it arrives", + "failure": "you camp in the old channel and wake in it: roll the clock", + "orElse": "leave the channel alone; you take the long way round on the raised ground" + } + }, + { + "cue": "an embankment with a wet patch showing on the dry side", + "cost": "the bank is going, from the inside", + "resolve": { + "roll": "Brawn 2", + "success": "you find and stop the leak and the meadow behind stays dry, and they are grateful", + "failure": "you dig at it to see and it goes while you are standing on it", + "orElse": "leave it; the meadow floods behind you and the way back is under water" + } + }, + { + "cue": "a mark cut where the old channel ran, still legible", + "cost": "the mark is the only proof the water was ever moved", + "resolve": { + "roll": "Wits 2", + "success": "you record the mark and can prove at the ending exactly what was done", + "failure": "you chisel it out and there is no proof of anything, for anybody", + "orElse": "leave it; somebody else takes it off before you come back" + } + }, + { + "cue": "an embankment cut through in the night from the field side", + "cost": "somebody let the river out on purpose, onto somebody", + "resolve": { + "roll": "Wits 2", + "success": "you find whose field it was cut from and the transgression is laid bare", + "failure": "you close the cut and the water goes where it was going before, onto others", + "orElse": "leave the cut; the water keeps coming through and the ending is under it" + } + }, + { + "cue": "a straight cut where every other stretch of this water wanders", + "cost": "the cut is engineering and the river hates it", + "resolve": { + "roll": "Wits 2", + "success": "you find the engineer's survey and know exactly what was promised and to whom", + "failure": "you use the cut as a road and the water rises in it, quickly", + "orElse": "go round by the ox-bow, costing a Turn in soft ground" + } + }, + { + "cue": "a drowned meadow where the old channel has come back", + "cost": "the river has taken part of its course back already", + "resolve": { + "roll": "Poise 2", + "success": "you cross the meadow on the old causeway, which is still there under it", + "failure": "you wade it and the old channel takes you as belonging to the field", + "orElse": "go round the meadow entirely; it costs a Turn and the light" + } + } + ], + "situations": [ + { + "occupant": "one of the Given", + "doing": "standing in a dry channel with water round its ankles that has no source", + "onArrival": "it points down the dry course and waits", + "because": "the water was moved and it stayed with the old line", + "offer": "walk the old course with it and the river treats you as belonging to it" + }, + { + "occupant": "a living engineer", + "doing": "pacing an embankment and writing nothing down", + "onArrival": "she asks whether you think the bank will hold", + "because": "she cut the new course and has been walking it ever since", + "offer": "tell her the truth and she will give you the survey of both channels" + }, + { + "occupant": "the old channel", + "doing": "lying dry with water standing in the bottom of it", + "onArrival": "the standing water is moving very slightly, downstream", + "because": "the river was moved and is coming back a foot a year", + "offer": "walk it end to end and the water will not rise on you anywhere" + }, + { + "occupant": "two of the Given", + "doing": "standing in a drowned meadow up to the chest", + "onArrival": "they are facing the way the water used to run", + "because": "the meadow is the old course and it has come back", + "offer": "stand with them a moment and the meadow gives up what is under it" + }, + { + "occupant": "a mark", + "doing": "standing cut into a stone where the old channel ran", + "onArrival": "the cut is sharp and the stone around it is weathered soft", + "because": "it records where the water belongs and somebody kept it legible", + "offer": "read it aloud and the river will hear a claim made on its behalf" + }, + { + "occupant": "the Grey", + "doing": "running in a straight cut where nothing else here runs straight", + "onArrival": "the water in the cut is flat and fast and does not sound like water", + "because": "it was straightened and never forgave it", + "offer": "offer to walk its old line and it will carry you where you ask" + } + ], + "temptations": [ + { + "id": "mark", + "cue": "the old-course mark, cut portable", + "benefit": "once, prove where something belongs", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the river expects you to put it back" + }, + { + "id": "survey", + "cue": "the engineer's survey", + "benefit": "know every channel here, old and new", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you know whose ground was sold to make it" + }, + { + "id": "pin", + "cue": "an embankment pin", + "benefit": "once, hold a bank that is going", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the water goes somewhere else instead, onto somebody" + }, + { + "id": "sod", + "cue": "a sod off the never-raised bank", + "benefit": "once, stand on ground the water respects", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the river treats the ground you left as forfeit", + "acceptanceCost": { + "vice": "Pride" + } + }, + { + "id": "causeway", + "cue": "a knowledge of the drowned causeway", + "benefit": "cross flooded ground dry", + "useCost": { + "bane": 1 + }, + "standingDrawback": "what is under the meadow uses it too" + } + ] + }, + "drowned": { + "danger": "the one it takes", + "dangerLine": "the river has one a year and it has not been given one in a long time", + "trigger": "loud", + "facets": { + "institution": [ + "a deep pool at the bend that has never been sounded", + "a stretch where everybody who goes in comes out at the same place", + "a village that has always known the number and never said it" + ], + "ritual": [ + "something given to the water at the turn of the year, willingly", + "the drowned brought out at the same slack water and laid on the same stone", + "a wreath put on the pool each spring by somebody who lost one" + ], + "demand": [ + "a pool lying dead flat in a wind", + "a laying-out stone, wet, with nothing on it", + "a wreath on the water that has not gone downstream" + ], + "wound": [ + "a year when nobody was given and three were taken", + "the laying-out stone dry and cracked", + "wreaths from every year piled at the bank, none of them ever floated" + ], + "anchor": [ + "what was given willingly, the one year", + "a list of every one it took, in order", + "a pool that gives them back" + ] + }, + "features": [ + "a pool flat in a wind", + "a wet laying-out stone with nothing on it", + "a wreath not going downstream", + "wreaths piled on a bank", + "a list of names in order", + "water going still around you" + ], + "decisions": [ + { + "cue": "a pool lying dead flat while there is wind on the trees", + "cost": "the pool is attending to you specifically", + "resolve": { + "roll": "Poise 2", + "success": "you address it properly, out loud, and it will trade rather than take", + "failure": "you throw something in to test it and it accepts that as the offering: +1 Bane", + "orElse": "go past on the far bank; it follows the bank you are on, all the way" + } + }, + { + "cue": "a laying-out stone, wet, with nothing on it", + "cost": "the stone is kept wet by somebody, or by something being laid on it", + "resolve": { + "roll": "Wits 2", + "success": "you find who lays them out and they know every name the river has", + "failure": "you lie down on it to look and the water comes up over the stone", + "orElse": "leave it; you never learn what the count is or who is keeping it" + } + }, + { + "cue": "a wreath on the water that has not gone downstream", + "cost": "the river is refusing it", + "resolve": { + "roll": "Poise 2", + "success": "you find out whose it is and why it was refused, and can put that right", + "failure": "you push it off and it comes back and stays with you", + "orElse": "leave it turning; the refusal stands and the ending has no way to be given" + } + }, + { + "cue": "wreaths from every year piled at the bank, none of them ever floated", + "cost": "nobody has given willingly for a very long time", + "resolve": { + "roll": "Wits 2", + "success": "you count the years and know exactly how long the debt has been running", + "failure": "you float them all at once and the river takes the arrears at once", + "orElse": "leave the pile; the debt is unmeasured and the ending comes due anyway" + } + }, + { + "cue": "a list of every one it took, in order, cut into a post", + "cost": "the last name is recent and the post is not finished", + "resolve": { + "roll": "Wits 2", + "success": "you read the list and can name the one it wants at the ending", + "failure": "you cut a name of your own into it and the water accepts the entry", + "orElse": "leave the post; you go to the ending with nothing to say" + } + }, + { + "cue": "water going still around your legs where you are standing in it", + "cost": "it has chosen and it is being polite about the timing", + "resolve": { + "roll": "Poise 2", + "success": "you get out and give it something instead, immediately, and it accepts", + "failure": "you stay in and it takes what it came for: -1 max Grit for the delve", + "orElse": "refuse to enter the water at all; every crossing after this is contested" + } + } + ], + "situations": [ + { + "occupant": "the deep pool", + "doing": "lying flat and dark in a wind that is moving everything else", + "onArrival": "it goes flatter when you come to the edge", + "because": "it takes one a year and has not been given one", + "offer": "offer it something of your own and it will let the reach alone" + }, + { + "occupant": "one of the Given", + "doing": "lying on a laying-out stone with its hands crossed", + "onArrival": "it turns its head to you without sitting up", + "because": "it went in willingly the year it was asked", + "offer": "tell it that it was thanked and it will name the one the river wants" + }, + { + "occupant": "a living wreath-maker", + "doing": "piling wreaths on a bank that have never been floated", + "onArrival": "she asks whether you are here for this year's", + "because": "nobody will give and she keeps making them", + "offer": "float one with her and the pool will trade with you" + }, + { + "occupant": "a wreath", + "doing": "turning on the water without going downstream", + "onArrival": "it holds against the current in front of you", + "because": "it was offered and refused", + "offer": "learn whose it is and the river will take an offering again" + }, + { + "occupant": "the Drowner", + "doing": "standing at the edge of the pool in the shape of somebody you almost know", + "onArrival": "the water is dead flat behind it and dead flat in front", + "because": "it has to take one and would much rather be given one", + "offer": "give it something you cannot afford and it will let everybody go" + }, + { + "occupant": "a post", + "doing": "standing at the head of the pool with names cut into it in order", + "onArrival": "the last name is fresh and the wood below it is clean", + "because": "every one taken is cut in and the post is not finished", + "offer": "cut nothing, and read them all aloud, and the pool comes level" + } + ], + "temptations": [ + { + "id": "gift", + "cue": "what was given willingly, the one year", + "benefit": "once, satisfy something that means to take somebody", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the river regards the account as reopened", + "acceptanceCost": { + "vice": "Envy" + } + }, + { + "id": "wreath", + "cue": "a wreath the water refused", + "benefit": "once, be passed over by what takes one", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it takes the next nearest instead" + }, + { + "id": "list", + "cue": "the list of the taken", + "benefit": "know every name the river has", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you can see where the next line goes" + }, + { + "id": "stone", + "cue": "a chip off the laying-out stone", + "benefit": "once, be brought out rather than kept", + "useCost": { + "bane": 1 + }, + "standingDrawback": "somebody else is kept in your place" + }, + { + "id": "still", + "cue": "a stretch of water gone still", + "benefit": "once, cross without being taken", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the stillness follows you onto dry land" + } + ] + } + } +} \ No newline at end of file diff --git a/core/content/valley.json b/core/content/valley.json new file mode 100644 index 0000000..f037e1a --- /dev/null +++ b/core/content/valley.json @@ -0,0 +1,1173 @@ +{ + "id": "valley", + "label": "Valley", + "forgeStageType": "forest", + "schema": 1, + "placeNameStyle": "claimant", + "_model": "Wild kernel that keeps you by being kind. The appetite belongs to the valley — it wants nothing to go over the top, everything to come in out of the wind, everything to end up at the bottom, and its own sky. Every cruelty here looks like hospitality, which is what makes it hard to leave.", + "facetProgression": { + "approach": "institution", + "complication": "ritual", + "turn": "demand", + "descent": "wound", + "threshold": "anchor", + "ending": "demand" + }, + "claimants": [ + "Deep Place", + "Thing Between the Hills", + "Old Bottom", + "Mother of the Bottom", + "Shut Place", + "First Shelter", + "Cloud-Keeper" + ], + "appetites": [ + { + "id": "enclosed", + "want": "that nothing should ever go over the top", + "lack": "gone over", + "purpose": "everything would stay in the bottom", + "motif": "ridges", + "prize": "col", + "conscript": "the ones who left", + "asks": "\"Where would you go, anyway?\"", + "appeasement": { + "move": "go up to the ridge and come back down without crossing", + "attribute": "Brawn", + "successes": 2, + "why": "nobody went over", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "sheltering", + "want": "that everything should come in out of the wind", + "lack": "gone past", + "purpose": "nothing would ever be cold outside it", + "motif": "shelter", + "prize": "hearth", + "conscript": "the travellers", + "asks": "\"You'll stop the night, though?\"", + "appeasement": { + "move": "come in and sit down at a fire that is not yours", + "attribute": "Poise", + "successes": 2, + "why": "somebody came in", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "gathered", + "want": "that everything should come down to it and stay", + "lack": "carried out", + "purpose": "nothing would ever be taken back up", + "motif": "bottom", + "prize": "return", + "conscript": "the carriers", + "asks": "\"You're not taking that up with you?\"", + "appeasement": { + "move": "put something down at the bottom and leave it there", + "attribute": "Wits", + "successes": 2, + "why": "something stayed", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "clouded", + "want": "never to share a sky with anywhere else", + "lack": "cleared", + "purpose": "the weather would always be its own", + "motif": "weather", + "prize": "sky", + "conscript": "the ones who wanted a view", + "asks": "\"It'll clear. It always clears.\"", + "appeasement": { + "move": "wait out one turn of its weather without complaining", + "attribute": "Poise", + "successes": 2, + "why": "its weather was borne", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + } + ], + "accommodations": [ + { + "id": "keptin", + "text": "kept {conscript} in, and was kind about it the whole time", + "cruelty": 2, + "fits": [ + "enclosed", + "sheltering", + "clouded" + ] + }, + { + "id": "tookweather", + "text": "took {conscript}'s weather until they stopped looking up at all", + "cruelty": 2, + "fits": [ + "clouded", + "enclosed" + ] + }, + { + "id": "onenight", + "text": "let {conscript} shelter one night, and then every night after", + "cruelty": 2, + "fits": [ + "sheltering", + "gathered", + "enclosed" + ] + }, + { + "id": "brought", + "text": "brought {conscript} down to the bottom with everything else it has", + "cruelty": 3, + "fits": [ + "gathered", + "clouded" + ] + }, + { + "id": "closedtop", + "text": "closed the top so gently that {conscript} never noticed it had", + "cruelty": 3, + "fits": [ + "enclosed", + "clouded", + "sheltering" + ] + }, + { + "id": "onlywarm", + "text": "was the only warm place for {conscript}, and made certain of it", + "cruelty": 3, + "fits": [ + "sheltering", + "gathered" + ] + } + ], + "prizes": { + "col": { + "label": "the one notch in the skyline that goes over", + "function": "the only way out that is not back the way you came" + }, + "hearth": { + "label": "the fire that was kept in for whoever came", + "function": "the only warmth here that was never a trap" + }, + "return": { + "label": "the thing that came down and was carried back up", + "function": "the only thing that ever left the bottom again" + }, + "sky": { + "label": "the one clear day, kept", + "function": "the only time anybody here saw out" + } + }, + "placeNames": { + "first": [ + "The Valley of the", + "The Bottom of the", + "Between the", + "The Dale of the", + "The Hollow of the" + ] + }, + "areaNames": { + "approach": [ + "The Valley Mouth", + "The Lower Track", + "The Gate in the Wall", + "The First Field", + "The Bridge In" + ], + "complication": [ + "The Bank Wood", + "The Terraces", + "The Byre", + "The Hanging Wood", + "The Beck" + ], + "turn": [ + "The Head of the Valley", + "The Chapel", + "The Old Farm", + "The Long Meadow", + "The Standing Stone" + ], + "descent": [ + "The Bottom Ground", + "The Slack", + "The Boggy Meadow", + "The Scree Foot", + "The Sunless Side" + ], + "threshold": [ + "The Col", + "The Head Wall", + "The Last Wall", + "The Sheepfold", + "The Watershed" + ], + "ending": [ + "The Valley Head", + "Where the Cloud Sits", + "The Bottom of It", + "Over the Top" + ] + }, + "factions": [ + { + "id": "keptin", + "name": "the Kept In", + "kind": "undead", + "essence": "came in out of the weather and have been very comfortable ever since", + "handledBy": "courtesy" + }, + { + "id": "drove", + "name": "the drove", + "kind": "living", + "essence": "were taking stock through and the top closed on them", + "handledBy": "trade" + }, + { + "id": "cloud", + "name": "the cloud that sits in it", + "kind": "beast", + "essence": "is not weather and does not lift", + "handledBy": "waiting" + }, + { + "id": "beck", + "name": "what comes down the beck", + "kind": "beast", + "essence": "has only ever gone one way, which is down", + "handledBy": "force" + } + ], + "triggerGlossary": { + "announced": "came in at the valley mouth in daylight and were seen from the farms", + "seenTwice": "seen on the tops twice from the bottom", + "loud": "a raised voice in a bottom where every sound comes back off both sides", + "lingering": "stayed one night, which is how it starts", + "disturbed": "took a wall down, went over the col, or carried something up out of the bottom" + }, + "rosters": { + "skirmish": { + "line": "2 Dire Wolves in the hanging wood", + "foes": [ + { + "n": 2, + "name": "Dire Wolf", + "atk": 4, + "def": 3, + "grit": 5, + "nerve": 3, + "note": "work you back down toward the bottom" + } + ], + "harmedBy": "anything", + "avoid": "they will not follow you up onto the open ridge" + }, + "fight": { + "line": "4 Bandits who came in and could not get out again", + "foes": [ + { + "n": 4, + "name": "Bandit", + "atk": 3, + "def": 3, + "grit": 4, + "nerve": 3, + "note": "desperate rather than wicked; they want food and a way over" + } + ], + "harmedBy": "anything", + "avoid": "tell them where the col is and they will take it and go" + }, + "battle": { + "line": "1 Troll at the head wall and 2 Dire Wolves", + "foes": [ + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES 2 Grit a round unless the wound was burnt" + }, + { + "n": 2, + "name": "Dire Wolf", + "atk": 4, + "def": 3, + "grit": 5, + "nerve": 3, + "note": "hold the ground below it" + } + ], + "harmedBy": "anything, but the Troll only stays down if fire touches it — say so before initiative; there is wood in the hanging wood", + "avoid": "it holds the head wall and nothing else; the col is a longer climb and it is clear" + }, + "nightmare": { + "line": "1 Wraith on the col, 1 Troll, 1 Ogre and 2 Dire Wolves", + "foes": [ + { + "n": 1, + "name": "Wraith", + "atk": 5, + "def": 3, + "grit": 10, + "nerve": 5, + "note": "INCORPOREAL — chill touch ignores armour, drains 1 max Grit; it stands in the one way out" + }, + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES unless burnt" + }, + { + "n": 1, + "name": "Ogre", + "atk": 5, + "def": 3, + "grit": 12, + "nerve": 3, + "note": "comes up from the bottom" + }, + { + "n": 2, + "name": "Dire Wolf", + "atk": 4, + "def": 3, + "grit": 5, + "nerve": 3, + "note": "cut the way back" + } + ], + "harmedBy": "blessed, silvered or magical weapons for the Wraith ONLY; anything for the rest, fire for the Troll", + "avoid": "do not run this without an appeasement route open" + } + }, + "motifs": { + "ridges": { + "danger": "the tops", + "dangerLine": "the valley has one way over and it would rather you did not know which", + "trigger": "disturbed", + "facets": { + "institution": [ + "ridges on both sides running unbroken for miles", + "one notch in the skyline and cloud sitting in it", + "walls running up both sides to the very top, as though to finish the job" + ], + "ritual": [ + "the tops walked once a year by somebody and nobody else ever", + "a cairn kept on the col by whoever goes over", + "a gate in the top wall left shut, always" + ], + "demand": [ + "a skyline with one notch in it that you can only see from one field", + "a gate in the top wall standing shut with the ground worn on both sides", + "a track going up and stopping at the wall" + ], + "wound": [ + "a col with the cairn thrown down into the valley", + "top walls built up higher than any stock needs", + "a track up to the ridge grassed over in one season" + ], + "anchor": [ + "the one notch in the skyline that goes over", + "a cairn on the col that stands", + "a gate in the top wall that opens" + ] + }, + "features": [ + "a notch in the skyline seen from one field", + "a gate shut in a top wall", + "a track stopping at a wall", + "a cairn thrown down off a col", + "top walls built higher than needed", + "a path grassed over in one season" + ], + "decisions": [ + { + "cue": "a skyline with one notch in it that you can only see from one field", + "cost": "the notch is the way over and the field is the only place it shows", + "resolve": { + "roll": "Wits 2", + "success": "you fix the col from the field and can find it again from anywhere in the bottom", + "failure": "you set off for it from the wrong side and the ridge closes up as you climb", + "orElse": "stay in the bottom; there is no way over and the valley is very pleased" + } + }, + { + "cue": "a gate in the top wall standing shut with the ground worn on both sides", + "cost": "things have gone through it both ways and it is shut now", + "resolve": { + "roll": "Brawn 2", + "success": "you open it and the way over stays open behind you for everybody", + "failure": "you climb the wall instead and knock the top off, and the valley notices: +1 Bane", + "orElse": "leave it shut; the drove cannot get out either, and they were counting on you" + } + }, + { + "cue": "a track going up the fell and stopping dead at a wall", + "cost": "the track was used and the wall is newer than the track", + "resolve": { + "roll": "Wits 2", + "success": "you find where the track resumed on the far side and the whole route is yours", + "failure": "you go over the wall on a guess and are on the tops in the cloud", + "orElse": "follow the wall along, costing a Turn and putting you at the head wall" + } + }, + { + "cue": "a cairn thrown down off the col into the valley", + "cost": "somebody unmarked the way over deliberately", + "resolve": { + "roll": "Brawn 2", + "success": "you rebuild it and the col is findable from the bottom by anyone, for good", + "failure": "you leave it and can find the col once, by luck, and not again", + "orElse": "carry the stones down instead; nothing will ever cross here again" + } + }, + { + "cue": "top walls built up higher than any stock ever needed", + "cost": "the walls are not for sheep", + "resolve": { + "roll": "Wits 2", + "success": "you see what they are for and can get through or over at the one weak place", + "failure": "you climb them where they are strongest and are seen doing it from the bottom", + "orElse": "stay below the walls; the whole top of the valley is closed to you" + } + }, + { + "cue": "a path up to the ridge grassed over in a single season", + "cost": "grass does not do that in a season without help", + "resolve": { + "roll": "Wits 2", + "success": "you find the line under the grass and can walk it up in the dark if you have to", + "failure": "you take the obvious line instead, which is not the path, and it ends in crag", + "orElse": "leave it; every route up from here is unmade ground" + } + } + ], + "situations": [ + { + "occupant": "one of the Kept In", + "doing": "standing in a field looking up at a notch in the skyline", + "onArrival": "it points at the notch and then does not move", + "because": "it can see the way over and has never once gone toward it", + "offer": "go up to the col with it and it will show you the true line" + }, + { + "occupant": "a gate", + "doing": "standing shut in a wall on the very top of the ridge", + "onArrival": "the ground is worn deep on both sides of it and the latch is bright", + "because": "things went through both ways until somebody shut it", + "offer": "open it and the way over stays open behind you" + }, + { + "occupant": "two living drovers", + "doing": "standing at a head wall with stock that cannot climb", + "onArrival": "they ask whether the col is passable", + "because": "the top closed while they were coming through", + "offer": "tell them the way and they will drive you out with them" + }, + { + "occupant": "a cairn", + "doing": "lying thrown down in the scree below a col", + "onArrival": "the stones are stacked at the bottom rather than scattered", + "because": "somebody unmarked the crossing on purpose", + "offer": "rebuild it and everything in the bottom can find the way out" + }, + { + "occupant": "the tops", + "doing": "standing unbroken in both directions with cloud lying along them", + "onArrival": "the cloud thins over exactly one point and closes again", + "because": "there is one way over and the valley hides it", + "offer": "watch for the thinning and it will show you the col, once" + }, + { + "occupant": "the Shut Place", + "doing": "filling the whole head of the valley with walls that go up to the sky", + "onArrival": "the walls are higher at the top than at the bottom", + "because": "it wants nothing to go over and it has been building", + "offer": "tell it you are coming back and it will let you go up" + } + ], + "temptations": [ + { + "id": "col", + "cue": "a knowledge of the one notch", + "benefit": "once, find the way out from anywhere", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the valley closes the col to everyone else while you know it", + "acceptanceCost": { + "vice": "Envy" + } + }, + { + "id": "gatepin", + "cue": "the pin out of the top gate", + "benefit": "once, open a way that was shut", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it cannot be shut again behind you" + }, + { + "id": "cairnstone", + "cue": "a stone off the col cairn", + "benefit": "once, mark a crossing so it stays marked", + "useCost": { + "bane": 1 + }, + "standingDrawback": "everything in the bottom follows the mark" + }, + { + "id": "track", + "cue": "a line of the grassed-over path", + "benefit": "walk up in the dark or the cloud", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the thing that grassed it over notices it being used" + }, + { + "id": "wall", + "cue": "a through-stone out of the top wall", + "benefit": "once, get through what was built to hold you", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the wall is one stone weaker for everything else too" + } + ] + }, + "shelter": { + "danger": "the hospitality", + "dangerLine": "everything here wants you to come in and sit down, and it means it kindly", + "trigger": "lingering", + "facets": { + "institution": [ + "a valley that is the only warm place for a day's walk in any direction", + "farms set so that no traveller ever has to pass a door", + "a chapel with the porch swept and the bench worn" + ], + "ritual": [ + "a fire kept in overnight for anybody who comes", + "a bed made up in every house that is not being used", + "a traveller fed before being asked a single question" + ], + "demand": [ + "a fire kept in with the chairs drawn round it and nobody in them", + "a bed made up and turned down in an empty house", + "a table laid for one more than there are" + ], + "wound": [ + "fires kept in for years in houses with nobody left", + "a porch bench worn through by people waiting to be let out", + "beds made up in every room of a house with the door nailed" + ], + "anchor": [ + "the fire that was kept in for whoever came", + "a house where the door opens outward as well", + "a bed that was slept in one night only" + ] + }, + "features": [ + "a fire kept in with chairs drawn round", + "a bed made up in an empty house", + "a table laid for one more", + "a porch bench worn through", + "a door that only opens inward", + "food set out and still warm" + ], + "decisions": [ + { + "cue": "a fire kept in with the chairs drawn round it and nobody sitting in them", + "cost": "sitting down is the whole of it", + "resolve": { + "roll": "Poise 2", + "success": "you sit, and get up again before you are settled, and the valley respects that", + "failure": "you sit and are comfortable, and the next area is a night later than you thought", + "orElse": "stay standing in the doorway; you are cold and nothing here will speak to you" + } + }, + { + "cue": "a bed made up and turned down in a house with nobody in it", + "cost": "one night is one night, they always say", + "resolve": { + "roll": "Poise 2", + "success": "you sleep on the floor instead and wake rested and still your own", + "failure": "you sleep in the bed and the house counts you as staying: +1 Bane", + "orElse": "sleep out; the weather is the valley's and it knows where you are" + } + }, + { + "cue": "a table laid for one more than there are people in the house", + "cost": "the extra place has been laid every night for years", + "resolve": { + "roll": "Wits 2", + "success": "you find who it is laid for and can carry that name to the ending", + "failure": "you sit in the place and everything at the table welcomes you by their name", + "orElse": "eat nothing; the household is offended and closes to you" + } + }, + { + "cue": "a porch bench worn through by people sitting on it a long time", + "cost": "they were waiting to be let out, not in", + "resolve": { + "roll": "Wits 2", + "success": "you understand what the porch is really for and can leave any house at will", + "failure": "you sit on the bench to rest and find the door behind you has closed", + "orElse": "stand in the yard; you learn nothing and get wet doing it" + } + }, + { + "cue": "a door that opens inward and has no latch on the inside", + "cost": "the house is not locked, exactly", + "resolve": { + "roll": "Brawn 2", + "success": "you fit a latch on the inside and the house cannot keep anybody again", + "failure": "you go in to look and the door is a door again, from the other side", + "orElse": "stay out of the house; what is in it is what you needed" + } + }, + { + "cue": "food set out on a table and still warm in a cold house", + "cost": "somebody cooked it and there is nobody to have cooked it", + "resolve": { + "roll": "Poise 2", + "success": "you thank the house aloud and eat, and it feeds you honestly for the delve", + "failure": "you eat without thanking and are a guest now, in the full sense: +1 Bane", + "orElse": "go hungry; -1 die on Brawn until you eat somewhere else, and there is nowhere else" + } + } + ], + "situations": [ + { + "occupant": "a fire", + "doing": "burning in a grate with four chairs drawn round it and nobody in them", + "onArrival": "the chairs are warm and the fire has just been made up", + "because": "the fire is kept in for whoever comes and nobody has come", + "offer": "sit down for exactly as long as it takes to get warm, and the house will help you" + }, + { + "occupant": "one of the Kept In", + "doing": "laying a table for one more than there are", + "onArrival": "it sets the extra place and looks up at you", + "because": "the place is laid every night for somebody who went over the top", + "offer": "take the place and it will tell you who left and how" + }, + { + "occupant": "a living farmwife", + "doing": "making up a bed in a room nobody uses", + "onArrival": "she asks how many of you there are, and how long", + "because": "she has been making beds since before the top closed", + "offer": "tell her one night and she will tell you the way over" + }, + { + "occupant": "a chapel porch", + "doing": "standing swept with a bench worn through in the middle", + "onArrival": "the bench is warm and the chapel door behind it is shut", + "because": "people sat here a long time waiting to be let out", + "offer": "sit and get up again, and the valley will let you go" + }, + { + "occupant": "the Cloud-Keeper", + "doing": "standing in a doorway with a lamp, holding the door open", + "onArrival": "the wind at your back drops the moment it opens the door", + "because": "it is the only warm place and it knows it", + "offer": "accept one hour of it and it will give you the run of the valley" + }, + { + "occupant": "a table", + "doing": "standing laid and steaming in a house with the fire out", + "onArrival": "the food is hot and the room is cold enough to see your breath", + "because": "the house feeds whoever comes and nobody comes", + "offer": "thank the house aloud before you eat and it will not keep you" + } + ], + "temptations": [ + { + "id": "hearth", + "cue": "an ember off the fire kept in", + "benefit": "be welcome anywhere in the valley", + "useCost": { + "bane": 2 + }, + "standingDrawback": "welcome here is very hard to leave", + "acceptanceCost": { + "vice": "Sloth" + } + }, + { + "id": "latch", + "cue": "an inside latch off a door", + "benefit": "once, keep a place from keeping you", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the door you took it from cannot be shut at all now" + }, + { + "id": "place", + "cue": "the extra place at the table", + "benefit": "once, be expected and provided for", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you are expected every night from now on" + }, + { + "id": "bed", + "cue": "a night's rest in a made bed", + "benefit": "recover as though you had slept properly", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the house counts you as staying" + }, + { + "id": "bench", + "cue": "a knowledge of the porch bench", + "benefit": "once, leave a place that wants you to stay", + "useCost": { + "bane": 1 + }, + "standingDrawback": "somebody else waits on the bench in your place" + } + ] + }, + "bottom": { + "danger": "what comes down", + "dangerLine": "everything in this valley ends up at the bottom eventually, including you", + "trigger": "loud", + "facets": { + "institution": [ + "a bottom made entirely of what used to be on the sides", + "a beck that only ever runs one way and takes everything with it", + "fields at the bottom that have never once needed manuring" + ], + "ritual": [ + "what comes down laid out at the bottom and left", + "nothing carried back up, by custom, by anybody", + "the beck walked down each spring and what is in it collected" + ], + "demand": [ + "a heap of what has come down with the newest things on top", + "a beck with something in it that has stopped moving", + "a field at the bottom with a shape under the turf" + ], + "wound": [ + "a bottom dug over by somebody looking for one thing", + "the beck dammed so that nothing more comes down", + "a heap gone through and everything of value taken up" + ], + "anchor": [ + "the thing that came down and was carried back up", + "a record of everything the bottom has", + "a beck that runs clear" + ] + }, + "features": [ + "a heap with the newest things on top", + "something stopped in the beck", + "a shape under the turf of a field", + "a bottom dug over recently", + "a dam across a beck", + "things laid out and left" + ], + "decisions": [ + { + "cue": "a heap of what has come down with the newest things on top", + "cost": "the newest things are recent and one of them is not a thing", + "resolve": { + "roll": "Wits 2", + "success": "you go through the top of the heap and find what came down last, and when", + "failure": "you dig into the heap and the whole side of it comes down on you", + "orElse": "leave the heap; you never learn what has recently arrived at the bottom" + } + }, + { + "cue": "a beck with something in it that has stopped moving", + "cost": "the beck takes everything down and this has stuck", + "resolve": { + "roll": "Brawn 2", + "success": "you free it and the beck runs clear, and what was behind it comes down usefully", + "failure": "you free it and everything held behind it comes down at once, onto you", + "orElse": "leave it stuck; the beck backs up and the bottom ground floods" + } + }, + { + "cue": "a field at the bottom with a shape under the turf", + "cost": "the field has never needed manuring and this is why", + "resolve": { + "roll": "Wits 2", + "success": "you identify what is under it without opening the ground, and it names the transgression", + "failure": "you open the ground and the field is no longer a field, and the valley minds", + "orElse": "leave the turf; the ending has no body and no proof" + } + }, + { + "cue": "a bottom dug over recently by somebody looking for one particular thing", + "cost": "they were looking and they may have found it", + "resolve": { + "roll": "Wits 2", + "success": "you work out what they were after and whether they got it, and both matter", + "failure": "you dig where they dug and find what they were careful to leave", + "orElse": "leave the diggings; somebody else has the thing and you do not know who" + } + }, + { + "cue": "a dam thrown across the beck so that nothing more comes down", + "cost": "damming the beck is the only defiance anybody here has managed", + "resolve": { + "roll": "Brawn 2", + "success": "you keep the dam and the bottom stops taking; the valley is furious and constrained", + "failure": "you break it and everything held up behind it goes to the bottom at once", + "orElse": "leave it; it fails on its own within the Turn, which is worse" + } + }, + { + "cue": "things laid out at the bottom in rows and left, none of them taken", + "cost": "carrying anything up is the one thing nobody here does", + "resolve": { + "roll": "Wits 2", + "success": "you carry one thing up and the valley's hold breaks a little, permanently", + "failure": "you carry it up and something comes up after it, and it is not pleased", + "orElse": "leave the rows; nothing has ever left the bottom and nothing will" + } + } + ], + "situations": [ + { + "occupant": "a heap", + "doing": "lying at the bottom with everything the valley has taken, newest on top", + "onArrival": "something on the top of it is still warm", + "because": "everything comes down and nothing goes up", + "offer": "take one thing off the top and carry it up, and the valley loosens" + }, + { + "occupant": "one of the Kept In", + "doing": "laying things out at the bottom in rows, carefully", + "onArrival": "it sets one down and looks up to see whether you approve", + "because": "what comes down is laid out and left", + "offer": "carry one row's worth up and it will tell you everything the bottom holds" + }, + { + "occupant": "a living digger", + "doing": "turning over the bottom ground with a spade and no hurry", + "onArrival": "he asks whether you know what a thing looks like", + "because": "he has been looking for one particular thing for years", + "offer": "tell him and he will give you everything else he has turned up" + }, + { + "occupant": "the beck", + "doing": "running down with something stuck in it that has stopped the water", + "onArrival": "the water above the block is rising and the water below is clear", + "because": "it takes everything down and this will not go", + "offer": "free it and the beck will carry you down anywhere, fast" + }, + { + "occupant": "a field", + "doing": "lying green at the bottom with a shape showing under the turf", + "onArrival": "the grass over the shape is greener than the rest", + "because": "the field has never needed manuring", + "offer": "name what is under it and the valley will admit what it did" + }, + { + "occupant": "Old Bottom", + "doing": "filling the whole floor of the valley with what used to be on the sides", + "onArrival": "the ground gives very slightly wherever you put your foot", + "because": "everything comes down to it and stays", + "offer": "leave it something willingly and it will let you take something up" + } + ], + "temptations": [ + { + "id": "return", + "cue": "the thing that was carried back up", + "benefit": "once, take something out of the bottom", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the valley takes something of yours down to replace it", + "acceptanceCost": { + "vice": "Greed" + } + }, + { + "id": "spade", + "cue": "the digger's spade", + "benefit": "once, find what the bottom has", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the ground opens for you wherever you carry it" + }, + { + "id": "record", + "cue": "a record of what the bottom holds", + "benefit": "know everything this valley has taken", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you know which of it was people" + }, + { + "id": "dam", + "cue": "a knowledge of how the dam was built", + "benefit": "once, stop things coming down", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they come all at once when it goes" + }, + { + "id": "row", + "cue": "something off the laid-out rows", + "benefit": "once, have exactly what somebody lost", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they are at the bottom, and they want it" + } + ] + }, + "weather": { + "danger": "the cloud", + "dangerLine": "the valley makes its own weather and it has not shared a sky with anywhere else in years", + "trigger": "announced", + "facets": { + "institution": [ + "cloud lying in the valley when the tops are clear", + "a bottom that gets the sun for two hours and the sides that get it all day", + "weather that comes in at the mouth and does not go out at the head" + ], + "ritual": [ + "the sky looked at each morning and nothing said about it", + "washing hung out on the one good day and never since", + "a clear day marked on a doorframe with the date" + ], + "demand": [ + "cloud lying at exactly head height and not lifting", + "a doorframe with one date cut into it and nothing after", + "washing on a line in weather that will not dry it" + ], + "wound": [ + "a doorframe with the dates going up and then stopping", + "cloud that has been down so long the walls are green with it", + "a sundial in a garden that has not been used in living memory" + ], + "anchor": [ + "the one clear day, kept", + "a doorframe with every clear day cut on it", + "a sky you can see out of" + ] + }, + "features": [ + "cloud lying at head height", + "a doorframe with one date cut in it", + "washing that will not dry", + "walls green with standing cloud", + "a sundial gone unused", + "two hours of sun in a bottom" + ], + "decisions": [ + { + "cue": "cloud lying at exactly head height and showing no sign of lifting", + "cost": "you can go up through it or wait it out", + "resolve": { + "roll": "Poise 2", + "success": "you wait it out without complaining and it lifts for you, properly, once", + "failure": "you push up through it and are on the tops in cloud, without a line", + "orElse": "go along the bottom instead; it costs a Turn and the cloud comes down further" + } + }, + { + "cue": "a doorframe with clear days cut into it and the dates stopping", + "cost": "the last date is the last time anybody saw out", + "resolve": { + "roll": "Wits 2", + "success": "you read the dates and know exactly when the valley closed its sky", + "failure": "you cut today's date in and the valley takes that as a claim about the weather", + "orElse": "leave the frame; you have no idea how long this has been going on" + } + }, + { + "cue": "washing on a line in weather that has never been going to dry it", + "cost": "somebody hung it out hoping, and hopes still", + "resolve": { + "roll": "Poise 2", + "success": "you take it in for them and the household will do anything you ask", + "failure": "you leave it and the household takes that as a judgement on them", + "orElse": "take it in and keep it; you have dry cloth and an enemy in the house" + } + }, + { + "cue": "walls green with cloud that has been lying against them for years", + "cost": "the green is the measure of it", + "resolve": { + "roll": "Wits 2", + "success": "you read the growth and know this is older than anybody living here", + "failure": "you scrape it off to see the stone and the cloud comes down to the ground", + "orElse": "ignore the walls; you take the valley's word for how long this has been" + } + }, + { + "cue": "a sundial in a garden that nobody living has ever seen work", + "cost": "it was set up when there was sun to set it by", + "resolve": { + "roll": "Wits 2", + "success": "you set it right and the valley remembers it had a sky, and thins, once", + "failure": "you take the gnomon and the garden loses its last claim on daylight", + "orElse": "leave it; there is no reckoning of time here at all and the Turns blur" + } + }, + { + "cue": "two hours of sun reaching the bottom and the sides lit all day", + "cost": "the light is up there and you are down here", + "resolve": { + "roll": "Wits 2", + "success": "you time the two hours and can be exactly where you need the light to be", + "failure": "you plan by the light on the sides and are in the dark at the bottom", + "orElse": "move by feel; every roll in the next area is at -1 die for the dark" + } + } + ], + "situations": [ + { + "occupant": "cloud", + "doing": "lying in the valley at head height with the tops clear above it", + "onArrival": "it thins around you and closes again behind", + "because": "the valley makes its own weather and will not lift for anybody", + "offer": "wait in it without complaining and it will lift and show you out" + }, + { + "occupant": "one of the Kept In", + "doing": "cutting a date into a doorframe with a knife", + "onArrival": "it stops and asks whether today counts as clear", + "because": "clear days are cut in and there has not been one", + "offer": "tell it today counts and the cloud lifts as far as the ridge" + }, + { + "occupant": "a living woman", + "doing": "hanging washing in weather that will never dry it", + "onArrival": "she asks whether you think it will clear", + "because": "she has hung it out every day since it closed", + "offer": "take it in for her and she will tell you the two hours the sun reaches" + }, + { + "occupant": "a sundial", + "doing": "standing in a garden with the gnomon bright and the dial green", + "onArrival": "a patch of sun crosses it while you stand there and then goes", + "because": "it was set when there was sun and nobody has seen it work", + "offer": "set it true and the valley will give you its one clear day" + }, + { + "occupant": "the Cloud-Keeper", + "doing": "sitting in the head of the valley with the cloud coming off it", + "onArrival": "the cloud pours downhill from it and does not disperse", + "because": "it will not share a sky with anywhere else", + "offer": "bear its weather once, without complaint, and it will show you the top" + }, + { + "occupant": "the sun", + "doing": "reaching the bottom of the valley for exactly two hours", + "onArrival": "the light comes and goes at the same points on the wall", + "because": "the sides get it all day and the bottom gets almost none", + "offer": "be where the light falls and everything here will deal with you honestly" + } + ], + "temptations": [ + { + "id": "sky", + "cue": "the one clear day, kept", + "benefit": "once, have the weather you need", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the valley takes it back double, and chooses when", + "acceptanceCost": { + "vice": "Wrath" + } + }, + { + "id": "frame", + "cue": "a piece of the dated doorframe", + "benefit": "know when this place closed its sky", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the valley knows you have counted" + }, + { + "id": "gnomon", + "cue": "the gnomon off the sundial", + "benefit": "once, know exactly what hour it is", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the garden it came from has no time at all" + }, + { + "id": "washing", + "cue": "dry cloth from a line that never dried", + "benefit": "once, be warm and dry in its weather", + "useCost": { + "bane": 1 + }, + "standingDrawback": "a household here is offended and stays that way" + }, + { + "id": "light", + "cue": "a knowledge of the two hours", + "benefit": "be in the light when you need to be", + "useCost": { + "bane": 1 + }, + "standingDrawback": "so is everything that has been waiting for it" + } + ] + } + } +} \ No newline at end of file diff --git a/core/skeleton.mjs b/core/skeleton.mjs index 48b1d36..f44590d 100644 --- a/core/skeleton.mjs +++ b/core/skeleton.mjs @@ -22,7 +22,13 @@ import { arcRole } from './director.mjs'; /** Fills {conscript}-style slots. */ -const fill = (tpl, vars) => tpl.replace(/\{(\w+)\}/g, (_, k) => vars[k] ?? `{${k}}`); +const fill = (tpl, vars) => tpl.replace(/\{(\w+)\}/g, (_, k) => vars[k] ?? `{${k}}`) + // Conscripts are plural noun phrases ("the climbers"), so a template's `{conscript}'s` + // renders "the climbers's". English takes a bare apostrophe on a plural already ending in s. + .replace(/s's\b/g, "s'"); + +/** Claimants may already carry their own article — "The Grey" must not become "The The Grey". */ +const named = c => (/^(the|a|an) /i.test(c) ? c : `The ${c}`); /** Facet order used when a facet is exhausted — borrow from a neighbour before repeating. */ const FACET_ORDER = ['institution', 'ritual', 'demand', 'wound', 'anchor']; @@ -62,12 +68,12 @@ export function generateSkeleton({ pack, areas = 6, ending = 'authored', rng }) const prize = { kind: appetite.prize, ...(pack.prizes?.[appetite.prize] ?? {}) }; const transgression = - `The ${claimant} ${fill(accommodation.text, { conscript: appetite.conscript })}, ` + + `${named(claimant)} ${fill(accommodation.text, { conscript: appetite.conscript })}, ` + `so that ${appetite.purpose}.`; // The bottom problem is the claimant itself — a person in a tomb, an office in a town. const bottomProblem = { - label: `The ${claimant}`, + label: named(claimant), wantNow: appetite.want, failureState: `is ${appetite.lack} now, and cannot bear it`, handledBy: 'giving them what they want, at a price', diff --git a/foundry-module/module.json b/foundry-module/module.json index 517ec95..efbb58c 100644 --- a/foundry-module/module.json +++ b/foundry-module/module.json @@ -2,7 +2,7 @@ "id": "vanity-delve", "title": "DELVE — a dungeon layer for VANITY", "description": "Generates a coherent delve and sequences VANITY's Forge to stage it, one area at a time.", - "version": "0.5.0", + "version": "0.6.0", "compatibility": { "minimum": "13", "verified": "14.365" diff --git a/foundry-module/module/core/content/cave.json b/foundry-module/module/core/content/cave.json new file mode 100644 index 0000000..a15f9da --- /dev/null +++ b/foundry-module/module/core/content/cave.json @@ -0,0 +1,1173 @@ +{ + "id": "cave", + "label": "Cave", + "forgeStageType": "cave", + "schema": 1, + "placeNameStyle": "claimant", + "_model": "Wild kernel underground. The appetite belongs to the hole itself — it wants to be gone into, gone down, spoken to, and to keep whatever comes. Claimants are the cave's own names for itself, and the accommodation is what it did to whoever came in.", + "facetProgression": { + "approach": "institution", + "complication": "ritual", + "turn": "demand", + "descent": "wound", + "threshold": "anchor", + "ending": "demand" + }, + "claimants": [ + "Deep Dark", + "Stone Throat", + "Thing in the Sump", + "First Hollow", + "Lightless", + "Old Mouth", + "Long Swallow" + ], + "appetites": [ + { + "id": "unlit", + "want": "never to have a light brought into it", + "lack": "lit", + "purpose": "it would be dark all the way down", + "motif": "dark", + "prize": "flame", + "conscript": "the lamp-carriers", + "asks": "\"Why did you bring that in here?\"", + "appeasement": { + "move": "put out a light of your own, deliberately, and stand in it", + "attribute": "Poise", + "successes": 2, + "why": "the dark was let be", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "deepened", + "want": "that everything which comes in should go further down", + "lack": "turned back", + "purpose": "nothing would ever stop and go back up", + "motif": "deep", + "prize": "plumb", + "conscript": "the turners-back", + "asks": "\"Is that as far as you go?\"", + "appeasement": { + "move": "go down one level further than you meant to", + "attribute": "Brawn", + "successes": 2, + "why": "something went deeper", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "answered", + "want": "that everything said in it should be said back", + "lack": "unanswered", + "purpose": "nothing would ever go unheard", + "motif": "echo", + "prize": "voice", + "conscript": "the silent", + "asks": "\"Say that again?\"", + "appeasement": { + "move": "say something aloud into the dark and wait for it to come back", + "attribute": "Poise", + "successes": 2, + "why": "it was answered", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "keeping", + "want": "that nothing which comes in should ever leave", + "lack": "emptied", + "purpose": "it would still have all of it", + "motif": "keeping", + "prize": "stone", + "conscript": "the ones who got out", + "asks": "\"You're not taking that out, are you?\"", + "appeasement": { + "move": "leave something of your own down here on purpose", + "attribute": "Wits", + "successes": 2, + "why": "it kept something", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + } + ], + "accommodations": [ + { + "id": "swallowed", + "text": "took {conscript} in and closed behind them", + "cruelty": 3, + "fits": [ + "keeping", + "deepened", + "unlit" + ] + }, + { + "id": "unlit", + "text": "let {conscript}'s lights go out one by one", + "cruelty": 3, + "fits": [ + "unlit", + "deepened" + ] + }, + { + "id": "turned", + "text": "turned {conscript} around so gently they never noticed", + "cruelty": 2, + "fits": [ + "deepened", + "unlit", + "keeping" + ] + }, + { + "id": "grown", + "text": "grew over {conscript} where they sat down to rest", + "cruelty": 2, + "fits": [ + "keeping", + "answered" + ] + }, + { + "id": "answered", + "text": "answered {conscript} in their own voices until they followed", + "cruelty": 3, + "fits": [ + "answered", + "unlit", + "deepened" + ] + }, + { + "id": "kept", + "text": "kept {conscript} at the mouth, facing in, so the next lot would come", + "cruelty": 2, + "fits": [ + "keeping", + "answered" + ] + } + ], + "prizes": { + "flame": { + "label": "the last flame that went out down here", + "function": "the only light that ever reached the bottom" + }, + "plumb": { + "label": "the line that was let down and came back up", + "function": "the only thing here that ever measured the depth" + }, + "voice": { + "label": "the one word the cave says in somebody else's voice", + "function": "the only thing down here that was ever answered honestly" + }, + "stone": { + "label": "the stone that grew around something and let it go", + "function": "the only thing the cave ever gave back" + } + }, + "placeNames": { + "first": [ + "The Hole of the", + "Under the", + "The Deep of the", + "The Mouth of the", + "The Swallow of the" + ] + }, + "areaNames": { + "approach": [ + "The Mouth", + "The Entrance Chamber", + "The Daylight Hole", + "The Rift", + "The Spoil Slope" + ], + "complication": [ + "The Crawl", + "The Boulder Choke", + "The Streamway", + "The Flowstone Gallery", + "The Traverse" + ], + "turn": [ + "The Great Chamber", + "The Aven", + "The Cathedral", + "The Junction", + "The Bone Floor" + ], + "descent": [ + "The Pitch", + "The Sump", + "The Muddy Way", + "The Squeeze", + "The Dead Passage" + ], + "threshold": [ + "The Last Chamber", + "The Terminal Sump", + "The Deep Rift", + "The Curtain", + "The Airbell" + ], + "ending": [ + "The Bottom", + "Where the Line Ended", + "The Lightless Room", + "Under the Stone" + ] + }, + "factions": [ + { + "id": "kept", + "name": "the Kept", + "kind": "undead", + "essence": "came in and never got out, and have stopped minding", + "handledBy": "courtesy" + }, + { + "id": "miners", + "name": "the miners", + "kind": "living", + "essence": "came down for the workings and cannot find the way up", + "handledBy": "trade" + }, + { + "id": "dark", + "name": "what the dark does when it is not watched", + "kind": "beast", + "essence": "has never once been seen whole", + "handledBy": "light" + }, + { + "id": "deep", + "name": "what came up from the sump", + "kind": "beast", + "essence": "lives below the water and does not need to breathe", + "handledBy": "force" + } + ], + "triggerGlossary": { + "announced": "came in at the mouth in daylight, with a light burning", + "seenTwice": "passed the same formation twice, going different ways", + "loud": "a raised voice underground, which the cave repeats", + "lingering": "stayed still long enough for the cave to grow a little over you", + "disturbed": "broke a formation, moved a cairn, or let a stone go down a pitch" + }, + "rosters": { + "skirmish": { + "line": "a Bat Swarm and 2 Giant Rats in the entrance chamber", + "foes": [ + { + "n": 1, + "name": "Bat Swarm", + "atk": 3, + "def": 4, + "grit": 4, + "nerve": 3, + "note": "douses open flames on a hit" + }, + { + "n": 2, + "name": "Giant Rat", + "atk": 2, + "def": 3, + "grit": 2, + "nerve": 2, + "note": "go for the light-carrier" + } + ], + "harmedBy": "anything; area attacks and fire do best against the swarm", + "avoid": "shutter your lights and they lose interest entirely" + }, + "fight": { + "line": "1 Ogre in the low passage", + "foes": [ + { + "n": 1, + "name": "Ogre", + "atk": 5, + "def": 3, + "grit": 12, + "nerve": 3, + "note": "cannot follow into a crawl or a squeeze" + } + ], + "harmedBy": "anything", + "avoid": "it cannot fit where you can — the crawl is the answer, and say so" + }, + "battle": { + "line": "1 Troll out of the sump and a Bat Swarm", + "foes": [ + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES 2 Grit a round unless the wound was burnt" + }, + { + "n": 1, + "name": "Bat Swarm", + "atk": 3, + "def": 4, + "grit": 4, + "nerve": 3, + "note": "douses open flames on a hit" + } + ], + "harmedBy": "anything, but the Troll only stays down if fire touches it — say so before initiative, and note the swarm is putting your fires out", + "avoid": "it will not leave the water; stay off the streamway and it stays in" + }, + "nightmare": { + "line": "1 Troll, 1 Ogre and 3 Ghouls of the Kept", + "foes": [ + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES unless burnt" + }, + { + "n": 1, + "name": "Ogre", + "atk": 5, + "def": 3, + "grit": 12, + "nerve": 3, + "note": "blocks the passage behind you" + }, + { + "n": 3, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze on a hit" + } + ], + "harmedBy": "anything; fire for the Troll", + "avoid": "do not run this without an appeasement route open and a way out at your back" + } + }, + "motifs": { + "dark": { + "danger": "the dark", + "dangerLine": "the cave has been dark for a very long time and it has not enjoyed the interruption", + "trigger": "announced", + "facets": { + "institution": [ + "a dark so complete that your eyes invent things in it", + "passages that have never had light in them at any point", + "a mouth where the daylight stops in a hard line" + ], + "ritual": [ + "a candle set in a niche at every junction and lit going in", + "lights counted at the mouth and counted again coming out", + "a lamp left burning at the bottom for whoever is still down" + ], + "demand": [ + "a niche with a candle in it, unlit, and the wick trimmed", + "a lamp guttering with the oil not yet gone", + "a hard line of daylight that stops exactly where you are standing" + ], + "wound": [ + "candles in every niche, all of them burnt out together", + "a lamp smashed against the wall from the inside", + "a line of spent matches going one way down a passage" + ], + "anchor": [ + "the last flame that went out down here", + "a lamp that has never needed filling", + "a candle that will light in any air" + ] + }, + "features": [ + "an unlit candle in a niche", + "a lamp guttering with oil left", + "spent matches in a line", + "a smashed lamp against a wall", + "burnt-out candles in every niche", + "daylight stopping in a hard line" + ], + "decisions": [ + { + "cue": "a niche with a candle in it, unlit, with the wick trimmed ready", + "cost": "lighting it is a courtesy or an intrusion, depending", + "resolve": { + "roll": "Poise 2", + "success": "you light it and the cave lets you pass this junction unmolested, both ways", + "failure": "you light it and something further in sees exactly where you are: +1 Bane", + "orElse": "leave the niche dark; the junction will not stay in the same place behind you" + } + }, + { + "cue": "a lamp guttering on the floor with oil still in the reservoir", + "cost": "it is going out for a reason, not for want of fuel", + "resolve": { + "roll": "Wits 2", + "success": "you work out what is putting it out and can keep your own lights alive down here", + "failure": "you refill it and it goes out anyway, and takes your lights with it", + "orElse": "leave it; your own lights start to gutter within the Turn" + } + }, + { + "cue": "a line of spent matches going one way down a passage", + "cost": "somebody was striking one at a time and losing them", + "resolve": { + "roll": "Wits 2", + "success": "you follow the matches and find where they ran out, and what they had reached", + "failure": "you follow them the wrong way and come out somewhere you have already been", + "orElse": "ignore them; you have no line to follow through the middle passages" + } + }, + { + "cue": "all the candles in every niche burnt out together, at the same length", + "cost": "they went out at once, which takes doing", + "resolve": { + "roll": "Wits 2", + "success": "you find what put them out and can force it back for one scene with fire", + "failure": "you relight the run and it happens again, to yours: roll the clock", + "orElse": "leave them; the dark here is not ordinary and you will not know why" + } + }, + { + "cue": "a hard line of daylight stopping exactly where you stand", + "cost": "crossing it is the last unambiguous decision you will make", + "resolve": { + "roll": "Poise 1", + "success": "you mark the line and can find your way back to it from anywhere", + "failure": "you cross without marking it and the mouth is not where you left it", + "orElse": "turn back at the line; the delve does not happen, and the cave keeps everything" + } + }, + { + "cue": "a lamp smashed against the wall from the inside", + "cost": "somebody down here chose the dark", + "resolve": { + "roll": "Wits 2", + "success": "you find who broke it and why, and the reason is worth knowing", + "failure": "you leave your own light where theirs was and something takes it too", + "orElse": "leave the glass; you never learn what makes a person put their own light out" + } + } + ], + "situations": [ + { + "occupant": "one of the Kept", + "doing": "sitting in a niche with an unlit candle in its hands", + "onArrival": "it holds the candle out toward you without looking up", + "because": "the candle is lit going in and it never went in", + "offer": "light the candle for it and it will walk you to any junction here" + }, + { + "occupant": "a living miner", + "doing": "striking matches one at a time in a passage", + "onArrival": "he asks how many you have left", + "because": "he has been going through them since his lamp failed", + "offer": "give him a light and he will show you the way the workings run" + }, + { + "occupant": "the dark", + "doing": "standing in a chamber where your lights do not reach the walls", + "onArrival": "your flames shorten as you come in and do not go out", + "because": "the cave has never had light this far in", + "offer": "put your lights out on purpose and it will let you through anything" + }, + { + "occupant": "two of the Kept", + "doing": "carrying a lamp between them that is not burning", + "onArrival": "they stop and offer it to you, handle first", + "because": "the lamp goes to the bottom for whoever is still down", + "offer": "take the lamp down and everything here treats you as one of the party" + }, + { + "occupant": "a candle", + "doing": "burning in a niche in a passage nobody has entered", + "onArrival": "the flame leans toward the way you came in", + "because": "somebody lit it going in and never came back past it", + "offer": "take the candle and the cave will not put your lights out" + }, + { + "occupant": "the mouth", + "doing": "showing as a hard line of daylight a long way behind you", + "onArrival": "the line is narrower than when you passed it", + "because": "the cave keeps what comes in and the mouth is how it does that", + "offer": "go back and touch the line and it stops narrowing" + } + ], + "temptations": [ + { + "id": "flame", + "cue": "a stub of the last flame", + "benefit": "once, have light where light does not work", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the cave knows exactly where the flame is at all times", + "acceptanceCost": { + "vice": "Pride" + } + }, + { + "id": "candle", + "cue": "a candle that lights in any air", + "benefit": "your lights cannot be put out by the dark", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the dark attends to you personally instead" + }, + { + "id": "lamp", + "cue": "a lamp that has never needed filling", + "benefit": "light for as long as you want it", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it was somebody's and they are still using it" + }, + { + "id": "matches", + "cue": "a handful of dry matches", + "benefit": "once, buy yourself one scene of light", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the count is finite and you will know when it runs low" + }, + { + "id": "line", + "cue": "a mark cut at the daylight line", + "benefit": "once, find your way back to the mouth", + "useCost": { + "bane": 1 + }, + "standingDrawback": "whatever is between you and it also knows the way now" + } + ] + }, + "deep": { + "danger": "the pitch", + "dangerLine": "the cave goes down further than anybody has been and it would like you to see", + "trigger": "disturbed", + "facets": { + "institution": [ + "a system that goes down in steps, each one further than the last", + "pitches rigged with somebody else's rope, still hanging", + "a survey that stops with the word CONTINUES" + ], + "ritual": [ + "a stone dropped at every pitch head and counted down", + "the line let out and knotted at each ten fathoms", + "a cairn built at the deepest point reached" + ], + "demand": [ + "a pitch head with a rope hanging down it and no knot at the bottom", + "a stone dropped that has not landed yet", + "a cairn half built at the lip of something" + ], + "wound": [ + "a rope cut at the pitch head and the rest of it down there", + "cairns knocked flat all the way down", + "a survey ending mid-word" + ], + "anchor": [ + "the line that was let down and came back up", + "a survey with a bottom marked on it", + "a rope that reaches" + ] + }, + "features": [ + "a rope hanging down a pitch", + "a half-built cairn at a lip", + "a survey ending mid-word", + "a cut rope end at a pitch head", + "knots at every ten fathoms", + "a stone that has not landed" + ], + "decisions": [ + { + "cue": "a pitch head with a rope hanging down it and no knot at the bottom", + "cost": "the rope may not reach and there is no way to know from up here", + "resolve": { + "roll": "Brawn 2", + "success": "you rig it properly off your own gear and get down and back with the rope still there", + "failure": "you go down on it as found and it ends in air: you are down, and it is not coming back up", + "orElse": "do not descend; the way on is through the sump instead, and the sump is worse" + } + }, + { + "cue": "a stone dropped at a pitch head that has not landed yet", + "cost": "the count is still going", + "resolve": { + "roll": "Wits 2", + "success": "you count it out and know exactly what is below, and can plan for it", + "failure": "you stop counting and go down on an assumption", + "orElse": "throw nothing; you descend without knowing what is under you" + } + }, + { + "cue": "a cairn half built at the lip of something", + "cost": "somebody was marking their deepest point and stopped", + "resolve": { + "roll": "Wits 2", + "success": "you finish the cairn and the cave accepts the mark — everything below it is passable", + "failure": "you knock it and the cave stops acknowledging any depth you reach", + "orElse": "leave the cairn; nothing down here will treat you as having got anywhere" + } + }, + { + "cue": "a survey ending mid-word with the word CONTINUES", + "cost": "whoever wrote it went on and did not come back to finish", + "resolve": { + "roll": "Wits 2", + "success": "you read the survey and know the shape of everything below, including the way out", + "failure": "you take the survey as complete and trust a passage that closes", + "orElse": "leave it; you go down blind from here on" + } + }, + { + "cue": "a rope cut clean at the pitch head with the rest of it below", + "cost": "somebody cut it from up here, on purpose", + "resolve": { + "roll": "Wits 2", + "success": "you find who was cut off and why, and what they became down there", + "failure": "you splice on and go down after it, and it is cut again behind you", + "orElse": "leave the rope; whoever is down there stays down there" + } + }, + { + "cue": "a line knotted at every ten fathoms, coiled and dry", + "cost": "the knots say how far it has been", + "resolve": { + "roll": "Brawn 2", + "success": "you use the line and can go down and come back up as often as you need", + "failure": "you let the whole line out and the end goes on falling: roll the clock", + "orElse": "leave the line; every descent from here is one-way" + } + } + ], + "situations": [ + { + "occupant": "a caver of the Kept", + "doing": "standing at a pitch head with a rope in its hands", + "onArrival": "it offers you the end and points down", + "because": "the pitch was never bottomed and it will not go alone", + "offer": "take the rope and it will hold it for you, indefinitely" + }, + { + "occupant": "the pitch", + "doing": "dropping away into air at your feet with a rope hanging in it", + "onArrival": "a stone you did not throw is still falling", + "because": "it has never been bottomed and it wants to be", + "offer": "go down and the cave will let you back up, once" + }, + { + "occupant": "two living miners", + "doing": "paying a line out over a lip and not stopping", + "onArrival": "they ask how deep you think it goes", + "because": "they have been letting it out since their lamps were full", + "offer": "tell them a depth and they will haul, and bring up what is on the end" + }, + { + "occupant": "one of the Kept", + "doing": "building a cairn at a lip, stone by stone", + "onArrival": "it sets a stone and looks at you to approve it", + "because": "it was marking the deepest point reached and never reached further", + "offer": "add a stone and everything below this point lets you through" + }, + { + "occupant": "a survey", + "doing": "hanging pinned to a boulder with the last word unfinished", + "onArrival": "the ink of the last word is still wet", + "because": "whoever wrote it went on and the page waits", + "offer": "finish the word and the cave shows you what is beyond it" + }, + { + "occupant": "the Long Swallow", + "doing": "filling a chamber whose floor you cannot see", + "onArrival": "the air comes up warm and smells of somewhere else", + "because": "everything that comes in goes down and it is still waiting for you", + "offer": "go down willingly and it will not close behind you" + } + ], + "temptations": [ + { + "id": "plumb", + "cue": "the line that came back up", + "benefit": "once, know exactly what is below you", + "useCost": { + "bane": 1 + }, + "standingDrawback": "what is below you knows the same about you" + }, + { + "id": "rope", + "cue": "a rope that reaches", + "benefit": "once, get down and back up anything", + "useCost": { + "bane": 2 + }, + "standingDrawback": "it reaches because something at the bottom is holding it", + "acceptanceCost": { + "vice": "Sloth" + } + }, + { + "id": "survey", + "cue": "the survey with a bottom marked", + "benefit": "know the shape of the system below", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the marked bottom is not the bottom" + }, + { + "id": "cairnstone", + "cue": "a stone off the deepest cairn", + "benefit": "once, be treated as having got there", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the cave expects you to go further next time" + }, + { + "id": "knots", + "cue": "a knotted measuring line", + "benefit": "measure any drop before you take it", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you will measure one you cannot avoid" + } + ] + }, + "echo": { + "danger": "the answer", + "dangerLine": "everything said down here comes back, and lately it has been coming back changed", + "trigger": "loud", + "facets": { + "institution": [ + "chambers shaped so that a word spoken at one end arrives whole at the other", + "a system that carries a voice further than a light", + "passages that answer in a different order than you spoke" + ], + "ritual": [ + "a name called at every junction and waited for", + "the same phrase said at the entrance by everyone going in", + "a whistle used instead of shouting, three notes, always" + ], + "demand": [ + "a chamber that has just stopped repeating something", + "a whistle answered from further in, correctly", + "your own voice arriving from a direction you have not gone" + ], + "wound": [ + "a chamber that repeats a scream at the same interval", + "voices calling names of people who are not down here", + "an answer that comes before the call" + ], + "anchor": [ + "the one word the cave says in somebody else's voice", + "a chamber that gives a true echo", + "a whistle that only carries to the living" + ] + }, + "features": [ + "a chamber still repeating something", + "a whistle answered from ahead", + "your own voice from the wrong direction", + "a name called at a junction", + "an answer arriving before the call", + "three notes with no whistler" + ], + "decisions": [ + { + "cue": "a chamber that has just stopped repeating something you did not say", + "cost": "answering it starts a conversation", + "resolve": { + "roll": "Poise 2", + "success": "you answer carefully and the cave tells you, truthfully, where somebody is", + "failure": "you answer freely and it has your voice now, and uses it: +1 Bane", + "orElse": "say nothing; whatever was calling calls somewhere else, to somebody else" + } + }, + { + "cue": "a whistle of three notes answered correctly from further in", + "cost": "the answer means somebody living, or something that learned", + "resolve": { + "roll": "Wits 2", + "success": "you test it with a fourth note and know which, before you meet it", + "failure": "you whistle back and go toward it, and it is the other one", + "orElse": "stay silent; you never establish whether anybody else is down here" + } + }, + { + "cue": "your own voice arriving from a direction you have not gone", + "cost": "the cave has kept it and is using it", + "resolve": { + "roll": "Poise 2", + "success": "you recognise it as yours and are not drawn — and you learn which passage it came from", + "failure": "one of you follows it, briefly, and is separated", + "orElse": "block your ears; you also cannot hear each other, for a Turn" + } + }, + { + "cue": "a name being called at a junction, over and over, for somebody not down here", + "cost": "the caller does not know they are alone", + "resolve": { + "roll": "Poise 2", + "success": "you tell it the truth gently and it stops, and thanks you, and helps", + "failure": "you answer to the name and it takes you for them: +1 Bane", + "orElse": "walk past; the calling follows you at exactly the same distance" + } + }, + { + "cue": "an answer that arrives before the call it answers", + "cost": "the cave is ahead of you in the conversation", + "resolve": { + "roll": "Wits 2", + "success": "you work out what you are about to say and choose not to say it, which unnerves it", + "failure": "you say the thing anyway and confirm that it knows you", + "orElse": "ignore it; every route from here is chosen for you, quietly" + } + }, + { + "cue": "a chamber repeating a scream at exactly the same interval", + "cost": "the interval is the useful part", + "resolve": { + "roll": "Wits 2", + "success": "you time it and use the gap to cross, or to be heard, exactly once", + "failure": "you cross on the scream and everything down here turns toward the chamber", + "orElse": "go the long way, costing a Turn, and hear it the whole way" + } + } + ], + "situations": [ + { + "occupant": "a voice", + "doing": "calling a name at a junction with nobody there to own it", + "onArrival": "it stops when you arrive and starts again when you move", + "because": "somebody called and was never answered", + "offer": "answer to the name and every passage here will carry your voice truly" + }, + { + "occupant": "one of the Kept", + "doing": "whistling three notes and waiting for the reply", + "onArrival": "it whistles again when it sees you, and waits", + "because": "the reply comes from further in and it will not go alone", + "offer": "whistle the reply and it will lead you to whatever has been answering" + }, + { + "occupant": "a living surveyor", + "doing": "shouting measurements to somebody who is not writing them down", + "onArrival": "she asks you to repeat the last one back", + "because": "her partner stopped answering a long time ago", + "offer": "repeat it back and she will give you the survey she has made" + }, + { + "occupant": "the Stone Throat", + "doing": "filling a chamber with your own voice from a passage you have not entered", + "onArrival": "the voice says something you have not said yet", + "because": "the cave keeps voices and it has kept yours", + "offer": "let it finish and it will tell you one true thing in your own words" + }, + { + "occupant": "two of the Kept", + "doing": "standing apart in a chamber and speaking in turn", + "onArrival": "they leave a gap in the exchange exactly the length of a sentence", + "because": "the third of them stopped speaking and they carried on", + "offer": "say anything into the gap and both will do whatever you ask" + }, + { + "occupant": "an echo", + "doing": "repeating a scream at the same interval in an empty chamber", + "onArrival": "the interval shortens slightly while you listen", + "because": "it happened here and the chamber will not let it go", + "offer": "name what happened and the chamber goes quiet, and stays quiet" + } + ], + "temptations": [ + { + "id": "voice", + "cue": "the word the cave says in another voice", + "benefit": "once, be believed by anything that knew that person", + "useCost": { + "bane": 2 + }, + "standingDrawback": "you say it in their voice and something of them comes with it", + "acceptanceCost": { + "vice": "Envy" + } + }, + { + "id": "whistle", + "cue": "a caver's whistle", + "benefit": "once, be heard by everything living down here", + "useCost": { + "bane": 1 + }, + "standingDrawback": "and by everything that is not" + }, + { + "id": "chamber", + "cue": "a knack for the true-echo chamber", + "benefit": "once, ask the cave a question and get an answer", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it asks one back, and expects it answered" + }, + { + "id": "name", + "cue": "a name called and never answered", + "benefit": "once, make something come to you", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it comes expecting the person whose name it is" + }, + { + "id": "silence", + "cue": "a stretch of passage that does not echo", + "benefit": "once, move or speak without the cave hearing", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you cannot hear it coming either" + } + ] + }, + "keeping": { + "danger": "what it kept", + "dangerLine": "the cave has kept everything that ever came in, and it is still adding", + "trigger": "lingering", + "facets": { + "institution": [ + "formations grown over things that were not stone to begin with", + "a floor of bones with the newest ones on top", + "a system where nothing rots and nothing goes away" + ], + "ritual": [ + "a thing left at the mouth by everyone going in", + "stone laid down a hair a year over whatever is under it", + "the dead left where they fall and grown into the floor" + ], + "demand": [ + "a formation with a shape under it you can nearly make out", + "a shelf of offerings at the mouth with a gap in the row", + "a hand of stone reaching out of a wall, worn smooth" + ], + "wound": [ + "formations broken off and carried out", + "a bone floor dug through in one place, recently", + "the mouth shelf swept clean and the offerings gone" + ], + "anchor": [ + "the stone that grew around something and let it go", + "a formation with a whole thing visible inside it", + "the offering shelf, complete" + ] + }, + "features": [ + "a formation with a shape inside it", + "a gap in a row of offerings", + "a bone floor dug through", + "a stone hand worn smooth", + "broken flowstone carried out", + "a shelf swept clean" + ], + "decisions": [ + { + "cue": "a shelf of offerings at the mouth with a gap in the row", + "cost": "filling the gap pays your way in", + "resolve": { + "roll": "Wits 2", + "success": "you leave something that genuinely costs you and the cave lets you back out", + "failure": "you leave something worthless and it is noticed and remembered: +1 Bane", + "orElse": "leave the gap; the mouth will be smaller on the way out than the way in" + } + }, + { + "cue": "a formation with a shape under it you can nearly make out", + "cost": "breaking it open frees what is inside, or ends it", + "resolve": { + "roll": "Brawn 2", + "success": "you open it carefully and what is inside is grateful, and knows the way", + "failure": "you break it and take the piece, and the cave starts growing over you", + "orElse": "leave it grown over; whatever is in there stays in there, and it was watching" + } + }, + { + "cue": "a bone floor dug through in one place, recently", + "cost": "somebody was looking for something in the older layers", + "resolve": { + "roll": "Wits 2", + "success": "you find what they dug for and get it before they come back", + "failure": "you dig further and the floor gives out into what is under it", + "orElse": "leave the hole; you never learn what is worth digging a bone floor for" + } + }, + { + "cue": "a hand of stone reaching out of a wall, worn smooth by touching", + "cost": "people have been shaking it for a long time", + "resolve": { + "roll": "Poise 2", + "success": "you take the hand properly and the Kept accept you as one who came in politely", + "failure": "you take it and it does not let go until you leave something behind", + "orElse": "do not touch it; the Kept treat you as having walked past them" + } + }, + { + "cue": "broken flowstone stacked ready to be carried out", + "cost": "somebody is taking the cave away in pieces", + "resolve": { + "roll": "Wits 2", + "success": "you find the carriers and can trade — they know every way out because they use them", + "failure": "you carry a piece yourself and the cave will not let you out with it", + "orElse": "leave the stack; the carriers stay hidden and unhelpful" + } + }, + { + "cue": "a stone that has grown around something and split, leaving it loose", + "cost": "the cave gave one thing back, once", + "resolve": { + "roll": "Wits 2", + "success": "you understand what it took to make that happen and can do it again at the ending", + "failure": "you pocket it and the cave takes the equivalent from you: +1 Bane", + "orElse": "leave it; there is no precedent for the cave giving anything up" + } + } + ], + "situations": [ + { + "occupant": "a stone hand", + "doing": "reaching out of a wall at the height of a handshake", + "onArrival": "the fingers are warm and worn smooth", + "because": "everyone who came in shook it and one of them did not let go", + "offer": "take the hand and the Kept will treat you as expected and welcome" + }, + { + "occupant": "one of the Kept", + "doing": "sitting half grown into a flowstone curtain, still able to turn its head", + "onArrival": "it asks how long it has been", + "because": "it sat down to rest and the cave got on with it", + "offer": "give it a number and it will tell you where everything down here was left" + }, + { + "occupant": "two living carriers", + "doing": "stacking broken formations by the passage mouth", + "onArrival": "they ask whether you are here to help carry", + "because": "they have been taking the cave out a sack at a time", + "offer": "carry a sack and they will show you every way out they use" + }, + { + "occupant": "the offering shelf", + "doing": "standing at the mouth with a gap in the row", + "onArrival": "the objects on it are dusted and the gap is not", + "because": "everybody leaves something and somebody took theirs back", + "offer": "fill the gap and the cave lets you out again afterwards" + }, + { + "occupant": "a formation", + "doing": "standing in a chamber with a shape clearly inside it", + "onArrival": "the shape is facing the way you came in", + "because": "the cave keeps things and this is how", + "offer": "speak to it and it answers, and it knows what the cave wants" + }, + { + "occupant": "the bone floor", + "doing": "lying dug through in one place with the spoil beside it", + "onArrival": "the newest bones are on top and one of them is clean", + "because": "the dead are left where they fall and grown over", + "offer": "put the clean bone back and the floor lets you cross anywhere" + } + ], + "temptations": [ + { + "id": "stone", + "cue": "the stone that let something go", + "benefit": "once, get a thing out that the cave has kept", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the cave takes the nearest equivalent, and chooses", + "acceptanceCost": { + "vice": "Greed" + } + }, + { + "id": "offering", + "cue": "something off the mouth shelf", + "benefit": "once, be owed a way out", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you took somebody's passage out, and they are still in here" + }, + { + "id": "bone", + "cue": "a clean bone off the floor", + "benefit": "once, be recognised by the Kept", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they recognise you as one of them" + }, + { + "id": "flowstone", + "cue": "a piece of broken formation", + "benefit": "once, have exactly the thing the cave grew over", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the cave grows over you a little each time you rest" + }, + { + "id": "hand", + "cue": "a cast of the stone hand", + "benefit": "once, be greeted rather than swallowed", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the greeting is binding both ways" + } + ] + } + } +} \ No newline at end of file diff --git a/foundry-module/module/core/content/index.json b/foundry-module/module/core/content/index.json index 42f28da..b19616b 100644 --- a/foundry-module/module/core/content/index.json +++ b/foundry-module/module/core/content/index.json @@ -13,6 +13,12 @@ "geometry": "barrow", "motifs": 4 }, + { + "id": "cave", + "label": "Cave", + "geometry": "cave", + "motifs": 4 + }, { "id": "church", "label": "Church", @@ -31,12 +37,24 @@ "geometry": "forest", "motifs": 4 }, + { + "id": "lake", + "label": "Lake", + "geometry": "fen", + "motifs": 4 + }, { "id": "market", "label": "Market", "geometry": "village", "motifs": 4 }, + { + "id": "mountain", + "label": "Mountain", + "geometry": "cave", + "motifs": 4 + }, { "id": "palace", "label": "Palace", @@ -49,6 +67,12 @@ "geometry": "village", "motifs": 4 }, + { + "id": "river", + "label": "River", + "geometry": "fen", + "motifs": 4 + }, { "id": "temple", "label": "Temple", @@ -61,6 +85,12 @@ "geometry": "village", "motifs": 4 }, + { + "id": "valley", + "label": "Valley", + "geometry": "forest", + "motifs": 4 + }, { "id": "village", "label": "Village", diff --git a/foundry-module/module/core/content/lake.json b/foundry-module/module/core/content/lake.json new file mode 100644 index 0000000..a79a915 --- /dev/null +++ b/foundry-module/module/core/content/lake.json @@ -0,0 +1,1164 @@ +{ + "id": "lake", + "label": "Lake", + "forgeStageType": "fen", + "schema": 1, + "placeNameStyle": "claimant", + "_model": "Wild kernel in still water. Where the river wants movement, the lake wants none: to be left flat, to be looked into, to keep what is under it exactly as it was, and to be a little bigger every year. Claimants are the water's own names for itself.", + "facetProgression": { + "approach": "institution", + "complication": "ritual", + "turn": "demand", + "descent": "wound", + "threshold": "anchor", + "ending": "demand" + }, + "claimants": [ + "The Still", + "Mother of the Deep", + "Thing in the Middle", + "First Water", + "Under-Lady", + "The Wide Eye", + "The Level" + ], + "appetites": [ + { + "id": "undisturbed", + "want": "never to be broken", + "lack": "broken", + "purpose": "the surface would never move again", + "motif": "stillness", + "prize": "stone", + "conscript": "the swimmers", + "asks": "\"Was that you?\"", + "appeasement": { + "move": "stand at the edge and put nothing at all into the water", + "attribute": "Poise", + "successes": 2, + "why": "it was left flat", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "lookedinto", + "want": "that everything should stop and look into it", + "lack": "looked past", + "purpose": "nobody would ever walk by", + "motif": "mirror", + "prize": "glass", + "conscript": "the passers-by", + "asks": "\"Don't you want to see?\"", + "appeasement": { + "move": "look into the water, properly, and do not look away first", + "attribute": "Poise", + "successes": 2, + "why": "it was looked into", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "remembered", + "want": "that what is under it should be remembered as it was", + "lack": "forgotten", + "purpose": "nothing down there would ever be given up", + "motif": "sunken", + "prize": "bell", + "conscript": "the drowned parish", + "asks": "\"Do you know what's down there?\"", + "appeasement": { + "move": "name something that is under the water, and where it stood", + "attribute": "Wits", + "successes": 2, + "why": "it was remembered", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "rising", + "want": "to be a little wider every year", + "lack": "held to a line", + "purpose": "it would go on getting bigger forever", + "motif": "rising", + "prize": "shore", + "conscript": "the drainers", + "asks": "\"Where do you think my edge is?\"", + "appeasement": { + "move": "let the water have one thing it is reaching for", + "attribute": "Wits", + "successes": 2, + "why": "it came up a little", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + } + ], + "accommodations": [ + { + "id": "middle", + "text": "took {conscript} out to the middle and let them look down", + "cruelty": 3, + "fits": [ + "lookedinto", + "undisturbed" + ] + }, + { + "id": "closed", + "text": "closed over {conscript} without a ripple", + "cruelty": 3, + "fits": [ + "undisturbed", + "remembered", + "lookedinto" + ] + }, + { + "id": "rose", + "text": "rose over {conscript}'s ground one summer and did not go back", + "cruelty": 2, + "fits": [ + "rising", + "remembered" + ] + }, + { + "id": "justunder", + "text": "kept {conscript} just under, where they can still be seen from the bank", + "cruelty": 3, + "fits": [ + "remembered", + "lookedinto" + ] + }, + { + "id": "showed", + "text": "showed {conscript} themselves until they went in", + "cruelty": 3, + "fits": [ + "lookedinto", + "undisturbed", + "rising" + ] + }, + { + "id": "furnished", + "text": "keeps {conscript}'s house, furnished, thirty feet down", + "cruelty": 2, + "fits": [ + "remembered", + "rising", + "undisturbed" + ] + } + ], + "prizes": { + "stone": { + "label": "the stone that was thrown and made no ring", + "function": "the only thing that ever went in without disturbing it" + }, + "glass": { + "label": "a piece of the surface that stayed hard", + "function": "the only reflection here that shows what is actually there" + }, + "bell": { + "label": "the bell out of the drowned steeple", + "function": "the only thing down there that can still be heard from the bank" + }, + "shore": { + "label": "the old shore mark, from before it started rising", + "function": "the only record of how big this water is supposed to be" + } + }, + "placeNames": { + "first": [ + "The Water of the", + "The Mere of the", + "The Still Water of the", + "Under the", + "The Deep of the" + ] + }, + "areaNames": { + "approach": [ + "The Shingle", + "The Boathouse", + "The Shore Path", + "The Reed Bed", + "The Jetty" + ], + "complication": [ + "The Shallows", + "The Island", + "The Old Landing", + "The Alder Carr", + "The Cut" + ], + "turn": [ + "The Middle Water", + "The Drowned Steeple", + "The Slipway", + "The Point", + "The Open Water" + ], + "descent": [ + "The Weed Beds", + "The Sunken Village", + "The Cold Layer", + "The Silt", + "The Undercut Shore" + ], + "threshold": [ + "The Last Jetty", + "The Water Line", + "The Bell Tower", + "The Flat Calm", + "The Far Shore" + ], + "ending": [ + "The Middle", + "Where the Bell Is", + "Under the Still Water", + "The Old Shore" + ] + }, + "factions": [ + { + "id": "still", + "name": "the Still", + "kind": "undead", + "essence": "are under it, arranged as they were, and would rather not be moved", + "handledBy": "courtesy" + }, + { + "id": "fishers", + "name": "the fishers", + "kind": "living", + "essence": "work a water that has stopped giving anything up", + "handledBy": "trade" + }, + { + "id": "weed", + "name": "what lives in the weed beds", + "kind": "beast", + "essence": "has never been on the surface and does not want to be", + "handledBy": "force" + }, + { + "id": "reflection", + "name": "what is in the reflection", + "kind": "undead", + "essence": "is on the other side of the surface doing what you do, nearly", + "handledBy": "not looking" + } + ], + "triggerGlossary": { + "announced": "came down to the shore in the open and stood where the water could see you", + "seenTwice": "reflected twice, from two different points of the shore", + "loud": "a raised voice over flat water, which carries to the far bank", + "lingering": "stayed at the edge long enough to be looked at properly", + "disturbed": "threw a stone, put in an oar, or broke the surface in any way at all" + }, + "rosters": { + "skirmish": { + "line": "3 Giant Rats in the reed bed", + "foes": [ + { + "n": 3, + "name": "Giant Rat", + "atk": 2, + "def": 3, + "grit": 2, + "nerve": 2, + "note": "swim better than they run" + } + ], + "harmedBy": "anything", + "avoid": "they will not come out of the reeds onto open shingle" + }, + "fight": { + "line": "3 Ghouls out of the weed beds", + "foes": [ + { + "n": 3, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze on a hit; they come up without a sound" + } + ], + "harmedBy": "anything", + "avoid": "they will not leave the water — get clear of the shallows and they stop at the line" + }, + "battle": { + "line": "1 Troll in the shallows and 2 Ghouls", + "foes": [ + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES 2 Grit a round unless the wound was burnt; wet, so fire is hard here" + }, + { + "n": 2, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze on a hit" + } + ], + "harmedBy": "anything, but the Troll only stays down if fire touches it, and everything here is wet — say so before initiative", + "avoid": "it will not go into deep water; the boat is safe from it and the shore is not" + }, + "nightmare": { + "line": "1 Wraith standing on the water, 1 Troll and 4 Ghouls", + "foes": [ + { + "n": 1, + "name": "Wraith", + "atk": 5, + "def": 3, + "grit": 10, + "nerve": 5, + "note": "INCORPOREAL — chill touch ignores armour, drains 1 max Grit; it does not break the surface" + }, + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES unless burnt" + }, + { + "n": 4, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze" + } + ], + "harmedBy": "blessed, silvered or magical weapons for the Wraith ONLY; anything for the rest, fire for the Troll and it is wet", + "avoid": "do not run this without an appeasement route open" + } + }, + "motifs": { + "stillness": { + "danger": "the surface", + "dangerLine": "the water has been flat for a long time and it notices everything that touches it", + "trigger": "disturbed", + "facets": { + "institution": [ + "a water that is flat in weather that is moving the trees", + "a shore of shingle laid so fine that nothing rolls into the water", + "boats drawn up above the line and none of them wet" + ], + "ritual": [ + "boats carried down and set in without a sound", + "nothing thrown, ever, by anybody who lives here", + "the surface read each morning for anything that broke it in the night" + ], + "demand": [ + "a surface with one ring on it, spreading, from nothing", + "a slipway with the water lying against it and not lapping", + "a stone in your hand and a flat water in front of you" + ], + "wound": [ + "a surface broken all over at once and set that way", + "boats swamped at their moorings on a calm night", + "a shore raked over to hide what came out of the water" + ], + "anchor": [ + "the stone that was thrown and made no ring", + "a boat that goes in without a sound", + "a shore that shows what touched it" + ] + }, + "features": [ + "one ring spreading from nothing", + "boats drawn up dry above the line", + "a shore raked over recently", + "water lying flat against a slipway", + "a swamped boat at a mooring", + "fine shingle that does not roll" + ], + "decisions": [ + { + "cue": "a surface with one ring on it, spreading, from nothing that fell", + "cost": "something came up, or something is about to", + "resolve": { + "roll": "Wits 2", + "success": "you read the ring and know what is under it and how far off", + "failure": "you throw something to see and the water counts that against you: +1 Bane", + "orElse": "back off the shore; whatever made the ring surfaces behind you later" + } + }, + { + "cue": "a slipway with the water lying against it and not lapping at all", + "cost": "putting a boat in will be the loudest thing that has happened here in years", + "resolve": { + "roll": "Poise 2", + "success": "you launch without a sound and the water lets the boat cross the middle", + "failure": "you put it in badly and the whole lake registers it, at once: roll the clock", + "orElse": "stay ashore; the far side is a full day round, and it gets dark" + } + }, + { + "cue": "a shore raked over recently to hide what came out of the water", + "cost": "somebody is tidying up after it", + "resolve": { + "roll": "Wits 2", + "success": "you read what was raked over and know what comes ashore and how often", + "failure": "you rake it again yourself and are taken for the one who has been doing it", + "orElse": "leave the shingle; you camp on it not knowing what uses it" + } + }, + { + "cue": "boats swamped at their moorings on a night with no wind at all", + "cost": "the water came up into them deliberately", + "resolve": { + "roll": "Wits 2", + "success": "you find the one boat it left alone and understand why, and can use it", + "failure": "you bail one out and it is swamped again with you in it", + "orElse": "take no boat; every route is round the shore, and the shore is long" + } + }, + { + "cue": "a stone in your hand and a flat water in front of you", + "cost": "throwing it is the most natural thing in the world", + "resolve": { + "roll": "Poise 1", + "success": "you put the stone down and the water is pleased, and shows you something", + "failure": "you throw it, of course you do, and the rings do not stop spreading", + "orElse": "throw it deliberately, as a challenge; it answers, and it is bigger than you" + } + }, + { + "cue": "fine shingle laid so nothing can roll into the water", + "cost": "somebody made this shore so that nothing would ever disturb it", + "resolve": { + "roll": "Wits 2", + "success": "you find who has been maintaining it and they know exactly what they are keeping calm", + "failure": "you walk it carelessly and send a stone in, and the flatness ends", + "orElse": "go along the bank above the shingle, costing a Turn in the alder carr" + } + } + ], + "situations": [ + { + "occupant": "the water", + "doing": "lying dead flat while the wind moves everything on the bank", + "onArrival": "a single ring spreads on it from nothing at all", + "because": "it has been flat a long time and something has just moved under it", + "offer": "put nothing in and stand still, and it will show you what is down there" + }, + { + "occupant": "a living fisher", + "doing": "holding an oar above the water without putting it in", + "onArrival": "he asks whether you would mind waiting a moment", + "because": "he has not broken the surface in years and it is how he still has a boat", + "offer": "wait with him and he will row you anywhere on it" + }, + { + "occupant": "one of the Still", + "doing": "standing waist-deep with the water flat against it", + "onArrival": "it does not ripple and neither does the water", + "because": "it went in without a sound and the lake approved", + "offer": "go in as quietly and it will take you across the middle" + }, + { + "occupant": "a boat", + "doing": "lying drawn up dry on a slipway with the water against it", + "onArrival": "the water does not lap at the slip and the boat is warm", + "because": "boats go in silently here or not at all", + "offer": "launch it without a sound and the middle water opens to you" + }, + { + "occupant": "a shore", + "doing": "lying raked flat with something dragged across it and smoothed over", + "onArrival": "the rake marks stop halfway and are not resumed", + "because": "somebody tidies up after what comes out and stopped mid-job", + "offer": "finish the raking and whatever comes ashore treats you as its keeper" + }, + { + "occupant": "the Wide Eye", + "doing": "filling the whole middle of the lake with a flatness you can see from the bank", + "onArrival": "it goes flatter, visibly, as you come down to the water", + "because": "it wants no ring on it at all, ever", + "offer": "give it a still hour and it will let you cross without a boat" + } + ], + "temptations": [ + { + "id": "stone", + "cue": "the stone that made no ring", + "benefit": "once, do a thing without being noticed", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the lake watches you continuously instead", + "acceptanceCost": { + "vice": "Sloth" + } + }, + { + "id": "oar", + "cue": "a muffled oar", + "benefit": "cross the water without breaking it", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you cannot move fast on the water at all" + }, + { + "id": "shingle", + "cue": "a handful of the fine shingle", + "benefit": "once, make ground that does not give you away", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it gives away whoever crosses it after you" + }, + { + "id": "rake", + "cue": "the shore-keeper's rake", + "benefit": "once, hide that something came out", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you are taken for its keeper by what comes out" + }, + { + "id": "ring", + "cue": "a knack for reading rings", + "benefit": "know what is under the surface near you", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you know before you can do anything about it" + } + ] + }, + "mirror": { + "danger": "the reflection", + "dangerLine": "the water shows you what is there, and lately it has been showing a little more than that", + "trigger": "seenTwice", + "facets": { + "institution": [ + "a water that reflects the far bank perfectly and the near bank not at all", + "a surface that is clearer looking down than the air is looking across", + "a shore where everyone stops and looks in, and always has" + ], + "ritual": [ + "a look taken into the water at the same point by everyone passing", + "the reflection greeted, politely, before anything else", + "nobody looking in twice from the same place" + ], + "demand": [ + "a reflection that is a half-second behind you", + "a still panel of water in the reeds, exactly face-height", + "a surface showing somebody standing beside you" + ], + "wound": [ + "a reflection that stayed after the person left", + "reeds cut down all along the shore so nothing can be reflected", + "a surface showing a village that is not on the bank" + ], + "anchor": [ + "a piece of the surface that stayed hard", + "a reflection that has never once been wrong", + "a mirror that shows the bank behind you" + ] + }, + "features": [ + "a reflection a half-second late", + "a panel of still water at face height", + "reeds cut down along a shore", + "a reflection with one extra figure", + "a reflected village not on the bank", + "a surface that stayed hard" + ], + "decisions": [ + { + "cue": "a reflection that comes a half-second behind you", + "cost": "the delay is small and it is getting smaller", + "resolve": { + "roll": "Poise 2", + "success": "you catch the delay and can tell reflection from thing for the rest of the delve", + "failure": "you watch it until it catches up and it is level with you now: +1 Bane", + "orElse": "stop looking in; you cannot tell, later, which of two things is which" + } + }, + { + "cue": "a still panel of water in the reeds at exactly face height", + "cost": "it is at that height because that is where faces go", + "resolve": { + "roll": "Poise 2", + "success": "you look in deliberately and do not look away first, and it yields something true", + "failure": "you look and look away, and it keeps the part you did not finish looking at", + "orElse": "do not look; the water asks you again in every area after this" + } + }, + { + "cue": "a reflection showing somebody standing beside you who is not", + "cost": "the extra figure is doing what you do, nearly", + "resolve": { + "roll": "Poise 2", + "success": "you speak to it rather than about it and it answers, and it is useful", + "failure": "you turn to look and it is behind you now instead of beside you", + "orElse": "ignore it entirely; it walks with the party from here and nobody says so" + } + }, + { + "cue": "reeds cut down the whole length of a shore so nothing reflects", + "cost": "somebody stopped this water being able to show anything", + "resolve": { + "roll": "Wits 2", + "success": "you find who cut them and what they were stopping being seen", + "failure": "you clear a panel to look and it shows you what they were preventing", + "orElse": "leave the shore bare; you never get a straight look at anything here" + } + }, + { + "cue": "a surface showing a village that is not on the bank", + "cost": "the reflection is of what was there, not what is", + "resolve": { + "roll": "Wits 2", + "success": "you read the reflected village and know the parish exactly as it stood", + "failure": "you go toward the reflected shore and are wading before you notice", + "orElse": "look away; you come to the ending without knowing what was drowned" + } + }, + { + "cue": "a piece of the surface that has stayed hard, lying on the shingle", + "cost": "the water shed a bit of itself and it is still reflecting", + "resolve": { + "roll": "Wits 2", + "success": "you take it and can see what is actually in front of you, always", + "failure": "you look into it too long and what is in it is looking back, from close", + "orElse": "leave it; the lake keeps its one honest reflection" + } + } + ], + "situations": [ + { + "occupant": "a reflection", + "doing": "standing in the water beside yours and copying you a half-second late", + "onArrival": "it raises a hand slightly before you decide to", + "because": "the lake shows what is there and it has been embellishing", + "offer": "greet it rather than turn round, and it will show you what is under the water" + }, + { + "occupant": "one of the Still", + "doing": "standing at the water's edge looking at its own reflection", + "onArrival": "it asks you whether that looks like it", + "because": "it went in looking at itself and cannot stop", + "offer": "tell it the truth and it will let you look in safely, once" + }, + { + "occupant": "a living reed-cutter", + "doing": "cutting the last reeds along a shore that is already bare", + "onArrival": "he asks whether you have looked in yet", + "because": "he has been stopping the water reflecting anything for years", + "offer": "ask him why and he will tell you exactly what the lake shows" + }, + { + "occupant": "a panel of still water", + "doing": "lying in the reeds at exactly the height of a face", + "onArrival": "the reeds around it are pressed back at shoulder width", + "because": "everyone who passes looks in here", + "offer": "look in and do not look away, and the water gives you something true" + }, + { + "occupant": "the reflected village", + "doing": "showing under the surface with the lanes and the roofs clear", + "onArrival": "a light goes on in one of the reflected windows", + "because": "it shows what was there before the water rose", + "offer": "name a building aloud and the water will give up what is in it" + }, + { + "occupant": "the Under-Lady", + "doing": "standing in the reflection of the bank you are on, facing out", + "onArrival": "she is not standing on the bank itself", + "because": "she is on the other side of the surface, doing what you do", + "offer": "match her, exactly, and she will let you through to what is under" + } + ], + "temptations": [ + { + "id": "glass", + "cue": "the piece of surface that stayed hard", + "benefit": "see what is actually there, always", + "useCost": { + "bane": 2 + }, + "standingDrawback": "what is actually there also sees you", + "acceptanceCost": { + "vice": "Pride" + } + }, + { + "id": "panel", + "cue": "a knowledge of the face-height panels", + "benefit": "once, ask the water a question and be shown", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it shows you more than you asked" + }, + { + "id": "reed", + "cue": "a cut reed off the bare shore", + "benefit": "once, stop a thing being reflected", + "useCost": { + "bane": 1 + }, + "standingDrawback": "including yourself, which has consequences" + }, + { + "id": "double", + "cue": "a reflection that walks with you", + "benefit": "once, be in two places to anything watching", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it does what you do, nearly, and the difference grows" + }, + { + "id": "village", + "cue": "a knowledge of the drowned parish as it stood", + "benefit": "know where everything under the water is", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the Still know that you know" + } + ] + }, + "sunken": { + "danger": "what is under it", + "dangerLine": "there is a parish under this water and it has not been told that it drowned", + "trigger": "loud", + "facets": { + "institution": [ + "a steeple standing out of the water at low summer", + "a village kept whole thirty feet down, furnished", + "a shore with the road going into the water and out the other side" + ], + "ritual": [ + "the bell heard from the bank at the turn of the year", + "names of the drowned parish read on the shore each spring", + "a boat rowed over the steeple and nothing said while above it" + ], + "demand": [ + "a steeple showing with the weathercock just clear", + "a bell heard on a day that is not the turn of the year", + "a road going into the water with fresh tracks on it" + ], + "wound": [ + "a steeple with the top courses taken for building stone", + "the reading of the names given up in somebody's lifetime", + "a village down there with the doors standing open" + ], + "anchor": [ + "the bell out of the drowned steeple", + "a list of the parish as it was, house by house", + "a road that comes out the other side" + ] + }, + "features": [ + "a steeple showing at low water", + "a road going into the water", + "a bell heard out of season", + "doors standing open underwater", + "a parish list, house by house", + "stone robbed off a steeple top" + ], + "decisions": [ + { + "cue": "a steeple showing above the water with the weathercock just clear", + "cost": "the tower is enterable at this level and will not be for long", + "resolve": { + "roll": "Brawn 2", + "success": "you get into the tower and the bell is there, and it can still be rung", + "failure": "you go in on a falling level and the water comes back over the door", + "orElse": "stay off it; the bell stays down there and the ending has no voice" + } + }, + { + "cue": "a bell heard from the bank on a day that is not the turn of the year", + "cost": "something is ringing it, or something wants it rung", + "resolve": { + "roll": "Poise 2", + "success": "you answer the bell properly and the drowned parish receives you as visitors", + "failure": "you row out to it and the ringing stops while you are over the tower", + "orElse": "ignore it; it rings every area from here, closer each time" + } + }, + { + "cue": "a road going into the water with fresh tracks on it", + "cost": "something has been using the road, in or out", + "resolve": { + "roll": "Wits 2", + "success": "you read the tracks and know which way and how recently, and can be elsewhere", + "failure": "you follow them in and the road goes on down for a long way", + "orElse": "take the shore path; it costs a Turn and passes the weed beds" + } + }, + { + "cue": "a village thirty feet down with the doors standing open", + "cost": "open doors mean they left, or mean something got in", + "resolve": { + "roll": "Wits 2", + "success": "you work out which and know what is down there before you have to meet it", + "failure": "you go down to look and one of the doors closes above you", + "orElse": "stay on the surface; you meet what is in the village without warning" + } + }, + { + "cue": "stone robbed off the top courses of the drowned steeple", + "cost": "somebody has been taking the church for building", + "resolve": { + "roll": "Wits 2", + "success": "you find where the stone went and it is standing in something you will visit", + "failure": "you take a course yourself and the parish notices immediately", + "orElse": "leave it; the theft is unacknowledged and the parish blames whoever comes" + } + }, + { + "cue": "a list of the parish as it was, house by house, in a dry hand", + "cost": "the list is the whole memory of the place", + "resolve": { + "roll": "Wits 2", + "success": "you read it and can name anything down there, which is the appeasement in your hand", + "failure": "you take it away and the parish loses the last record of itself", + "orElse": "leave it; you go to the ending unable to name a single one of them" + } + } + ], + "situations": [ + { + "occupant": "a steeple", + "doing": "standing out of flat water with the weathercock just clear", + "onArrival": "the vane turns although there is no wind on the water", + "because": "the parish is down there and the tower is how you reach it", + "offer": "go in at the belfry window and the bell will answer to you" + }, + { + "occupant": "one of the Still", + "doing": "standing in a doorway thirty feet down, quite visible", + "onArrival": "it lifts a hand as your shadow crosses the water above", + "because": "it is at its own front door and has not been told", + "offer": "name its house aloud and it will open every door down there" + }, + { + "occupant": "a living stone-robber", + "doing": "landing dressed stone off a boat at a slipway", + "onArrival": "he asks whether you are here about the church", + "because": "he has been taking the steeple down a course at a time", + "offer": "tell him to stop and the parish will treat you as its advocate" + }, + { + "occupant": "a bell", + "doing": "sounding under the water on a day that is not the turn of the year", + "onArrival": "the sound arrives at the bank a moment after the water moves", + "because": "it is rung at the turn of the year and something has rung it early", + "offer": "answer it from the shore and the drowned parish comes up to talk" + }, + { + "occupant": "a road", + "doing": "running down into the water with tracks on it going both ways", + "onArrival": "the tracks below the waterline are as fresh as the ones above", + "because": "the road went to the village and it still goes there", + "offer": "walk it in and the water lets you down as far as the crossroads" + }, + { + "occupant": "the drowned parish", + "doing": "standing in its lanes under thirty feet of still water", + "onArrival": "every face down there turns up toward the boat at once", + "because": "they are kept as they were and would like to be remembered so", + "offer": "read them their own names and they will give you anything they have" + } + ], + "temptations": [ + { + "id": "bell", + "cue": "the bell out of the steeple", + "benefit": "once, be heard by everything drowned here", + "useCost": { + "bane": 2 + }, + "standingDrawback": "everything drowned here comes when it hears it", + "acceptanceCost": { + "vice": "Wrath" + } + }, + { + "id": "list", + "cue": "the parish list, house by house", + "benefit": "name anything under the water", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the parish expects to be visited" + }, + { + "id": "vane", + "cue": "the weathercock off the steeple", + "benefit": "once, know which way a thing is turning", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the steeple has no mark and the water rises over it" + }, + { + "id": "key", + "cue": "a house key off a drowned door", + "benefit": "once, open a door that is under water", + "useCost": { + "bane": 1 + }, + "standingDrawback": "whoever lived there comes with you through it" + }, + { + "id": "stone", + "cue": "a dressed stone off the church", + "benefit": "once, build something that will stand", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the parish knows exactly where its stone went" + } + ] + }, + "rising": { + "danger": "the level", + "dangerLine": "the water is bigger than it was last year and nobody has ever seen it go down", + "trigger": "lingering", + "facets": { + "institution": [ + "a shore with three old waterlines above the present one", + "trees standing dead in the shallows a long way out", + "a boathouse with the doors under water and the roof dry" + ], + "ritual": [ + "the level read off a marked post each spring", + "a stone set at the edge each year and left", + "the drainage cut opened every summer and every summer refilled" + ], + "demand": [ + "a level post with the water at the newest mark", + "a stone set at last year's edge, standing in water", + "a drainage cut with the water sitting level in it, not draining" + ], + "wound": [ + "level posts pulled up and thrown in", + "a village street with water standing in the doorways", + "drainage cuts filled in by somebody in a hurry" + ], + "anchor": [ + "the old shore mark, from before it started rising", + "a post with every year's level cut into it", + "a cut that still drains" + ] + }, + "features": [ + "a level post with the water at the newest mark", + "a marker stone standing in water", + "three old waterlines above the present one", + "dead trees out in the shallows", + "a drainage cut sitting level", + "water standing in doorways" + ], + "decisions": [ + { + "cue": "a level post with the water standing at the newest mark", + "cost": "cutting a new mark records the rise; pulling the post denies it", + "resolve": { + "roll": "Wits 2", + "success": "you cut the year honestly and the water is satisfied to be measured, and eases", + "failure": "you pull the post up and the water comes to where the post was: +1 Bane", + "orElse": "leave it; the rise is unrecorded and nobody downstream is warned" + } + }, + { + "cue": "a marker stone set at last year's edge, now standing in water", + "cost": "the stones say how fast, if you can find enough of them", + "resolve": { + "roll": "Wits 2", + "success": "you find the run of stones and know exactly how fast it is coming and when it reaches you", + "failure": "you move one to where you would rather it were and the water follows it", + "orElse": "ignore the stones; you camp somewhere that is under water by morning" + } + }, + { + "cue": "a drainage cut with the water sitting level in it and not draining", + "cost": "the cut works and the lake is refusing to use it", + "resolve": { + "roll": "Brawn 2", + "success": "you find the blockage and the cut runs, and one field comes back out of the water", + "failure": "you deepen it and the lake comes up the cut instead, faster", + "orElse": "fill the cut in; the lake is pleased and everything low is lost" + } + }, + { + "cue": "three old waterlines showing on a shore above the present one", + "cost": "the lines are not evenly spaced and the gaps are the point", + "resolve": { + "roll": "Wits 2", + "success": "you read the spacing and know when it rose fastest, and what happened that year", + "failure": "you read them wrong and are confident about a shore that is not safe", + "orElse": "leave the shore; you have no idea how quickly this can move" + } + }, + { + "cue": "a village street with water standing in the doorways, ankle deep", + "cost": "people are still living in some of these houses", + "resolve": { + "roll": "Poise 2", + "success": "you get the last of them out and they know every drain, cut and sluice here", + "failure": "you go through and leave them, and they are part of the water by the ending", + "orElse": "go round; the street is under to the sill by the time you come back" + } + }, + { + "cue": "dead trees standing a long way out in the shallows", + "cost": "the water came up around them and they took years to die", + "resolve": { + "roll": "Wits 2", + "success": "you count the rings on a fallen one and know how long this has been happening", + "failure": "you take one for a raft and the lake takes exception to being crossed on itself", + "orElse": "leave them; you have no idea how old this appetite is" + } + } + ], + "situations": [ + { + "occupant": "a level post", + "doing": "standing in water with every year cut into it and the newest mark under", + "onArrival": "the water is exactly at the top cut and is not moving", + "because": "the level is read each spring and the reading stopped", + "offer": "cut this year's mark and the water will not come further while you are here" + }, + { + "occupant": "a living drainer", + "doing": "digging a cut that is already full of level water", + "onArrival": "she asks whether it looks like it is running to you", + "because": "she has been opening the same cut every summer for thirty years", + "offer": "tell her the truth and she will show you every low place here" + }, + { + "occupant": "one of the Still", + "doing": "standing in a doorway with water to its knees, keeping house", + "onArrival": "it apologises for the state of the floor", + "because": "the water rose over it and it has not accepted that it has", + "offer": "help it bail and it will tell you how far this water means to come" + }, + { + "occupant": "a run of marker stones", + "doing": "standing in a line out into the water from the shore", + "onArrival": "the nearest one is dry and the next one is not", + "because": "a stone is set at the edge each year and the line goes out a long way", + "offer": "set a stone at today's edge and the lake will stop at it for the delve" + }, + { + "occupant": "dead trees", + "doing": "standing far out in the shallows with the bark long gone", + "onArrival": "the water around their roots is warmer than the rest", + "because": "the lake came up around them and they were years dying", + "offer": "count them and the lake will tell you what it is reaching for" + }, + { + "occupant": "the Level", + "doing": "lying against a shore that is plainly not its original one", + "onArrival": "the water is a hand's width higher on the shingle than your first look", + "because": "it wants to be wider every year and nothing has ever stopped it", + "offer": "give it one thing it is reaching for and it will leave the rest" + } + ], + "temptations": [ + { + "id": "shore", + "cue": "the old shore mark", + "benefit": "once, hold the water to a line", + "useCost": { + "bane": 2 + }, + "standingDrawback": "it takes the difference somewhere else, and lower", + "acceptanceCost": { + "vice": "Gluttony" + } + }, + { + "id": "post", + "cue": "a level post with every year on it", + "benefit": "know exactly how fast this is happening", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you know which night you should not be here" + }, + { + "id": "stone", + "cue": "a marker stone off the run", + "benefit": "once, set where the edge is", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the water accepts the mark and comes to it" + }, + { + "id": "cut", + "cue": "a drainer's plan of the cuts", + "benefit": "move water off ground that is going under", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it goes onto ground somebody else is standing on" + }, + { + "id": "ring", + "cue": "a section cut from a drowned tree", + "benefit": "know how old this appetite is", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it is older than you would like, and it knows you counted" + } + ] + } + } +} \ No newline at end of file diff --git a/foundry-module/module/core/content/mountain.json b/foundry-module/module/core/content/mountain.json new file mode 100644 index 0000000..452c2e7 --- /dev/null +++ b/foundry-module/module/core/content/mountain.json @@ -0,0 +1,1165 @@ +{ + "id": "mountain", + "label": "Mountain", + "forgeStageType": "cave", + "schema": 1, + "placeNameStyle": "claimant", + "_model": "Wild kernel at altitude. The appetite belongs to the hill — it wants to be gone up, to be cold, to be the only way through, and to have everything come to rest at its foot. Claimants are the mountain's own names, and its cruelties are all things weather does anyway.", + "facetProgression": { + "approach": "institution", + "complication": "ritual", + "turn": "demand", + "descent": "wound", + "threshold": "anchor", + "ending": "demand" + }, + "claimants": [ + "White Head", + "Old Cold", + "Thing Above the Snow", + "First Stone", + "Grandfather", + "Cloud-Sitter", + "The Watcher" + ], + "appetites": [ + { + "id": "climbed", + "want": "to be gone up and not come down from", + "lack": "descended", + "purpose": "everything that went up would stay up", + "motif": "ascent", + "prize": "cairn", + "conscript": "the climbers", + "asks": "\"Is that as high as you're going?\"", + "appeasement": { + "move": "go up one stretch you did not have to", + "attribute": "Brawn", + "successes": 2, + "why": "something went higher", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "cold", + "want": "never to have anything warm on it", + "lack": "warmed", + "purpose": "nothing would ever be comfortable up here", + "motif": "cold", + "prize": "fire", + "conscript": "the fire-lighters", + "asks": "\"Are you cold yet?\"", + "appeasement": { + "move": "go without your fire for a night, on purpose", + "attribute": "Brawn", + "successes": 2, + "why": "it was cold and you bore it", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "crossed", + "want": "that nothing should get past it without asking", + "lack": "gone round", + "purpose": "every crossing would come through it", + "motif": "pass", + "prize": "waystone", + "conscript": "the travellers", + "asks": "\"And where do you think you're going?\"", + "appeasement": { + "move": "ask the pass for leave, aloud, before you go through", + "attribute": "Poise", + "successes": 2, + "why": "it was asked", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "settled", + "want": "that everything should come down to it and stay", + "lack": "carried off", + "purpose": "nothing would ever be taken away again", + "motif": "weight", + "prize": "stone", + "conscript": "the carriers", + "asks": "\"Why are you carrying that?\"", + "appeasement": { + "move": "put something down and leave it where it falls", + "attribute": "Wits", + "successes": 2, + "why": "something came to rest", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + } + ], + "accommodations": [ + { + "id": "kepthigh", + "text": "kept {conscript} at the top, facing out, where they can still be seen", + "cruelty": 3, + "fits": [ + "climbed", + "cold", + "settled" + ] + }, + { + "id": "goodweather", + "text": "let {conscript} go up in good weather and did not let them down in it", + "cruelty": 3, + "fits": [ + "climbed", + "cold" + ] + }, + { + "id": "chilled", + "text": "took {conscript}'s warmth a finger at a time until they stopped noticing", + "cruelty": 2, + "fits": [ + "cold", + "crossed", + "climbed" + ] + }, + { + "id": "camedown", + "text": "came down on {conscript} in the night, all at once", + "cruelty": 3, + "fits": [ + "settled", + "cold" + ] + }, + { + "id": "closed", + "text": "closed the pass behind {conscript} and did not open it again", + "cruelty": 2, + "fits": [ + "crossed", + "settled", + "climbed" + ] + }, + { + "id": "landmark", + "text": "made a landmark of {conscript}, which travellers still steer by", + "cruelty": 2, + "fits": [ + "settled", + "crossed", + "cold" + ] + } + ], + "prizes": { + "cairn": { + "label": "the topmost stone of the summit cairn", + "function": "the only proof anybody ever got all the way up" + }, + "fire": { + "label": "the fire that stayed lit above the snowline", + "function": "the only warm thing this hill ever allowed" + }, + "waystone": { + "label": "the waystone from the top of the pass", + "function": "the only thing that ever said which way was through" + }, + "stone": { + "label": "the stone that stopped rolling", + "function": "the only thing here that ever came to rest of its own accord" + } + }, + "placeNames": { + "first": [ + "The Mountain of the", + "Above the", + "The Head of the", + "The Cold of the", + "The High Place of the" + ] + }, + "areaNames": { + "approach": [ + "The Corrie", + "The Shieling", + "The Lower Slopes", + "The Bothy", + "The Path Up" + ], + "complication": [ + "The Scree", + "The Ridge", + "The Boulder Field", + "The Steep Ground", + "The Traverse Ledge" + ], + "turn": [ + "The Bealach", + "The Snowline", + "The Cairn", + "The Great Buttress", + "The Plateau" + ], + "descent": [ + "The Gully", + "The Cornice", + "The North Face", + "The Frozen Burn", + "The Avalanche Ground" + ], + "threshold": [ + "The Last Cairn", + "The Shoulder", + "The Summit Ridge", + "The Windbreak", + "The Cleft" + ], + "ending": [ + "The Summit", + "Where the Stones Are Piled", + "Above the Cloud", + "The Cold Place" + ] + }, + "factions": [ + { + "id": "left", + "name": "the Left", + "kind": "undead", + "essence": "went up and are still up, and are past minding about it", + "handledBy": "courtesy" + }, + { + "id": "drovers", + "name": "the drovers", + "kind": "living", + "essence": "were taking stock over the pass when it closed", + "handledBy": "trade" + }, + { + "id": "cold", + "name": "the cold itself", + "kind": "beast", + "essence": "is not hunting you and will kill you anyway", + "handledBy": "shelter" + }, + { + "id": "above", + "name": "what walks above the snowline", + "kind": "beast", + "essence": "has never been down and does not intend to be", + "handledBy": "force" + } + ], + "triggerGlossary": { + "announced": "came up the path in daylight, where the whole hill can see you", + "seenTwice": "skylined twice on the same ridge", + "loud": "a raised voice on a slope with snow above it", + "lingering": "stopped moving long enough for the cold to start working", + "disturbed": "took a stone off a cairn, crossed a cornice, or lit a fire above the snowline" + }, + "rosters": { + "skirmish": { + "line": "2 Dire Wolves on the lower slopes", + "foes": [ + { + "n": 2, + "name": "Dire Wolf", + "atk": 4, + "def": 3, + "grit": 5, + "nerve": 3, + "note": "work you downhill, away from the path" + } + ], + "harmedBy": "anything", + "avoid": "get above them and they will not come up at you" + }, + "fight": { + "line": "1 Ogre on the ridge", + "foes": [ + { + "n": 1, + "name": "Ogre", + "atk": 5, + "def": 3, + "grit": 12, + "nerve": 3, + "note": "one push and you are off the ridge — Poise 1 or fall" + } + ], + "harmedBy": "anything", + "avoid": "it holds the ridge and nothing else; the scree slope below is open the whole way" + }, + "battle": { + "line": "1 Troll in the gully and 2 Dire Wolves above it", + "foes": [ + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES 2 Grit a round unless the wound was burnt" + }, + { + "n": 2, + "name": "Dire Wolf", + "atk": 4, + "def": 3, + "grit": 5, + "nerve": 3, + "note": "hold the top of the gully" + } + ], + "harmedBy": "anything, but the Troll only stays down if fire touches it — say so before initiative, and there is no fuel above the snowline", + "avoid": "it will not leave the gully; the buttress is longer and it is climbable" + }, + "nightmare": { + "line": "1 Wraith above the snowline, 1 Troll and 3 Dire Wolves", + "foes": [ + { + "n": 1, + "name": "Wraith", + "atk": 5, + "def": 3, + "grit": 10, + "nerve": 5, + "note": "INCORPOREAL — chill touch ignores armour, drains 1 max Grit; the cold is already doing that" + }, + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES unless burnt" + }, + { + "n": 3, + "name": "Dire Wolf", + "atk": 4, + "def": 3, + "grit": 5, + "nerve": 3, + "note": "cut the line of retreat" + } + ], + "harmedBy": "blessed, silvered or magical weapons for the Wraith ONLY; anything for the rest, fire for the Troll", + "avoid": "do not run this without an appeasement route open and shelter within a Turn" + } + }, + "motifs": { + "ascent": { + "danger": "the height", + "dangerLine": "the hill takes everything that goes up and it has never once had to come and get it", + "trigger": "announced", + "facets": { + "institution": [ + "a path that only goes one way and does not branch", + "cairns set at every point where you might doubt the route", + "a summit that is visible from everywhere and reached from nowhere" + ], + "ritual": [ + "a stone carried up and added to the cairn at the top", + "a rest taken at the same rock each time by everyone who goes", + "boots turned to face downhill when you stop" + ], + "demand": [ + "a cairn one stone short and a flat stone beside it", + "a path going up with nothing coming down it", + "boots left turned to face uphill" + ], + "wound": [ + "cairns pushed over in a line all the way to the top", + "a path worn deep in one direction only", + "a rest-rock with everything on it that somebody was carrying" + ], + "anchor": [ + "the topmost stone of the summit cairn", + "a route description that reaches the top and back", + "a path that goes down as well as up" + ] + }, + "features": [ + "a cairn one stone short", + "boots turned to face uphill", + "a rest-rock with a pack still on it", + "cairns pushed over in a line", + "a path worn deep one way", + "a flat stone set ready" + ], + "decisions": [ + { + "cue": "a cairn one stone short with a flat stone laid ready beside it", + "cost": "adding it finishes somebody else's climb", + "resolve": { + "roll": "Brawn 2", + "success": "you place the stone and the route ahead is marked all the way, both directions", + "failure": "you take a stone instead and the route unmarks itself behind you: +1 Bane", + "orElse": "leave it short; the cairns stop being where you remember them" + } + }, + { + "cue": "boots left turned to face uphill at a rest place", + "cost": "they are turned downhill by anyone intending to go home", + "resolve": { + "roll": "Wits 2", + "success": "you turn them down and whatever wore them can go, and tells you what it saw", + "failure": "you turn yours uphill to match and the hill counts you among the ones going up", + "orElse": "leave them; the rest place is not a place you can rest" + } + }, + { + "cue": "a path worn deep in one direction and unworn in the other", + "cost": "everybody came up this and nobody went down it", + "resolve": { + "roll": "Wits 2", + "success": "you find the descent route that was actually used, which is not this one", + "failure": "you plan to go down the way you came and the way is not there", + "orElse": "accept it; every route from here is committed, and the hill knows" + } + }, + { + "cue": "a rest-rock with a pack still on it and the straps done up", + "cost": "somebody sat down and went on without it", + "resolve": { + "roll": "Wits 2", + "success": "you go through the pack and learn how far they thought they had to go", + "failure": "you shoulder the pack and the hill treats you as the one who left it", + "orElse": "leave it; you carry your own weight and it tells at the top" + } + }, + { + "cue": "cairns pushed over in a line all the way up", + "cost": "somebody unmade the route on purpose, going up or coming down", + "resolve": { + "roll": "Wits 2", + "success": "you work out which direction they were going and what they were stopping", + "failure": "you rebuild them and everything that uses the route comes back to it", + "orElse": "leave them flat; nothing will find you up here, including help" + } + }, + { + "cue": "a route description that reaches the top and describes the way back down", + "cost": "the descent half is the valuable half", + "resolve": { + "roll": "Wits 2", + "success": "you read it and can get off the hill from anywhere on it", + "failure": "you read only the ascent and are on the summit with no way described down", + "orElse": "leave the paper; the top is the easy part and you have not read the hard part" + } + } + ], + "situations": [ + { + "occupant": "one of the Left", + "doing": "carrying a stone uphill with both hands", + "onArrival": "it stops and offers you the stone", + "because": "the cairn is one short and it has been carrying this a long time", + "offer": "take the stone up for it and it will show you the way down" + }, + { + "occupant": "a living drover", + "doing": "sitting on a rest-rock with the stock long gone", + "onArrival": "he asks whether the pass is open above", + "because": "he came up to take them over and never got word", + "offer": "tell him the pass and he will point out every safe line on the face" + }, + { + "occupant": "a pair of boots", + "doing": "standing turned to face uphill at a windbreak", + "onArrival": "they are dry inside and there is frost on the laces", + "because": "they are turned downhill by anyone meaning to go home", + "offer": "turn them down and whoever wore them speaks, and answers you" + }, + { + "occupant": "two of the Left", + "doing": "standing on the skyline facing outward", + "onArrival": "they turn together as you come onto the ridge", + "because": "they were kept at the top facing out, so travellers could see them", + "offer": "stand between them once and every route off this hill opens to you" + }, + { + "occupant": "the path", + "doing": "running up past you with nothing at all coming down it", + "onArrival": "the ground is worn a hand's depth in one direction", + "because": "everything went up and the hill kept it", + "offer": "go up willingly and it will let you come back down" + }, + { + "occupant": "a cairn", + "doing": "standing one stone short on a false summit", + "onArrival": "the flat stone beside it has been placed ready and not set", + "because": "somebody was finishing the route and stopped here", + "offer": "set the stone and the true summit shows itself" + } + ], + "temptations": [ + { + "id": "cairnstone", + "cue": "the topmost stone off the summit cairn", + "benefit": "once, be counted as having got to the top", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the hill considers the top unmarked while you have it", + "acceptanceCost": { + "vice": "Pride" + } + }, + { + "id": "route", + "cue": "a route description with the descent on it", + "benefit": "get off this hill from anywhere", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it is written for weather you do not have" + }, + { + "id": "boots", + "cue": "a dead climber's boots, dry", + "benefit": "once, go up ground you could not", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they go up more readily than they come down" + }, + { + "id": "pack", + "cue": "an abandoned pack, still full", + "benefit": "once, have what somebody prepared for", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they prepared for a night you have not had yet" + }, + { + "id": "stone", + "cue": "a flat stone cut for a cairn", + "benefit": "once, mark a route so it stays marked", + "useCost": { + "bane": 1 + }, + "standingDrawback": "everything that reads cairns follows it too" + } + ] + }, + "cold": { + "danger": "the cold", + "dangerLine": "the cold is not hunting anybody and it will still have all of you by morning", + "trigger": "lingering", + "facets": { + "institution": [ + "a snowline that does not move all year", + "bothies built every few miles because the gaps kill people", + "ground that is frozen a spade deep in every season" + ], + "ritual": [ + "a fire laid in every bothy by whoever leaves it", + "dry wood carried up and never burnt on the way", + "hands checked at every stop, each of the party in turn" + ], + "demand": [ + "a bothy with the fire laid and no one to light it", + "dry wood stacked above the treeline where none grows", + "frost forming on the inside of something" + ], + "wound": [ + "bothies with the doors off and the fires long cold", + "wood burnt all at once in a single night", + "frost on the inside of a shelter that was occupied" + ], + "anchor": [ + "the fire that stayed lit above the snowline", + "a bothy that has never been let go out", + "dry wood that does not run out" + ] + }, + "features": [ + "a fire laid but unlit in a bothy", + "dry wood stacked above the treeline", + "frost on the inside of a wall", + "a door off a shelter", + "ash from a single great burning", + "hands going white at a stop" + ], + "decisions": [ + { + "cue": "a bothy with the fire laid and nobody there to light it", + "cost": "lighting it is warm and visible for miles", + "resolve": { + "roll": "Brawn 2", + "success": "you light it and the party is warm, and the Left come in politely rather than otherwise", + "failure": "you light it and everything cold on this hill knows exactly where you are: +1 Bane", + "orElse": "sleep cold; -1 die on everything for the next area" + } + }, + { + "cue": "dry wood stacked neatly above the treeline where none grows", + "cost": "somebody carried it up and did not burn it", + "resolve": { + "roll": "Wits 2", + "success": "you find who carried it and why they were saving it, and it matters", + "failure": "you burn it and whatever it was being saved for happens anyway, without fuel", + "orElse": "leave the stack; there is nothing to burn between here and the top" + } + }, + { + "cue": "frost forming on the inside of a shelter that is occupied", + "cost": "the cold is getting in, or something cold is already in", + "resolve": { + "roll": "Wits 2", + "success": "you find the way it is getting in and can shut it, and the shelter holds", + "failure": "you assume it is weather and sleep, and wake with one of you colder than the rest", + "orElse": "stay out of the shelter; the night is spent moving, and costs a Turn" + } + }, + { + "cue": "ash from a great burning where somebody used everything at once", + "cost": "they burnt it all in a single night and had a reason", + "resolve": { + "roll": "Wits 2", + "success": "you read the ash and learn what they were keeping off, and how well it worked", + "failure": "you scatter it and what was kept off comes back to the same place", + "orElse": "leave the ash; you camp there anyway and find out the hard way" + } + }, + { + "cue": "a bothy door lying off its hinges in the snow", + "cost": "hanging it takes time and makes the place usable", + "resolve": { + "roll": "Brawn 2", + "success": "you hang the door and the bothy is shelter again — one safe rest for the delve", + "failure": "you hang it badly and it comes in on you in the night", + "orElse": "leave the door; there is no shelter on this side of the hill" + } + }, + { + "cue": "hands going white at a stop, and one of you not saying so", + "cost": "the cold has already started and somebody is hiding it", + "resolve": { + "roll": "Poise 2", + "success": "you catch it in time and can keep everybody moving and whole", + "failure": "it goes unsaid and that person loses 1 max Grit for the rest of the delve", + "orElse": "stop and warm up properly, costing a Turn while the light goes" + } + } + ], + "situations": [ + { + "occupant": "a bothy", + "doing": "standing with the fire laid and the door pulled to", + "onArrival": "the kindling is dry and there is frost on the inside of the walls", + "because": "whoever laid it went out and did not come back", + "offer": "light the fire and the Left will come in and talk rather than take" + }, + { + "occupant": "one of the Left", + "doing": "sitting against a wall with frost on the inside of its coat", + "onArrival": "it asks whether you would mind shutting the door", + "because": "it sat down out of the wind and never got up", + "offer": "shut the door and it will tell you where the wood is cached" + }, + { + "occupant": "a living shepherd", + "doing": "stacking dry wood above the treeline, load by load", + "onArrival": "she asks whether you have come for it", + "because": "she has been carrying it up for a fire that was never lit", + "offer": "help her carry and she will show you every bothy on the hill" + }, + { + "occupant": "the cold", + "doing": "filling a still, clear night with no wind at all", + "onArrival": "your breath stops showing while you stand there", + "because": "it is not hunting anybody and it will have you anyway", + "offer": "give up your fire for the night and it will let you through the high ground" + }, + { + "occupant": "two of the Left", + "doing": "standing at a fire with no fuel in it", + "onArrival": "they hold their hands out over nothing at all", + "because": "the fire went out and nobody put it back", + "offer": "light anything at all in the grate and both will guide you to the pass" + }, + { + "occupant": "frost", + "doing": "spreading on the inside of a shelter while you watch", + "onArrival": "it forms fastest on the wall you came in by", + "because": "the cold gets in somewhere and nobody found where", + "offer": "find the gap and the shelter holds for as long as you need" + } + ], + "temptations": [ + { + "id": "fire", + "cue": "an ember off the fire that stayed lit", + "benefit": "once, be warm anywhere on this hill", + "useCost": { + "bane": 2 + }, + "standingDrawback": "everything cold up here can see it burning", + "acceptanceCost": { + "vice": "Sloth" + } + }, + { + "id": "wood", + "cue": "dry wood that does not run out", + "benefit": "fuel wherever you are", + "useCost": { + "bane": 1 + }, + "standingDrawback": "somebody carried it up for a purpose you are spending" + }, + { + "id": "coat", + "cue": "a dead climber's coat", + "benefit": "the cold works on you slower", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it works on whoever you took it from faster" + }, + { + "id": "bothykey", + "cue": "the key of a locked bothy", + "benefit": "one guaranteed shelter", + "useCost": { + "bane": 1 + }, + "standingDrawback": "whatever else needs the shelter comes to the door" + }, + { + "id": "frost", + "cue": "a knack for reading the frost", + "benefit": "know when the cold is about to turn", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you know, and you cannot always act on it" + } + ] + }, + "pass": { + "danger": "the way through", + "dangerLine": "the pass is the only way through and it has views about who uses it", + "trigger": "disturbed", + "facets": { + "institution": [ + "a single notch in a ridge that runs forty miles either way", + "waystones set the whole length of the crossing, in sight of each other", + "a hospice at the top for the people the crossing catches" + ], + "ritual": [ + "leave asked of the pass, out loud, before setting foot in it", + "a stone touched at every waystone going through", + "the crossing made before noon or not at all" + ], + "demand": [ + "a waystone with the next one not visible from it", + "a pass standing open with nothing moving in it", + "a hospice door open and the bell rope hanging" + ], + "wound": [ + "waystones thrown down along the whole crossing", + "a pass closed by a fall and the fall not cleared", + "a hospice with the door barred and the bell cut down" + ], + "anchor": [ + "the waystone from the top of the pass", + "a bell that carries the whole length of the crossing", + "a line of stones you can always see the next of" + ] + }, + "features": [ + "a waystone with no next one visible", + "a hospice bell rope hanging", + "a fall of rock across the way", + "stones thrown down in a line", + "a door barred from inside", + "a track going in with none coming out" + ], + "decisions": [ + { + "cue": "a waystone with the next one not visible from it", + "cost": "the line is broken and the crossing is committed either way", + "resolve": { + "roll": "Wits 2", + "success": "you find the next stone by dead reckoning and the whole line comes back into sight", + "failure": "you press on by guess and are somewhere the stones do not go", + "orElse": "turn back down; the pass is not crossed and the ending is on the far side" + } + }, + { + "cue": "a hospice with the door open and the bell rope hanging", + "cost": "ringing it calls whoever keeps the hospice", + "resolve": { + "roll": "Poise 2", + "success": "you ring properly and are given shelter, and told what is on the crossing", + "failure": "you ring it and something answers that is not the keeper: +1 Bane", + "orElse": "go past; you cross in whatever weather comes, unwarned" + } + }, + { + "cue": "a fall of rock lying across the way with old boots under it", + "cost": "clearing it opens the pass for everything, both ways", + "resolve": { + "roll": "Brawn 2", + "success": "you clear a line through and the pass is open — the drovers can get out, and will help", + "failure": "you bring the rest of the slope down and the pass is shut for good: roll the clock", + "orElse": "climb over the fall; the pass stays closed behind you and nothing follows, including help" + } + }, + { + "cue": "waystones thrown down along the whole crossing, deliberately", + "cost": "somebody wanted this crossing to stop being possible", + "resolve": { + "roll": "Wits 2", + "success": "you learn who threw them and why, and it is the transgression in miniature", + "failure": "you set one back up and whatever they were keeping out finds the line again", + "orElse": "leave them down; you cross by luck, which runs out on the descent" + } + }, + { + "cue": "a hospice door barred from the inside with the bell cut down", + "cost": "whoever is in there stopped answering", + "resolve": { + "roll": "Poise 2", + "success": "you talk them into opening and they have kept everything anybody left here", + "failure": "you force it and what is inside was barred in, not out", + "orElse": "leave it barred; the crossing is made without rest or news" + } + }, + { + "cue": "a track going into the pass with none at all coming out", + "cost": "everything that went through is still in there", + "resolve": { + "roll": "Wits 2", + "success": "you read what went in and how long ago, and can time your crossing to miss it", + "failure": "you go in behind it and catch it up in the narrows", + "orElse": "go round the hill, costing a Turn and putting you on the wrong side at dark" + } + } + ], + "situations": [ + { + "occupant": "a waystone", + "doing": "standing at the top of the pass with the next one down", + "onArrival": "it is warm on the side out of the wind and the wind is not blowing", + "because": "the line is walked stone to stone and one is missing", + "offer": "set the fallen stone up and the whole crossing lets you through" + }, + { + "occupant": "the hospice keeper", + "doing": "ringing a bell that has been cut down", + "onArrival": "it moves the rope and no sound comes", + "because": "the bell is rung for whoever is on the crossing and there is no bell", + "offer": "give it a bell and it will shelter you, and everything else stays outside" + }, + { + "occupant": "two living drovers", + "doing": "waiting at a rockfall with stock they cannot move", + "onArrival": "they ask whether the far side is any clearer", + "because": "the pass closed with them on the wrong side of it", + "offer": "clear a line and they will drive you through anything on this hill" + }, + { + "occupant": "one of the Left", + "doing": "standing in the narrows facing the way out", + "onArrival": "it steps aside and then steps back", + "because": "the pass asks leave and it never gave any", + "offer": "ask leave aloud and it will let you and everything behind you through" + }, + { + "occupant": "the pass", + "doing": "standing open and empty with tracks going in and none out", + "onArrival": "the wind in it drops entirely as you come to the mouth", + "because": "it is the only way through and it likes being asked", + "offer": "ask it properly and it will be a road rather than a trap" + }, + { + "occupant": "a bell", + "doing": "hanging in a frame at the top of the crossing with the rope gone", + "onArrival": "it sounds once when the wind moves and not again", + "because": "it is rung to bring people in off the pass", + "offer": "ring it and everything still out on the crossing comes in" + } + ], + "temptations": [ + { + "id": "waystone", + "cue": "the waystone from the top", + "benefit": "once, always know which way is through", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the crossing has no top stone while you carry it, and closes", + "acceptanceCost": { + "vice": "Pride" + } + }, + { + "id": "bell", + "cue": "a hand-bell that carries the crossing", + "benefit": "once, be heard the whole length of the pass", + "useCost": { + "bane": 1 + }, + "standingDrawback": "everything on the crossing hears it" + }, + { + "id": "hospicekey", + "cue": "the hospice key", + "benefit": "shelter at the top of the crossing", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you are the keeper now, and callers come" + }, + { + "id": "leave", + "cue": "leave asked and granted", + "benefit": "once, pass anything that guards a way", + "useCost": { + "bane": 1 + }, + "standingDrawback": "leave given can be withdrawn" + }, + { + "id": "stock", + "cue": "a drover's stock-stick", + "benefit": "once, move something that will not move", + "useCost": { + "bane": 1 + }, + "standingDrawback": "whatever you move, the hill wants back at the bottom" + } + ] + }, + "weight": { + "danger": "what comes down", + "dangerLine": "everything on this hill is on its way to the bottom and most of it has not started yet", + "trigger": "loud", + "facets": { + "institution": [ + "scree slopes that move a little every time anything crosses them", + "a corrie floor made entirely of what used to be above it", + "boulders standing where nothing else is, having stopped" + ], + "ritual": [ + "a stone rolled down at the same place by everyone who passes", + "the avalanche ground crossed one at a time, never together", + "nothing carried down that was not carried up" + ], + "demand": [ + "a boulder balanced with a clear run below it", + "a cornice overhanging with a crack behind it", + "scree with one line of prints across it and no more" + ], + "wound": [ + "a whole slope come down at once onto the path", + "a corrie floor with something under it that was walking", + "boulders stacked by hands rather than fallen" + ], + "anchor": [ + "the stone that stopped rolling", + "a slope that has finished moving", + "a line across the scree that has held" + ] + }, + "features": [ + "a boulder balanced with a run below", + "a crack behind a cornice", + "one line of prints across scree", + "a slope come down onto a path", + "boulders stacked by hands", + "a stone that stopped rolling" + ], + "decisions": [ + { + "cue": "a boulder standing balanced with a clear run below it", + "cost": "it is going down; the only question is when and onto what", + "resolve": { + "roll": "Brawn 2", + "success": "you put it down deliberately, into nothing, and the slope settles for good", + "failure": "you cross beneath it and it goes while you are under: roll the clock", + "orElse": "go round above it, costing a Turn on ground that also moves" + } + }, + { + "cue": "a cornice overhanging the gully with a crack behind it", + "cost": "it will not hold and the gully is the fast way down", + "resolve": { + "roll": "Wits 2", + "success": "you read the crack and take the buttress instead, and watch the cornice go behind you", + "failure": "you take the gully and it comes off above you", + "orElse": "wait for the cold to firm it, costing a Turn and a night out" + } + }, + { + "cue": "scree with one line of prints across it and nothing since", + "cost": "one crossing held; a second might not", + "resolve": { + "roll": "Poise 2", + "success": "you cross one at a time on the same line and the slope holds for all of you", + "failure": "you cross together and take the slope with you", + "orElse": "go round the scree entirely, adding a Turn and putting you on the skyline" + } + }, + { + "cue": "a whole slope come down at once onto the path below", + "cost": "there is something under it and it was recent", + "resolve": { + "roll": "Wits 2", + "success": "you find what is under it and get it out, and it is owed to somebody at the ending", + "failure": "you dig and start the rest of the slope moving", + "orElse": "leave it; whatever is under there is not accounted for and the ending is poorer" + } + }, + { + "cue": "boulders stacked by hands rather than fallen, in a line", + "cost": "somebody built this and it is holding something back", + "resolve": { + "roll": "Wits 2", + "success": "you see what it holds back and can keep it holding", + "failure": "you take one out to see and the line goes, and so does what it held", + "orElse": "leave it; you never learn what somebody thought worth stacking against" + } + }, + { + "cue": "a stone lying at the foot of a slope that clearly stopped rolling short", + "cost": "everything else went to the bottom and this did not", + "resolve": { + "roll": "Wits 2", + "success": "you understand why it stopped and can make one other thing stop too", + "failure": "you move it and it resumes, immediately, taking the slope with it", + "orElse": "leave it; nothing you set down on this hill stays where you put it" + } + } + ], + "situations": [ + { + "occupant": "one of the Left", + "doing": "standing under a balanced boulder with its hands up", + "onArrival": "it has been holding the boulder and it is not holding the boulder", + "because": "it was under the slope when the slope came down", + "offer": "take the weight for a moment and it will step out and tell you everything" + }, + { + "occupant": "a living stone-man", + "doing": "stacking boulders into a line, one at a time", + "onArrival": "he asks whether you can hear it moving yet", + "because": "he has been building against the slope for years", + "offer": "help him place one and he will tell you which ground will hold you" + }, + { + "occupant": "a boulder", + "doing": "standing alone on a corrie floor with a clear run behind it", + "onArrival": "the ground around it is undisturbed and it is warm to touch", + "because": "it stopped rolling and nothing else here did", + "offer": "ask it how and it will hold whatever you need held" + }, + { + "occupant": "the scree", + "doing": "lying with one line of prints across it and nothing since", + "onArrival": "the whole slope shifts an inch as you set foot on it", + "because": "it moves when anything crosses and it has been crossed once", + "offer": "cross one at a time and the slope will hold for you every time after" + }, + { + "occupant": "two of the Left", + "doing": "digging at a slope that came down on the path", + "onArrival": "they dig with their hands and do not get anywhere", + "because": "there is somebody under it and there always has been", + "offer": "dig with them and what comes out is owed at the ending" + }, + { + "occupant": "a cornice", + "doing": "overhanging a gully with a crack running behind it", + "onArrival": "snow slides off the lip while you are looking at it", + "because": "it is going to come off and it has not chosen when", + "offer": "bring it down on your terms and the gully is safe the whole way" + } + ], + "temptations": [ + { + "id": "stone", + "cue": "the stone that stopped rolling", + "benefit": "once, make a thing stay where you put it", + "useCost": { + "bane": 2 + }, + "standingDrawback": "everything else you have set down starts moving", + "acceptanceCost": { + "vice": "Sloth" + } + }, + { + "id": "wedge", + "cue": "a wedge cut for a balanced boulder", + "benefit": "once, hold back what is coming down", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it holds until you need it somewhere else" + }, + { + "id": "line", + "cue": "a knowledge of which line holds", + "benefit": "cross moving ground safely", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the line holds for you and not for those behind you" + }, + { + "id": "stack", + "cue": "a stone off the built line", + "benefit": "once, know what a thing is holding back", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the line is one stone weaker" + }, + { + "id": "print", + "cue": "a set of prints that held", + "benefit": "once, follow ground that will take your weight", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they lead where the maker was going, not where you are" + } + ] + } + } +} \ No newline at end of file diff --git a/foundry-module/module/core/content/river.json b/foundry-module/module/core/content/river.json new file mode 100644 index 0000000..5a43158 --- /dev/null +++ b/foundry-module/module/core/content/river.json @@ -0,0 +1,1164 @@ +{ + "id": "river", + "label": "River", + "forgeStageType": "fen", + "schema": 1, + "placeNameStyle": "claimant", + "_model": "Wild kernel in moving water. The appetite belongs to the river — it wants to be asked before it is crossed, to carry things away, to run where it has always run, and to be given somebody rather than have to take them. Claimants are the river's own names.", + "facetProgression": { + "approach": "institution", + "complication": "ritual", + "turn": "demand", + "descent": "wound", + "threshold": "anchor", + "ending": "demand" + }, + "claimants": [ + "Old Man", + "The Grey", + "Mother of Eels", + "First Water", + "The Drowner", + "Long Wet", + "She Who Takes One" + ], + "appetites": [ + { + "id": "crossed", + "want": "that nothing should get over it without asking", + "lack": "gone over", + "purpose": "every crossing would be by its leave", + "motif": "crossing", + "prize": "pole", + "conscript": "the fordmen", + "asks": "\"Did you ask?\"", + "appeasement": { + "move": "ask the water leave before you set foot in it", + "attribute": "Poise", + "successes": 2, + "why": "it was asked", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "carrying", + "want": "that everything given to it should be carried away for good", + "lack": "given back", + "purpose": "nothing would ever come back upstream", + "motif": "current", + "prize": "float", + "conscript": "the salvagers", + "asks": "\"Are you going to let go of that?\"", + "appeasement": { + "move": "put something into the water and let it go", + "attribute": "Wits", + "successes": 2, + "why": "something went downstream", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "running", + "want": "that it should run exactly where it has always run", + "lack": "straightened", + "purpose": "the old channel would still be the channel", + "motif": "course", + "prize": "mark", + "conscript": "the engineers", + "asks": "\"This isn't where I go.\"", + "appeasement": { + "move": "walk a stretch of the old course, end to end", + "attribute": "Brawn", + "successes": 2, + "why": "the old way was used", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "given", + "want": "to be given somebody, rather than to have to take them", + "lack": "taking", + "purpose": "nobody would ever have to be taken", + "motif": "drowned", + "prize": "gift", + "conscript": "the yearly one", + "asks": "\"Who's coming in, then?\"", + "appeasement": { + "move": "give the water something you could not afford to lose", + "attribute": "Poise", + "successes": 2, + "why": "it was given, not taken", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + } + ], + "accommodations": [ + { + "id": "took", + "text": "took {conscript} at the ford, one at a time, in low water", + "cruelty": 3, + "fits": [ + "given", + "crossed" + ] + }, + { + "id": "carried", + "text": "carried {conscript} away and put them down a long way off", + "cruelty": 2, + "fits": [ + "carrying", + "crossed", + "given" + ] + }, + { + "id": "changed", + "text": "changed its course through {conscript}'s ground while they slept", + "cruelty": 2, + "fits": [ + "running", + "carrying" + ] + }, + { + "id": "partly", + "text": "gave {conscript} back, but not all at once", + "cruelty": 3, + "fits": [ + "given", + "carrying", + "running" + ] + }, + { + "id": "turning", + "text": "kept {conscript} at the bend, turning, where everyone could see", + "cruelty": 3, + "fits": [ + "given", + "running" + ] + }, + { + "id": "letcross", + "text": "let {conscript} cross the first time, and the second", + "cruelty": 2, + "fits": [ + "crossed", + "given", + "carrying" + ] + } + ], + "prizes": { + "pole": { + "label": "the pole the ferry was worked with", + "function": "the only thing that ever got anybody over and back" + }, + "float": { + "label": "the one thing the river ever brought back upstream", + "function": "the only thing it gave up after it had it" + }, + "mark": { + "label": "the mark cut where the old channel ran", + "function": "the only record of where the water actually belongs" + }, + "gift": { + "label": "what was given willingly, the one year", + "function": "the only time it did not have to take anybody" + } + }, + "placeNames": { + "first": [ + "The Water of the", + "The River of the", + "Along the", + "The Reach of the", + "The Run of the" + ] + }, + "areaNames": { + "approach": [ + "The Ford", + "The Landing", + "The Towpath", + "The Willow Holt", + "The Bank Below" + ], + "complication": [ + "The Weir", + "The Mill Race", + "The Withy Beds", + "The Eyot", + "The Staithe" + ], + "turn": [ + "The Bridge", + "The Ferry", + "The Deep Pool", + "The Confluence", + "The Lock" + ], + "descent": [ + "The Old Channel", + "The Ox-Bow", + "The Drowned Meadow", + "The Sluice", + "The Undercut Bank" + ], + "threshold": [ + "The Head of the Reach", + "The Last Ford", + "The Eel Trap", + "The Slack Water", + "The Bend" + ], + "ending": [ + "Where the Water Turns", + "The Deep", + "Under the Bridge", + "The Given Place" + ] + }, + "factions": [ + { + "id": "given", + "name": "the Given", + "kind": "undead", + "essence": "went in willingly, once a year, and are still down there being polite about it", + "handledBy": "courtesy" + }, + { + "id": "bargees", + "name": "the bargees", + "kind": "living", + "essence": "were working the reach when the water changed and cannot get off it", + "handledBy": "trade" + }, + { + "id": "eels", + "name": "what lives in the deep pool", + "kind": "beast", + "essence": "was here before the river had a name", + "handledBy": "force" + }, + { + "id": "oldchannel", + "name": "what the river left behind", + "kind": "beast", + "essence": "is still in the old course, waiting for the water to come back", + "handledBy": "a toll paid" + } + ], + "triggerGlossary": { + "announced": "came down to the water in the open and stood at the edge", + "seenTwice": "seen from the water twice, on both banks", + "loud": "a raised voice over water, which carries the length of a reach", + "lingering": "stayed on the bank long enough for the water to work at it", + "disturbed": "set foot in the ford, moved a mark, or took something off the water" + }, + "rosters": { + "skirmish": { + "line": "3 Giant Rats in the withy beds", + "foes": [ + { + "n": 3, + "name": "Giant Rat", + "atk": 2, + "def": 3, + "grit": 2, + "nerve": 2, + "note": "swim as fast as you wade" + } + ], + "harmedBy": "anything", + "avoid": "get onto dry ground and they will not follow up the bank" + }, + "fight": { + "line": "3 Ghouls of the drowned on the bank", + "foes": [ + { + "n": 3, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze on a hit; they fight better in water" + } + ], + "harmedBy": "anything", + "avoid": "they will not leave the waterline — ten paces up the bank and they stop" + }, + "battle": { + "line": "1 Troll under the bridge and 2 Ghouls in the shallows", + "foes": [ + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES 2 Grit a round unless the wound was burnt; wet, so fire is hard here" + }, + { + "n": 2, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze on a hit" + } + ], + "harmedBy": "anything, but the Troll only stays down if fire touches it, and everything here is wet — say so before initiative", + "avoid": "it holds the bridge and takes a toll; pay it and it lets you over" + }, + "nightmare": { + "line": "1 Wraith at the ford, 1 Troll and 4 Ghouls", + "foes": [ + { + "n": 1, + "name": "Wraith", + "atk": 5, + "def": 3, + "grit": 10, + "nerve": 5, + "note": "INCORPOREAL — chill touch ignores armour, drains 1 max Grit" + }, + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES unless burnt" + }, + { + "n": 4, + "name": "Ghoul", + "atk": 4, + "def": 3, + "grit": 4, + "nerve": 5, + "note": "free Called Shot to freeze" + } + ], + "harmedBy": "blessed, silvered or magical weapons for the Wraith ONLY; anything for the rest, fire for the Troll and it is wet", + "avoid": "do not run this without an appeasement route open" + } + }, + "motifs": { + "crossing": { + "danger": "the ford", + "dangerLine": "the river is crossable in four places and it is paying attention to all of them", + "trigger": "disturbed", + "facets": { + "institution": [ + "a ford, a ferry, a bridge and a weir, and forty miles of nothing between them", + "a crossing that is safe at one state of water and at no other", + "banks cut down on both sides where everybody goes in" + ], + "ritual": [ + "leave asked at the water's edge before anybody steps in", + "the ferry worked across and back empty, each time", + "a coin put on the parapet by everyone who uses the bridge" + ], + "demand": [ + "a ford with the water at exactly the height it is safe at", + "a ferry lying at the far bank with the rope slack", + "a parapet with a row of coins and one gap" + ], + "wound": [ + "a ford with the bottom washed out and the marker poles still standing", + "a ferry rope cut on the far side", + "a bridge with the parapet gone and the coins in the water" + ], + "anchor": [ + "the pole the ferry was worked with", + "a set of marker poles that still read true", + "a bridge that has never been taken by the water" + ] + }, + "features": [ + "marker poles standing in the ford", + "a ferry lying at the far bank", + "a row of coins with one gap", + "a cut rope end at a landing", + "a bottom washed out under the poles", + "a parapet down into the water" + ], + "decisions": [ + { + "cue": "a ford with the water at exactly the height it is safe at", + "cost": "the height is right and the bottom may not be", + "resolve": { + "roll": "Wits 2", + "success": "you read the bottom off the marker poles and cross dry-shod, all of you", + "failure": "you go in on the height alone and the bottom is gone under you: roll the clock", + "orElse": "go round to the bridge, costing a Turn and a toll" + } + }, + { + "cue": "a ferry lying at the far bank with the rope gone slack", + "cost": "hauling it over takes both banks and there is only one of you on this side", + "resolve": { + "roll": "Brawn 2", + "success": "you get the ferry across and have a crossing you control for the whole delve", + "failure": "you haul on a rope that is cut and go in with it", + "orElse": "swim it; you cross wet, cold and without your gear, and the water notes it" + } + }, + { + "cue": "a parapet with a row of coins along it and one gap", + "cost": "the coin is a toll and the gap is somebody who did not pay", + "resolve": { + "roll": "Wits 2", + "success": "you fill the gap and the bridge is yours to cross, both ways, unbothered", + "failure": "you take a coin instead and the bridge takes the equivalent: +1 Bane", + "orElse": "cross without paying; something under the bridge follows you the whole reach" + } + }, + { + "cue": "marker poles standing in a ford with the bottom washed out under them", + "cost": "the poles say safe and the river disagrees", + "resolve": { + "roll": "Wits 2", + "success": "you reset the poles honestly and the crossing works for whoever comes after", + "failure": "you leave them and somebody uses them later, and that is on you", + "orElse": "pull the poles down; nothing crosses here again, including you" + } + }, + { + "cue": "a ferry rope cut clean on the far side", + "cost": "somebody cut it from the bank you are not on", + "resolve": { + "roll": "Wits 2", + "success": "you work out who cut it and why, and it is the whole shape of the transgression", + "failure": "you splice and cross, and it is cut again while you are mid-stream", + "orElse": "leave it; the far bank is reachable only by the deep pool" + } + }, + { + "cue": "a bridge with the parapet gone and coins visible in the water beneath", + "cost": "somebody swept the tolls off into the river", + "resolve": { + "roll": "Wits 2", + "success": "you retrieve enough to pay the arrears and the bridge lets everything over", + "failure": "you take them for yourself and every crossing after costs you double", + "orElse": "leave them; the toll is outstanding and the bridge collects it another way" + } + } + ], + "situations": [ + { + "occupant": "a ferryman", + "doing": "working an empty ferry across and back with a pole", + "onArrival": "he brings it in to your bank and waits without speaking", + "because": "the ferry is worked across and back and nobody has been aboard", + "offer": "get aboard and he will take you across anything, once" + }, + { + "occupant": "one of the Given", + "doing": "standing waist-deep at the ford, facing the far bank", + "onArrival": "it turns its head and asks whether you are going over", + "because": "it was taken at the ford and never got over", + "offer": "cross beside it and the water lets you both over" + }, + { + "occupant": "two living bargees", + "doing": "waiting at a landing with a boat and nowhere to take it", + "onArrival": "they ask whether the weir is passable yet", + "because": "the reach closed at both ends with them on it", + "offer": "tell them and they will carry you the whole length of the water" + }, + { + "occupant": "a row of coins", + "doing": "lying along a parapet with one gap in the line", + "onArrival": "the coins are bright and the stone under them is not", + "because": "everybody pays and one did not", + "offer": "put a coin in the gap and the bridge will not let anything follow you" + }, + { + "occupant": "the ford", + "doing": "running at exactly the height it is safe at, and no other", + "onArrival": "the water is glass-flat and there is a wind on the trees", + "because": "it is crossable here and it likes to be asked first", + "offer": "ask leave aloud and it will be crossable whenever you come back" + }, + { + "occupant": "the Mother of Eels", + "doing": "standing in the shallows in the shape of a woman up to the knee", + "onArrival": "the water around her does not move at all", + "because": "she takes one at every crossing and has not been given one", + "offer": "offer her something instead and she will let the whole party over" + } + ], + "temptations": [ + { + "id": "pole", + "cue": "the ferryman's pole", + "benefit": "once, cross anything on foot", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the ferry cannot be worked while you have it" + }, + { + "id": "coin", + "cue": "a toll coin off the parapet", + "benefit": "once, pass a thing that takes tolls", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the toll is now outstanding in your name", + "acceptanceCost": { + "vice": "Greed" + } + }, + { + "id": "poles", + "cue": "a set of true marker poles", + "benefit": "read any crossing correctly", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the crossing you left unmarked catches somebody" + }, + { + "id": "rope", + "cue": "a spliced ferry rope", + "benefit": "once, get everybody across together", + "useCost": { + "bane": 1 + }, + "standingDrawback": "whatever is on the far bank comes over on it too" + }, + { + "id": "leave", + "cue": "leave asked at the water", + "benefit": "once, enter water safely", + "useCost": { + "bane": 1 + }, + "standingDrawback": "leave is given for one crossing, and it counts them" + } + ] + }, + "current": { + "danger": "what it carries", + "dangerLine": "the river takes things away and it has been taking them away from here for a long time", + "trigger": "lingering", + "facets": { + "institution": [ + "a reach that runs one way and has never once run the other", + "eddies at every bend where everything it carries collects", + "a mill race that takes whatever the river is carrying and stops it" + ], + "ritual": [ + "something floated off at the head of the reach every year", + "the eddies raked out each spring and what is in them laid on the bank", + "a float sent down to see whether the reach is clear" + ], + "demand": [ + "an eddy turning slowly with something in it that has not come out", + "a float sent down and not arrived", + "a mill race with the hatch up and nothing coming through" + ], + "wound": [ + "an eddy raked out and everything in it left on the bank, named", + "a reach with the current running backwards for a hundred yards", + "a race choked with what it stopped" + ], + "anchor": [ + "the one thing the river ever brought back upstream", + "a float that always arrives", + "an eddy that gives up what it holds" + ] + }, + "features": [ + "an eddy turning with something in it", + "a float that has not arrived", + "a race hatch up and nothing coming", + "things laid out on a bank, named", + "current running the wrong way", + "a mill race choked" + ], + "decisions": [ + { + "cue": "an eddy turning slowly with something in it that has not come out", + "cost": "reaching in gets it and puts you in the turn", + "resolve": { + "roll": "Brawn 2", + "success": "you get it out clean and it is what somebody at the ending needs to see", + "failure": "you go in after it and the eddy has you for a round: roll the clock", + "orElse": "leave it turning; it turns behind you the whole delve, and you know what is in it" + } + }, + { + "cue": "a float sent down the reach that has not arrived", + "cost": "something between here and there stopped it", + "resolve": { + "roll": "Wits 2", + "success": "you work out where it stopped and what is there, before you get to it", + "failure": "you send another and follow it, and arrive where the first one did", + "orElse": "send nothing; you walk the reach blind, and it is not clear" + } + }, + { + "cue": "a mill race with the hatch up and nothing at all coming through", + "cost": "the race is stopped and the river is not", + "resolve": { + "roll": "Brawn 2", + "success": "you clear the race and what it has been stopping comes through, and it is a lot", + "failure": "you open it wider and it comes through all at once, onto you", + "orElse": "leave the hatch; the water is going somewhere else and that is where the ending is" + } + }, + { + "cue": "things raked out of the eddies and laid on the bank, each with a name", + "cost": "somebody has been recovering and naming them for years", + "resolve": { + "roll": "Poise 2", + "success": "you find who has been doing it and they know every name the river has taken", + "failure": "you disturb the row and the names come off, and cannot be put back", + "orElse": "walk past; you have no names for anything at the ending" + } + }, + { + "cue": "a reach with the current running backwards for a hundred yards", + "cost": "the river is doing something it does not do", + "resolve": { + "roll": "Wits 2", + "success": "you find what is making it run back and can use it to go up the reach", + "failure": "you go into it and are carried the wrong way, fast, into the pool", + "orElse": "stay on the bank; the reach is walked, slowly, and the water watches" + } + }, + { + "cue": "a thing lying on the shingle that the river brought back up", + "cost": "the river gave something back, once, and that is the leverage", + "resolve": { + "roll": "Wits 2", + "success": "you take it and understand what makes it give things up, and can ask again", + "failure": "you take it as salvage and the river takes the equivalent off you", + "orElse": "leave it; nothing here is negotiable and the ending is fought" + } + } + ], + "situations": [ + { + "occupant": "an eddy", + "doing": "turning slowly at a bend with something pale in it", + "onArrival": "the turn slows while you watch and then resumes", + "because": "everything the river carries collects here and one thing will not go on", + "offer": "take what is in it and the river will carry you rather than take you" + }, + { + "occupant": "a living rake-man", + "doing": "laying things out along the bank in a row and naming each one", + "onArrival": "he asks whether you have lost anybody", + "because": "he has been recovering and naming since before the reach closed", + "offer": "give him a name and he will give you what the water took with it" + }, + { + "occupant": "one of the Given", + "doing": "standing chest-deep in the current facing upstream", + "onArrival": "it does not move at all and the water goes round it", + "because": "it went in willingly and the river never carried it off", + "offer": "ask it to move and it will, and the reach clears the whole way down" + }, + { + "occupant": "a mill race", + "doing": "standing with the hatch up and nothing coming through it", + "onArrival": "the water above the hatch is higher than it should be", + "because": "the race stops what the river carries and it is full", + "offer": "clear it and everything the river has been holding comes down at once, usefully" + }, + { + "occupant": "the current", + "doing": "running backwards along a hundred yards of the reach", + "onArrival": "sticks on the surface go up past you at walking pace", + "because": "the river is doing something it does not do", + "offer": "go up with it and it will put you where nothing else could" + }, + { + "occupant": "the Old Man", + "doing": "lying full length in the shallows in the shape of a drowned man", + "onArrival": "the water around him runs uphill an inch", + "because": "he carries things away and he has stopped", + "offer": "give him something to carry and the reach runs true again" + } + ], + "temptations": [ + { + "id": "float", + "cue": "the thing the river brought back", + "benefit": "once, get back something the water took", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the river takes something of equal weight, and chooses", + "acceptanceCost": { + "vice": "Greed" + } + }, + { + "id": "rake", + "cue": "the rake-man's rake", + "benefit": "once, recover what an eddy holds", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the eddy takes you in to the waist each time" + }, + { + "id": "name", + "cue": "a name off the row on the bank", + "benefit": "once, be known to the drowned", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they take you for that person" + }, + { + "id": "hatch", + "cue": "a race hatch pin", + "benefit": "once, stop what the water is carrying", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it stacks up behind, and then comes at once" + }, + { + "id": "stick", + "cue": "a float that always arrives", + "benefit": "once, know what is ahead of you on the water", + "useCost": { + "bane": 1 + }, + "standingDrawback": "whatever is ahead sees it coming too" + } + ] + }, + "course": { + "danger": "where it belongs", + "dangerLine": "the river was moved and it has never accepted that it was", + "trigger": "announced", + "facets": { + "institution": [ + "an old channel running dry beside a new one running full", + "embankments raised on both sides for eight miles", + "a straight cut where every other stretch of the water wanders" + ], + "ritual": [ + "the banks walked each spring and the marks checked", + "the old course kept clear of building, by custom, though it is dry", + "a stone cut where the water used to run" + ], + "demand": [ + "a dry channel with water standing in the bottom of it after no rain", + "an embankment with a wet patch on the dry side", + "a mark cut for the old course, still legible" + ], + "wound": [ + "an embankment cut through in the night, from the field side", + "a drowned meadow where the old channel came back", + "marks for the old course chiselled off" + ], + "anchor": [ + "the mark cut where the old channel ran", + "a survey of both courses, old and new", + "a stretch of bank that has never been raised" + ] + }, + "features": [ + "water standing in a dry channel", + "a wet patch on a dry bank", + "a mark cut for the old course", + "an embankment cut from the field side", + "a drowned meadow", + "a straight cut in a winding river" + ], + "decisions": [ + { + "cue": "a dry channel with water standing in the bottom after weeks of no rain", + "cost": "the river is coming back to it, slowly", + "resolve": { + "roll": "Wits 2", + "success": "you trace how far it has come back and can be somewhere else when it arrives", + "failure": "you camp in the old channel and wake in it: roll the clock", + "orElse": "leave the channel alone; you take the long way round on the raised ground" + } + }, + { + "cue": "an embankment with a wet patch showing on the dry side", + "cost": "the bank is going, from the inside", + "resolve": { + "roll": "Brawn 2", + "success": "you find and stop the leak and the meadow behind stays dry, and they are grateful", + "failure": "you dig at it to see and it goes while you are standing on it", + "orElse": "leave it; the meadow floods behind you and the way back is under water" + } + }, + { + "cue": "a mark cut where the old channel ran, still legible", + "cost": "the mark is the only proof the water was ever moved", + "resolve": { + "roll": "Wits 2", + "success": "you record the mark and can prove at the ending exactly what was done", + "failure": "you chisel it out and there is no proof of anything, for anybody", + "orElse": "leave it; somebody else takes it off before you come back" + } + }, + { + "cue": "an embankment cut through in the night from the field side", + "cost": "somebody let the river out on purpose, onto somebody", + "resolve": { + "roll": "Wits 2", + "success": "you find whose field it was cut from and the transgression is laid bare", + "failure": "you close the cut and the water goes where it was going before, onto others", + "orElse": "leave the cut; the water keeps coming through and the ending is under it" + } + }, + { + "cue": "a straight cut where every other stretch of this water wanders", + "cost": "the cut is engineering and the river hates it", + "resolve": { + "roll": "Wits 2", + "success": "you find the engineer's survey and know exactly what was promised and to whom", + "failure": "you use the cut as a road and the water rises in it, quickly", + "orElse": "go round by the ox-bow, costing a Turn in soft ground" + } + }, + { + "cue": "a drowned meadow where the old channel has come back", + "cost": "the river has taken part of its course back already", + "resolve": { + "roll": "Poise 2", + "success": "you cross the meadow on the old causeway, which is still there under it", + "failure": "you wade it and the old channel takes you as belonging to the field", + "orElse": "go round the meadow entirely; it costs a Turn and the light" + } + } + ], + "situations": [ + { + "occupant": "one of the Given", + "doing": "standing in a dry channel with water round its ankles that has no source", + "onArrival": "it points down the dry course and waits", + "because": "the water was moved and it stayed with the old line", + "offer": "walk the old course with it and the river treats you as belonging to it" + }, + { + "occupant": "a living engineer", + "doing": "pacing an embankment and writing nothing down", + "onArrival": "she asks whether you think the bank will hold", + "because": "she cut the new course and has been walking it ever since", + "offer": "tell her the truth and she will give you the survey of both channels" + }, + { + "occupant": "the old channel", + "doing": "lying dry with water standing in the bottom of it", + "onArrival": "the standing water is moving very slightly, downstream", + "because": "the river was moved and is coming back a foot a year", + "offer": "walk it end to end and the water will not rise on you anywhere" + }, + { + "occupant": "two of the Given", + "doing": "standing in a drowned meadow up to the chest", + "onArrival": "they are facing the way the water used to run", + "because": "the meadow is the old course and it has come back", + "offer": "stand with them a moment and the meadow gives up what is under it" + }, + { + "occupant": "a mark", + "doing": "standing cut into a stone where the old channel ran", + "onArrival": "the cut is sharp and the stone around it is weathered soft", + "because": "it records where the water belongs and somebody kept it legible", + "offer": "read it aloud and the river will hear a claim made on its behalf" + }, + { + "occupant": "the Grey", + "doing": "running in a straight cut where nothing else here runs straight", + "onArrival": "the water in the cut is flat and fast and does not sound like water", + "because": "it was straightened and never forgave it", + "offer": "offer to walk its old line and it will carry you where you ask" + } + ], + "temptations": [ + { + "id": "mark", + "cue": "the old-course mark, cut portable", + "benefit": "once, prove where something belongs", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the river expects you to put it back" + }, + { + "id": "survey", + "cue": "the engineer's survey", + "benefit": "know every channel here, old and new", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you know whose ground was sold to make it" + }, + { + "id": "pin", + "cue": "an embankment pin", + "benefit": "once, hold a bank that is going", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the water goes somewhere else instead, onto somebody" + }, + { + "id": "sod", + "cue": "a sod off the never-raised bank", + "benefit": "once, stand on ground the water respects", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the river treats the ground you left as forfeit", + "acceptanceCost": { + "vice": "Pride" + } + }, + { + "id": "causeway", + "cue": "a knowledge of the drowned causeway", + "benefit": "cross flooded ground dry", + "useCost": { + "bane": 1 + }, + "standingDrawback": "what is under the meadow uses it too" + } + ] + }, + "drowned": { + "danger": "the one it takes", + "dangerLine": "the river has one a year and it has not been given one in a long time", + "trigger": "loud", + "facets": { + "institution": [ + "a deep pool at the bend that has never been sounded", + "a stretch where everybody who goes in comes out at the same place", + "a village that has always known the number and never said it" + ], + "ritual": [ + "something given to the water at the turn of the year, willingly", + "the drowned brought out at the same slack water and laid on the same stone", + "a wreath put on the pool each spring by somebody who lost one" + ], + "demand": [ + "a pool lying dead flat in a wind", + "a laying-out stone, wet, with nothing on it", + "a wreath on the water that has not gone downstream" + ], + "wound": [ + "a year when nobody was given and three were taken", + "the laying-out stone dry and cracked", + "wreaths from every year piled at the bank, none of them ever floated" + ], + "anchor": [ + "what was given willingly, the one year", + "a list of every one it took, in order", + "a pool that gives them back" + ] + }, + "features": [ + "a pool flat in a wind", + "a wet laying-out stone with nothing on it", + "a wreath not going downstream", + "wreaths piled on a bank", + "a list of names in order", + "water going still around you" + ], + "decisions": [ + { + "cue": "a pool lying dead flat while there is wind on the trees", + "cost": "the pool is attending to you specifically", + "resolve": { + "roll": "Poise 2", + "success": "you address it properly, out loud, and it will trade rather than take", + "failure": "you throw something in to test it and it accepts that as the offering: +1 Bane", + "orElse": "go past on the far bank; it follows the bank you are on, all the way" + } + }, + { + "cue": "a laying-out stone, wet, with nothing on it", + "cost": "the stone is kept wet by somebody, or by something being laid on it", + "resolve": { + "roll": "Wits 2", + "success": "you find who lays them out and they know every name the river has", + "failure": "you lie down on it to look and the water comes up over the stone", + "orElse": "leave it; you never learn what the count is or who is keeping it" + } + }, + { + "cue": "a wreath on the water that has not gone downstream", + "cost": "the river is refusing it", + "resolve": { + "roll": "Poise 2", + "success": "you find out whose it is and why it was refused, and can put that right", + "failure": "you push it off and it comes back and stays with you", + "orElse": "leave it turning; the refusal stands and the ending has no way to be given" + } + }, + { + "cue": "wreaths from every year piled at the bank, none of them ever floated", + "cost": "nobody has given willingly for a very long time", + "resolve": { + "roll": "Wits 2", + "success": "you count the years and know exactly how long the debt has been running", + "failure": "you float them all at once and the river takes the arrears at once", + "orElse": "leave the pile; the debt is unmeasured and the ending comes due anyway" + } + }, + { + "cue": "a list of every one it took, in order, cut into a post", + "cost": "the last name is recent and the post is not finished", + "resolve": { + "roll": "Wits 2", + "success": "you read the list and can name the one it wants at the ending", + "failure": "you cut a name of your own into it and the water accepts the entry", + "orElse": "leave the post; you go to the ending with nothing to say" + } + }, + { + "cue": "water going still around your legs where you are standing in it", + "cost": "it has chosen and it is being polite about the timing", + "resolve": { + "roll": "Poise 2", + "success": "you get out and give it something instead, immediately, and it accepts", + "failure": "you stay in and it takes what it came for: -1 max Grit for the delve", + "orElse": "refuse to enter the water at all; every crossing after this is contested" + } + } + ], + "situations": [ + { + "occupant": "the deep pool", + "doing": "lying flat and dark in a wind that is moving everything else", + "onArrival": "it goes flatter when you come to the edge", + "because": "it takes one a year and has not been given one", + "offer": "offer it something of your own and it will let the reach alone" + }, + { + "occupant": "one of the Given", + "doing": "lying on a laying-out stone with its hands crossed", + "onArrival": "it turns its head to you without sitting up", + "because": "it went in willingly the year it was asked", + "offer": "tell it that it was thanked and it will name the one the river wants" + }, + { + "occupant": "a living wreath-maker", + "doing": "piling wreaths on a bank that have never been floated", + "onArrival": "she asks whether you are here for this year's", + "because": "nobody will give and she keeps making them", + "offer": "float one with her and the pool will trade with you" + }, + { + "occupant": "a wreath", + "doing": "turning on the water without going downstream", + "onArrival": "it holds against the current in front of you", + "because": "it was offered and refused", + "offer": "learn whose it is and the river will take an offering again" + }, + { + "occupant": "the Drowner", + "doing": "standing at the edge of the pool in the shape of somebody you almost know", + "onArrival": "the water is dead flat behind it and dead flat in front", + "because": "it has to take one and would much rather be given one", + "offer": "give it something you cannot afford and it will let everybody go" + }, + { + "occupant": "a post", + "doing": "standing at the head of the pool with names cut into it in order", + "onArrival": "the last name is fresh and the wood below it is clean", + "because": "every one taken is cut in and the post is not finished", + "offer": "cut nothing, and read them all aloud, and the pool comes level" + } + ], + "temptations": [ + { + "id": "gift", + "cue": "what was given willingly, the one year", + "benefit": "once, satisfy something that means to take somebody", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the river regards the account as reopened", + "acceptanceCost": { + "vice": "Envy" + } + }, + { + "id": "wreath", + "cue": "a wreath the water refused", + "benefit": "once, be passed over by what takes one", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it takes the next nearest instead" + }, + { + "id": "list", + "cue": "the list of the taken", + "benefit": "know every name the river has", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you can see where the next line goes" + }, + { + "id": "stone", + "cue": "a chip off the laying-out stone", + "benefit": "once, be brought out rather than kept", + "useCost": { + "bane": 1 + }, + "standingDrawback": "somebody else is kept in your place" + }, + { + "id": "still", + "cue": "a stretch of water gone still", + "benefit": "once, cross without being taken", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the stillness follows you onto dry land" + } + ] + } + } +} \ No newline at end of file diff --git a/foundry-module/module/core/content/valley.json b/foundry-module/module/core/content/valley.json new file mode 100644 index 0000000..f037e1a --- /dev/null +++ b/foundry-module/module/core/content/valley.json @@ -0,0 +1,1173 @@ +{ + "id": "valley", + "label": "Valley", + "forgeStageType": "forest", + "schema": 1, + "placeNameStyle": "claimant", + "_model": "Wild kernel that keeps you by being kind. The appetite belongs to the valley — it wants nothing to go over the top, everything to come in out of the wind, everything to end up at the bottom, and its own sky. Every cruelty here looks like hospitality, which is what makes it hard to leave.", + "facetProgression": { + "approach": "institution", + "complication": "ritual", + "turn": "demand", + "descent": "wound", + "threshold": "anchor", + "ending": "demand" + }, + "claimants": [ + "Deep Place", + "Thing Between the Hills", + "Old Bottom", + "Mother of the Bottom", + "Shut Place", + "First Shelter", + "Cloud-Keeper" + ], + "appetites": [ + { + "id": "enclosed", + "want": "that nothing should ever go over the top", + "lack": "gone over", + "purpose": "everything would stay in the bottom", + "motif": "ridges", + "prize": "col", + "conscript": "the ones who left", + "asks": "\"Where would you go, anyway?\"", + "appeasement": { + "move": "go up to the ridge and come back down without crossing", + "attribute": "Brawn", + "successes": 2, + "why": "nobody went over", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "sheltering", + "want": "that everything should come in out of the wind", + "lack": "gone past", + "purpose": "nothing would ever be cold outside it", + "motif": "shelter", + "prize": "hearth", + "conscript": "the travellers", + "asks": "\"You'll stop the night, though?\"", + "appeasement": { + "move": "come in and sit down at a fire that is not yours", + "attribute": "Poise", + "successes": 2, + "why": "somebody came in", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "gathered", + "want": "that everything should come down to it and stay", + "lack": "carried out", + "purpose": "nothing would ever be taken back up", + "motif": "bottom", + "prize": "return", + "conscript": "the carriers", + "asks": "\"You're not taking that up with you?\"", + "appeasement": { + "move": "put something down at the bottom and leave it there", + "attribute": "Wits", + "successes": 2, + "why": "something stayed", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + }, + { + "id": "clouded", + "want": "never to share a sky with anywhere else", + "lack": "cleared", + "purpose": "the weather would always be its own", + "motif": "weather", + "prize": "sky", + "conscript": "the ones who wanted a view", + "asks": "\"It'll clear. It always clears.\"", + "appeasement": { + "move": "wait out one turn of its weather without complaining", + "attribute": "Poise", + "successes": 2, + "why": "its weather was borne", + "gain": { + "vanity": 1 + }, + "cost": { + "bane": 1 + }, + "repeatable": true + } + } + ], + "accommodations": [ + { + "id": "keptin", + "text": "kept {conscript} in, and was kind about it the whole time", + "cruelty": 2, + "fits": [ + "enclosed", + "sheltering", + "clouded" + ] + }, + { + "id": "tookweather", + "text": "took {conscript}'s weather until they stopped looking up at all", + "cruelty": 2, + "fits": [ + "clouded", + "enclosed" + ] + }, + { + "id": "onenight", + "text": "let {conscript} shelter one night, and then every night after", + "cruelty": 2, + "fits": [ + "sheltering", + "gathered", + "enclosed" + ] + }, + { + "id": "brought", + "text": "brought {conscript} down to the bottom with everything else it has", + "cruelty": 3, + "fits": [ + "gathered", + "clouded" + ] + }, + { + "id": "closedtop", + "text": "closed the top so gently that {conscript} never noticed it had", + "cruelty": 3, + "fits": [ + "enclosed", + "clouded", + "sheltering" + ] + }, + { + "id": "onlywarm", + "text": "was the only warm place for {conscript}, and made certain of it", + "cruelty": 3, + "fits": [ + "sheltering", + "gathered" + ] + } + ], + "prizes": { + "col": { + "label": "the one notch in the skyline that goes over", + "function": "the only way out that is not back the way you came" + }, + "hearth": { + "label": "the fire that was kept in for whoever came", + "function": "the only warmth here that was never a trap" + }, + "return": { + "label": "the thing that came down and was carried back up", + "function": "the only thing that ever left the bottom again" + }, + "sky": { + "label": "the one clear day, kept", + "function": "the only time anybody here saw out" + } + }, + "placeNames": { + "first": [ + "The Valley of the", + "The Bottom of the", + "Between the", + "The Dale of the", + "The Hollow of the" + ] + }, + "areaNames": { + "approach": [ + "The Valley Mouth", + "The Lower Track", + "The Gate in the Wall", + "The First Field", + "The Bridge In" + ], + "complication": [ + "The Bank Wood", + "The Terraces", + "The Byre", + "The Hanging Wood", + "The Beck" + ], + "turn": [ + "The Head of the Valley", + "The Chapel", + "The Old Farm", + "The Long Meadow", + "The Standing Stone" + ], + "descent": [ + "The Bottom Ground", + "The Slack", + "The Boggy Meadow", + "The Scree Foot", + "The Sunless Side" + ], + "threshold": [ + "The Col", + "The Head Wall", + "The Last Wall", + "The Sheepfold", + "The Watershed" + ], + "ending": [ + "The Valley Head", + "Where the Cloud Sits", + "The Bottom of It", + "Over the Top" + ] + }, + "factions": [ + { + "id": "keptin", + "name": "the Kept In", + "kind": "undead", + "essence": "came in out of the weather and have been very comfortable ever since", + "handledBy": "courtesy" + }, + { + "id": "drove", + "name": "the drove", + "kind": "living", + "essence": "were taking stock through and the top closed on them", + "handledBy": "trade" + }, + { + "id": "cloud", + "name": "the cloud that sits in it", + "kind": "beast", + "essence": "is not weather and does not lift", + "handledBy": "waiting" + }, + { + "id": "beck", + "name": "what comes down the beck", + "kind": "beast", + "essence": "has only ever gone one way, which is down", + "handledBy": "force" + } + ], + "triggerGlossary": { + "announced": "came in at the valley mouth in daylight and were seen from the farms", + "seenTwice": "seen on the tops twice from the bottom", + "loud": "a raised voice in a bottom where every sound comes back off both sides", + "lingering": "stayed one night, which is how it starts", + "disturbed": "took a wall down, went over the col, or carried something up out of the bottom" + }, + "rosters": { + "skirmish": { + "line": "2 Dire Wolves in the hanging wood", + "foes": [ + { + "n": 2, + "name": "Dire Wolf", + "atk": 4, + "def": 3, + "grit": 5, + "nerve": 3, + "note": "work you back down toward the bottom" + } + ], + "harmedBy": "anything", + "avoid": "they will not follow you up onto the open ridge" + }, + "fight": { + "line": "4 Bandits who came in and could not get out again", + "foes": [ + { + "n": 4, + "name": "Bandit", + "atk": 3, + "def": 3, + "grit": 4, + "nerve": 3, + "note": "desperate rather than wicked; they want food and a way over" + } + ], + "harmedBy": "anything", + "avoid": "tell them where the col is and they will take it and go" + }, + "battle": { + "line": "1 Troll at the head wall and 2 Dire Wolves", + "foes": [ + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES 2 Grit a round unless the wound was burnt" + }, + { + "n": 2, + "name": "Dire Wolf", + "atk": 4, + "def": 3, + "grit": 5, + "nerve": 3, + "note": "hold the ground below it" + } + ], + "harmedBy": "anything, but the Troll only stays down if fire touches it — say so before initiative; there is wood in the hanging wood", + "avoid": "it holds the head wall and nothing else; the col is a longer climb and it is clear" + }, + "nightmare": { + "line": "1 Wraith on the col, 1 Troll, 1 Ogre and 2 Dire Wolves", + "foes": [ + { + "n": 1, + "name": "Wraith", + "atk": 5, + "def": 3, + "grit": 10, + "nerve": 5, + "note": "INCORPOREAL — chill touch ignores armour, drains 1 max Grit; it stands in the one way out" + }, + { + "n": 1, + "name": "Troll", + "atk": 5, + "def": 4, + "grit": 14, + "nerve": 4, + "note": "REGENERATES unless burnt" + }, + { + "n": 1, + "name": "Ogre", + "atk": 5, + "def": 3, + "grit": 12, + "nerve": 3, + "note": "comes up from the bottom" + }, + { + "n": 2, + "name": "Dire Wolf", + "atk": 4, + "def": 3, + "grit": 5, + "nerve": 3, + "note": "cut the way back" + } + ], + "harmedBy": "blessed, silvered or magical weapons for the Wraith ONLY; anything for the rest, fire for the Troll", + "avoid": "do not run this without an appeasement route open" + } + }, + "motifs": { + "ridges": { + "danger": "the tops", + "dangerLine": "the valley has one way over and it would rather you did not know which", + "trigger": "disturbed", + "facets": { + "institution": [ + "ridges on both sides running unbroken for miles", + "one notch in the skyline and cloud sitting in it", + "walls running up both sides to the very top, as though to finish the job" + ], + "ritual": [ + "the tops walked once a year by somebody and nobody else ever", + "a cairn kept on the col by whoever goes over", + "a gate in the top wall left shut, always" + ], + "demand": [ + "a skyline with one notch in it that you can only see from one field", + "a gate in the top wall standing shut with the ground worn on both sides", + "a track going up and stopping at the wall" + ], + "wound": [ + "a col with the cairn thrown down into the valley", + "top walls built up higher than any stock needs", + "a track up to the ridge grassed over in one season" + ], + "anchor": [ + "the one notch in the skyline that goes over", + "a cairn on the col that stands", + "a gate in the top wall that opens" + ] + }, + "features": [ + "a notch in the skyline seen from one field", + "a gate shut in a top wall", + "a track stopping at a wall", + "a cairn thrown down off a col", + "top walls built higher than needed", + "a path grassed over in one season" + ], + "decisions": [ + { + "cue": "a skyline with one notch in it that you can only see from one field", + "cost": "the notch is the way over and the field is the only place it shows", + "resolve": { + "roll": "Wits 2", + "success": "you fix the col from the field and can find it again from anywhere in the bottom", + "failure": "you set off for it from the wrong side and the ridge closes up as you climb", + "orElse": "stay in the bottom; there is no way over and the valley is very pleased" + } + }, + { + "cue": "a gate in the top wall standing shut with the ground worn on both sides", + "cost": "things have gone through it both ways and it is shut now", + "resolve": { + "roll": "Brawn 2", + "success": "you open it and the way over stays open behind you for everybody", + "failure": "you climb the wall instead and knock the top off, and the valley notices: +1 Bane", + "orElse": "leave it shut; the drove cannot get out either, and they were counting on you" + } + }, + { + "cue": "a track going up the fell and stopping dead at a wall", + "cost": "the track was used and the wall is newer than the track", + "resolve": { + "roll": "Wits 2", + "success": "you find where the track resumed on the far side and the whole route is yours", + "failure": "you go over the wall on a guess and are on the tops in the cloud", + "orElse": "follow the wall along, costing a Turn and putting you at the head wall" + } + }, + { + "cue": "a cairn thrown down off the col into the valley", + "cost": "somebody unmarked the way over deliberately", + "resolve": { + "roll": "Brawn 2", + "success": "you rebuild it and the col is findable from the bottom by anyone, for good", + "failure": "you leave it and can find the col once, by luck, and not again", + "orElse": "carry the stones down instead; nothing will ever cross here again" + } + }, + { + "cue": "top walls built up higher than any stock ever needed", + "cost": "the walls are not for sheep", + "resolve": { + "roll": "Wits 2", + "success": "you see what they are for and can get through or over at the one weak place", + "failure": "you climb them where they are strongest and are seen doing it from the bottom", + "orElse": "stay below the walls; the whole top of the valley is closed to you" + } + }, + { + "cue": "a path up to the ridge grassed over in a single season", + "cost": "grass does not do that in a season without help", + "resolve": { + "roll": "Wits 2", + "success": "you find the line under the grass and can walk it up in the dark if you have to", + "failure": "you take the obvious line instead, which is not the path, and it ends in crag", + "orElse": "leave it; every route up from here is unmade ground" + } + } + ], + "situations": [ + { + "occupant": "one of the Kept In", + "doing": "standing in a field looking up at a notch in the skyline", + "onArrival": "it points at the notch and then does not move", + "because": "it can see the way over and has never once gone toward it", + "offer": "go up to the col with it and it will show you the true line" + }, + { + "occupant": "a gate", + "doing": "standing shut in a wall on the very top of the ridge", + "onArrival": "the ground is worn deep on both sides of it and the latch is bright", + "because": "things went through both ways until somebody shut it", + "offer": "open it and the way over stays open behind you" + }, + { + "occupant": "two living drovers", + "doing": "standing at a head wall with stock that cannot climb", + "onArrival": "they ask whether the col is passable", + "because": "the top closed while they were coming through", + "offer": "tell them the way and they will drive you out with them" + }, + { + "occupant": "a cairn", + "doing": "lying thrown down in the scree below a col", + "onArrival": "the stones are stacked at the bottom rather than scattered", + "because": "somebody unmarked the crossing on purpose", + "offer": "rebuild it and everything in the bottom can find the way out" + }, + { + "occupant": "the tops", + "doing": "standing unbroken in both directions with cloud lying along them", + "onArrival": "the cloud thins over exactly one point and closes again", + "because": "there is one way over and the valley hides it", + "offer": "watch for the thinning and it will show you the col, once" + }, + { + "occupant": "the Shut Place", + "doing": "filling the whole head of the valley with walls that go up to the sky", + "onArrival": "the walls are higher at the top than at the bottom", + "because": "it wants nothing to go over and it has been building", + "offer": "tell it you are coming back and it will let you go up" + } + ], + "temptations": [ + { + "id": "col", + "cue": "a knowledge of the one notch", + "benefit": "once, find the way out from anywhere", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the valley closes the col to everyone else while you know it", + "acceptanceCost": { + "vice": "Envy" + } + }, + { + "id": "gatepin", + "cue": "the pin out of the top gate", + "benefit": "once, open a way that was shut", + "useCost": { + "bane": 1 + }, + "standingDrawback": "it cannot be shut again behind you" + }, + { + "id": "cairnstone", + "cue": "a stone off the col cairn", + "benefit": "once, mark a crossing so it stays marked", + "useCost": { + "bane": 1 + }, + "standingDrawback": "everything in the bottom follows the mark" + }, + { + "id": "track", + "cue": "a line of the grassed-over path", + "benefit": "walk up in the dark or the cloud", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the thing that grassed it over notices it being used" + }, + { + "id": "wall", + "cue": "a through-stone out of the top wall", + "benefit": "once, get through what was built to hold you", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the wall is one stone weaker for everything else too" + } + ] + }, + "shelter": { + "danger": "the hospitality", + "dangerLine": "everything here wants you to come in and sit down, and it means it kindly", + "trigger": "lingering", + "facets": { + "institution": [ + "a valley that is the only warm place for a day's walk in any direction", + "farms set so that no traveller ever has to pass a door", + "a chapel with the porch swept and the bench worn" + ], + "ritual": [ + "a fire kept in overnight for anybody who comes", + "a bed made up in every house that is not being used", + "a traveller fed before being asked a single question" + ], + "demand": [ + "a fire kept in with the chairs drawn round it and nobody in them", + "a bed made up and turned down in an empty house", + "a table laid for one more than there are" + ], + "wound": [ + "fires kept in for years in houses with nobody left", + "a porch bench worn through by people waiting to be let out", + "beds made up in every room of a house with the door nailed" + ], + "anchor": [ + "the fire that was kept in for whoever came", + "a house where the door opens outward as well", + "a bed that was slept in one night only" + ] + }, + "features": [ + "a fire kept in with chairs drawn round", + "a bed made up in an empty house", + "a table laid for one more", + "a porch bench worn through", + "a door that only opens inward", + "food set out and still warm" + ], + "decisions": [ + { + "cue": "a fire kept in with the chairs drawn round it and nobody sitting in them", + "cost": "sitting down is the whole of it", + "resolve": { + "roll": "Poise 2", + "success": "you sit, and get up again before you are settled, and the valley respects that", + "failure": "you sit and are comfortable, and the next area is a night later than you thought", + "orElse": "stay standing in the doorway; you are cold and nothing here will speak to you" + } + }, + { + "cue": "a bed made up and turned down in a house with nobody in it", + "cost": "one night is one night, they always say", + "resolve": { + "roll": "Poise 2", + "success": "you sleep on the floor instead and wake rested and still your own", + "failure": "you sleep in the bed and the house counts you as staying: +1 Bane", + "orElse": "sleep out; the weather is the valley's and it knows where you are" + } + }, + { + "cue": "a table laid for one more than there are people in the house", + "cost": "the extra place has been laid every night for years", + "resolve": { + "roll": "Wits 2", + "success": "you find who it is laid for and can carry that name to the ending", + "failure": "you sit in the place and everything at the table welcomes you by their name", + "orElse": "eat nothing; the household is offended and closes to you" + } + }, + { + "cue": "a porch bench worn through by people sitting on it a long time", + "cost": "they were waiting to be let out, not in", + "resolve": { + "roll": "Wits 2", + "success": "you understand what the porch is really for and can leave any house at will", + "failure": "you sit on the bench to rest and find the door behind you has closed", + "orElse": "stand in the yard; you learn nothing and get wet doing it" + } + }, + { + "cue": "a door that opens inward and has no latch on the inside", + "cost": "the house is not locked, exactly", + "resolve": { + "roll": "Brawn 2", + "success": "you fit a latch on the inside and the house cannot keep anybody again", + "failure": "you go in to look and the door is a door again, from the other side", + "orElse": "stay out of the house; what is in it is what you needed" + } + }, + { + "cue": "food set out on a table and still warm in a cold house", + "cost": "somebody cooked it and there is nobody to have cooked it", + "resolve": { + "roll": "Poise 2", + "success": "you thank the house aloud and eat, and it feeds you honestly for the delve", + "failure": "you eat without thanking and are a guest now, in the full sense: +1 Bane", + "orElse": "go hungry; -1 die on Brawn until you eat somewhere else, and there is nowhere else" + } + } + ], + "situations": [ + { + "occupant": "a fire", + "doing": "burning in a grate with four chairs drawn round it and nobody in them", + "onArrival": "the chairs are warm and the fire has just been made up", + "because": "the fire is kept in for whoever comes and nobody has come", + "offer": "sit down for exactly as long as it takes to get warm, and the house will help you" + }, + { + "occupant": "one of the Kept In", + "doing": "laying a table for one more than there are", + "onArrival": "it sets the extra place and looks up at you", + "because": "the place is laid every night for somebody who went over the top", + "offer": "take the place and it will tell you who left and how" + }, + { + "occupant": "a living farmwife", + "doing": "making up a bed in a room nobody uses", + "onArrival": "she asks how many of you there are, and how long", + "because": "she has been making beds since before the top closed", + "offer": "tell her one night and she will tell you the way over" + }, + { + "occupant": "a chapel porch", + "doing": "standing swept with a bench worn through in the middle", + "onArrival": "the bench is warm and the chapel door behind it is shut", + "because": "people sat here a long time waiting to be let out", + "offer": "sit and get up again, and the valley will let you go" + }, + { + "occupant": "the Cloud-Keeper", + "doing": "standing in a doorway with a lamp, holding the door open", + "onArrival": "the wind at your back drops the moment it opens the door", + "because": "it is the only warm place and it knows it", + "offer": "accept one hour of it and it will give you the run of the valley" + }, + { + "occupant": "a table", + "doing": "standing laid and steaming in a house with the fire out", + "onArrival": "the food is hot and the room is cold enough to see your breath", + "because": "the house feeds whoever comes and nobody comes", + "offer": "thank the house aloud before you eat and it will not keep you" + } + ], + "temptations": [ + { + "id": "hearth", + "cue": "an ember off the fire kept in", + "benefit": "be welcome anywhere in the valley", + "useCost": { + "bane": 2 + }, + "standingDrawback": "welcome here is very hard to leave", + "acceptanceCost": { + "vice": "Sloth" + } + }, + { + "id": "latch", + "cue": "an inside latch off a door", + "benefit": "once, keep a place from keeping you", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the door you took it from cannot be shut at all now" + }, + { + "id": "place", + "cue": "the extra place at the table", + "benefit": "once, be expected and provided for", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you are expected every night from now on" + }, + { + "id": "bed", + "cue": "a night's rest in a made bed", + "benefit": "recover as though you had slept properly", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the house counts you as staying" + }, + { + "id": "bench", + "cue": "a knowledge of the porch bench", + "benefit": "once, leave a place that wants you to stay", + "useCost": { + "bane": 1 + }, + "standingDrawback": "somebody else waits on the bench in your place" + } + ] + }, + "bottom": { + "danger": "what comes down", + "dangerLine": "everything in this valley ends up at the bottom eventually, including you", + "trigger": "loud", + "facets": { + "institution": [ + "a bottom made entirely of what used to be on the sides", + "a beck that only ever runs one way and takes everything with it", + "fields at the bottom that have never once needed manuring" + ], + "ritual": [ + "what comes down laid out at the bottom and left", + "nothing carried back up, by custom, by anybody", + "the beck walked down each spring and what is in it collected" + ], + "demand": [ + "a heap of what has come down with the newest things on top", + "a beck with something in it that has stopped moving", + "a field at the bottom with a shape under the turf" + ], + "wound": [ + "a bottom dug over by somebody looking for one thing", + "the beck dammed so that nothing more comes down", + "a heap gone through and everything of value taken up" + ], + "anchor": [ + "the thing that came down and was carried back up", + "a record of everything the bottom has", + "a beck that runs clear" + ] + }, + "features": [ + "a heap with the newest things on top", + "something stopped in the beck", + "a shape under the turf of a field", + "a bottom dug over recently", + "a dam across a beck", + "things laid out and left" + ], + "decisions": [ + { + "cue": "a heap of what has come down with the newest things on top", + "cost": "the newest things are recent and one of them is not a thing", + "resolve": { + "roll": "Wits 2", + "success": "you go through the top of the heap and find what came down last, and when", + "failure": "you dig into the heap and the whole side of it comes down on you", + "orElse": "leave the heap; you never learn what has recently arrived at the bottom" + } + }, + { + "cue": "a beck with something in it that has stopped moving", + "cost": "the beck takes everything down and this has stuck", + "resolve": { + "roll": "Brawn 2", + "success": "you free it and the beck runs clear, and what was behind it comes down usefully", + "failure": "you free it and everything held behind it comes down at once, onto you", + "orElse": "leave it stuck; the beck backs up and the bottom ground floods" + } + }, + { + "cue": "a field at the bottom with a shape under the turf", + "cost": "the field has never needed manuring and this is why", + "resolve": { + "roll": "Wits 2", + "success": "you identify what is under it without opening the ground, and it names the transgression", + "failure": "you open the ground and the field is no longer a field, and the valley minds", + "orElse": "leave the turf; the ending has no body and no proof" + } + }, + { + "cue": "a bottom dug over recently by somebody looking for one particular thing", + "cost": "they were looking and they may have found it", + "resolve": { + "roll": "Wits 2", + "success": "you work out what they were after and whether they got it, and both matter", + "failure": "you dig where they dug and find what they were careful to leave", + "orElse": "leave the diggings; somebody else has the thing and you do not know who" + } + }, + { + "cue": "a dam thrown across the beck so that nothing more comes down", + "cost": "damming the beck is the only defiance anybody here has managed", + "resolve": { + "roll": "Brawn 2", + "success": "you keep the dam and the bottom stops taking; the valley is furious and constrained", + "failure": "you break it and everything held up behind it goes to the bottom at once", + "orElse": "leave it; it fails on its own within the Turn, which is worse" + } + }, + { + "cue": "things laid out at the bottom in rows and left, none of them taken", + "cost": "carrying anything up is the one thing nobody here does", + "resolve": { + "roll": "Wits 2", + "success": "you carry one thing up and the valley's hold breaks a little, permanently", + "failure": "you carry it up and something comes up after it, and it is not pleased", + "orElse": "leave the rows; nothing has ever left the bottom and nothing will" + } + } + ], + "situations": [ + { + "occupant": "a heap", + "doing": "lying at the bottom with everything the valley has taken, newest on top", + "onArrival": "something on the top of it is still warm", + "because": "everything comes down and nothing goes up", + "offer": "take one thing off the top and carry it up, and the valley loosens" + }, + { + "occupant": "one of the Kept In", + "doing": "laying things out at the bottom in rows, carefully", + "onArrival": "it sets one down and looks up to see whether you approve", + "because": "what comes down is laid out and left", + "offer": "carry one row's worth up and it will tell you everything the bottom holds" + }, + { + "occupant": "a living digger", + "doing": "turning over the bottom ground with a spade and no hurry", + "onArrival": "he asks whether you know what a thing looks like", + "because": "he has been looking for one particular thing for years", + "offer": "tell him and he will give you everything else he has turned up" + }, + { + "occupant": "the beck", + "doing": "running down with something stuck in it that has stopped the water", + "onArrival": "the water above the block is rising and the water below is clear", + "because": "it takes everything down and this will not go", + "offer": "free it and the beck will carry you down anywhere, fast" + }, + { + "occupant": "a field", + "doing": "lying green at the bottom with a shape showing under the turf", + "onArrival": "the grass over the shape is greener than the rest", + "because": "the field has never needed manuring", + "offer": "name what is under it and the valley will admit what it did" + }, + { + "occupant": "Old Bottom", + "doing": "filling the whole floor of the valley with what used to be on the sides", + "onArrival": "the ground gives very slightly wherever you put your foot", + "because": "everything comes down to it and stays", + "offer": "leave it something willingly and it will let you take something up" + } + ], + "temptations": [ + { + "id": "return", + "cue": "the thing that was carried back up", + "benefit": "once, take something out of the bottom", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the valley takes something of yours down to replace it", + "acceptanceCost": { + "vice": "Greed" + } + }, + { + "id": "spade", + "cue": "the digger's spade", + "benefit": "once, find what the bottom has", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the ground opens for you wherever you carry it" + }, + { + "id": "record", + "cue": "a record of what the bottom holds", + "benefit": "know everything this valley has taken", + "useCost": { + "bane": 1 + }, + "standingDrawback": "you know which of it was people" + }, + { + "id": "dam", + "cue": "a knowledge of how the dam was built", + "benefit": "once, stop things coming down", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they come all at once when it goes" + }, + { + "id": "row", + "cue": "something off the laid-out rows", + "benefit": "once, have exactly what somebody lost", + "useCost": { + "bane": 1 + }, + "standingDrawback": "they are at the bottom, and they want it" + } + ] + }, + "weather": { + "danger": "the cloud", + "dangerLine": "the valley makes its own weather and it has not shared a sky with anywhere else in years", + "trigger": "announced", + "facets": { + "institution": [ + "cloud lying in the valley when the tops are clear", + "a bottom that gets the sun for two hours and the sides that get it all day", + "weather that comes in at the mouth and does not go out at the head" + ], + "ritual": [ + "the sky looked at each morning and nothing said about it", + "washing hung out on the one good day and never since", + "a clear day marked on a doorframe with the date" + ], + "demand": [ + "cloud lying at exactly head height and not lifting", + "a doorframe with one date cut into it and nothing after", + "washing on a line in weather that will not dry it" + ], + "wound": [ + "a doorframe with the dates going up and then stopping", + "cloud that has been down so long the walls are green with it", + "a sundial in a garden that has not been used in living memory" + ], + "anchor": [ + "the one clear day, kept", + "a doorframe with every clear day cut on it", + "a sky you can see out of" + ] + }, + "features": [ + "cloud lying at head height", + "a doorframe with one date cut in it", + "washing that will not dry", + "walls green with standing cloud", + "a sundial gone unused", + "two hours of sun in a bottom" + ], + "decisions": [ + { + "cue": "cloud lying at exactly head height and showing no sign of lifting", + "cost": "you can go up through it or wait it out", + "resolve": { + "roll": "Poise 2", + "success": "you wait it out without complaining and it lifts for you, properly, once", + "failure": "you push up through it and are on the tops in cloud, without a line", + "orElse": "go along the bottom instead; it costs a Turn and the cloud comes down further" + } + }, + { + "cue": "a doorframe with clear days cut into it and the dates stopping", + "cost": "the last date is the last time anybody saw out", + "resolve": { + "roll": "Wits 2", + "success": "you read the dates and know exactly when the valley closed its sky", + "failure": "you cut today's date in and the valley takes that as a claim about the weather", + "orElse": "leave the frame; you have no idea how long this has been going on" + } + }, + { + "cue": "washing on a line in weather that has never been going to dry it", + "cost": "somebody hung it out hoping, and hopes still", + "resolve": { + "roll": "Poise 2", + "success": "you take it in for them and the household will do anything you ask", + "failure": "you leave it and the household takes that as a judgement on them", + "orElse": "take it in and keep it; you have dry cloth and an enemy in the house" + } + }, + { + "cue": "walls green with cloud that has been lying against them for years", + "cost": "the green is the measure of it", + "resolve": { + "roll": "Wits 2", + "success": "you read the growth and know this is older than anybody living here", + "failure": "you scrape it off to see the stone and the cloud comes down to the ground", + "orElse": "ignore the walls; you take the valley's word for how long this has been" + } + }, + { + "cue": "a sundial in a garden that nobody living has ever seen work", + "cost": "it was set up when there was sun to set it by", + "resolve": { + "roll": "Wits 2", + "success": "you set it right and the valley remembers it had a sky, and thins, once", + "failure": "you take the gnomon and the garden loses its last claim on daylight", + "orElse": "leave it; there is no reckoning of time here at all and the Turns blur" + } + }, + { + "cue": "two hours of sun reaching the bottom and the sides lit all day", + "cost": "the light is up there and you are down here", + "resolve": { + "roll": "Wits 2", + "success": "you time the two hours and can be exactly where you need the light to be", + "failure": "you plan by the light on the sides and are in the dark at the bottom", + "orElse": "move by feel; every roll in the next area is at -1 die for the dark" + } + } + ], + "situations": [ + { + "occupant": "cloud", + "doing": "lying in the valley at head height with the tops clear above it", + "onArrival": "it thins around you and closes again behind", + "because": "the valley makes its own weather and will not lift for anybody", + "offer": "wait in it without complaining and it will lift and show you out" + }, + { + "occupant": "one of the Kept In", + "doing": "cutting a date into a doorframe with a knife", + "onArrival": "it stops and asks whether today counts as clear", + "because": "clear days are cut in and there has not been one", + "offer": "tell it today counts and the cloud lifts as far as the ridge" + }, + { + "occupant": "a living woman", + "doing": "hanging washing in weather that will never dry it", + "onArrival": "she asks whether you think it will clear", + "because": "she has hung it out every day since it closed", + "offer": "take it in for her and she will tell you the two hours the sun reaches" + }, + { + "occupant": "a sundial", + "doing": "standing in a garden with the gnomon bright and the dial green", + "onArrival": "a patch of sun crosses it while you stand there and then goes", + "because": "it was set when there was sun and nobody has seen it work", + "offer": "set it true and the valley will give you its one clear day" + }, + { + "occupant": "the Cloud-Keeper", + "doing": "sitting in the head of the valley with the cloud coming off it", + "onArrival": "the cloud pours downhill from it and does not disperse", + "because": "it will not share a sky with anywhere else", + "offer": "bear its weather once, without complaint, and it will show you the top" + }, + { + "occupant": "the sun", + "doing": "reaching the bottom of the valley for exactly two hours", + "onArrival": "the light comes and goes at the same points on the wall", + "because": "the sides get it all day and the bottom gets almost none", + "offer": "be where the light falls and everything here will deal with you honestly" + } + ], + "temptations": [ + { + "id": "sky", + "cue": "the one clear day, kept", + "benefit": "once, have the weather you need", + "useCost": { + "bane": 2 + }, + "standingDrawback": "the valley takes it back double, and chooses when", + "acceptanceCost": { + "vice": "Wrath" + } + }, + { + "id": "frame", + "cue": "a piece of the dated doorframe", + "benefit": "know when this place closed its sky", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the valley knows you have counted" + }, + { + "id": "gnomon", + "cue": "the gnomon off the sundial", + "benefit": "once, know exactly what hour it is", + "useCost": { + "bane": 1 + }, + "standingDrawback": "the garden it came from has no time at all" + }, + { + "id": "washing", + "cue": "dry cloth from a line that never dried", + "benefit": "once, be warm and dry in its weather", + "useCost": { + "bane": 1 + }, + "standingDrawback": "a household here is offended and stays that way" + }, + { + "id": "light", + "cue": "a knowledge of the two hours", + "benefit": "be in the light when you need to be", + "useCost": { + "bane": 1 + }, + "standingDrawback": "so is everything that has been waiting for it" + } + ] + } + } +} \ No newline at end of file diff --git a/foundry-module/module/core/skeleton.mjs b/foundry-module/module/core/skeleton.mjs index 48b1d36..f44590d 100644 --- a/foundry-module/module/core/skeleton.mjs +++ b/foundry-module/module/core/skeleton.mjs @@ -22,7 +22,13 @@ import { arcRole } from './director.mjs'; /** Fills {conscript}-style slots. */ -const fill = (tpl, vars) => tpl.replace(/\{(\w+)\}/g, (_, k) => vars[k] ?? `{${k}}`); +const fill = (tpl, vars) => tpl.replace(/\{(\w+)\}/g, (_, k) => vars[k] ?? `{${k}}`) + // Conscripts are plural noun phrases ("the climbers"), so a template's `{conscript}'s` + // renders "the climbers's". English takes a bare apostrophe on a plural already ending in s. + .replace(/s's\b/g, "s'"); + +/** Claimants may already carry their own article — "The Grey" must not become "The The Grey". */ +const named = c => (/^(the|a|an) /i.test(c) ? c : `The ${c}`); /** Facet order used when a facet is exhausted — borrow from a neighbour before repeating. */ const FACET_ORDER = ['institution', 'ritual', 'demand', 'wound', 'anchor']; @@ -62,12 +68,12 @@ export function generateSkeleton({ pack, areas = 6, ending = 'authored', rng }) const prize = { kind: appetite.prize, ...(pack.prizes?.[appetite.prize] ?? {}) }; const transgression = - `The ${claimant} ${fill(accommodation.text, { conscript: appetite.conscript })}, ` + + `${named(claimant)} ${fill(accommodation.text, { conscript: appetite.conscript })}, ` + `so that ${appetite.purpose}.`; // The bottom problem is the claimant itself — a person in a tomb, an office in a town. const bottomProblem = { - label: `The ${claimant}`, + label: named(claimant), wantNow: appetite.want, failureState: `is ${appetite.lack} now, and cannot bear it`, handledBy: 'giving them what they want, at a price',