Removed test themes and stuff.midi, as well as themekit. Themekit can be brought back when it's more than a placeholder.
@@ -1,103 +0,0 @@
|
|||||||
Theme Stuff: Editors Choice Edition
|
|
||||||
---------------------------------------
|
|
||||||
Theme Screen Loops
|
|
||||||
---------------------------------------
|
|
||||||
Honestly, SM-SSC wont really go anywhere until we have the graphical part setup
|
|
||||||
for it, and fittingly enough, the most brutal: THE THEME(S). This is pretty
|
|
||||||
much the core problem StepMania has had so far, and we should aim to keep it
|
|
||||||
simple, stupid, so that everyone who wants a chance at making themes for the
|
|
||||||
'new age', will be able to. Here, I decide to document some ways to make this
|
|
||||||
happen, by planning the main loop of theme junk ahead of time, so that way,
|
|
||||||
when you design the theme, you can create a clear path of what to do, and what
|
|
||||||
you're going to have to setup.
|
|
||||||
|
|
||||||
---------------------------------------
|
|
||||||
The Loops
|
|
||||||
---------------------------------------
|
|
||||||
"Default"
|
|
||||||
Suited for dance esque gameplay, as stepmania was originally designed for.
|
|
||||||
fairly easy to modify, but horrid to make usable for other gametypes. do note
|
|
||||||
that this is using the alpha 4 version of this setup, to include alot of stuff
|
|
||||||
we might miss.
|
|
||||||
#-------------------------------------#
|
|
||||||
[00.A] ScreenCompany
|
|
||||||
[00.B] ScreenDemonstration
|
|
||||||
[00.C] ScreenHowToPlay
|
|
||||||
[00.D] ScreenRanking
|
|
||||||
# Input
|
|
||||||
[01.A] ScreenTitleMenu
|
|
||||||
[01.B] ScreenTitlePay
|
|
||||||
#
|
|
||||||
[02.A] ScreenProfileLoad
|
|
||||||
[02.B] ScreenCaution
|
|
||||||
#
|
|
||||||
[03.A] ScreenSelectStyle
|
|
||||||
[03.B] ScreenSelectPlayMode
|
|
||||||
[03.C] ScreenSelectMusic
|
|
||||||
#
|
|
||||||
[04.A] ScreenPlayerOptions
|
|
||||||
[04.B] ScreenSongOptions
|
|
||||||
#
|
|
||||||
[05.A] ScreenStage
|
|
||||||
[05.B] ScreenGameplay
|
|
||||||
#
|
|
||||||
[06.A] ScreenEvaluation
|
|
||||||
[06.B] ScreenEvaluationStage
|
|
||||||
[06.C] ScreenEvaluationNonstop
|
|
||||||
[06.D] ScreenEvaluationOni
|
|
||||||
[06.E] ScreenEvaluationRave
|
|
||||||
#
|
|
||||||
[07.A] ScreenProfileSave
|
|
||||||
[07.B] ScreenNameEntry
|
|
||||||
#
|
|
||||||
[08.A] ScreenGameOver
|
|
||||||
[08.B] ScreenEnding
|
|
||||||
[08.C] ScreenEnding2
|
|
||||||
[08.D] ScreenEnding3
|
|
||||||
|
|
||||||
#-------------------------------------#
|
|
||||||
"Opttimized"
|
|
||||||
Suited for generic gameplay. A path that I beleive would be best to use in this
|
|
||||||
project, simply because it saves everyone time and stress. This might be under
|
|
||||||
a ton of editing cuz I stewpid. It still appeals to dance, but that might
|
|
||||||
change.
|
|
||||||
#-------------------------------------#
|
|
||||||
[00.A] ScreenBoot
|
|
||||||
#
|
|
||||||
[01.A] ScreenSetupPhaseOne
|
|
||||||
[01.B] ScreenSetupPhaseTwo
|
|
||||||
[01.C] ScreenSetupPhaseThree
|
|
||||||
# Input
|
|
||||||
[02.A] ScreenTitleMenu
|
|
||||||
[02.B] ScreenTitleMenuAuxiliary
|
|
||||||
#
|
|
||||||
[03.A] ScreenCustomizationHome
|
|
||||||
[03.B] ScreenCustomizationGameplay
|
|
||||||
[03.C] ScreenCustomizationSystem
|
|
||||||
[03.D] ScreenCustomizationGraphical
|
|
||||||
#
|
|
||||||
[04.A] ScreenProfileLoad
|
|
||||||
[04.B] ScreenCaution
|
|
||||||
#
|
|
||||||
[05.A] ScreenSelectPlayStyle
|
|
||||||
[05.B] ScreenSelectPlayMode
|
|
||||||
[05.C] ScreenSelectMusic
|
|
||||||
#
|
|
||||||
[06.A] ScreenPlayerOptions
|
|
||||||
[06.B] ScreenSongOptions
|
|
||||||
#
|
|
||||||
[07.A] ScreenStage
|
|
||||||
[07.B] ScreenGameplay
|
|
||||||
#
|
|
||||||
[08.A] ScreenEvaluation
|
|
||||||
[08.B] ScreenEvaluationStage
|
|
||||||
#
|
|
||||||
[09.A] ScreenProfileSave
|
|
||||||
[09.B] ScreenNameEntryTraditional
|
|
||||||
#
|
|
||||||
[10.A] ScreenGameOver
|
|
||||||
[10.B] ScreenEnding
|
|
||||||
#
|
|
||||||
[11.A] ScreenCreditsCondensed
|
|
||||||
[11.B] ScreenCreditsExpanded
|
|
||||||
#-------------------------------------#
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
local t = Def.ActorFrame {};
|
|
||||||
local x = Def.ActorFrame {
|
|
||||||
-- Name = 'Scroller';
|
|
||||||
-- NumItemsToDraw=10;
|
|
||||||
-- NumItemsToDraw=GAMESTATE:GetCurrentSong():GetStepsSeconds() or GAMESTATE:GetCurrentCourse():GetTotalSeconds(GAMESTATE:GetCurrentSteps(GAMESTATE:GetMasterPlayerNumber()));
|
|
||||||
-- InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y);
|
|
||||||
-- InitCommand=cmd(SetSecondsPauseBetweenItems,0;SetSecondsPerItem,2;ScrollWithPadding,0,0;SetLoop,true;);
|
|
||||||
-- OnCommand=cmd(z,-256;rotationx,-30;spin;effectmagnitude,0,32,0);
|
|
||||||
-- OnCommand=cmd(x,SCREEN_CENTER_X*2;rotationy,30;bob;effectmagnitude,SCREEN_CENTER_X*4,0,0;effectclock,'beat';effectperiod,32);
|
|
||||||
--[[ TransformFunction=function(self, offset, itemIndex, numItems)
|
|
||||||
self:x((itemIndex)*SCREEN_WIDTH);
|
|
||||||
if itemIndex%2 == 0 then
|
|
||||||
-- self:zoomx(-1);
|
|
||||||
-- self:rotationz(180);
|
|
||||||
-- self:addx(SCREEN_CENTER_X);
|
|
||||||
-- self:addy(-SCREEN_CENTER_Y);
|
|
||||||
-- self:pulse();
|
|
||||||
end;
|
|
||||||
-- self:zoom();
|
|
||||||
end; --]]
|
|
||||||
};
|
|
||||||
x[#x+1] = Def.ActorFrame {
|
|
||||||
Def.ActorProxy {
|
|
||||||
OnCommand=function(self)
|
|
||||||
self:SetTarget( SCREENMAN:GetTopScreen():GetChild('PlayerP1') );
|
|
||||||
self:visible(true);
|
|
||||||
end;
|
|
||||||
-- OnCommand=cmd(zoom,1);
|
|
||||||
};
|
|
||||||
Def.ActorProxy {
|
|
||||||
OnCommand=function(self)
|
|
||||||
self:SetTarget( SCREENMAN:GetTopScreen():GetChild('PlayerP2') );
|
|
||||||
self:visible(true);
|
|
||||||
end;
|
|
||||||
-- OnCommand=cmd(zoom,1);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
t[#t+1] = x;
|
|
||||||
return t
|
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
local t = LoadFallbackB();
|
|
||||||
|
|
||||||
t[#t+1] = Def.ActorFrame {
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X*1.375;y,SCREEN_CENTER_Y);
|
|
||||||
SetCommand=function(self)
|
|
||||||
local c = self:GetChildren();
|
|
||||||
local SongOrCourse;
|
|
||||||
local Info = { Title, Genre, Artist, Meter, BPMs };
|
|
||||||
if GAMESTATE:GetCurrentSong() then
|
|
||||||
SongOrCourse = GAMESTATE:GetCurrentSong();
|
|
||||||
elseif GAMESTATE:GetCurrentCourse() then
|
|
||||||
SongOrCourse = GAMESTATE:GetCurrentCourse();
|
|
||||||
else
|
|
||||||
return;
|
|
||||||
end;
|
|
||||||
--
|
|
||||||
Info.Title = SongOrCourse:GetDisplayFullTitle();
|
|
||||||
Info.Artist = SongOrCourse:GetDisplayArtist();
|
|
||||||
Info.Genre = SongOrCourse:GetGenre();
|
|
||||||
Info.Meter = GAMESTATE:GetCurrentSteps( GAMESTATE:GetMasterPlayerNumber() ):GetMeter();
|
|
||||||
Info.BPMS = { 0, 0 };
|
|
||||||
--
|
|
||||||
c.Title:settext( Info.Title );
|
|
||||||
-- Title Size Check.
|
|
||||||
if c.Title:GetWidth() >= SCREEN_CENTER_X*1.375-48 then
|
|
||||||
c.Title:zoom(0.75);
|
|
||||||
c.Title:maxwidth( ( SCREEN_CENTER_X*1.375-48 ) / 0.75);
|
|
||||||
else
|
|
||||||
c.Title:zoom(1);
|
|
||||||
c.Title:maxwidth(SCREEN_CENTER_X*1.375-48);
|
|
||||||
end
|
|
||||||
--[[ -- Genre Text Check
|
|
||||||
if Info.Genre == "" then
|
|
||||||
Info.Genre = "?";
|
|
||||||
else
|
|
||||||
Info.Genre = Info.Genre;
|
|
||||||
end; --]]
|
|
||||||
c.Genre:settext( Info.Genre );
|
|
||||||
--
|
|
||||||
c.Artist:settext( Info.Artist );
|
|
||||||
-- BPM Check
|
|
||||||
if string.find(tostring(c.BPMDisplay:GetText()),"-") ~= nil then
|
|
||||||
Info.BPMS = split('-',c.BPMDisplay:GetText());
|
|
||||||
c.BPMLow:settext( Info.BPMS[1] );
|
|
||||||
c.BPMHigh:settext( Info.BPMS[2] );
|
|
||||||
c.BPMLow:visible(true);
|
|
||||||
--
|
|
||||||
c.BPMHigh:x(0);
|
|
||||||
c.BPMLow:x( -c.BPMHigh:GetWidth() );
|
|
||||||
--
|
|
||||||
else
|
|
||||||
Info.BPMS[1] = c.BPMDisplay:GetText();
|
|
||||||
c.BPMLow:settext( Info.BPMS[1] );
|
|
||||||
c.BPMHigh:settext( Info.BPMS[1] );
|
|
||||||
c.BPMLow:visible(false);
|
|
||||||
--
|
|
||||||
c.BPMHigh:x(0);
|
|
||||||
c.BPMLow:x( -c.BPMHigh:GetWidth() );
|
|
||||||
--
|
|
||||||
end
|
|
||||||
--[[ c.BPMLow:visible(false);
|
|
||||||
c.BPMHigh:settext( c.BPMDisplay:GetText() ); --]]
|
|
||||||
--
|
|
||||||
c.Title:playcommand("Refresh");
|
|
||||||
c.Genre:playcommand("Refresh");
|
|
||||||
c.Artist:playcommand("Refresh");
|
|
||||||
end;
|
|
||||||
OnCommand=cmd(playcommand,"Set");
|
|
||||||
CurrentCourseChangedMessageCommand=cmd(playcommand,"Set");
|
|
||||||
CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
|
|
||||||
DisplayLanguageChangedMessageCommand=cmd(playcommand,"Set");
|
|
||||||
|
|
||||||
Def.BPMDisplay {
|
|
||||||
Name="BPMDisplay";
|
|
||||||
File=THEME:GetPathF("BPMDisplay", "bpm");
|
|
||||||
InitCommand=cmd(visible,false);
|
|
||||||
CurrentSongChangedMessageCommand=cmd( SetFromGameState );
|
|
||||||
};
|
|
||||||
LoadFont("UI","Title Large") .. {
|
|
||||||
Name="Title";
|
|
||||||
Text="!!!";
|
|
||||||
InitCommand=cmd(horizalign,right);
|
|
||||||
RefreshCommand=cmd(finishtweening;diffuse,Color.Blue;decelerate,0.2;diffuse,Color.White);
|
|
||||||
-- ShowCommand=cmd(settext,"!!!";);
|
|
||||||
};
|
|
||||||
LoadFont("UI","Title Small") .. {
|
|
||||||
Name="Genre";
|
|
||||||
Text="!!!";
|
|
||||||
InitCommand=cmd(y,-52/2-3;horizalign,right;);
|
|
||||||
OnCommand=cmd(shadowlength,1);
|
|
||||||
-- ShowCommand=cmd(settext,"!!!";);
|
|
||||||
};
|
|
||||||
LoadFont("UI","Title Small") .. {
|
|
||||||
Name="Artist";
|
|
||||||
Text="!!!";
|
|
||||||
InitCommand=cmd(y,52/2+3;horizalign,right;);
|
|
||||||
OnCommand=cmd(shadowlength,1);
|
|
||||||
-- ShowCommand=cmd(settext,"!!!";);
|
|
||||||
};
|
|
||||||
LoadFont("UI","Title Small") .. {
|
|
||||||
Name="BPMLow";
|
|
||||||
Text="!!!";
|
|
||||||
InitCommand=cmd(y,52/2+3+20;horizalign,right;);
|
|
||||||
OnCommand=cmd(shadowlength,1;zoom,0.75);
|
|
||||||
-- ShowCommand=cmd(settext,"!!!";);
|
|
||||||
};
|
|
||||||
LoadFont("UI","Title Small") .. {
|
|
||||||
Name="BPMHigh";
|
|
||||||
Text="!!!";
|
|
||||||
InitCommand=cmd(y,52/2+3+20;horizalign,right;);
|
|
||||||
OnCommand=cmd(shadowlength,1);
|
|
||||||
-- ShowCommand=cmd(settext,"!!!";);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
return t
|
|
||||||
@@ -1,219 +0,0 @@
|
|||||||
function GetLocalProfiles()
|
|
||||||
local ret = {};
|
|
||||||
|
|
||||||
for p = 0,PROFILEMAN:GetNumLocalProfiles()-1 do
|
|
||||||
local profile=PROFILEMAN:GetLocalProfileFromIndex(p);
|
|
||||||
local item = Def.ActorFrame {
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,200,2;y,-40/2);
|
|
||||||
OnCommand=cmd(diffuse,Color('Outline'););
|
|
||||||
};
|
|
||||||
LoadFont("Common Normal") .. {
|
|
||||||
Text=profile:GetDisplayName();
|
|
||||||
InitCommand=cmd(shadowlength,1;y,-9);
|
|
||||||
};
|
|
||||||
LoadFont("Common Normal") .. {
|
|
||||||
Text=profile:GetNumTotalSongsPlayed() .. " Songs Played";
|
|
||||||
InitCommand=cmd(shadowlength,1;y,8;zoom,0.5;vertspacing,-8);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
table.insert( ret, item );
|
|
||||||
end;
|
|
||||||
return ret;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function LoadPlayerStuff(Player)
|
|
||||||
local ret = {};
|
|
||||||
|
|
||||||
local pn;
|
|
||||||
if Player == PLAYER_1 then
|
|
||||||
pn = 1;
|
|
||||||
else
|
|
||||||
pn = 2;
|
|
||||||
end;
|
|
||||||
|
|
||||||
--[[ local t = LoadActor(THEME:GetPathB('', '_frame 3x3'), 'metal', 200, 230) .. {
|
|
||||||
Name = 'BigFrame';
|
|
||||||
}; --]]
|
|
||||||
local t = Def.ActorFrame {
|
|
||||||
Name = 'BigFrame';
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,200+4,230+4);
|
|
||||||
OnCommand=cmd(shadowlength,1);
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,200,230);
|
|
||||||
OnCommand=cmd(diffuse,Color('Orange'));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
table.insert( ret, t );
|
|
||||||
|
|
||||||
--[[ t = LoadActor(THEME:GetPathB('', '_frame 3x3'), 'metal', 170, 20) .. {
|
|
||||||
Name = 'SmallFrame';
|
|
||||||
}; --]]
|
|
||||||
t = Def.ActorFrame {
|
|
||||||
Name = 'SmallFrame';
|
|
||||||
--[[ Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,170+4,32+4);
|
|
||||||
OnCommand=cmd(shadowlength,1);
|
|
||||||
}; --]]
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,200,40);
|
|
||||||
OnCommand=cmd(diffuse,Color('Blue'));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
table.insert( ret, t );
|
|
||||||
|
|
||||||
t = Def.ActorScroller{
|
|
||||||
Name = 'Scroller';
|
|
||||||
NumItemsToDraw=4;
|
|
||||||
-- InitCommand=cmd(y,-230/2+20;);
|
|
||||||
OnCommand=cmd(SetFastCatchup,true;SetMask,200,230;SetSecondsPerItem,0.15);
|
|
||||||
TransformFunction=function(self, offset, itemIndex, numItems)
|
|
||||||
local focus = scale(math.abs(offset),0,2,1,0);
|
|
||||||
self:visible(false);
|
|
||||||
self:y(math.floor( offset*40 ));
|
|
||||||
-- self:zoomy( focus );
|
|
||||||
-- self:z(-math.abs(offset));
|
|
||||||
-- self:zoom(focus);
|
|
||||||
end;
|
|
||||||
children = GetLocalProfiles();
|
|
||||||
};
|
|
||||||
table.insert( ret, t );
|
|
||||||
|
|
||||||
--[[ t = Def.BitmapText {
|
|
||||||
OnCommand = cmd(y,160);
|
|
||||||
Name = 'SelectedProfileText';
|
|
||||||
Font = "Common Normal";
|
|
||||||
Text = 'No profile';
|
|
||||||
}; --]]
|
|
||||||
t = LoadFont("Common Normal") .. {
|
|
||||||
Name = 'SelectedProfileText';
|
|
||||||
InitCommand=cmd(y,160);
|
|
||||||
OnCommand=cmd(shadowlength,1);
|
|
||||||
};
|
|
||||||
table.insert( ret, t );
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function UpdateInternal3(self, Player)
|
|
||||||
local pn;
|
|
||||||
if Player == PLAYER_1 then
|
|
||||||
pn = 1;
|
|
||||||
else
|
|
||||||
pn = 2;
|
|
||||||
end;
|
|
||||||
local frame = self:GetChild(string.format('P%uFrame', pn));
|
|
||||||
local scroller = frame:GetChild('Scroller');
|
|
||||||
local seltext = frame:GetChild('SelectedProfileText');
|
|
||||||
local smallframe = frame:GetChild('SmallFrame');
|
|
||||||
|
|
||||||
if GAMESTATE:IsHumanPlayer(Player) then
|
|
||||||
frame:visible(true);
|
|
||||||
if MEMCARDMAN:GetCardState(Player) == 'MemoryCardState_none' then
|
|
||||||
--using profile if any
|
|
||||||
smallframe:visible(true);
|
|
||||||
scroller:visible(true);
|
|
||||||
local ind = SCREENMAN:GetTopScreen():GetProfileIndex(Player);
|
|
||||||
if ind > 0 then
|
|
||||||
scroller:SetDestinationItem(ind-1);
|
|
||||||
seltext:settext(PROFILEMAN:GetLocalProfileFromIndex(ind-1):GetDisplayName());
|
|
||||||
else
|
|
||||||
if SCREENMAN:GetTopScreen():SetProfileIndex(Player, 1) then
|
|
||||||
scroller:SetDestinationItem(0);
|
|
||||||
self:queuecommand('UpdateInternal2');
|
|
||||||
else
|
|
||||||
smallframe:visible(false);
|
|
||||||
scroller:visible(false);
|
|
||||||
seltext:settext('No profile');
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
else
|
|
||||||
--using card
|
|
||||||
smallframe:visible(false);
|
|
||||||
scroller:visible(false);
|
|
||||||
seltext:settext('CARD');
|
|
||||||
SCREENMAN:GetTopScreen():SetProfileIndex(Player, 0);
|
|
||||||
end;
|
|
||||||
else
|
|
||||||
frame:visible(false);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
local t = Def.ActorFrame {
|
|
||||||
|
|
||||||
StorageDevicesChangedMessageCommand=function(self, params)
|
|
||||||
self:queuecommand('UpdateInternal2');
|
|
||||||
end;
|
|
||||||
|
|
||||||
CodeMessageCommand = function(self, params)
|
|
||||||
if params.Name == 'Start' then
|
|
||||||
if not GAMESTATE:IsHumanPlayer(params.PlayerNumber) then
|
|
||||||
SCREENMAN:GetTopScreen():SetProfileIndex(params.PlayerNumber, -1);
|
|
||||||
else
|
|
||||||
SCREENMAN:GetTopScreen():Finish();
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
if params.Name == 'Up' then
|
|
||||||
if GAMESTATE:IsHumanPlayer(params.PlayerNumber) then
|
|
||||||
local ind = SCREENMAN:GetTopScreen():GetProfileIndex(params.PlayerNumber);
|
|
||||||
if ind > 1 then
|
|
||||||
if SCREENMAN:GetTopScreen():SetProfileIndex(params.PlayerNumber, ind - 1 ) then
|
|
||||||
self:queuecommand('UpdateInternal2');
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
if params.Name == 'Down' then
|
|
||||||
if GAMESTATE:IsHumanPlayer(params.PlayerNumber) then
|
|
||||||
local ind = SCREENMAN:GetTopScreen():GetProfileIndex(params.PlayerNumber);
|
|
||||||
if ind > 0 then
|
|
||||||
if SCREENMAN:GetTopScreen():SetProfileIndex(params.PlayerNumber, ind + 1 ) then
|
|
||||||
self:queuecommand('UpdateInternal2');
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
if params.Name == 'Back' then
|
|
||||||
if GAMESTATE:GetNumPlayersEnabled()==0 then
|
|
||||||
SCREENMAN:GetTopScreen():Cancel();
|
|
||||||
else
|
|
||||||
SCREENMAN:GetTopScreen():SetProfileIndex(params.PlayerNumber, -2);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
PlayerJoinedMessageCommand=function(self, params)
|
|
||||||
self:queuecommand('UpdateInternal2');
|
|
||||||
end;
|
|
||||||
|
|
||||||
PlayerUnjoinedMessageCommand=function(self, params)
|
|
||||||
self:queuecommand('UpdateInternal2');
|
|
||||||
end;
|
|
||||||
|
|
||||||
OnCommand=function(self, params)
|
|
||||||
self:queuecommand('UpdateInternal2');
|
|
||||||
end;
|
|
||||||
|
|
||||||
UpdateInternal2Command=function(self)
|
|
||||||
UpdateInternal3(self, PLAYER_1);
|
|
||||||
UpdateInternal3(self, PLAYER_2);
|
|
||||||
end;
|
|
||||||
children = {
|
|
||||||
Def.ActorFrame {
|
|
||||||
Name = 'P1Frame';
|
|
||||||
OnCommand=cmd(hide_if,not GAMESTATE:IsHumanPlayer(PLAYER_1);x,SCREEN_CENTER_X-200;y,SCREEN_CENTER_Y;addx,-SCREEN_WIDTH;decelerate,0.3;addx,SCREEN_WIDTH);
|
|
||||||
OffCommand=cmd(accelerate,0.3;addx,-SCREEN_WIDTH);
|
|
||||||
children = LoadPlayerStuff(PLAYER_2);
|
|
||||||
};
|
|
||||||
Def.ActorFrame {
|
|
||||||
Name = 'P2Frame';
|
|
||||||
OnCommand=cmd(hide_if,not GAMESTATE:IsHumanPlayer(PLAYER_2);x,SCREEN_CENTER_X+200;y,SCREEN_CENTER_Y;addx,SCREEN_WIDTH;decelerate,0.3;addx,-SCREEN_WIDTH);
|
|
||||||
OffCommand=cmd(accelerate,0.3;addx,SCREEN_WIDTH);
|
|
||||||
children = LoadPlayerStuff(PLAYER_2);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
return t;
|
|
||||||
|
Before Width: | Height: | Size: 31 KiB |
@@ -1,8 +0,0 @@
|
|||||||
return Def.ActorFrame {
|
|
||||||
FOV=90;
|
|
||||||
LoadActor("_logo") .. {
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y);
|
|
||||||
OnCommand=cmd(zoom,1.25;glow,color("1,1,1,1");decelerate,0.5;zoom,1;glow,color("1,1,1,0");glowshift;effecttiming,0.125,0,0.75,3);
|
|
||||||
OffCommand=cmd(diffusealpha,0.5;glow,color("1,1,1,1");decelerate,0.25;glow,color("1,1,1,0");accelerate,0.125;rotationx,90;diffusealpha,0;);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
Before Width: | Height: | Size: 2.9 KiB |
@@ -1,73 +0,0 @@
|
|||||||
t = Def.ActorFrame { FOV = 90; };
|
|
||||||
-- BG Frame
|
|
||||||
t[#t+1] = Def.ActorFrame {
|
|
||||||
InitCommand=cmd(z,-48);
|
|
||||||
LoadActor("noise");
|
|
||||||
-- Centerize Items Here
|
|
||||||
Def.ActorFrame {
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;);
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,SCREEN_WIDTH+256,SCREEN_WIDTH+256;blend,'BlendMode_WeightedMultiply');
|
|
||||||
OnCommand=cmd(diffuse,Color.ThemeElement.Background.Secondary;);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
-- Radio Lines
|
|
||||||
Def.ActorFrame {
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;);
|
|
||||||
LoadActor("stripe") .. {
|
|
||||||
InitCommand=cmd(zoomto,SCREEN_WIDTH+512,Viewport.Height.Center);
|
|
||||||
OnCommand=cmd(diffuse,Color.ThemeElement.Background.Primary;diffusealpha,0.5;fadetop,0.125;fadebottom,0.125;customtexturerect,(SCREEN_WIDTH+512)/64,Viewport.Height.Center/64,0,0;texcoordvelocity,1.25,0;skewx,-0.125);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
-- Movie
|
|
||||||
t[#t+1] = Def.ActorFrame {
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;);
|
|
||||||
LoadActor("824_JumpBack") .. {
|
|
||||||
InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,Viewport.Height.Center;
|
|
||||||
play;rate,1.75;fadetop,0.125;fadebottom,0.125;diffuse,Color.ThemeElement.Background.Primary;diffusealpha,0.5);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
-- Front Windows
|
|
||||||
t[#t+1] = Def.ActorFrame {
|
|
||||||
InitCommand=cmd(z,0);
|
|
||||||
-- Top Window.
|
|
||||||
Def.ActorFrame {
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_TOP);
|
|
||||||
OnCommand=cmd(decelerate,0.5;y,Viewport.Height.Bottom);
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,SCREEN_WIDTH,Viewport.Height.Bottom;vertalign,bottom);
|
|
||||||
OnCommand=cmd(diffuse,Color.ThemeElement.Background.Primary);
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,SCREEN_WIDTH,16;y,7;vertalign,bottom);
|
|
||||||
OnCommand=cmd( diffuse,Color.ThemeElement.Background.Highlight;fadetop,0.5;fadebottom,0.5;
|
|
||||||
diffuseshift;effectcolor1,Color.ThemeElement.Background.Highlight;effectcolor2,Color.ThemeElement.Background.Accent;
|
|
||||||
diffusealpha,0.5);
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,SCREEN_WIDTH,2;vertalign,bottom);
|
|
||||||
OnCommand=cmd(diffuse,Color.ThemeElement.Background.Highlight);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
-- Bottom Window.
|
|
||||||
Def.ActorFrame {
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_BOTTOM);
|
|
||||||
OnCommand=cmd(decelerate,0.5;y,SCREEN_BOTTOM-Viewport.Height.Bottom);
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,SCREEN_WIDTH,Viewport.Height.Bottom;vertalign,top);
|
|
||||||
OnCommand=cmd(diffuse,Color.ThemeElement.Background.Primary);
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,SCREEN_WIDTH,16;y,-7;vertalign,top);
|
|
||||||
OnCommand=cmd( diffuse,Color.ThemeElement.Background.Highlight;fadetop,0.5;fadebottom,0.5;
|
|
||||||
diffuseshift;effectcolor1,Color.ThemeElement.Background.Highlight;effectcolor2,Color.ThemeElement.Background.Accent;
|
|
||||||
diffusealpha,0.5);
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,SCREEN_WIDTH,2;vertalign,top);
|
|
||||||
OnCommand=cmd(diffuse,Color.ThemeElement.Background.Highlight);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
return t
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
local t = Def.ActorFrame {
|
|
||||||
LoadActor("noise") .. {
|
|
||||||
Name="Noise";
|
|
||||||
InitCommand=cmd(texturewrapping,true;SetTextureFiltering,false;x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoom,2);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
local function Update(self)
|
|
||||||
local c = self:GetChild("Noise");
|
|
||||||
local x = math.random();
|
|
||||||
local y = math.random();
|
|
||||||
c:customtexturerect(0+x,0+y,2+x,2+y);
|
|
||||||
end;
|
|
||||||
t.InitCommand = cmd(SetUpdateFunction,Update);
|
|
||||||
|
|
||||||
return t;
|
|
||||||
|
Before Width: | Height: | Size: 255 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
@@ -1,3 +0,0 @@
|
|||||||
local t = Def.ActorFrame {};
|
|
||||||
|
|
||||||
return t;
|
|
||||||
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 117 KiB |
@@ -1,352 +0,0 @@
|
|||||||
[common]
|
|
||||||
Baseline=45
|
|
||||||
Top=10
|
|
||||||
LineSpacing=54
|
|
||||||
DrawExtraPixelsLeft=8
|
|
||||||
DrawExtraPixelsRight=0
|
|
||||||
AdvanceExtraPixels=0
|
|
||||||
|
|
||||||
[main]
|
|
||||||
Line 0= !"#$%&'()*+,-.
|
|
||||||
Line 1=/0123456789:;<=
|
|
||||||
Line 2=>?@ABCDEFGHIJKL
|
|
||||||
Line 3=MNOPQRSTUVWXYZ[
|
|
||||||
Line 4=\]^_`abcdefghij
|
|
||||||
Line 5=klmnopqrstuvwxy
|
|
||||||
Line 6=z{|}~€‚ƒ„…†‡ˆ‰Š
|
|
||||||
Line 7=‹ŒŽ‘’“”•–—˜™š›œ
|
|
||||||
Line 8=žŸ ¡¢£¤¥¦§¨©ª«¬
|
|
||||||
Line 9=®¯°±²³´µ¶·¸¹º»
|
|
||||||
Line 10=¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊ
|
|
||||||
Line 11=ËÌÍÎÏÐÑÒÓÔÕÖרÙ
|
|
||||||
Line 12=ÚÛÜÝÞßàáâãäåæçè
|
|
||||||
Line 13=éêëìíîïðñòóôõö÷
|
|
||||||
Line 14=øùúûüýþÿ
|
|
||||||
|
|
||||||
0=14
|
|
||||||
1=10
|
|
||||||
2=17
|
|
||||||
3=36
|
|
||||||
4=35
|
|
||||||
5=43
|
|
||||||
6=42
|
|
||||||
7=10
|
|
||||||
8=12
|
|
||||||
9=13
|
|
||||||
10=22
|
|
||||||
11=19
|
|
||||||
12=10
|
|
||||||
13=23
|
|
||||||
14=10
|
|
||||||
15=23
|
|
||||||
16=38
|
|
||||||
17=18
|
|
||||||
18=37
|
|
||||||
19=37
|
|
||||||
20=33
|
|
||||||
21=37
|
|
||||||
22=37
|
|
||||||
23=30
|
|
||||||
24=38
|
|
||||||
25=37
|
|
||||||
26=10
|
|
||||||
27=10
|
|
||||||
28=21
|
|
||||||
29=29
|
|
||||||
30=21
|
|
||||||
31=31
|
|
||||||
32=37
|
|
||||||
33=38
|
|
||||||
34=37
|
|
||||||
35=37
|
|
||||||
36=38
|
|
||||||
37=34
|
|
||||||
38=33
|
|
||||||
39=37
|
|
||||||
40=38
|
|
||||||
41=10
|
|
||||||
42=35
|
|
||||||
43=36
|
|
||||||
44=35
|
|
||||||
45=42
|
|
||||||
46=37
|
|
||||||
47=37
|
|
||||||
48=36
|
|
||||||
49=40
|
|
||||||
50=37
|
|
||||||
51=37
|
|
||||||
52=34
|
|
||||||
53=37
|
|
||||||
54=45
|
|
||||||
55=53
|
|
||||||
56=37
|
|
||||||
57=36
|
|
||||||
58=37
|
|
||||||
59=12
|
|
||||||
60=23
|
|
||||||
61=12
|
|
||||||
62=12
|
|
||||||
63=37
|
|
||||||
64=10
|
|
||||||
65=31
|
|
||||||
66=30
|
|
||||||
67=31
|
|
||||||
68=30
|
|
||||||
69=31
|
|
||||||
70=20
|
|
||||||
71=31
|
|
||||||
72=30
|
|
||||||
73=10
|
|
||||||
74=11
|
|
||||||
75=29
|
|
||||||
76=15
|
|
||||||
77=44
|
|
||||||
78=31
|
|
||||||
79=31
|
|
||||||
80=30
|
|
||||||
81=30
|
|
||||||
82=24
|
|
||||||
83=31
|
|
||||||
84=20
|
|
||||||
85=31
|
|
||||||
86=36
|
|
||||||
87=48
|
|
||||||
88=31
|
|
||||||
89=31
|
|
||||||
90=31
|
|
||||||
91=13
|
|
||||||
92=10
|
|
||||||
93=13
|
|
||||||
94=18
|
|
||||||
95=36
|
|
||||||
96=12
|
|
||||||
97=12
|
|
||||||
98=12
|
|
||||||
99=26
|
|
||||||
100=12
|
|
||||||
101=12
|
|
||||||
102=14
|
|
||||||
103=12
|
|
||||||
104=37
|
|
||||||
105=12
|
|
||||||
106=62
|
|
||||||
107=37
|
|
||||||
108=10
|
|
||||||
109=10
|
|
||||||
110=18
|
|
||||||
111=18
|
|
||||||
112=17
|
|
||||||
113=32
|
|
||||||
114=37
|
|
||||||
115=18
|
|
||||||
116=12
|
|
||||||
117=31
|
|
||||||
118=12
|
|
||||||
119=53
|
|
||||||
120=31
|
|
||||||
121=36
|
|
||||||
122=12
|
|
||||||
123=9
|
|
||||||
124=29
|
|
||||||
125=33
|
|
||||||
126=12
|
|
||||||
127=12
|
|
||||||
128=12
|
|
||||||
129=12
|
|
||||||
130=17
|
|
||||||
131=12
|
|
||||||
132=12
|
|
||||||
133=12
|
|
||||||
134=12
|
|
||||||
135=12
|
|
||||||
136=12
|
|
||||||
137=12
|
|
||||||
138=20
|
|
||||||
139=12
|
|
||||||
140=12
|
|
||||||
141=12
|
|
||||||
142=10
|
|
||||||
143=12
|
|
||||||
144=37
|
|
||||||
145=12
|
|
||||||
146=10
|
|
||||||
147=12
|
|
||||||
148=12
|
|
||||||
149=12
|
|
||||||
150=12
|
|
||||||
151=12
|
|
||||||
152=12
|
|
||||||
153=30
|
|
||||||
154=38
|
|
||||||
155=38
|
|
||||||
156=38
|
|
||||||
157=38
|
|
||||||
158=38
|
|
||||||
159=38
|
|
||||||
160=62
|
|
||||||
161=37
|
|
||||||
162=34
|
|
||||||
163=34
|
|
||||||
164=34
|
|
||||||
165=34
|
|
||||||
166=10
|
|
||||||
167=10
|
|
||||||
168=10
|
|
||||||
169=10
|
|
||||||
170=12
|
|
||||||
171=37
|
|
||||||
172=37
|
|
||||||
173=37
|
|
||||||
174=37
|
|
||||||
175=37
|
|
||||||
176=37
|
|
||||||
177=25
|
|
||||||
178=12
|
|
||||||
179=37
|
|
||||||
180=37
|
|
||||||
181=37
|
|
||||||
182=37
|
|
||||||
183=36
|
|
||||||
184=12
|
|
||||||
185=37
|
|
||||||
186=33
|
|
||||||
187=33
|
|
||||||
188=33
|
|
||||||
189=33
|
|
||||||
190=33
|
|
||||||
191=33
|
|
||||||
192=53
|
|
||||||
193=31
|
|
||||||
194=29
|
|
||||||
195=29
|
|
||||||
196=29
|
|
||||||
197=29
|
|
||||||
198=10
|
|
||||||
199=10
|
|
||||||
200=10
|
|
||||||
201=10
|
|
||||||
202=12
|
|
||||||
203=32
|
|
||||||
204=31
|
|
||||||
205=31
|
|
||||||
206=31
|
|
||||||
207=31
|
|
||||||
208=31
|
|
||||||
209=23
|
|
||||||
210=12
|
|
||||||
211=31
|
|
||||||
212=31
|
|
||||||
213=31
|
|
||||||
214=31
|
|
||||||
215=31
|
|
||||||
216=12
|
|
||||||
217=31
|
|
||||||
|
|
||||||
[alt]
|
|
||||||
Line 0= Ą˘Ł¤ĽŚ§¨Š
|
|
||||||
Line 1=ŞŤŹŽŻ°ą˛ł
|
|
||||||
Line 2=´ľśˇ¸šşťź˝
|
|
||||||
Line 3=žżŔÁÂĂÄĹĆÇ
|
|
||||||
Line 4=ČÉĘËĚÍÎĎĐŃ
|
|
||||||
Line 5=ŇÓÔŐÖ×ŘŮÚŰ
|
|
||||||
Line 6=ÜÝŢßŕáâăäĺ
|
|
||||||
Line 7=ćçčéęëěíîď
|
|
||||||
Line 8=đńňóôőö÷řů
|
|
||||||
Line 9=úűüýţ˙
|
|
||||||
|
|
||||||
0=12
|
|
||||||
1=13
|
|
||||||
2=13
|
|
||||||
3=12
|
|
||||||
4=12
|
|
||||||
5=11
|
|
||||||
6=13
|
|
||||||
7=12
|
|
||||||
8=17
|
|
||||||
9=37
|
|
||||||
10=13
|
|
||||||
11=12
|
|
||||||
12=12
|
|
||||||
13=12
|
|
||||||
14=37
|
|
||||||
15=12
|
|
||||||
16=20
|
|
||||||
17=11
|
|
||||||
18=12
|
|
||||||
19=12
|
|
||||||
20=10
|
|
||||||
21=4
|
|
||||||
22=10
|
|
||||||
23=13
|
|
||||||
24=10
|
|
||||||
25=31
|
|
||||||
26=10
|
|
||||||
27=8
|
|
||||||
28=10
|
|
||||||
29=12
|
|
||||||
30=31
|
|
||||||
31=10
|
|
||||||
32=14
|
|
||||||
33=38
|
|
||||||
34=38
|
|
||||||
35=13
|
|
||||||
36=38
|
|
||||||
37=11
|
|
||||||
38=14
|
|
||||||
39=37
|
|
||||||
40=14
|
|
||||||
41=34
|
|
||||||
42=13
|
|
||||||
43=34
|
|
||||||
44=13
|
|
||||||
45=10
|
|
||||||
46=10
|
|
||||||
47=14
|
|
||||||
48=14
|
|
||||||
49=14
|
|
||||||
50=14
|
|
||||||
51=37
|
|
||||||
52=37
|
|
||||||
53=16
|
|
||||||
54=37
|
|
||||||
55=25
|
|
||||||
56=14
|
|
||||||
57=14
|
|
||||||
58=37
|
|
||||||
59=14
|
|
||||||
60=37
|
|
||||||
61=36
|
|
||||||
62=12
|
|
||||||
63=37
|
|
||||||
64=7
|
|
||||||
65=33
|
|
||||||
66=33
|
|
||||||
67=11
|
|
||||||
68=33
|
|
||||||
69=4
|
|
||||||
70=10
|
|
||||||
71=31
|
|
||||||
72=10
|
|
||||||
73=29
|
|
||||||
74=11
|
|
||||||
75=29
|
|
||||||
76=11
|
|
||||||
77=10
|
|
||||||
78=10
|
|
||||||
79=13
|
|
||||||
80=12
|
|
||||||
81=11
|
|
||||||
82=11
|
|
||||||
83=31
|
|
||||||
84=31
|
|
||||||
85=11
|
|
||||||
86=31
|
|
||||||
87=23
|
|
||||||
88=7
|
|
||||||
89=11
|
|
||||||
90=31
|
|
||||||
91=11
|
|
||||||
92=31
|
|
||||||
93=31
|
|
||||||
94=6
|
|
||||||
95=10
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Library/_orbitron Bold 45px
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Common Normal
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
local gc = Var("GameCommand");
|
|
||||||
|
|
||||||
return Def.ActorFrame {
|
|
||||||
LoadFont("Common Normal") .. {
|
|
||||||
Text=gc:GetText();
|
|
||||||
OnCommand=cmd(strokecolor,color("0,0,0,0.5"));
|
|
||||||
GainFocusCommand=cmd(zoom,1;diffuse,color("1,1,1,1"));
|
|
||||||
LoseFocusCommand=cmd(zoom,0.75;diffuse,color("0.5,0.5,0.5,1"));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
-- theme identification:
|
|
||||||
ThemeInfo = {
|
|
||||||
ProductCode = "SSC-LAB",
|
|
||||||
Name = "SSCLab",
|
|
||||||
Version = "1.00",
|
|
||||||
Date = { Month = "2010", Month = "1", Day = "1" },
|
|
||||||
Revision = "1000",
|
|
||||||
RevisionName = "Volcanic Nightmare",
|
|
||||||
};
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
-- Colors! --
|
|
||||||
Color = {
|
|
||||||
--[[ Basic Colors ]]
|
|
||||||
Red = color("#ed1c24"),
|
|
||||||
Orange = color("#f7941d"),
|
|
||||||
Yellow = color("#fff200"),
|
|
||||||
Green = color("#39b54a"),
|
|
||||||
Blue = color("#00aeef"),
|
|
||||||
Purple = color("#92278f"),
|
|
||||||
--[[ Greyscale Tints ]]
|
|
||||||
White = color("1,1,1,1"),
|
|
||||||
Silver = color("0.75,0.75,0.75,1"),
|
|
||||||
Grey = color("0.5,0.5,0.5,1"),
|
|
||||||
Steel = color("0.25,0.25,0.25,1"),
|
|
||||||
Black = color("0,0,0,1"),
|
|
||||||
--[[ Transparencies ]]
|
|
||||||
Invisible = color("1,1,1,0"),
|
|
||||||
Stealth = color("0,0,0,0"),
|
|
||||||
--[[ Alternatives ]]
|
|
||||||
HKS = {
|
|
||||||
--[[ HKS Z Process ]]
|
|
||||||
Red = color("#ee3048"),
|
|
||||||
Orange = color("#ffcb05"),
|
|
||||||
Yellow = color("#fff200"),
|
|
||||||
Green = color("#a4cf57"),
|
|
||||||
Blue = color("#00bfe8"),
|
|
||||||
Purple = color("#6e3694"),
|
|
||||||
-- There is no "White" for this library;
|
|
||||||
White = color("1,1,1,1"),
|
|
||||||
Silver = color("#b1c6c8"),
|
|
||||||
Grey = color("#748392"),
|
|
||||||
Steel = color("#435769"),
|
|
||||||
Black = color("#262d27"),
|
|
||||||
Invisible = color("#b1c6c800"),
|
|
||||||
},
|
|
||||||
--[[ Theme Elements ]]
|
|
||||||
ThemeElement = {
|
|
||||||
Background = {
|
|
||||||
Primary = color("#b1c6c8"), -- Grey Highlight
|
|
||||||
Secondary = color("#748392"), -- Grey Darkened
|
|
||||||
Highlight = color("#fff200"), -- Orange Highlight
|
|
||||||
Accent = color("#f99d1c"), -- Orange Darkened
|
|
||||||
},
|
|
||||||
UI = {
|
|
||||||
Primary = color("1,1,1,1"),
|
|
||||||
Secondary = color("#a8aca9"),
|
|
||||||
Highlight = color("#fff200"),
|
|
||||||
Accent = color("#ffd400"),
|
|
||||||
};
|
|
||||||
},
|
|
||||||
};
|
|
||||||
Metrics = {}
|
|
||||||
-- Color Functions --
|
|
||||||
--[[ function BoostColor(cColor,fBoost,fAlpha)
|
|
||||||
local c = cColor;
|
|
||||||
local x = fBoost;
|
|
||||||
local a = fAlpha;
|
|
||||||
c = { c[1]+(c[1]*boost),c[2]+(c[2]*boost),c[3]+(c[3]*boost),c[4] };
|
|
||||||
c[4] = (fAlpha ~= nil) and fAlpha or c[4];
|
|
||||||
return c;
|
|
||||||
end; --]]
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
function JudgmentTransformSharedCommand( self, params )
|
|
||||||
local x = 0
|
|
||||||
local y = 30
|
|
||||||
if params.bReverse then y = y * -1 end
|
|
||||||
|
|
||||||
if params.bCentered then
|
|
||||||
if params.bReverse then
|
|
||||||
y = y - 30
|
|
||||||
else
|
|
||||||
y = y + 40
|
|
||||||
end
|
|
||||||
end
|
|
||||||
self:x( 0 )
|
|
||||||
self:y( 0 )
|
|
||||||
end
|
|
||||||
|
|
||||||
function ComboTransformCommand( self, params )
|
|
||||||
local x = 0
|
|
||||||
local y = 30
|
|
||||||
if params.bReverse then y = y * -1 end
|
|
||||||
|
|
||||||
if params.bCentered then
|
|
||||||
if params.bReverse then
|
|
||||||
y = y - 30
|
|
||||||
else
|
|
||||||
y = y + 40
|
|
||||||
end
|
|
||||||
end
|
|
||||||
self:x( 0 )
|
|
||||||
self:y( 0 )
|
|
||||||
end
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
local mainMaxWidth = 208; -- zoom w/subtitle is 0.75 (multiply by 1.25)
|
|
||||||
local subMaxWidth = 420; -- zoom is 0.6 (multiply zoom,1 value by 1.4)
|
|
||||||
local artistMaxWidth = 300;
|
|
||||||
|
|
||||||
function TextBannerAfterSet(self,param)
|
|
||||||
local Title=self:GetChild("Title");
|
|
||||||
local Subtitle=self:GetChild("Subtitle");
|
|
||||||
local Artist=self:GetChild("Artist");
|
|
||||||
if Subtitle:GetText() == "" then
|
|
||||||
(cmd(maxwidth,mainMaxWidth;y,0;zoom,1;))(Title);
|
|
||||||
(cmd(visible,false))(Subtitle);
|
|
||||||
-- (cmd(zoom,0.66;maxwidth,artistMaxWidth;y,8))(Artist);
|
|
||||||
else
|
|
||||||
-- subtitle below
|
|
||||||
(cmd(maxwidth,mainMaxWidth*1.25;y,-8;zoom,0.75;))(Title);
|
|
||||||
(cmd(visible,true;zoom,0.6;y,7;maxwidth,subMaxWidth))(Subtitle);
|
|
||||||
-- (cmd(zoom,0.6;maxwidth,artistMaxWidth;y,10))(Artist);
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
--[[ Globals ]]
|
|
||||||
--[[ TOP ]] -- 1/6
|
|
||||||
--[[ CENTER ]] -- 3/6
|
|
||||||
--[[ CENTER ]]
|
|
||||||
--[[ CENTER ]]
|
|
||||||
--[[ BOTTOM ]] -- 2/6
|
|
||||||
--[[ BOTTOM ]]
|
|
||||||
--[[ VIEWPORT_TOP = SCREEN_TOP+80
|
|
||||||
VIEWPORT_CENTER_Y = SCREEN_TOP+200
|
|
||||||
VIEWPORT_BOTTOM = SCREEN_BOTTOM-160
|
|
||||||
-- Heights
|
|
||||||
VIEWPORT_HEIGHT_TOP = 80
|
|
||||||
VIEWPORT_HEIGHT_CENTER = 240
|
|
||||||
VIEWPORT_HEIGHT_BOTTOM = 160
|
|
||||||
--]]
|
|
||||||
Viewport = {
|
|
||||||
Top = SCREEN_TOP+80,
|
|
||||||
Bottom = SCREEN_TOP+200,
|
|
||||||
Center = SCREEN_BOTTOM-160,
|
|
||||||
Height = {
|
|
||||||
Top = 80,
|
|
||||||
Center = 240,
|
|
||||||
Bottom = 160,
|
|
||||||
},
|
|
||||||
};
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
[ThemeInfo]
|
|
||||||
DisplayName=SSCLab
|
|
||||||
Author=Midiman
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
[Global]
|
|
||||||
FallbackTheme=_fallback
|
|
||||||
[BPMDisplay]
|
|
||||||
SetNoBpmCommand=stoptweening;linear,0.2;diffuse,Color("White");diffusebottomedge,BoostColor(Color("White"),0.875);
|
|
||||||
SetNormalCommand=stoptweening;linear,0.2;diffuse,Color("White");diffusebottomedge,BoostColor(Color("White"),0.875);
|
|
||||||
SetChangeCommand=stoptweening;linear,0.2;diffuse,Color("Orange");diffusetopedge,BoostColor(Color("Orange"),1.5);
|
|
||||||
SetRandomCommand=stoptweening;linear,0.2;diffuse,Color("Blue");diffusetopedge,BoostColor(Color("Blue"),1.5);
|
|
||||||
SetExtraCommand=stoptweening;linear,0.2;diffuse,Color("Red");diffusebottomedge,BoostColor(Color("Red"),0.5);
|
|
||||||
Cycle=false
|
|
||||||
NoBpmText="000"
|
|
||||||
RandomCycleSpeed=0.2 -- smaller numbers mean the bpm cycles faster
|
|
||||||
Separator="-"
|
|
||||||
ShowQMarksInRandomCycle=false
|
|
||||||
[CustomScoring]
|
|
||||||
ComboAboveThresholdAddsToScoreBonus=0
|
|
||||||
ComboScoreBonusThreshold=50
|
|
||||||
ComboScoreBonusValue=+1000
|
|
||||||
|
|
||||||
ComboMultiplier=0.0
|
|
||||||
|
|
||||||
DoubleNoteScoreMultiplier=2.0
|
|
||||||
TripleNoteScoreMultiplier=3.0
|
|
||||||
QuadOrHigherNoteScoreMultiplier=4.0
|
|
||||||
|
|
||||||
PointsW1=+50
|
|
||||||
PointsW2=+20
|
|
||||||
PointsW3=+10
|
|
||||||
PointsW4=+5
|
|
||||||
PointsW5=0
|
|
||||||
PointsMiss=-5
|
|
||||||
PointsHitMine=-5
|
|
||||||
PointsCheckpointHit=+5
|
|
||||||
PointsCheckpointMiss=-5
|
|
||||||
PointsNone=0
|
|
||||||
PointsHoldHeld=+5
|
|
||||||
PointsHoldLetGo=-5
|
|
||||||
|
|
||||||
[MusicWheel]
|
|
||||||
ItemTransformFunction=function(self,offsetFromCenter,itemIndex,numItems) \
|
|
||||||
self:y( offsetFromCenter*32 ); \
|
|
||||||
end;
|
|
||||||
|
|
||||||
[ScreenWithMenuElements]
|
|
||||||
WaitForChildrenBeforeTweeningOut=true
|
|
||||||
|
|
||||||
[ScreenTitleMenu]
|
|
||||||
ScrollerY=SCREEN_CENTER_Y*1.75-16
|
|
||||||
|
|
||||||
[ScreenSelectMusic]
|
|
||||||
MusicWheelX=SCREEN_CENTER_X+200
|
|
||||||
MusicWheelY=SCREEN_CENTER_Y
|
|
||||||
|
|
||||||
[ScreenGameplay]
|
|
||||||
# Flipper [ Y Axis - EASY ]
|
|
||||||
#~ PlayerInitCommand=y,SCREEN_CENTER_Y;visible,false;pulse;effectmagnitude,1,1,1;effecttiming,0.5,7.5,0.5,7.5;effectcolor1,color("1,1,1,1");effectcolor2,color("1,-1,1,1");effectclock,'beat'
|
|
||||||
# Swing [ EASY ]
|
|
||||||
#~ PlayerInitCommand=y,SCREEN_CENTER_Y;fov,90;visible,false;wag;effectmagnitude,90*0.75,0,0;effecttiming,7.75,0.25,7.75,0.25;effectcolor1,color("1,1,1,1");effectcolor2,color("-1,1,1,1");effectclock,'beat'
|
|
||||||
# Spin [ X Axis - EASY ]
|
|
||||||
#~ PlayerInitCommand=y,SCREEN_CENTER_Y;fov,90;visible,false;spin;effectmagnitude,90,0,0;effectclock,'beat'
|
|
||||||
# Spin [ Y Axis - HARD ]
|
|
||||||
#~ PlayerInitCommand=y,SCREEN_CENTER_Y;fov,90;visible,false;spin;effectmagnitude,0,90,0;effectclock,'beat'
|
|
||||||
# Beaterator [ LOL THIS IS NOT EVEN HARD AT ALL CMON ]
|
|
||||||
#~ PlayerInitCommand=y,SCREEN_CENTER_Y;fov,90;visible,false;pulse;effectmagnitude,1,1,1;effectcolor1,color("1,1,1,1");effectcolor2,color("1.125,1.25,2,1");effecttiming,0.25,0,0.75,0;effectclock,'beat'
|
|
||||||
# Bouncerator [ Again ]
|
|
||||||
PlayerInitCommand=y,SCREEN_CENTER_Y;fov,90;visible,false;bob;effectmagnitude,0,0,32;effectperiod,0.25;effectclock,'beat'
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ScreenTitleMenu background
|
|
||||||
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 3.9 KiB |
@@ -1,43 +0,0 @@
|
|||||||
local blendModes = {
|
|
||||||
'BlendMode_Normal',
|
|
||||||
'BlendMode_Add',
|
|
||||||
'BlendMode_Modulate',
|
|
||||||
'BlendMode_WeightedMultiply',
|
|
||||||
'BlendMode_InvertDest',
|
|
||||||
};
|
|
||||||
|
|
||||||
local t = Def.ActorFrame{};
|
|
||||||
|
|
||||||
for i=1,#blendModes do
|
|
||||||
--diffuse,color("0.45,0.45,0.45,0.9")
|
|
||||||
local thisX = (i > 3) and ((i-4)*72) or ((i-1)*72)
|
|
||||||
local thisY = (i > 3) and 72 or 0;
|
|
||||||
t[#t+1] = Def.Quad{
|
|
||||||
InitCommand=cmd(zoomto,64,64;x,(SCREEN_CENTER_X*0.25)+thisX;y,SCREEN_CENTER_Y+thisY;blend,blendModes[i];diffuse,color("1,1,1,0.4"););
|
|
||||||
--OnCommand=cmd(diffuse,color("0,0.7,1,0.25"););
|
|
||||||
};
|
|
||||||
end;
|
|
||||||
|
|
||||||
t[#t+1] = LoadFont("Common normal")..{
|
|
||||||
InitCommand=cmd(CenterX;y,SCREEN_CENTER_Y*0.75;maxwidth,SCREEN_WIDTH*0.95);
|
|
||||||
BeginCommand=function(self)
|
|
||||||
local driver = PREFSMAN:GetPreference('VideoRenderers');
|
|
||||||
local possibleRenderers = split(",", driver);
|
|
||||||
driver = possibleRenderers[1];
|
|
||||||
local blends = "";
|
|
||||||
for i=1,#blendModes do
|
|
||||||
blends = blends..blendModes[i];
|
|
||||||
if i < #blendModes then
|
|
||||||
blends = blends..", ";
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
self:settext(driver.."\n"..blends);
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
t[#t+1] = Def.Quad{
|
|
||||||
InitCommand=cmd(zoomto,512,128;x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y*1.65;diffuse,color("0,0,0,0.1"););
|
|
||||||
OnCommand=cmd(diffuseleftedge,color("0,0,0,0.25");diffuserightedge,color("0,0,0,0.125"););
|
|
||||||
};
|
|
||||||
|
|
||||||
return t;
|
|
||||||
@@ -1,170 +0,0 @@
|
|||||||
-- basic MultiTexture with quads
|
|
||||||
function MakeTexture()
|
|
||||||
-- [AJ] c is for children
|
|
||||||
local c;
|
|
||||||
|
|
||||||
-- [AJ] define Draw function
|
|
||||||
local Draw = function(self)
|
|
||||||
-- Render the quads to the texture.
|
|
||||||
-- [AJ] this becomes Target.
|
|
||||||
-- you must begin rendering to a target before drawing the
|
|
||||||
-- components of it.
|
|
||||||
c.Target:GetTexture():BeginRenderingTo();
|
|
||||||
c.Shape1:Draw(); -- [AJ] draw shape 1
|
|
||||||
c.Shape2:Draw();
|
|
||||||
-- [AJ] you also have to finalize the render.
|
|
||||||
c.Target:GetTexture():FinishRenderingTo();
|
|
||||||
|
|
||||||
-- [AJ] render to the second target
|
|
||||||
c.Target2:GetTexture():BeginRenderingTo();
|
|
||||||
-- Unpremultiply the rendered shapes.
|
|
||||||
c.mt:Draw();
|
|
||||||
|
|
||||||
-- Knock out the text.
|
|
||||||
c.nWo:Draw();
|
|
||||||
c.Target2:GetTexture():FinishRenderingTo();
|
|
||||||
-- [AJ] Target2 consists of:
|
|
||||||
-- mt (MultiTexture using Target 1 as source)
|
|
||||||
-- nWo (image layer)
|
|
||||||
-- Target2 becomes the premultiplied Target 1 + anything else
|
|
||||||
-- drawn to Target2. As you'll see below, Out uses Target2
|
|
||||||
-- as the texture.
|
|
||||||
|
|
||||||
-- Draw the result.
|
|
||||||
c.Out:Draw();
|
|
||||||
end
|
|
||||||
|
|
||||||
local parts = {
|
|
||||||
-- [AJ] render target 1
|
|
||||||
Def.ActorFrameTexture { Name = "Target"; };
|
|
||||||
-- [AJ] render target 2
|
|
||||||
Def.ActorFrameTexture { Name = "Target2"; };
|
|
||||||
-- [AJ] multitexture
|
|
||||||
Def.ActorMultiTexture { Name = "mt"; };
|
|
||||||
-- [AJ] output sprite
|
|
||||||
Def.Sprite {
|
|
||||||
Name = "Out";
|
|
||||||
InitCommand=cmd(diffusealpha,0);
|
|
||||||
OnCommand=cmd(stoptweening;accelerate,0.3;diffusealpha,1);
|
|
||||||
SpinCommand=cmd(spin;effectmagnitude,0,60,0);
|
|
||||||
};
|
|
||||||
-- [AJ] text
|
|
||||||
--[[
|
|
||||||
LoadFont("_frutiger") .. {
|
|
||||||
Name = "nWo";
|
|
||||||
Text = "intrade";
|
|
||||||
};
|
|
||||||
]]
|
|
||||||
|
|
||||||
LoadActor("_nWo")..{
|
|
||||||
Name="nWo";
|
|
||||||
};
|
|
||||||
|
|
||||||
-- [AJ] the two Run commands are concurrent. That is to say, the Run
|
|
||||||
-- command on the ActorFrame triggers the Run command on the Quad.
|
|
||||||
|
|
||||||
Def.ActorFrame{
|
|
||||||
Name="Shape1";
|
|
||||||
OnCommand=cmd(stoptweening;playcommand,"Run");
|
|
||||||
RunCommand=cmd(
|
|
||||||
y,0;
|
|
||||||
y,50;
|
|
||||||
sleep,1;
|
|
||||||
linear,2;addy,100;
|
|
||||||
sleep,1.3;
|
|
||||||
queuecommand,"Run"
|
|
||||||
);
|
|
||||||
|
|
||||||
Def.Quad{
|
|
||||||
InitCommand=cmd(diffuse,color("#00CCFF");x,256-32;y,100;zoomto,128,128;fadetop,0.25;fadebottom,0.25;faderight,0.1);
|
|
||||||
RunCommand=cmd(
|
|
||||||
finishtweening;
|
|
||||||
diffusealpha,0;
|
|
||||||
sleep,1.25;
|
|
||||||
linear,1;diffusealpha,1;
|
|
||||||
linear,.25;diffusealpha,1;
|
|
||||||
linear,.5;diffusealpha,0;
|
|
||||||
);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
Def.ActorFrame{
|
|
||||||
Name="Shape2";
|
|
||||||
OnCommand=cmd(stoptweening;playcommand,"Run");
|
|
||||||
RunCommand=cmd(
|
|
||||||
y,0;
|
|
||||||
y,50;
|
|
||||||
sleep,1;
|
|
||||||
linear,2;addy,100;
|
|
||||||
sleep,1.3;
|
|
||||||
queuecommand,"Run"
|
|
||||||
);
|
|
||||||
|
|
||||||
Def.Quad{
|
|
||||||
InitCommand=cmd(diffuse,color("#FFCC00");x,256+32;y,100;zoomto,128,128;fadetop,0.25;fadebottom,0.25);
|
|
||||||
RunCommand=cmd(
|
|
||||||
finishtweening;
|
|
||||||
diffusealpha,0;
|
|
||||||
sleep,1.25;
|
|
||||||
linear,1;diffusealpha,1;
|
|
||||||
linear,.25;diffusealpha,1;
|
|
||||||
linear,.5;diffusealpha,0;
|
|
||||||
);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
return Def.ActorFrame {
|
|
||||||
children = parts;
|
|
||||||
|
|
||||||
InitCommand = function(self)
|
|
||||||
c = self:GetChildren();
|
|
||||||
-- [AJ] sets draw function
|
|
||||||
self:SetDrawFunction( Draw );
|
|
||||||
|
|
||||||
-- Create the render target for the first pass.
|
|
||||||
-- [AJ] uses render target 1
|
|
||||||
c.Target:setsize(512, 512);
|
|
||||||
c.Target:EnableAlphaBuffer(true);
|
|
||||||
c.Target:EnableFloat(true);
|
|
||||||
c.Target:Create();
|
|
||||||
|
|
||||||
-- Create the render target for the second pass.
|
|
||||||
-- [AJ] uses render target 2
|
|
||||||
c.Target2:setsize(512, 512);
|
|
||||||
c.Target2:EnableAlphaBuffer(true);
|
|
||||||
c.Target2:Create();
|
|
||||||
|
|
||||||
-- [AJ] modify text
|
|
||||||
--c.nWo:shadowlength(0);
|
|
||||||
c.nWo:x(256);
|
|
||||||
c.nWo:y(236);
|
|
||||||
c.nWo:blend("BlendMode_AlphaKnockOut");
|
|
||||||
|
|
||||||
-- mt controls multitexture rendering for the unpremultiply pass.
|
|
||||||
-- [AJ] unpremultiply pass is here, this is the crazy one
|
|
||||||
local SourceTexture = c.Target:GetTexture();
|
|
||||||
c.mt:SetSizeFromTexture( SourceTexture );
|
|
||||||
c.mt:ClearTextures();
|
|
||||||
c.mt:AddTexture( SourceTexture );
|
|
||||||
c.mt:SetEffectMode( "EffectMode_HardMix" );
|
|
||||||
--c.mt:SetTextureMode(0, 'TextureMode_Glow')
|
|
||||||
c.mt:blend("BlendMode_CopySrc");
|
|
||||||
c.mt:x( 0 );
|
|
||||||
c.mt:y( 0 );
|
|
||||||
c.mt:align(0,0);
|
|
||||||
|
|
||||||
-- Out renders the final pass.
|
|
||||||
c.Out:valign(0);
|
|
||||||
c.Out:SetTexture( c.Target2:GetTexture() );
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
end
|
|
||||||
|
|
||||||
local t = Def.ActorFrame{
|
|
||||||
MakeTexture() .. {
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y/2);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
return t;
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
ScreenTitleMenu background
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
[AnimatedTexture]
|
|
||||||
Frame0000=t0_alex_01.bmp
|
|
||||||
Delay0000=2.00
|
|
||||||
Frame0001=t1_alex_01.bmp
|
|
||||||
Delay0001=0.30
|
|
||||||
Frame0002=t0_alex_01.bmp
|
|
||||||
Delay0002=2.00
|
|
||||||
Frame0003=t1_alex_01.bmp
|
|
||||||
Delay0003=0.30
|
|
||||||
Frame0004=t0_alex_01.bmp
|
|
||||||
Delay0004=2.00
|
|
||||||
Frame0005=t2_alex_01.bmp
|
|
||||||
Delay0005=2.00
|
|
||||||
Frame0006=t0_alex_01.bmp
|
|
||||||
Delay0006=2.00
|
|
||||||
Frame0007=t1_alex_01.bmp
|
|
||||||
Delay0007=0.30
|
|
||||||
Frame0008=t0_alex_01.bmp
|
|
||||||
Delay0008=2.00
|
|
||||||
Frame0009=t3_alex_01.bmp
|
|
||||||
Delay0009=2.00
|
|
||||||
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
@@ -1,56 +0,0 @@
|
|||||||
local modelNames = { "luna", "luna", "luna2" };
|
|
||||||
|
|
||||||
local t = Def.ActorFrame{
|
|
||||||
Lighting=true;
|
|
||||||
InitCommand=function(self)
|
|
||||||
self:fov(45);
|
|
||||||
--SetAmbientLightColor (default 1,1,1,1)
|
|
||||||
--self:SetAmbientLightColor( color("0.2,0.2,0.2,1") );
|
|
||||||
--SetDiffuseLightColor (default 1,1,1,1)
|
|
||||||
self:SetDiffuseLightColor( color("1,0,1,1") );
|
|
||||||
--SetSpecularLightColor (default 1,1,1,1)
|
|
||||||
self:SetSpecularLightColor( color("0,1,0,1") );
|
|
||||||
--SetLightDirection (WARNING: does not error out correctly yet) default 0,0,1
|
|
||||||
end;
|
|
||||||
Def.Model{
|
|
||||||
Materials = modelNames[1]..".txt";
|
|
||||||
Meshes = modelNames[1]..".txt";
|
|
||||||
Bones = "Rest.bones.txt";
|
|
||||||
-- was zoom,35 @ center, SCREEN_BOTTOM
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X*0.75;y,SCREEN_BOTTOM*0.9;zoom,24;wag;effectmagnitude,0,25,0;rotationy,90;rotationx,-30;cullmode,'CullMode_None');
|
|
||||||
};
|
|
||||||
Def.Model{
|
|
||||||
Materials = modelNames[2]..".txt";
|
|
||||||
Meshes = modelNames[2]..".txt";
|
|
||||||
Bones = "Rest.bones.txt";
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X*1.25;y,SCREEN_BOTTOM*0.9;zoom,24;wag;effectmagnitude,0,-25,0;rotationy,-90;rotationx,-30;cullmode,'CullMode_None';diffusecolor,color("0,1,0.75,1"););
|
|
||||||
OnCommand=cmd(queuecommand,"ShiftAlpha");
|
|
||||||
ShiftAlphaCommand=function(self)
|
|
||||||
self:linear(3);
|
|
||||||
local newAlpha = scale(math.random(), 0, 1, 0.325, 0.75 );
|
|
||||||
self:diffusealpha( newAlpha );
|
|
||||||
self:sleep(math.random(0.2,5));
|
|
||||||
self:queuecommand("ShiftAlpha");
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
Def.Model{
|
|
||||||
Materials = modelNames[3]..".txt";
|
|
||||||
Meshes = modelNames[3]..".txt";
|
|
||||||
Bones = "Rest.bones.txt";
|
|
||||||
-- was zoom,35 @ center, SCREEN_BOTTOM
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X*0.25;y,SCREEN_BOTTOM*1.25;zoom,32;rotationy,157;rotationx,-30;cullmode,'CullMode_None');
|
|
||||||
};
|
|
||||||
|
|
||||||
--[[
|
|
||||||
LoadFont("Common normal")..{
|
|
||||||
InitCommand=cmd(x,SCREEN_LEFT+16;y,SCREEN_TOP+16;horizalign,left;);
|
|
||||||
OnCommand=function(self)
|
|
||||||
local chars = CHARMAN:GetAllCharacters();
|
|
||||||
self:settext("I'm thiiiiiiiiiiiiiis big: ".. #chars);
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
--]]
|
|
||||||
};
|
|
||||||
|
|
||||||
return t;
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
[AnimatedTexture]
|
|
||||||
Frame0000=t0_gfac.bmp
|
|
||||||
Delay0000=2.00
|
|
||||||
Frame0001=t1_gfac.bmp
|
|
||||||
Delay0001=0.30
|
|
||||||
Frame0002=t0_gfac.bmp
|
|
||||||
Delay0002=2.00
|
|
||||||
Frame0003=t1_gfac.bmp
|
|
||||||
Delay0003=0.30
|
|
||||||
Frame0004=t0_gfac.bmp
|
|
||||||
Delay0004=2.00
|
|
||||||
Frame0005=t2_gfac.bmp
|
|
||||||
Delay0005=2.00
|
|
||||||
Frame0006=t0_gfac.bmp
|
|
||||||
Delay0006=2.00
|
|
||||||
Frame0007=t1_gfac.bmp
|
|
||||||
Delay0007=0.30
|
|
||||||
Frame0008=t0_gfac.bmp
|
|
||||||
Delay0008=2.00
|
|
||||||
Frame0009=t3_gfac.bmp
|
|
||||||
Delay0009=2.00
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
[AnimatedTexture]
|
|
||||||
Frame0000=t0_luna_00.bmp
|
|
||||||
Delay0000=2.00
|
|
||||||
Frame0001=t1_luna_00.bmp
|
|
||||||
Delay0001=0.30
|
|
||||||
Frame0002=t0_luna_00.bmp
|
|
||||||
Delay0002=2.00
|
|
||||||
Frame0003=t1_luna_00.bmp
|
|
||||||
Delay0003=0.30
|
|
||||||
Frame0004=t0_luna_00.bmp
|
|
||||||
Delay0004=2.00
|
|
||||||
Frame0005=t2_luna_00.bmp
|
|
||||||
Delay0005=2.00
|
|
||||||
Frame0006=t0_luna_00.bmp
|
|
||||||
Delay0006=2.00
|
|
||||||
Frame0007=t1_luna_00.bmp
|
|
||||||
Delay0007=0.30
|
|
||||||
Frame0008=t0_luna_00.bmp
|
|
||||||
Delay0008=2.00
|
|
||||||
Frame0009=t7_luna_00.bmp
|
|
||||||
Delay0009=2.00
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
[AnimatedTexture]
|
|
||||||
Frame0000=t0_luna_00.bmp
|
|
||||||
Delay0000=2.00
|
|
||||||
Frame0001=t1_luna_00.bmp
|
|
||||||
Delay0001=0.30
|
|
||||||
Frame0002=t0_luna_00.bmp
|
|
||||||
Delay0002=2.00
|
|
||||||
Frame0003=t1_luna_00.bmp
|
|
||||||
Delay0003=0.30
|
|
||||||
Frame0004=t0_luna_00.bmp
|
|
||||||
Delay0004=2.00
|
|
||||||
Frame0005=t2_luna_00.bmp
|
|
||||||
Delay0005=2.00
|
|
||||||
Frame0006=t0_luna_00.bmp
|
|
||||||
Delay0006=2.00
|
|
||||||
Frame0007=t1_luna_00.bmp
|
|
||||||
Delay0007=0.30
|
|
||||||
Frame0008=t0_luna_00.bmp
|
|
||||||
Delay0008=2.00
|
|
||||||
Frame0009=t3_luna_00.bmp
|
|
||||||
Delay0009=2.00
|
|
||||||
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
@@ -1,33 +0,0 @@
|
|||||||
local t = Def.ActorFrame{};
|
|
||||||
|
|
||||||
t[#t+1] = LoadFont("Common Normal")..{
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;);
|
|
||||||
--CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
|
|
||||||
--CurrentStepsChangedP1MessageCommand=cmd(playcommand,"Set");
|
|
||||||
OnCommand=cmd(playcommand,"Set");
|
|
||||||
SetCommand=function(self,params)
|
|
||||||
-- song test cases
|
|
||||||
--[[
|
|
||||||
local song = GAMESTATE:GetCurrentSong();
|
|
||||||
if not song then self:settext(""); return; end;
|
|
||||||
|
|
||||||
-- song file path test case
|
|
||||||
self:settext( song:GetSongFilePath() );
|
|
||||||
|
|
||||||
-- get bpm from beat test case
|
|
||||||
self:settext( "BPM at beat 45 = "..song:GetBPMAtBeat(45) );
|
|
||||||
|
|
||||||
-- lol
|
|
||||||
--Trace( "MD5 of ".. song:GetDisplayFullTitle() .." = "..CRYPTMAN:MD5File(song:GetSongFilePath()) );
|
|
||||||
|
|
||||||
-- writing to profile dir!
|
|
||||||
local profDir = PROFILEMAN:GetProfileDir('ProfileSlot_Player1') or nil;
|
|
||||||
if profDir then
|
|
||||||
self:settext(profDir);
|
|
||||||
WriteFile(profDir.."hello.txt","hello world! eat my dick, from all your friends at SSC, but aj wrote it so really just him.");
|
|
||||||
end;
|
|
||||||
]]
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
return t;
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
local t = Def.ActorFrame{};
|
|
||||||
|
|
||||||
t[#t+1] = LoadFont("Common normal")..{
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X*0.5;y,SCREEN_CENTER_Y);
|
|
||||||
SetCommand=function(self)
|
|
||||||
local song = GAMESTATE:GetCurrentSong();
|
|
||||||
if song then
|
|
||||||
--[[
|
|
||||||
-- test of TimingData:GetBPMs
|
|
||||||
local timing = song:GetTimingData();
|
|
||||||
local bpms = timing:GetBPMs();
|
|
||||||
local text = "";
|
|
||||||
for i=1,#bpms do
|
|
||||||
text = text ..bpms[i];
|
|
||||||
if i < (#bpms) then
|
|
||||||
text = text..", ";
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
self:settext(text);
|
|
||||||
--]]
|
|
||||||
--[[
|
|
||||||
-- test of TimingData:GetStops
|
|
||||||
-- format:
|
|
||||||
-- start row (float as beat)=stop length (float as seconds)
|
|
||||||
local timing = song:GetTimingData();
|
|
||||||
local stops = timing:GetStops();
|
|
||||||
local text = "";
|
|
||||||
for i=1,#stops do
|
|
||||||
text = text ..stops[i];
|
|
||||||
if i < (#stops) then
|
|
||||||
text = text..", ";
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
self:settext(text);
|
|
||||||
--]]
|
|
||||||
--[[
|
|
||||||
-- test of TimingData:GetBPMsAndTimes
|
|
||||||
-- format:
|
|
||||||
-- start row (float as beat)=new bpm (float)
|
|
||||||
local timing = song:GetTimingData();
|
|
||||||
local bpmchanges = timing:GetBPMsAndTimes();
|
|
||||||
local text = "";
|
|
||||||
for i=1,#bpmchanges do
|
|
||||||
text = text ..bpmchanges[i];
|
|
||||||
if i < (#bpmchanges) then
|
|
||||||
text = text..",\n";
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
self:settext(text);
|
|
||||||
--]]
|
|
||||||
-- test of TimingData:GetActualBPM (may need to be renamed)
|
|
||||||
-- bpms[1] = min, bpms[2] = max
|
|
||||||
local timing = song:GetTimingData();
|
|
||||||
local bpms = timing:GetActualBPM();
|
|
||||||
local minBPM = bpms[1];
|
|
||||||
local maxBPM = bpms[2];
|
|
||||||
local text = "";
|
|
||||||
if minBPM == maxBPM then
|
|
||||||
text = "min = max = ".. maxBPM;
|
|
||||||
else
|
|
||||||
text = "min = ".. minBPM .." | max = ".. maxBPM;
|
|
||||||
end;
|
|
||||||
self:settext(text);
|
|
||||||
else
|
|
||||||
self:settext("");
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
|
|
||||||
CurrentCourseChangedMessageCommand=cmd(playcommand,"Set");
|
|
||||||
CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set");
|
|
||||||
CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set");
|
|
||||||
CurrentStepsP2ChangedMessageCommand=cmd(playcommand,"Set");
|
|
||||||
CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set");
|
|
||||||
};
|
|
||||||
|
|
||||||
return t;
|
|
||||||
@@ -1,61 +0,0 @@
|
|||||||
local t = Def.ActorFrame{ FOV=45; };
|
|
||||||
t[#t+1] = LoadActor( THEME:GetPathB("","_titlebg") )..{
|
|
||||||
InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_WIDTH;);
|
|
||||||
};
|
|
||||||
t[#t+1] = Def.Quad{
|
|
||||||
InitCommand=cmd(Center;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT;diffusealpha,0.2);
|
|
||||||
--OnCommand=cmd(diffuse,color("0.65,0.35,0,0.35"));
|
|
||||||
OnCommand=cmd(diffuse,color("0,0.5,0.75,0.35"));
|
|
||||||
};
|
|
||||||
t[#t+1] = Def.Quad{
|
|
||||||
InitCommand=cmd(CenterX;y,SCREEN_TOP;vertalign,top;zoomto,SCREEN_WIDTH,SCREEN_HEIGHT*0.25;);
|
|
||||||
OnCommand=cmd(fadebottom,0.5;diffuse,color("0.0625,0.15625,0.28175,1"));
|
|
||||||
};
|
|
||||||
|
|
||||||
-- stars
|
|
||||||
local numStars= 250;
|
|
||||||
local maxZ = SCREEN_WIDTH;
|
|
||||||
local zStep = 5;
|
|
||||||
local reverse = false;
|
|
||||||
local zSpeed = 0.025; -- was 0.1
|
|
||||||
|
|
||||||
for i=1,numStars do
|
|
||||||
local starSize = math.random(0.25,4);
|
|
||||||
local randX = math.random(SCREEN_CENTER_X*0.05,SCREEN_CENTER_X*1.95);
|
|
||||||
local randY = math.random(SCREEN_CENTER_Y*0.05,SCREEN_CENTER_Y*1.95);
|
|
||||||
local fxOffset = math.random(0,15);
|
|
||||||
local fxPeriod = math.random(5,60);
|
|
||||||
t[#t+1] = Def.Quad{
|
|
||||||
InitCommand=cmd(x,randX;y,randY;zoomto,starSize,starSize;blend,bmAdd);
|
|
||||||
OnCommand=cmd(diffuseshift;effectperiod,fxPeriod;effectoffset,fxOffset;effectcolor1,color("1,1,1,0.25");effectcolor2,color("1,1,1,0.5");queuecommand,'Zoomer');
|
|
||||||
ZoomerCommand=function(self)
|
|
||||||
-- check Z
|
|
||||||
--[[
|
|
||||||
if self:GetZ()-starSize > maxZ then
|
|
||||||
self:linear(0.2);
|
|
||||||
self:diffusealpha(0);
|
|
||||||
self:sleep(0.001);
|
|
||||||
self:z(0);
|
|
||||||
self:linear(0.2);
|
|
||||||
self:diffusealpha(1);
|
|
||||||
end;
|
|
||||||
--]]
|
|
||||||
if self:GetZ()-starSize > maxZ then
|
|
||||||
reverse = true;
|
|
||||||
end;
|
|
||||||
if self:GetZ() == 0 then
|
|
||||||
reverse = false;
|
|
||||||
end;
|
|
||||||
|
|
||||||
local multi = 1;
|
|
||||||
if reverse then multi = -1; end;
|
|
||||||
|
|
||||||
self:linear(zSpeed);
|
|
||||||
self:addz(zStep * multi);
|
|
||||||
self:queuecommand('Zoomer');
|
|
||||||
end;
|
|
||||||
cmd(linear,starSize*20;addz,200;);
|
|
||||||
};
|
|
||||||
end;
|
|
||||||
|
|
||||||
return t;
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
local t = Def.ActorFrame{};
|
|
||||||
t[#t+1] = LoadActor( THEME:GetPathG("","_theme/logo") )..{
|
|
||||||
InitCommand=cmd(Center;diffusealpha,0.2;blend,bmAdd;pulse;effectmagnitude,0.95,1.25,1;effectcolor1,1.5,0.5,1,1;effectcolor2,0.5,1.5,2,1);
|
|
||||||
};
|
|
||||||
t[#t+1] = LoadActor( THEME:GetPathG("","_theme/logo") )..{
|
|
||||||
InitCommand=cmd(Center);
|
|
||||||
--[[
|
|
||||||
OnCommand=function(self)
|
|
||||||
-- let's test getpixel
|
|
||||||
local sxx = "";
|
|
||||||
--local pixCol = self:GetTexture():GetPixel(850,70);
|
|
||||||
local pixCol = color("0.75,0.9,0,1");
|
|
||||||
for i=1,#pixCol do
|
|
||||||
sxx = sxx..pixCol[i];
|
|
||||||
if i < #pixCol then
|
|
||||||
sxx = sxx..",";
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
Trace( "pixCol(850,70) = "..sxx );
|
|
||||||
end;
|
|
||||||
--]]
|
|
||||||
};
|
|
||||||
--[[
|
|
||||||
-- old version
|
|
||||||
t[#t+1] = LoadActor( THEME:GetPathG("","_theme/logo") )..{
|
|
||||||
InitCommand=cmd(Center;diffusealpha,0.2;blend,bmAdd;pulse;effectperiod,15;effectmagnitude,1,1.05,1;);
|
|
||||||
};
|
|
||||||
--]]
|
|
||||||
|
|
||||||
-- returns a table of all the files and directories in the scripts dir
|
|
||||||
--local files = FILEMAN:GetDirListing( "/Themes/test/Scripts/*" );
|
|
||||||
-- ActorUtil:GetFileType(path);
|
|
||||||
|
|
||||||
return t;
|
|
||||||
|
Before Width: | Height: | Size: 46 KiB |
@@ -1,8 +0,0 @@
|
|||||||
to note, the current Lua bindings have bugs or don't work as intended:
|
|
||||||
|
|
||||||
BPMDisplay:GetText() is always one off from the current song.
|
|
||||||
|
|
||||||
Steps:GetHash() just plain doesn't work?
|
|
||||||
|
|
||||||
CRYPTMAN hash strings use the literal characters instead of the hex displayed as
|
|
||||||
ASCII. Not a bug, but something to make a note of, lest people get confused.
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
return Def.Quad{
|
|
||||||
InitCommand=cmd(zoomto,SCREEN_CENTER_X*0.8,SCREEN_HEIGHT*0.75;diffuse,color("0.9,0.75,0,0.9"));
|
|
||||||
};
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
return Def.Quad{
|
|
||||||
InitCommand=cmd(zoomto,SCREEN_CENTER_X*0.8,SCREEN_HEIGHT*0.75;diffuse,color("0,0.75,0.9,0.9"));
|
|
||||||
};
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
_blank
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
return LoadFont("Common Normal") .. {
|
|
||||||
Text="P1";
|
|
||||||
};
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
return LoadFont("Common Normal") .. {
|
|
||||||
Text="P2";
|
|
||||||
};
|
|
||||||
@@ -1,99 +0,0 @@
|
|||||||
local gc = Var("GameCommand");
|
|
||||||
local index = gc:GetIndex();
|
|
||||||
local name = gc:GetName();
|
|
||||||
local text = gc:GetText();
|
|
||||||
|
|
||||||
local itemY = SCREEN_CENTER_Y*0.5 + (50 * index);
|
|
||||||
|
|
||||||
local t = Def.ActorFrame {
|
|
||||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,itemY);
|
|
||||||
OffUnfocusedCommand=cmd(sleep,0.95/2;bounceend,0.3;zoomy,0);
|
|
||||||
--[[ OffFocusedCommand=function(self)
|
|
||||||
local bIsFirst = (index == 0) and true or false;
|
|
||||||
self:playcommand( (bIsFirst) and "LeftPick" or "RightPick");
|
|
||||||
end; --]]
|
|
||||||
OffFocusedCommand=cmd(sleep,0.5;linear,0.75;x,SCREEN_CENTER_X;zoom,1.25;sleep,0.75;decelerate,0.15;zoomy,0);
|
|
||||||
LeftPickCommand=cmd(sleep,1.25;linear,0.25;x,-SCREEN_WIDTH);
|
|
||||||
RightPickCommand=cmd(sleep,1.25;linear,0.25;x,SCREEN_WIDTH*2);
|
|
||||||
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,274,42);
|
|
||||||
OnCommand=cmd();
|
|
||||||
};
|
|
||||||
|
|
||||||
-- Under
|
|
||||||
Def.ActorFrame {
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,274-4,42-4);
|
|
||||||
OnCommand=cmd(diffuse,ThemeColor("Primary"));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
-- Over
|
|
||||||
Def.ActorFrame {
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,274-4,42-4);
|
|
||||||
OnCommand=cmd(diffuse,ThemeColor("Secondary");
|
|
||||||
diffuseshift;effectcolor2,ThemeColor("Secondary");effectcolor1,GenericColor("cStealth");
|
|
||||||
effectoffset,4.5;effecttiming,0.25,3.75,0.5,3.5);
|
|
||||||
-- Explanation:
|
|
||||||
-- 4 seconds for the each card to show on/off
|
|
||||||
-- 0.25 seconds of each card to transition inbetween.
|
|
||||||
-- 4.5 seconds to offset the transition of EffectColor2
|
|
||||||
-- therefore
|
|
||||||
-- EffectOffset = Time + TransitionTime*2
|
|
||||||
};
|
|
||||||
LoadFont("Common Stroke") .. {
|
|
||||||
Text=name;
|
|
||||||
InitCommand=cmd(shadowlength,0;zoomy,1.1);
|
|
||||||
OnCommand=cmd(y,-1;diffuse,ThemeColor("Secondary");
|
|
||||||
diffuseshift;effectcolor2,ThemeColor("Primary");effectcolor1,GenericColor("cStealth");
|
|
||||||
effectoffset,4.5;effecttiming,0.25,3.75,0.5,3.5
|
|
||||||
diffusealpha,0.5);
|
|
||||||
};
|
|
||||||
--[[
|
|
||||||
Def.ActorFrame {
|
|
||||||
OnCommand=cmd(vibrate;effectmagnitude,0,4,0);
|
|
||||||
LoadFont("Common Stroke") .. {
|
|
||||||
Text=name;
|
|
||||||
InitCommand=cmd(shadowlength,0;zoomy,1);
|
|
||||||
OnCommand=cmd(y,-1;diffuse,ThemeColor("Secondary");
|
|
||||||
diffuseshift;effectcolor2,ThemeColor("Primary");effectcolor1,GenericColor("cStealth");
|
|
||||||
effectoffset,4.5;effecttiming,0.25,3.75,0.5,3.5);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
]]
|
|
||||||
LoadFont("Common Normal") .. {
|
|
||||||
Text=name;
|
|
||||||
InitCommand=cmd(shadowlength,0);
|
|
||||||
OnCommand=cmd(y,-1;diffuse,ThemeColor("Secondary");
|
|
||||||
diffuseshift;effectcolor2,GenericColor("cWhite");effectcolor1,GenericColor("cStealth");
|
|
||||||
effectoffset,4.5;effecttiming,0.25,3.75,0.5,3.5);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
-- Choose
|
|
||||||
Def.ActorFrame {
|
|
||||||
Def.Quad {
|
|
||||||
InitCommand=cmd(zoomto,274-4,42-4);
|
|
||||||
OnCommand=cmd(
|
|
||||||
diffuseshift;effectcolor1,ThemeColor("Secondary");effectcolor2,ThemeColor("Primary");
|
|
||||||
effectoffset,4.5;effecttiming,0.25,3.75,0.5,3.5);
|
|
||||||
GainFocusCommand=cmd(stoptweening;linear,0.1;diffusealpha,1);
|
|
||||||
LoseFocusCommand=cmd(stoptweening;linear,0.25;diffusealpha,0);
|
|
||||||
OffFocusedCommand=cmd(sleep,0.25;linear,0.5;);
|
|
||||||
};
|
|
||||||
LoadFont("Common Normal") .. {
|
|
||||||
Text=name;
|
|
||||||
InitCommand=cmd(shadowlength,1);
|
|
||||||
OnCommand=cmd(y,-1;
|
|
||||||
diffuseshift;effectcolor2,ThemeColor("Secondary");effectcolor1,ThemeColor("Primary");
|
|
||||||
effectoffset,4.5;effecttiming,0.25,3.75,0.5,3.5);
|
|
||||||
GainFocusCommand=cmd(stoptweening;zoom,1.2;decelerate,0.2;zoom,1;diffusealpha,1);
|
|
||||||
LoseFocusCommand=cmd(stoptweening;zoom,1;decelerate,0.1;zoom,1;diffusealpha,0);
|
|
||||||
OffFocusedCommand=cmd(settext,"OK!";);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
return t;
|
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
local gc = Var("GameCommand");
|
|
||||||
local index = gc:GetIndex();
|
|
||||||
local name = gc:GetName();
|
|
||||||
local text = gc:GetText();
|
|
||||||
|
|
||||||
local itemColors = {
|
|
||||||
HSV(128, 0.6, 0.85), -- play
|
|
||||||
HSV(192, 0.6, 0.85), -- options
|
|
||||||
HSV(160, 0.6, 0.85), -- customization
|
|
||||||
HSV( 64, 0.6, 0.85), -- edit
|
|
||||||
HSV( 0, 0.6, 0.85), -- exit
|
|
||||||
};
|
|
||||||
|
|
||||||
local t = Def.ActorFrame{
|
|
||||||
--[[
|
|
||||||
Def.Actor{
|
|
||||||
Name="TitleMenuController";
|
|
||||||
GainFocusCommand=function(self)
|
|
||||||
MESSAGEMAN:Broadcast("TitleChange",{NewColor=itemColors[index+1]});
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
]]
|
|
||||||
LoadFont("Common Normal")..{
|
|
||||||
Text=Screen.String(text);
|
|
||||||
InitCommand=cmd(diffuse,color("1,1,1,1"));
|
|
||||||
DisabledCommand=cmd(diffuse,color("0.5,0.5,0.5,0.85"));
|
|
||||||
--GainFocusCommand=cmd(stoptweening;linear,0.25;diffuse,itemColors[index+1]);
|
|
||||||
GainFocusCommand=cmd(stoptweening;linear,0.25;diffuse,color("1,0.2,0.2,1"));
|
|
||||||
LoseFocusCommand=cmd(stoptweening;linear,0.25;diffuse,color("1,1,1,1"));
|
|
||||||
};
|
|
||||||
--[[ begin triangle ]]
|
|
||||||
Def.Quad{
|
|
||||||
InitCommand=cmd(x,-SCREEN_WIDTH*0.105;zoomto,8,24;zwrite,true;blend,'BlendMode_NoEffect');
|
|
||||||
};
|
|
||||||
Def.Quad{
|
|
||||||
InitCommand=cmd(x,-SCREEN_WIDTH*0.1;zoomto,12,12;rotationz,45;diffuselowerleft,color("0,0,0,0");ztest,true);
|
|
||||||
GainFocusCommand=cmd(stoptweening;visible,true);
|
|
||||||
LoseFocusCommand=cmd(stoptweening;visible,false);
|
|
||||||
};
|
|
||||||
--[[ end triangle ]]
|
|
||||||
};
|
|
||||||
|
|
||||||
return t;
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
return LoadFont("Common Normal") .. {
|
|
||||||
Text="P1";
|
|
||||||
};
|
|
||||||
|
Before Width: | Height: | Size: 118 KiB |
@@ -1,4 +0,0 @@
|
|||||||
[ScreenTitleMenu]
|
|
||||||
Packages=Packages
|
|
||||||
CustomMenu=Custom Menu
|
|
||||||
Test Blend Modes=Test Blend Modes
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
-- temp, delete me when default is finalized
|
|
||||||
|
|
||||||
-- ProductivityHelpers: A set of useful aliases for theming.
|
|
||||||
-- Latest version at http://kki.ajworld.net/wiki/ProductivityHelpers
|
|
||||||
|
|
||||||
--[[ Aliases ]]
|
|
||||||
|
|
||||||
-- Blend Modes
|
|
||||||
-- Aliases for blend modes.
|
|
||||||
bmNormal = 'BlendMode_Normal';
|
|
||||||
bmAdd = 'BlendMode_Add';
|
|
||||||
bmMultiply = 'BlendMode_WeightedMultiply';
|
|
||||||
bmInvert = 'BlendMode_InvertDest';
|
|
||||||
bmNoEffect = 'BlendMode_NoEffect';
|
|
||||||
|
|
||||||
-- Health Declarations
|
|
||||||
-- Used primarily for lifebars.
|
|
||||||
hsMax = 'HealthState_Hot';
|
|
||||||
hsAlive = 'HealthState_Alive';
|
|
||||||
hsDanger = 'HealthState_Danger';
|
|
||||||
hsDead = 'HealthState_Dead';
|
|
||||||
|
|
||||||
--[[ Actor commands ]]
|
|
||||||
function Actor:CenterX()
|
|
||||||
self:x(SCREEN_CENTER_X);
|
|
||||||
end;
|
|
||||||
|
|
||||||
function Actor:CenterY()
|
|
||||||
self:y(SCREEN_CENTER_Y);
|
|
||||||
end;
|
|
||||||
|
|
||||||
-- xy(actorX,actorY)
|
|
||||||
-- Sets the x and y of an actor in one command.
|
|
||||||
function Actor:xy(actorX,actorY)
|
|
||||||
self:x(actorX);
|
|
||||||
self:y(actorY);
|
|
||||||
end;
|
|
||||||
|
|
||||||
-- MaskSource()
|
|
||||||
-- Sets an actor up as the source for a mask.
|
|
||||||
function Actor:MaskSource()
|
|
||||||
self:clearzbuffer(true);
|
|
||||||
self:zwrite(true);
|
|
||||||
self:blend('BlendMode_NoEffect');
|
|
||||||
end;
|
|
||||||
|
|
||||||
-- MaskDest()
|
|
||||||
-- Sets an actor up to be masked by anything with MaskSource().
|
|
||||||
function Actor:MaskDest()
|
|
||||||
self:ztest(true);
|
|
||||||
end;
|
|
||||||
|
|
||||||
--[[ BitmapText commands ]]
|
|
||||||
|
|
||||||
-- PixelFont()
|
|
||||||
-- An alias that turns off texture filtering.
|
|
||||||
-- Named because it works best with pixel fonts.
|
|
||||||
function BitmapText:PixelFont()
|
|
||||||
self:SetTextureFiltering(false);
|
|
||||||
end;
|
|
||||||
|
|
||||||
-- Stroke(color)
|
|
||||||
-- Sets the text's stroke color.
|
|
||||||
function BitmapText:Stroke(c)
|
|
||||||
self:strokecolor( c );
|
|
||||||
end;
|
|
||||||
|
|
||||||
-- NoStroke()
|
|
||||||
-- Removes any stroke.
|
|
||||||
function BitmapText:NoStroke()
|
|
||||||
self:strokecolor( color("0,0,0,0") );
|
|
||||||
end;
|
|
||||||
|
|
||||||
-- DiffuseAndStroke(diffuse,stroke)
|
|
||||||
-- Set diffuse and stroke at the same time.
|
|
||||||
function BitmapText:DiffuseAndStroke(diffuseC,strokeC)
|
|
||||||
self:diffuse(diffuseC);
|
|
||||||
self:strokecolor(strokeC);
|
|
||||||
end;
|
|
||||||
--[[ end BitmapText commands ]]
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------------- ]]
|
|
||||||
|
|
||||||
--[[ helper functions ]]
|
|
||||||
function tobool(v)
|
|
||||||
if type(v) == "string" then
|
|
||||||
local cmp = string.lower(v);
|
|
||||||
if cmp == "true" or cmp == "t" then
|
|
||||||
return true;
|
|
||||||
elseif cmp == "false" or cmp == "f" then
|
|
||||||
return false;
|
|
||||||
end;
|
|
||||||
elseif type(v) == "number" then
|
|
||||||
if v == 0 then return false;
|
|
||||||
else return true;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
-- does not assume multiplayer, that would be mpname, if it existed.
|
|
||||||
function pname(pn)
|
|
||||||
return (pn == PLAYER_1) and "P1" or "P2";
|
|
||||||
end;
|
|
||||||
--[[ end helper functions ]]
|
|
||||||
-- this code is in the public domain.
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
local a = math.random(50);
|
|
||||||
local ret;
|
|
||||||
if a % 2 == 0 then
|
|
||||||
ret = "_agB";
|
|
||||||
else
|
|
||||||
ret = "_agA";
|
|
||||||
end;
|
|
||||||
return THEME:GetPathS("",ret);
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
[ThemeInfo]
|
|
||||||
DisplayName=sm-ssc test theme
|
|
||||||
Author=the spinal shark collective
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
[Global]
|
|
||||||
#FallbackTheme=default
|
|
||||||
|
|
||||||
[Common]
|
|
||||||
InitialScreen="ScreenTitleMenu"
|
|
||||||
|
|
||||||
[ScreenTitleMenu]
|
|
||||||
IdleTimeoutSeconds=-1
|
|
||||||
IdleTimeoutScreen="ScreenTitleMenu"
|
|
||||||
|
|
||||||
ScrollerY=SCREEN_CENTER_Y*1.5
|
|
||||||
ScrollerTransform=function(self,offset,itemIndex,numItems) self:y(28*(itemIndex-(numItems-1)/2)); end
|
|
||||||
|
|
||||||
ChoiceNames="1,2,3,T1,4,Bl,5"
|
|
||||||
ChoiceT1="screen,ScreenLuaMenu;text,CustomMenu"
|
|
||||||
Choice1="applydefaultoptions;screen,ScreenProfileLoad;text,Game Start"
|
|
||||||
Choice2="screen,ScreenOptionsService;text,Options"
|
|
||||||
Choice3="screen,ScreenOptionsEdit;text,Edit/Share"
|
|
||||||
Choice4="screen,ScreenPackages;text,Packages"
|
|
||||||
Choice5="screen,ScreenExit;text,Exit"
|
|
||||||
ChoiceBl="screen,ScreenBlendMode2;text,Test Blend Modes"
|
|
||||||
|
|
||||||
[ScreenPackages]
|
|
||||||
DefaultUrl="http://ssc.ajworld.net/sm-ssc/drop/"
|
|
||||||
|
|
||||||
DownloadY=22
|
|
||||||
DownloadX=SCREEN_WIDTH*4.0/7.0
|
|
||||||
DownloadProgressCommand=diffuse,0.1,0.1,0.9,0.8
|
|
||||||
DownloadOnCommand=diffusealpha,0.0;linear,1.0;diffusealpha,1.0
|
|
||||||
DownloadOffCommand=diffusealpha,1.0;linear,0.6;diffusealpha,0.0
|
|
||||||
DownloadStatusY=22
|
|
||||||
DownloadStatusX=SCREEN_WIDTH*4.0/7.0
|
|
||||||
DownloadStatusOnCommand=diffusealpha,0.0;linear,1.0;diffusealpha,1.0
|
|
||||||
DownloadStatusOffCommand=diffusealpha,1.0;linear,0.6;diffusealpha,0.0
|
|
||||||
|
|
||||||
[ScreenLuaMenu]
|
|
||||||
Fallback="ScreenAttract"
|
|
||||||
Class="ScreenWithMenuElements"
|
|
||||||
|
|
||||||
PrevScreen="ScreenTitleMenu"
|
|
||||||
NextScreen="ScreenTitleMenu"
|
|
||||||
|
|
||||||
CodeNames="Up,Down,Left,Right,Start,Select"
|
|
||||||
CodeUp="Up"
|
|
||||||
CodeDown="Down"
|
|
||||||
CodeRight="Right"
|
|
||||||
CodeLeft="Left"
|
|
||||||
CodeStart="Start"
|
|
||||||
CodeSelect="Select"
|
|
||||||
|
|
||||||
[ScreenSelectPlayMode]
|
|
||||||
ShowCursor=false
|
|
||||||
SharedSelection=true
|
|
||||||
|
|
||||||
[ScreenBlendMode]
|
|
||||||
Class="ScreenAttract"
|
|
||||||
Fallback="ScreenAttract"
|
|
||||||
NextScreen="ScreenTitleMenu"
|
|
||||||
PrevScreen="ScreenTitleMenu"
|
|
||||||
TimerSeconds=60
|
|
||||||
|
|
||||||
[ScreenBlendMode2]
|
|
||||||
Class="ScreenSplash"
|
|
||||||
Fallback="ScreenSplash"
|
|
||||||
NextScreen="ScreenTitleMenu"
|
|
||||||
PrevScreen="ScreenTitleMenu"
|
|
||||||
TimerSeconds=-1
|
|
||||||