UNPKG

@randsum/salvageunion

Version:

A flexible, type-safe dice roller for the Salvage Union system

197 lines (187 loc) 5.57 kB
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 }