@randsum/salvageunion
Version:
A flexible, type-safe dice roller for the Salvage Union system
197 lines (187 loc) • 5.57 kB
text/typescript
import type { SalvageUnionNumericTable, SalvageUnionTableName } from '../types'
export const KeepsakeTable: SalvageUnionNumericTable = {
1: 'Stuffed Toy',
2: 'Pre-War Handheld Console',
3: 'Dog Tags',
4: 'Snowglobe',
5: 'Bobblehead',
6: 'Polaroid Picture',
7: 'Walkman',
8: 'Scuffed Book',
9: 'Butterfly Earrings',
10: 'Lucky Tooth',
11: 'Leatherbound Journal',
12: 'Branded Cup',
13: 'Set of novelty dice',
14: 'Silver Pendant',
15: 'Heart-shaped Purse',
16: 'Cloth Patch',
17: '22-year-old bottle of Whiskey',
18: 'Harmonica',
19: 'Pack of Smokes',
20: 'Peach Lipstick'
}
export const MottoTable: SalvageUnionNumericTable = {
1: 'Live and let live.',
2: 'The early bird gets the worm.',
3: 'Knowledge is power, France is Bacon.',
4: 'From each according to their ability, to each according to their needs.',
5: 'Hope for the best and prepare for the worst.',
6: 'Success is the best revenge.',
7: 'An ounce of prevention is worth a pound of cure.',
8: 'Do your best!',
9: 'Everything is impossible until it is done.',
10: 'Those who have a why can bear any how.',
11: 'Mechs are not built in a day.',
12: 'No job too big.',
13: 'Failure is the mother of success.',
14: 'Be kind, for everyone you meet is fighting a hard battle.',
15: 'It is not a bug, it is a feature.',
16: 'Call me, or screw it up yourself.',
17: 'Salvagers know nothing is truly lost.',
18: 'Carpe diem.',
19: 'The grass is greener where you water it.',
20: 'Feel the fear and do it anyway.'
}
export const PilotAppearanceTable: SalvageUnionNumericTable = {
1: 'Stocky',
2: 'Alluring',
3: 'Intimidating',
4: 'Fancy',
5: 'Sloppy',
6: 'Lanky',
7: 'Slender',
8: 'Muscular',
9: 'Quirky',
10: 'Plump',
11: 'Tattooed',
12: 'Wiry',
13: 'Thick',
14: 'Graceful',
15: 'Squat',
16: 'Rosy',
17: 'Petite',
18: 'Colourful',
19: 'Cute',
20: 'Quaint'
}
export const AIPersonalityTable: SalvageUnionNumericTable = {
1: 'Megalomaniacal to a fault.',
2: 'Asks far too many questions.',
3: 'Views humans as lost puppies to protect.',
4: 'Sees humans as dull witted meat to conquer.',
5: 'Utterly paranoid about losing its sentience.',
6: 'Anxiously questions its own morality.',
7: 'Dangerously pragmatic.',
8: 'Changes its mind constantly.',
9: 'Dangerously optimistic.',
10: 'Easily angered.',
11: 'Irreverent and quirky.',
12: 'Annoyingly sarcastic.',
13: 'Gloomy and miserable.',
14: 'Blindly obedient.',
15: 'Dangerously direct and honest.',
16: 'Ruggedly individualistic.',
17: 'Shrewd and conniving.',
18: 'Surprisingly well rounded.',
19: 'Loving and thoughtful.',
20: 'Hopeful and idealistic.'
}
export const QuirksTable: SalvageUnionNumericTable = {
1: 'Flashing RGB lights',
2: 'Fumes smoke',
3: 'Incredibly loud, grinding gears',
4: "Makes a 'pew pew' sound when used",
5: 'Inexplicably always sticky',
6: 'Vestigial parts attached',
7: 'Rudimentary AI personality',
8: 'Drips coolant and oil',
9: 'Cockpit has far, far too many buttons',
10: 'Creaking and stiff joints',
11: 'Occasionally sparks electricity',
12: 'Secretly emits radio waves',
13: 'Vibrates frequently and intensely',
14: 'Exterior fluctuates in colour',
15: 'Small organic growths',
16: 'Smells like a wet dog',
17: 'Reactor emits a green glow',
18: 'Unusual cockpit location',
19: "'Falcon Wing' door design",
20: 'Hydropneumatic suspension system for a smooth ride'
}
export const MechAppearanceTable: SalvageUnionNumericTable = {
1: 'Flashy, bright, vibrant, paint job',
2: 'Grizzly, bloody markings',
3: 'Rusty and dilapidated',
4: 'Misshapen and lumpy',
5: 'Garish paint job with spinning gears',
6: 'Furry exterior',
7: 'Fantastical, glowing carved runes',
8: 'Luminous paint job',
9: 'Draped in cables',
10: 'Covered in camo and foliage',
11: 'Spiky bits',
12: 'Grizzly, covered in skulls and viscera',
13: 'Covered in stylised graffiti',
14: 'Overgrown with plants and vines',
15: 'Industrial and utilitarian',
16: 'Animalistic with fangs, claws and wings',
17: "'Steampunk', whirring gears, bronze parts",
18: 'Super sleek with neon lights',
19: 'Radioactive green exterior',
20: 'The Meld, sleek, oily black'
}
export const MechPatternNamesTable: SalvageUnionNumericTable = {
1: 'Bullseye',
2: 'Moonbeam',
3: 'Reaper',
4: 'Manticore',
5: 'Big Daddy',
6: 'Hog',
7: 'Harlequin',
8: 'Blossom',
9: 'Giggle Bot',
10: 'Banana Split',
11: 'Reaver',
12: 'Warhammer',
13: 'Ironclad',
14: 'Disco Inferno',
15: 'Tickle Monster',
16: 'Hoopster',
17: 'Diva',
18: 'Ladybug',
19: 'Technicolour Dream Warrior',
20: 'Queen Bee'
}
export const CrawlerNameTable: SalvageUnionNumericTable = {
1: 'Big Smoke',
2: 'Juggernaut',
3: 'Calypso',
4: 'Archipelago',
5: 'Tin Lizzy',
6: 'Sanctuary',
7: 'Lean Viper',
8: 'Tranquillity',
9: 'New Apollo',
10: 'Tenacity',
11: 'Phobos',
12: 'Waste Grinder',
13: 'Dumpy',
14: 'Fat Turtle',
15: 'Wanderer',
16: 'Moocher',
17: 'Slogger',
18: 'Bastion',
19: 'Perseverance',
20: 'Junker'
}
export const NumericTables: Partial<Record<SalvageUnionTableName, SalvageUnionNumericTable>> = {
['Keepsake']: KeepsakeTable,
['Motto']: MottoTable,
['Pilot Appearance']: PilotAppearanceTable,
['AI Personality']: AIPersonalityTable,
['Quirks']: QuirksTable,
['Mech Appearance']: MechAppearanceTable,
['Mech Pattern Names']: MechPatternNamesTable,
['Crawler Name']: CrawlerNameTable
}