module Octane.Data.Decals (decals) where import Data.Function ((&)) import qualified Data.Bimap as Bimap import qualified Data.Text as StrictText -- | A one-to-one mapping between decal IDs and their names. decals :: Bimap.Bimap Int StrictText.Text decals = [ ("Backfire", backfireDecals) , ("Breakout", breakoutDecals) , ("Dominus", dominusDecals) , ("Gizmo", gizmoDecals) , ("Grog", grogDecals) , ("Hotshot", hotshotDecals) , ("Merc", mercDecals) , ("Octane", octaneDecals) , ("Paladin", paladinDecals) , ("Ripper", ripperDecals) , ("Road Hog", roadHogDecals) , ("Scarab", scarabDecals) , ("Takumi", takumiDecals) , ("Venom", venomDecals) , ("X-Devil", xDevilDecals) , ("Zippy", zippyDecals) ] & map (\ (body, values) -> values & map (\ (v, k) -> (k, v ++ " [" ++ body ++ "]"))) & concat & map (\ (k, v) -> (k, StrictText.pack v)) & Bimap.fromList & Bimap.insert 0 (StrictText.pack "None") backfireDecals :: [(String, Int)] backfireDecals = [ ("Flames", 288) , ("Lightning", 289) , ("Skulls", 290) , ("Stars", 291) , ("Stripes", 292) , ("Tech", 293) , ("Wings", 294) ] breakoutDecals :: [(String, Int)] breakoutDecals = [ ("Flames", 295) , ("Lightning", 296) , ("Skulls", 297) , ("Stars", 298) , ("Stripes", 299) , ("Tech", 300) , ("Wings", 301) ] dominusDecals :: [(String, Int)] dominusDecals = [ ("Flames", 504) , ("Scorpions", 506) -- Skorpion , ("Skulls", 507) , ("Stripes", 508) , ("Tats", 509) -- Tribal , ("Wings", 510) ] gizmoDecals :: [(String, Int)] gizmoDecals = [ ("Flames", 323) , ("Lightning", 324) , ("Skulls", 325) , ("Stars", 326) , ("Stripes", 327) , ("Tech", 328) , ("Wings", 329) ] grogDecals :: [(String, Int)] grogDecals = [ ("Bomber", 674) , ("Cyclops", 694) , ("Lepus", 675) -- Bunny , ("Stripes", 687) , ("Tagged", 695) , ("Tribal", 696) ] hotshotDecals :: [(String, Int)] hotshotDecals = [ ("Flames", 337) , ("Lightning", 338) , ("Skulls", 339) , ("Stars", 340) , ("Stripes", 341) , ("Tech", 342) , ("Wings", 343) ] mercDecals :: [(String, Int)] mercDecals = [ ("Dots", 344) , ("Flames", 345) , ("Lightning", 346) , ("Skulls", 347) , ("Stars", 348) , ("Stripes", 349) , ("Wings", 350) ] octaneDecals :: [(String, Int)] octaneDecals = [ ("Flames", 302) , ("Lightning", 303) , ("Skulls", 304) , ("Stars", 305) , ("Stripes", 306) , ("Tech", 307) , ("Wings", 308) ] paladinDecals :: [(String, Int)] paladinDecals = [ ("Flames", 309) , ("Lightning", 310) , ("Skulls", 311) , ("Stars", 312) , ("Stripes", 313) , ("Tech", 314) , ("Wings", 315) ] ripperDecals :: [(String, Int)] ripperDecals = [ ("Bomber", 701) -- Sandgirl , ("Flames", 669) , ("Ockie", 700) -- Getkraken , ("Shot Fox", 670) -- Kitsune , ("Spikes", 671) , ("Tribal", 672) ] roadHogDecals :: [(String, Int)] roadHogDecals = [ ("Flames", 316) , ("Lightning", 317) , ("Skulls", 318) , ("Stars", 319) , ("Stripes", 320) , ("Tech", 321) -- TechSplat , ("Wings", 322) ] scarabDecals :: [(String, Int)] scarabDecals = [ ("Bomani", 585) -- Clouds , ("Derby Girl", 592) -- RollerDerby , ("Flames", 591) , ("Hearts", 586) , ("Tiger", 587) , ("Tribal", 588) ] takumiDecals :: [(String, Int)] takumiDecals = [ ("Chaser", 503) -- Wisp , ("Copycat", 497) -- Gato , ("Crazy-8", 502) -- Technologic , ("Gaki", 499) -- Ohai , ("Reiko", 498) -- Nitrous , ("Stripes", 501) ] venomDecals :: [(String, Int)] venomDecals = [ ("Dots", 351) , ("Flames", 352) , ("Lightning", 353) , ("Skulls", 354) , ("Stripes", 355) , ("Tagged", 356) , ("Wings", 357) ] xDevilDecals :: [(String, Int)] xDevilDecals = [ ("Flames", 330) , ("Lightning", 331) , ("Skulls", 332) , ("Stars", 333) , ("Stripes", 334) , ("Tech", 335) , ("Wings", 336) ] zippyDecals :: [(String, Int)] zippyDecals = [ ("Caboodle", 589) -- HeckTec , ("Callous", 590) -- MeanMachine , ("Flames", 583) , ("Hearts", 581) , ("Leopard", 584) , ("Tiger", 582) ]