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
|
||||