Fourteen corpora split and classified: aesop, bierce, chekhov, holmes, keefe, lawson, lorimer, maupassant, nobody, plaintales, poe, torchy, wallingford and winesburg, each with its splitter and the hand-written groups and pages; catalogue v2 and v3; and the shared splitters gutenberg_chunks.py, se_split.py and se_build.py. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019rwKTmug58sEsJ72AuWsEi
317 lines
27 KiB
Python
317 lines
27 KiB
Python
"""Hand-built reference grouping of the Plain Tales predicaments (Claude-written, no local inference).
|
|
|
|
Each scene is in at most one group; scenes that fit no recurring situation stay unassigned.
|
|
Every group spans at least three of the 35 stories, has at least five scenes, and no story supplies
|
|
more than half a group's members.
|
|
Options follow DESIGN.md: 3-5 per group, each marked by where it came from --
|
|
'archetype' a fixed, setting-free option
|
|
'scene:N' what someone in scene N actually did (or refused to do)
|
|
'filled' written to fill a gap the scenes leave
|
|
`moves` names spine paths and a direction only (+ / - / risk / set). No magnitudes: the model never
|
|
chooses a number. Skill labels proposed for this corpus: tact (handling people, reading the unwritten
|
|
rules, keeping a thing quiet) and cunning (kept from Jacobs: the trick, the lever, the used secret).
|
|
"""
|
|
G = [
|
|
# ---- patronage, influence, getting heard ------------------------------------------------------------
|
|
dict(id='G01', name='A word from someone powerful',
|
|
predicament='What you want will go to whoever has someone powerful speaking for them, and nobody powerful is speaking for you.',
|
|
actor='junior with no connections', wants='a good place', counterpart='someone with influence',
|
|
members=[34, 35, 37, 92, 93, 127, 172],
|
|
options=[
|
|
('Do someone influential a daring favour, then ask for yours.', 'scene:93', {'cunning':'+', 'relationships.patron':'+', 'flags.favour_owed':'set'}),
|
|
('Take the place your family arranged, and be grateful.', 'scene:37', {'standing':'+', 'relationships.family':'+', 'flags.placed_by_favour':'set'}),
|
|
('Turn the powerful person you offended into your ally.', 'scene:34', {'tact':'+', 'relationships.patron':'+', 'standing':'risk'}),
|
|
('Find out whose favourite is after your place.', 'filled', {'cunning':'+', 'relationships.rival':'-'}),
|
|
('Let your work speak for itself, and wait.', 'archetype', {'standing':'-'})]),
|
|
dict(id='G02', name='The power behind the title',
|
|
predicament='The person with the title is not the one who decides, and the one who really does answers to nobody.',
|
|
actor='person below', wants='to stay on the right side of the real power', counterpart='someone with sway but no title',
|
|
members=[79, 94, 106, 111, 116],
|
|
options=[
|
|
('Court them quietly, as everyone else does.', 'archetype', {'relationships.power_broker':'+', 'standing':'+'}),
|
|
('Keep out of their way and give them nothing to talk about.', 'filled', {'tact':'+'}),
|
|
('Ask them to use their pull for you, and leave the rest to them.', 'scene:115', {'relationships.power_broker':'+', 'flags.in_their_debt':'set'}),
|
|
('Let them overreach, then tell the story against them in public.', 'scene:111', {'cunning':'+', 'relationships.power_broker':'-', 'standing':'+'}),
|
|
('Defy them, whatever they say about you afterwards.', 'scene:81', {'standing':'risk', 'relationships.power_broker':'-', 'flags.made_an_enemy':'set'})]),
|
|
dict(id='G03', name='One chance to be heard at the top',
|
|
predicament='The one person who can settle your matter is almost impossible to reach, and you may get a single chance to be heard.',
|
|
actor='person with a case', wants='a hearing', counterpart='someone at the very top',
|
|
members=[98, 99, 108, 109, 110, 184, 185],
|
|
options=[
|
|
('Go straight to the most powerful person you can reach, and show what you know.', 'scene:98', {'cunning':'+', 'standing':'risk', 'relationships.the_top':'risk'}),
|
|
('Put your case plainly and let it stand.', 'scene:184', {'tact':'+', 'relationships.the_top':'+'}),
|
|
('Make a spectacle of it, so they cannot forget you.', 'scene:110', {'standing':'risk', 'relationships.the_top':'+', 'flags.made_a_scene':'set'}),
|
|
('Win over someone they already listen to.', 'filled', {'tact':'+', 'relationships.go_between':'+'}),
|
|
('Go through the proper channels, and wait.', 'archetype', {'relationships.gatekeeper':'+'})]),
|
|
dict(id='G04', name='A change imposed by someone who does not know the ground',
|
|
predicament='Someone set over you is imposing a change on something they do not understand, and nobody who knows better has been asked.',
|
|
actor='person below', wants='the old ways kept, or at least a say', counterpart='someone newly in charge',
|
|
members=[95, 180, 181, 205, 206, 247],
|
|
options=[
|
|
('Obey, and keep your opinion to yourself.', 'archetype', {'relationships.superior':'+', 'relationships.company':'-'}),
|
|
('Offer to put it right yourselves, at your own cost.', 'scene:206', {'money':'-', 'relationships.company':'+', 'relationships.superior':'-'}),
|
|
('Get the facts to them through someone they will listen to.', 'scene:184', {'tact':'+', 'relationships.superior':'+'}),
|
|
('Work quietly round the order.', 'scene:207', {'cunning':'+', 'relationships.superior':'risk', 'flags.defied_quietly':'set'}),
|
|
('Grumble with the others, and change nothing.', 'scene:247', {'relationships.company':'+'})]),
|
|
dict(id='G05', name='Knowing what goes on below',
|
|
predicament='You know what really goes on among people nobody above you bothers to ask, and that knowledge could settle a matter.',
|
|
actor='person who mixes below', wants='to put what they know to use', counterpart='those who never ask',
|
|
members=[32, 179, 182, 221, 222, 279],
|
|
options=[
|
|
('Tell the people at the top what they have not heard.', 'scene:182', {'standing':'+', 'relationships.the_top':'+'}),
|
|
('Go among them yourself, quietly, and find out.', 'scene:221', {'cunning':'+', 'standing':'risk', 'flags.went_among_them':'set'}),
|
|
('Let the liars see that you know, and watch them fold.', 'scene:222', {'cunning':'+', 'relationships.accuser':'-'}),
|
|
('Keep it to yourself: nobody above values it anyway.', 'scene:28', {'standing':'-'}),
|
|
('Trade what you know for a better place.', 'filled', {'money':'+', 'relationships.the_top':'+', 'relationships.informants':'-'})]),
|
|
# ---- work, merit, strain ----------------------------------------------------------------------------
|
|
dict(id='G06', name='Good work that counts for nothing',
|
|
predicament='You do the job better than those above you, and it earns you nothing but their resentment.',
|
|
actor='capable junior', wants='credit for good work', counterpart='those above who take it',
|
|
members=[16, 27, 29, 190, 263],
|
|
options=[
|
|
('Keep doing it well, and say nothing.', 'archetype', {'standing':'-', 'flags.unrewarded':'set'}),
|
|
('Go back to doing it your own way once their anger passes.', 'scene:29', {'standing':'-', 'relationships.superiors':'-'}),
|
|
('Take nothing seriously, since good work goes to others anyway.', 'scene:16', {'relationships.colleagues':'+', 'standing':'-'}),
|
|
('Make sure the right person sees what you did.', 'filled', {'tact':'+', 'standing':'+', 'relationships.superiors':'risk'})]),
|
|
dict(id='G07', name='Work nobody sees',
|
|
predicament='You are carrying far more work than anyone knows, and the only people who notice are the ones who profit from it.',
|
|
actor='overloaded worker', wants='to hold it all together', counterpart='those who pile it on',
|
|
members=[103, 163, 174, 189, 199, 200, 264, 267],
|
|
options=[
|
|
('Sit up nights and get it all done.', 'scene:199', {'standing':'+', 'flags.overworked':'set'}),
|
|
('Keep going on their praise alone.', 'scene:264', {'relationships.superiors':'+', 'flags.overworked':'set'}),
|
|
('Tell someone what you are carrying.', 'filled', {'relationships.colleagues':'+', 'standing':'-'}),
|
|
('Find your own private relief, and tell nobody.', 'scene:163', {'standing':'risk', 'flags.secret_vice':'set'}),
|
|
('Take the rest you are owed.', 'archetype', {'standing':'-'})]),
|
|
dict(id='G08', name='The strain gives way',
|
|
predicament='The strain you hid for months has finally broken through, and now everyone can see what it has done to you.',
|
|
actor='person at breaking point', wants='to recover without losing everything', counterpart='those who see it',
|
|
members=[104, 105, 154, 166, 193, 201],
|
|
options=[
|
|
('Take leave, and go away to mend.', 'scene:105', {'standing':'-', 'flags.on_leave':'set'}),
|
|
('Throw it all up and walk away.', 'scene:193', {'standing':'-', 'money':'-', 'flags.walked_out':'set'}),
|
|
('Beg to be let go quietly.', 'scene:154', {'relationships.superior':'+', 'standing':'-'}),
|
|
('Let it be passed off as illness, and carry on.', 'scene:167', {'standing':'+', 'flags.covered_up':'set'}),
|
|
('Snap back at whoever pushed you there.', 'scene:201', {'relationships.tormentor':'-', 'standing':'risk'})]),
|
|
# ---- newcomers and first posts ----------------------------------------------------------------------
|
|
dict(id='G09', name='The rules nobody tells you',
|
|
predicament='You are new, and everyone around you follows rules nobody will explain until you have broken them.',
|
|
actor='newcomer', wants='to fit in on their own terms', counterpart='the old hands',
|
|
members=[17, 100, 102, 139, 170, 171],
|
|
options=[
|
|
('Keep telling them how things ought to be done.', 'scene:171', {'relationships.old_hands':'-', 'standing':'risk'}),
|
|
('Take the teasing without a word, and bide your time.', 'scene:140', {'tact':'+', 'relationships.old_hands':'+'}),
|
|
('Throw yourself into everything they do.', 'scene:17', {'money':'-', 'relationships.old_hands':'+', 'flags.overreached':'set'}),
|
|
('Watch and learn before you open your mouth.', 'archetype', {'tact':'+'}),
|
|
('Ask someone you trust what is expected.', 'filled', {'relationships.mentor':'+'})]),
|
|
dict(id='G10', name='Sent out young, with nobody watching',
|
|
predicament='You have been sent out young to your first real post, far from anyone who knows you, and you are starting to go wrong.',
|
|
actor='young man in his first post', wants='to make good', counterpart='the people who could warn him and do not',
|
|
members=[14, 15, 18, 38, 59, 186, 188],
|
|
options=[
|
|
('Do enough to get by, and congratulate yourself.', 'scene:38', {'standing':'+', 'flags.drifting':'set'}),
|
|
('Take one scolding to heart and decide you are ruined.', 'scene:18', {'standing':'-', 'flags.despairing':'set'}),
|
|
('Cut your spending and live on what you have.', 'scene:188', {'money':'+', 'relationships.colleagues':'-'}),
|
|
('Find an older hand who has been there, and listen.', 'scene:25', {'relationships.mentor':'+'}),
|
|
('Write home as if all is well.', 'filled', {'relationships.family':'+', 'flags.hiding_trouble':'set'})]),
|
|
# ---- marriage and prospects -------------------------------------------------------------------------
|
|
dict(id='G11', name='The marriage or the career',
|
|
predicament='The marriage you want would cost you your prospects, and the people above you have made clear which they expect you to choose.',
|
|
actor='ambitious junior', wants='both love and advancement', counterpart='those who control their prospects',
|
|
members=[36, 73, 77, 113, 114, 187, 191],
|
|
options=[
|
|
('Marry anyway, and take the consequences.', 'scene:114', {'relationships.beloved':'+', 'standing':'-', 'flags.married_against_advice':'set'}),
|
|
('Marry in secret, and keep it from those above you.', 'scene:187', {'relationships.beloved':'+', 'money':'-', 'flags.secret_marriage':'set'}),
|
|
('Give up the work you love to win consent.', 'scene:36', {'relationships.beloved':'+', 'standing':'+', 'flags.gave_up_calling':'set'}),
|
|
('Earn the promotion first, whatever it takes.', 'scene:75', {'standing':'+', 'money':'+', 'relationships.beloved':'risk'}),
|
|
('Let the match go, and keep your career.', 'scene:117', {'standing':'+', 'relationships.beloved':'-'})]),
|
|
dict(id='G12', name='A good match your heart refuses',
|
|
predicament='Your family wants you to accept a well-placed match, and your heart is with someone who has no prospects at all.',
|
|
actor='young woman', wants='to marry for love', counterpart='a family with ambitions for her',
|
|
members=[30, 39, 64, 86, 87],
|
|
options=[
|
|
('Give in, and marry where they choose.', 'scene:86', {'relationships.family':'+', 'money':'+', 'relationships.beloved':'-'}),
|
|
('Tell them calmly that you have chosen, and keep saying it.', 'scene:2', {'relationships.family':'-', 'standing':'risk'}),
|
|
('Let the one you love find a way round your parents.', 'scene:30', {'relationships.beloved':'+', 'cunning':'+'}),
|
|
('Slip away to the one you love whenever you can.', 'scene:66', {'relationships.beloved':'+', 'relationships.family':'-'}),
|
|
('Wait for them, however long it takes.', 'filled', {'relationships.beloved':'+', 'relationships.family':'-'})]),
|
|
dict(id='G13', name='Someone else wants them too',
|
|
predicament='Someone else is after the person you want, and the contest is being fought out in front of everyone you know.',
|
|
actor='suitor or spouse', wants='the person they love', counterpart='a rival',
|
|
members=[10, 11, 12, 13, 44, 45, 55, 60, 66, 67, 68, 69],
|
|
options=[
|
|
('Say nothing, then outshine the rival on one evening.', 'scene:10', {'tact':'+', 'relationships.rival':'-', 'relationships.beloved':'+'}),
|
|
('Choose in public, and let the loser be humiliated.', 'scene:68', {'relationships.beloved':'+', 'relationships.rival':'-', 'standing':'risk'}),
|
|
('Reclaim them before everyone, laughing.', 'scene:12', {'relationships.beloved':'+', 'standing':'+'}),
|
|
('Treat them kindly where the rival used them.', 'scene:61', {'relationships.beloved':'+', 'relationships.rival':'-'}),
|
|
('Take your time, and keep everyone guessing.', 'scene:45', {'relationships.beloved':'risk'})]),
|
|
# ---- reputation, talk, lies -------------------------------------------------------------------------
|
|
dict(id='G14', name='Everyone will hear of it',
|
|
predicament='Something embarrassing has happened, and in a place where everyone knows everyone the story will follow you unless it is kept quiet.',
|
|
actor='person with a story to bury', wants='to keep their name out of it', counterpart='the gossips',
|
|
members=[84, 90, 125, 215, 228, 237],
|
|
options=[
|
|
('Beg the one person who saw it to say nothing.', 'scene:125', {'relationships.witness':'+', 'flags.owes_silence':'set'}),
|
|
('Put about a harmless cover story.', 'scene:91', {'cunning':'+', 'flags.cover_story':'set'}),
|
|
('Settle it in private, with no public scandal.', 'scene:237', {'tact':'+', 'relationships.culprit':'-'}),
|
|
('Punish everyone involved, publicly.', 'scene:214', {'standing':'-', 'relationships.company':'-'}),
|
|
('Laugh at it first and loudest.', 'filled', {'tact':'+', 'standing':'+'})]),
|
|
dict(id='G15', name='Everyone has already decided',
|
|
predicament='Everything looks against you, and the people whose opinion matters have made up their minds before you can explain.',
|
|
actor='person wrongly suspected', wants='to be believed', counterpart='those who have judged them',
|
|
members=[80, 82, 83, 122, 123, 143, 144, 220],
|
|
options=[
|
|
('Explain again, at length, from the beginning.', 'scene:122', {'standing':'-', 'relationships.accusers':'-'}),
|
|
('Deny it flatly and say no more.', 'scene:82', {'relationships.spouse':'-', 'flags.under_suspicion':'set'}),
|
|
('Ask to see their proof.', 'scene:144', {'tact':'+', 'standing':'+'}),
|
|
('Call in someone who can find out the truth.', 'scene:221', {'cunning':'+', 'relationships.friends':'+'}),
|
|
('Keep your temper, and wait for someone who knows you.', 'archetype', {'tact':'+'})]),
|
|
dict(id='G16', name='A lie to spare them',
|
|
predicament='The truth would hurt someone badly, and a careful lie would spare them, if you can keep it up.',
|
|
actor='person holding a painful truth', wants='to spare someone', counterpart='the one who would be hurt',
|
|
members=[4, 5, 6, 22, 23, 25, 91, 173, 175, 176],
|
|
options=[
|
|
('Tell the lie, and build it so it will hold.', 'scene:23', {'cunning':'+', 'relationships.deceived':'+', 'flags.kind_lie':'set'}),
|
|
('Keep the pretence up to the very end, at your own cost.', 'scene:175', {'money':'-', 'relationships.deceived':'+', 'flags.kind_lie':'set'}),
|
|
('Tell the comforting lie that spares you a scene.', 'scene:4', {'relationships.deceived':'risk', 'flags.kind_lie':'set'}),
|
|
('Admit the lie when they find you out.', 'scene:6', {'relationships.deceived':'-'}),
|
|
('Tell the truth gently, and bear what follows.', 'filled', {'relationships.deceived':'-', 'standing':'+'})]),
|
|
dict(id='G17', name='Getting even by a trick',
|
|
predicament='Someone who has wronged or tormented you has a weakness you could use, and a clever trick would pay them back in full.',
|
|
actor='person with a score to settle', wants='to get even without being caught', counterpart='the one who wronged them',
|
|
members=[81, 85, 140, 145, 195, 198, 203, 207, 213],
|
|
options=[
|
|
('Bet them you will get your own back, and wait.', 'scene:140', {'cunning':'+', 'relationships.tormentor':'risk'}),
|
|
('Pretend to submit while you plan.', 'scene:207', {'cunning':'+', 'relationships.superior':'+', 'flags.plotting':'set'}),
|
|
('Use the system itself to bury them in work.', 'scene:198', {'cunning':'+', 'relationships.rival':'-', 'flags.vendetta':'set'}),
|
|
('Hand them something that will torment them, and never explain.', 'scene:81', {'cunning':'+', 'relationships.rival':'-', 'flags.vendetta':'set'}),
|
|
('Let it go.', 'archetype', {'relationships.rival':'+'})]),
|
|
dict(id='G18', name='It fell into your hands',
|
|
predicament='By accident you have come into something not meant for you, a secret or an advantage, and you could turn it to your own ends.',
|
|
actor='person with an accidental advantage', wants='to profit by it', counterpart='those it was meant for',
|
|
members=[96, 97, 150, 234, 235],
|
|
options=[
|
|
('Use it to get what you want.', 'scene:97', {'cunning':'+', 'standing':'+', 'flags.used_a_secret':'set'}),
|
|
('Keep it to yourself until the moment comes.', 'scene:150', {'cunning':'+', 'money':'+'}),
|
|
('Take it, and take your chance.', 'scene:235', {'relationships.beloved':'+', 'standing':'risk', 'flags.stolen':'set'}),
|
|
('Hand it back to its owner.', 'filled', {'standing':'+', 'relationships.owner':'+'})]),
|
|
# ---- meddling, standing by, crossing over ----------------------------------------------------------
|
|
dict(id='G19', name='Saving them from themselves',
|
|
predicament='Someone is heading for ruin without seeing it, and you could step in behind their back and steer them off it.',
|
|
actor='onlooker', wants='to save someone from their own folly', counterpart='someone who does not want saving',
|
|
members=[19, 52, 53, 62, 115, 236],
|
|
options=[
|
|
('Win their trust with kindness, then talk sense into them.', 'scene:62', {'tact':'+', 'relationships.protege':'+'}),
|
|
('Take matters into your own hands, by force if need be.', 'scene:115', {'cunning':'+', 'relationships.protege':'risk', 'flags.meddled':'set'}),
|
|
('Drop everything and go after them now.', 'scene:19', {'relationships.protege':'+', 'standing':'risk'}),
|
|
('Search their things for proof, and risk being the thief yourself.', 'scene:236', {'cunning':'+', 'standing':'risk'}),
|
|
('Mind your own business.', 'archetype', {'relationships.protege':'-'})]),
|
|
dict(id='G20', name='Swallowing it from someone above',
|
|
predicament='Someone with power over you orders you about like a dog, and everything you want depends on swallowing it.',
|
|
actor='person held down', wants='to keep their place without losing themselves', counterpart='someone above them',
|
|
members=[31, 33, 57, 58, 71],
|
|
options=[
|
|
('Hold your tongue, and do as you are told.', 'scene:31', {'relationships.superior':'+', 'standing':'-'}),
|
|
('Fetch and carry, hoping to be noticed.', 'scene:58', {'money':'-', 'relationships.superior':'+', 'standing':'-'}),
|
|
('Lose your temper and tell them what you think.', 'scene:33', {'standing':'risk', 'relationships.superior':'-', 'flags.gave_self_away':'set'}),
|
|
('Look for somewhere else to go.', 'filled', {'relationships.superior':'-', 'money':'risk'})]),
|
|
dict(id='G21', name='Seeing it, and saying nothing',
|
|
predicament='You can see plainly that something is wrong in front of you, and saying so would cost you or someone else more than silence.',
|
|
actor='onlooker', wants='to do right without making it worse', counterpart='the one doing wrong',
|
|
members=[48, 136, 138, 219, 232],
|
|
options=[
|
|
('Keep quiet, so as not to spoil things.', 'scene:48', {'relationships.company':'+', 'flags.kept_silent':'set'}),
|
|
('Say nothing, but keep well clear of it.', 'scene:232', {'tact':'+'}),
|
|
('Go along with it, afraid of what they could do to you.', 'scene:136', {'relationships.wrongdoer':'+', 'flags.kept_silent':'set'}),
|
|
('Bring in someone with the power to stop it.', 'scene:221', {'relationships.authority':'+', 'standing':'risk'}),
|
|
('Speak up, whatever it costs.', 'filled', {'standing':'risk', 'relationships.wrongdoer':'-'})]),
|
|
dict(id='G22', name='Belonging to neither side',
|
|
predicament='You have crossed into a world your own circle looks down on, and now you belong fully to neither.',
|
|
actor='person between two worlds', wants='a place of their own', counterpart='both sides',
|
|
members=[0, 28, 41, 155, 277, 278],
|
|
options=[
|
|
('Go back to where you came from, and burn the bridge.', 'scene:6', {'relationships.own_circle':'-', 'flags.went_back':'set'}),
|
|
('Keep your two lives strictly apart.', 'scene:159', {'cunning':'+', 'standing':'risk', 'flags.double_life':'set'}),
|
|
('Live openly on the other side, and ask nobody for anything.', 'scene:278', {'standing':'-', 'relationships.own_circle':'-'}),
|
|
('Put what you have learned to use for your own side.', 'scene:28', {'cunning':'+', 'standing':'risk'})]),
|
|
# ---- love, home, loss -------------------------------------------------------------------------------
|
|
dict(id='G23', name='Not free to love them',
|
|
predicament='You love someone who is not free, or you are not, and every meeting risks a scandal your world will not forgive.',
|
|
actor='lover', wants='to be near them', counterpart='someone bound elsewhere',
|
|
members=[3, 157, 159, 256, 260, 261],
|
|
options=[
|
|
('Meet in secret, and keep it hidden.', 'scene:157', {'relationships.beloved':'+', 'standing':'risk', 'flags.secret_affair':'set'}),
|
|
('Enjoy their company and tell yourself it means nothing.', 'scene:3', {'relationships.beloved':'+', 'flags.led_on':'set'}),
|
|
('Say goodbye, and mean never to see them again.', 'scene:261', {'relationships.beloved':'-', 'standing':'+'}),
|
|
('Tell them plainly how you feel.', 'filled', {'relationships.beloved':'risk'})]),
|
|
dict(id='G24', name='Devoted to someone who does not care',
|
|
predicament='You have given your devotion to someone who takes it as their due, and everyone but you can see they do not care.',
|
|
actor='devoted admirer', wants='to matter to them', counterpart='someone who does not care',
|
|
members=[164, 227, 233, 265, 268],
|
|
options=[
|
|
('Pour your best work into a gift for them.', 'scene:266', {'standing':'+', 'relationships.idol':'risk', 'flags.devoted':'set'}),
|
|
('Worship from a distance, and ask nothing.', 'scene:165', {'relationships.idol':'+', 'flags.devoted':'set'}),
|
|
('Press harder for their attention.', 'scene:227', {'relationships.idol':'-', 'relationships.colleagues':'-'}),
|
|
('See them as they are, and walk away.', 'filled', {'relationships.idol':'-', 'standing':'+'})]),
|
|
dict(id='G25', name='Too late',
|
|
predicament='You arrive, or understand, at last, and it may already be too late to set it right.',
|
|
actor='person arriving too late', wants='to put it right', counterpart='someone past helping',
|
|
members=[20, 43, 89, 194, 270],
|
|
options=[
|
|
('Race there anyway, as fast as you can.', 'scene:20', {'relationships.lost_one':'+', 'money':'-'}),
|
|
('Offer everything you have, though they may no longer need it.', 'scene:43', {'money':'-', 'relationships.lost_one':'risk'}),
|
|
('Ask for help now, though you should have asked long ago.', 'scene:270', {'relationships.neighbours':'+', 'standing':'-'}),
|
|
('Laugh at the reward that came too late, and walk away.', 'scene:194', {'standing':'-', 'flags.walked_out':'set'})]),
|
|
dict(id='G26', name='An omen meant for you',
|
|
predicament='Something uncanny seems to be speaking to you directly, and the sensible explanation may not be the true one.',
|
|
actor='person given a sign', wants='to know what to do', counterpart='whatever sent it',
|
|
members=[129, 231, 238, 272, 273],
|
|
options=[
|
|
('Obey it, whatever it costs.', 'scene:274', {'standing':'risk', 'flags.followed_sign':'set'}),
|
|
('Pay whatever it asks.', 'scene:134', {'money':'-', 'flags.followed_sign':'set'}),
|
|
('Laugh it off as a story.', 'scene:234', {'standing':'+'}),
|
|
('Send for someone who knows how such things are done.', 'scene:129', {'cunning':'+', 'relationships.adviser':'+'}),
|
|
('Pass it on quietly where it can do no harm.', 'scene:237', {'flags.rid_of_it':'set'})]),
|
|
dict(id='G27', name='Panic in the dark',
|
|
predicament='Something uncanny has come at you out of the dark, and one person\'s fright could carry everyone with it.',
|
|
actor='frightened person', wants='to keep their head', counterpart='whatever is out there',
|
|
members=[49, 131, 132, 133, 210, 211],
|
|
options=[
|
|
('Keep still and watch until you see how it is done.', 'scene:133', {'cunning':'+'}),
|
|
('Run with everyone else.', 'scene:211', {'standing':'-', 'relationships.company':'+'}),
|
|
('Walk up and lay your hands on it.', 'scene:213', {'standing':'+', 'flags.faced_it':'set'}),
|
|
('Huddle together and wait for the light.', 'scene:49', {'relationships.company':'+'})]),
|
|
dict(id='G28', name='A marriage gone cold',
|
|
predicament='The one you married has stopped seeing you except to mock or ignore you, and everyone around you has noticed.',
|
|
actor='neglected spouse', wants='to be seen again', counterpart='their spouse',
|
|
members=[8, 9, 88, 217, 218],
|
|
options=[
|
|
('Keep your own counsel, and plan how to win them back.', 'scene:10', {'tact':'+', 'relationships.spouse':'+'}),
|
|
('Bear it with a smile in front of guests.', 'scene:219', {'relationships.spouse':'-', 'standing':'-'}),
|
|
('Pour your love into your children instead.', 'scene:218', {'relationships.children':'+', 'relationships.spouse':'-'}),
|
|
('Tell them plainly what it is doing to you.', 'filled', {'relationships.spouse':'risk'})]),
|
|
dict(id='G29', name='The habit that is taking everything',
|
|
predicament='A private habit is slowly taking your work, your money and your people, and you keep promising yourself you will stop.',
|
|
actor='person in the grip of a habit', wants='to stop, or to stop caring', counterpart='their own habit',
|
|
members=[165, 242, 245, 280, 281],
|
|
options=[
|
|
('Fight it alone, week by week.', 'scene:165', {'standing':'+', 'flags.fighting_habit':'set'}),
|
|
('Swear an oath, and never drink alone again.', 'scene:167', {'standing':'+', 'relationships.friends':'+'}),
|
|
('Let someone else take charge of your money.', 'scene:243', {'money':'-', 'relationships.supplier':'+'}),
|
|
('Give in, and stop caring.', 'scene:281', {'standing':'-', 'money':'-', 'flags.given_up':'set'})]),
|
|
]
|
|
|
|
# Protagonist standing by story, for stage assignment (DESIGN.md "Stages"). Per story, not per
|
|
# scene: a coarse first cut, and the one place this grouping uses a judgement not in the text.
|
|
STANDING = {0:'low', 1:'middle', 2:'low', 3:'middle', 4:'low', 5:'middle', 6:'low', 7:'middle',
|
|
8:'low', 9:'high', 10:'middle', 11:'low', 12:'low', 13:'high', 14:'middle', 15:'low',
|
|
16:'middle', 17:'low', 18:'middle', 19:'middle', 20:'middle', 21:'middle', 22:'high',
|
|
23:'low', 24:'low', 25:'middle', 26:'middle', 27:'low', 28:'middle', 29:'low',
|
|
30:'middle', 31:'low', 32:'high', 33:'middle', 34:'low'}
|
|
# Subalterns, first-post juniors, a signaller, an orphan, an addict and a loafer rank low; officials
|
|
# of some years' standing, their wives and the narrator middle; a colonel's household (9), the
|
|
# viceroy's circle (13), the supreme council (22) and a senior department's indispensable expert (32)
|
|
# high. Story 9 is judged by the colonel and his wife, who bear its consequences, not by the subaltern
|
|
# whose watch starts it. Story 25 is judged middle because its scenes alternate between the colonel
|
|
# and the subaltern who defies him.
|