Module:Constants

local constants = {}

local CHARACTERS = { -- VIRTUAL SINGER ['hatsune miku'] = 'Hatsune Miku', ['miku']    = 'Hatsune Miku', ['kagamine rin'] = 'Kagamine Rin', ['rin']     = 'Kagamine Rin', ['kagamine len'] = 'Kagamine Len', ['len']     = 'Kagamine Len', ['megurine luka'] = 'Megurine Luka', ['luka']     = 'Megurine Luka', ['meiko'] = 'MEIKO', ['kaito'] = 'KAITO', -- Leo/need ['hoshino ichika'] = 'Hoshino Ichika', ['ichika']    = 'Hoshino Ichika', ['tenma saki'] = 'Tenma Saki', ['saki']  = 'Tenma Saki', ['mochizuki honami'] = 'Mochizuki Honami', ['honami']      = 'Mochizuki Honami', ['hinomori shiho'] = 'Hinomori Shiho', ['shiho']     = 'Hinomori Shiho', -- MORE MORE JUMP! ['hanasato minori'] = 'Hanasato Minori', ['minori']     = 'Hanasato Minori', ['kiritani haruka'] = 'Kiritani Haruka', ['haruka']     = 'Kiritani Haruka', ['momoi airi'] = 'Momoi Airi', ['airi']  = 'Momoi Airi', ['hinomori shizuku'] = 'Hinomori Shizuku', ['shizuku']     = 'Hinomori Shizuku', -- Vivid BAD SQUAD ['azusawa kohane'] = 'Azusawa Kohane', ['kohane']    = 'Azusawa Kohane', ['shiraishi an'] = 'Shiraishi An', ['an']      = 'Shiraishi An', ['shinonome akito'] = 'Shinonome Akito', ['akito']      = 'Shinonome Akito', ['aoyagi toya'] = 'Aoyagi Toya', ['toya']   = 'Aoyagi Toya', -- Wonderlands×Showtime ['tenma tsukasa'] = 'Tenma Tsukasa', ['tsukasa']  = 'Tenma Tsukasa', ['otori emu'] = 'Otori Emu', ['emu']  = 'Otori Emu', ['kusanagi nene'] = 'Kusanagi Nene', ['nene']     = 'Kusanagi Nene', ['kamishiro rui'] = 'Kamishiro Rui', ['rui']      = 'Kamishiro Rui', -- 25-ji, Nightcord de. ['yoisaki kanade'] = 'Yoisaki Kanade', ['kanade']    = 'Yoisaki Kanade', ['asahina mafuyu'] = 'Asahina Mafuyu', ['mafuyu']    = 'Asahina Mafuyu', ['shinonome ena'] = 'Shinonome Ena', ['ena']      = 'Shinonome Ena', ['akiyama mizuki'] = 'Akiyama Mizuki', ['mizuki']    = 'Akiyama Mizuki' }

local UNIT_ABBR_TO_UNIT = { -- VIRTUAL SINGER ['virtual singer'] = 'VIRTUAL SINGER', ['vs']        = 'VIRTUAL SINGER', -- Leo/need ['leo/need'] = 'Leo/need', ['ln']  = 'Leo/need', ['l/n'] = 'Leo/need', -- MORE MORE JUMP! ['more more jump!'] = 'MORE MORE JUMP!', ['mmj']        = 'MORE MORE JUMP!', ['mmj!']       = 'MORE MORE JUMP!', -- Vivid BAD SQUAD ['vivid bad squad'] = 'Vivid BAD SQUAD', ['vbs']        = 'Vivid BAD SQUAD', -- Wonderlands×Showtime ['wonderlands×showtime'] = 'Wonderlands×Showtime', ['wxs']             = 'Wonderlands×Showtime', -- 25-ji, Nightcord de. ['25-ji, nightcord de.']     = '25-ji, Nightcord de.', ['25-ji, night code de.'] = '25-ji, Nightcord de.', ['25ji']                 = '25-ji, Nightcord de.', ['25-ji']                = '25-ji, Nightcord de.', ['niigo']                = '25-ji, Nightcord de.', -- Other ['other'] = 'Other' }

local UNIT_IMAGES = { ['VIRTUAL SINGER']      = 'VIRTUAL SINGER logo (bordered).png', ['Leo/need']            = 'Leoneed logo (bordered).png', ['MORE MORE JUMP!']     = 'MORE MORE JUMP! logo (bordered).png', ['Vivid BAD SQUAD']     = 'Vivid BAD SQUAD logo (bordered).png', ['Wonderlands×Showtime'] = 'Wonderlands×Showtime logo (bordered).png', ['25-ji, Nightcord de.'] = '25-ji, Nightcord de. logo (bordered).png' }

local UNIT_COLORS = { ['VIRTUAL SINGER']      = { ['background-color'] = '#00CDBA', color = '#000' }, ['Leo/need']            = { ['background-color'] = '#4455DD', color = '#FFF' }, ['MORE MORE JUMP!']     = { ['background-color'] = '#6CCB20', color = '#000' }, ['Vivid BAD SQUAD']     = { ['background-color'] = '#EE1166', color = '#FFF' }, ['Wonderlands×Showtime'] = { ['background-color'] = '#FF9900', color = '#000' }, ['25-ji, Nightcord de.'] = { ['background-color'] = '#884499', color = '#FFF' }, ['Other']               = { ['background-color'] = '#3F939D', color = '#000' } }

local ATTRIBUTE_COLORS = { cute      = { ['background-color'] = '#ff70a8', color = '#000' }, cool      = { ['background-color'] = '#435cff', color = '#fff' }, pure      = { ['background-color'] = '#00bf51', color = '#000' }, happy     = { ['background-color'] = '#ff9821', color = '#000' }, mysterious = { ['background-color'] = '#8651bc', color = '#fff' } }

local DIFFICULTY_COLORS = { easy  = '#6BD81B', normal = '#5FB8E9', hard  = '#FFA900', expert = '#E23F6A', master = '#BE3EE9' }

function constants.get_character(character) return CHARACTERS[string.lower(character)] end

function constants.get_unit(unit_name) if unit_name then return UNIT_ABBR_TO_UNIT[string.lower(unit_name)] end return nil end

function constants.get_unit_image(unit_name) local unit = constants.get_unit(unit_name) if unit then return UNIT_IMAGES[unit] end return nil end

function constants.get_unit_colors(unit_name) local unit = constants.get_unit(unit_name) if unit then return UNIT_COLORS[unit] end return nil end

function constants.get_attribute_colors(attribute) if attribute then return ATTRIBUTE_COLORS[string.lower(attribute)] end return nil end

function constants.get_difficulty_color(difficulty) if difficulty then return DIFFICULTY_COLORS[string.lower(difficulty)] end return nil end

return constants