f257f19dad
I'd like to thank everyone who made this possible;, including but not limited to Riakodoadm, MrThatKid, kyzentun, Luizsan, JoseVarelaP, everyone else who provided feedback and bug reports.
95 lines
3.4 KiB
Lua
95 lines
3.4 KiB
Lua
-- Man, I hate this thing. I tried to do what I could with it, though.
|
|
|
|
-- I'm not really sure why this needs to be separate from the main CourseContentsList creation...
|
|
local transform = function(self,offsetFromCenter,itemIndex,numItems)
|
|
self:y( offsetFromCenter * 62 )
|
|
-- First condition is for making sure the items disappear before going past the banner.
|
|
-- Second condition is to make their transition from the bottom of the screen look a little smoother.
|
|
-- The exact numbers will likely need changing if "NumItemsToDraw" is changed.
|
|
if offsetFromCenter < -1 or offsetFromCenter > 5 then
|
|
self:diffusealpha(0)
|
|
-- And this is just so the objects don't look quite as "THERE" underneath the info pane and footer.
|
|
elseif offsetFromCenter < 0 or offsetFromCenter > 4 then
|
|
self:diffusealpha(0.6)
|
|
end
|
|
end
|
|
|
|
return Def.CourseContentsList {
|
|
MaxSongs = 999,
|
|
NumItemsToDraw = 12,
|
|
ShowCommand=cmd(bouncebegin,0.3;zoomy,1),
|
|
HideCommand=cmd(linear,0.3;zoomy,0),
|
|
SetCommand=function(self)
|
|
self:SetFromGameState()
|
|
self:SetCurrentAndDestinationItem(0)
|
|
self:SetPauseCountdownSeconds(1)
|
|
self:SetSecondsPauseBetweenItems( 0.25 )
|
|
self:SetTransformFromFunction(transform)
|
|
--
|
|
self:SetDestinationItem( math.max(0,self:GetNumItems() - 5) )
|
|
self:SetLoop(false)
|
|
self:SetMask(0,0)
|
|
end,
|
|
CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set"),
|
|
CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set"),
|
|
|
|
Display = Def.ActorFrame {
|
|
InitCommand=cmd(setsize,290,64),
|
|
|
|
LoadActor(THEME:GetPathG("CourseEntryDisplay","bar")) .. {
|
|
SetSongCommand=function(self, params)
|
|
if params.Difficulty then
|
|
self:diffuse(ColorLightTone(CustomDifficultyToColor(params.Difficulty)));
|
|
else
|
|
self:diffuse( color("#FFFFFF") );
|
|
end
|
|
-- These tweens were actually messing up the visibility of the scroller objects, so...
|
|
--(cmd(finishtweening;diffusealpha,0;sleep,0.125*params.Number;smooth,0.2;diffusealpha,1))(self);
|
|
end
|
|
},
|
|
|
|
Def.TextBanner {
|
|
InitCommand=cmd(x,-10;y,-1;Load,"TextBannerCourse";SetFromString,"", "", "", "", "", ""),
|
|
SetSongCommand=function(self, params)
|
|
if params.Song then
|
|
if GAMESTATE:GetCurrentCourse():GetDisplayFullTitle() == "Abomination" then
|
|
-- abomination hack
|
|
if PREFSMAN:GetPreference("EasterEggs") then
|
|
if params.Number % 2 ~= 0 then
|
|
-- turkey march
|
|
local artist = params.Song:GetDisplayArtist();
|
|
self:SetFromString( "Turkey", "", "", "", artist, "" );
|
|
else
|
|
self:SetFromSong( params.Song );
|
|
end;
|
|
else
|
|
self:SetFromSong( params.Song );
|
|
end;
|
|
else
|
|
self:SetFromSong( params.Song );
|
|
end;
|
|
self:diffuse(color("#000000"));
|
|
self:diffusealpha(0.8);
|
|
-- self:glow("1,1,1,0.5");
|
|
else
|
|
self:SetFromString( "??????????", "??????????", "", "", "", "" );
|
|
self:diffuse( color("#FFFFFF") );
|
|
-- self:glow("1,1,1,0");
|
|
end
|
|
|
|
--(cmd(finishtweening;diffusealpha,0;sleep,0.125*params.Number;smooth,0.2;diffusealpha,1;))(self);
|
|
end
|
|
},
|
|
|
|
LoadFont("CourseEntryDisplay","difficulty") .. {
|
|
Text="0",
|
|
InitCommand=cmd(x,210;y,0;zoom,0.75),
|
|
SetSongCommand=function(self, params)
|
|
if params.PlayerNumber ~= GAMESTATE:GetMasterPlayerNumber() then return end
|
|
self:settext( params.Meter );
|
|
self:diffuse(ColorDarkTone(CustomDifficultyToColor(params.Difficulty) ));
|
|
--(cmd(finishtweening;zoomy,0;sleep,0.125*params.Number;linear,0.125;zoom,1.1;linear,0.05;zoom,1))(self);
|
|
end
|
|
},
|
|
}
|
|
} |