-- MasterColor: A function to retreive a table of colors, and therefore, the
-- type of color. An experimental approach to packing two themes into one. take
-- that K//.
local PlayerColors = {
-- In The Groove
    PLAYER_1 = color("#FBBE03"),
    PLAYER_2 = color("#56FF48"),
};
local DifficultyColors = {
-- In The Groove
    Difficulty_Beginner = color("#E580FF"), -- Purple
    Difficulty_Easy = color("#00FF00"), -- Green
    Difficulty_Medium = color("#FFFF00"), -- Yellow
    Difficulty_Hard = color("#E52020"), -- Red
    Difficulty_Challenge = color("#329DD9"), -- Blue
    Difficulty_Edit = color("#CCCCCC"), -- Grey
};
-- Might Not Be Needed!
local JudgeColors = {
    TapNoteScore_W1 = color("#FFFFCC"),   -- Marvelous / light goldish
    TapNoteScore_W2 = color("#FFDD00"),   -- Perfect / gold
    TapNoteScore_W3 = color("#00DD00"),   -- Great / green
    TapNoteScore_W4 = color("#00C0FF"),   -- Good / aj blue
    TapNoteScore_W5 = color("#CC00FF"),   -- Boo / purple
    TapNoteScore_Miss = color("#DB2122"), -- Miss / red
    HoldNoteScore_Held = color("#FFFFFF"),
    TapNoteScore_MaxCombo = color("#ffc600"), -- 
};
-- Global colors. used primarily for switching theme apperance, if implemented
local ThemeColors = {
    -- Effects in Scroller
    LightColorMainBlue = color("#00aeef"),
    BaseColorMainBlue = color("#0072bc"),
    LightColorMainRed = color("#ff8a90"),
    BaseColorMainRed = color("#ed1c24"),
};

function LightColor(color)
    local c = color
    return { c[1]+(c[1]/2), c[2]+(c[2]/2), c[3]+(c[3]/2), c[4] };
end;

function DarkColor(color)
    local c = color
	return { c[1]/2, c[2]/2, c[3]/2, c[4] };
end;

function PlayerColor(pn)
    if pn == PLAYER_1 then return PlayerColors['PLAYER_1'] end
    if pn == PLAYER_2 then return PlayerColors['PLAYER_2'] end
    return color("1,1,1,1")
end;

function DifficultyColor(dc)
    return DifficultyColors[dc]
end;

function ThemeColor(color) 
    return ThemeColors[color]
end

function JudgeColor(color)
    return JudgeColors[color]
end