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
}
