new ending screens

This commit is contained in:
Chris Danford
2009-04-15 19:11:59 +00:00
parent c3b5eee788
commit fb1165e6be
47 changed files with 314 additions and 263 deletions
@@ -1 +0,0 @@
_blank
@@ -1,168 +0,0 @@
-- I'm not comfortable including assets or code from people who want to keep their
-- name a secret. If they believe their contribution places them at any kind of
-- risk, then we should be just as wary. Also, it often makes it hard to track
-- people down a year or more later if necessary.
local graphics = {
"Lucas “v1ral” Tang",
"SPiGuMuS",
"Visage",
"Ryan “Plaguefox” McKanna",
"Lamden “Cloud34” Travis",
"Michael “Redcrusher” Curry",
"Steve “healing_vision” Klise",
"Mauro Panichella",
"Popnko",
"Griever (Julian)",
"Miguel Moore",
"Dj “AeON ExOdus” Washington",
"Xelf",
"James “SPDS” Sanders",
"k0ldx",
"Daisuke Master",
}
local theme = {
"AJ Kelly",
"Dan “dieKatze88” Colardeau",
"Mike “mDaWg” Calfin",
}
local web = {
"Brian “Bork” Bugh",
}
local sound = {
"Kyle “KeeL” Ward",
"Jim “Izlude” Cabeen",
"Sanxion7",
}
local programming = {
"Chris Danford",
"Frieza",
"Glenn Maynard",
"Bruno Figueiredo",
"Peter “Dro Kulix” May",
"Jared “nmspaz” Roberts",
"Brendan “binarys” Walker",
"Lance “Neovanglist” Gilbert",
"Michel Donais",
"Ben “Mantis” Nordstrom",
"Chris “Parasyte” Gomez",
"Michael “dirkthedaring” Patterson",
"Sauleil “angedelamort” Lamarre",
"Edwin Evans",
"Brian “Bork” Bugh",
"Joel “Elvis314” Maher",
"Garth “Kefabi” Smith",
"Pkillah",
"Robert Kemmetmueller",
"Ben “Shabach” Andersen",
"Will “SlinkyWizard” Valladao",
"TheChip",
"David “WarriorBob” H",
"Mike Waltson",
"Kevin “Miryokuteki” Slaughter",
"Thad “Coderjoe” Ward",
"Steve Checkoway",
"Sean Burke",
"XPort",
"Charles Lohr",
"Josh “Axlecrusher” Allen",
"Jason “Wolfman2000” Felds",
"Eric “Subwire” Gustafson",
"Mike “Archer” Hawkins",
"Colby “shakesoda“ Klein",
}
local thanks = {
"SimWolf",
"DJ DraftHorse",
"Dance With Intensity",
"BeMaNiRuler",
"DDRLlama",
"DDRManiaX",
"NMR",
"DJ Paranoia",
"DJ Yuz",
"Reo",
"Random Hajile",
"Chocobo Ghost",
"Tyma",
"Deluxe",
"Lagged",
"The Melting Pot",
"DDRJamz Global BBS",
"Eric “WaffleKing” Webster",
"Gotetsu",
"Mark “Foobly” Verrey",
"Mandarin Blue",
"Kenny “AngelTK” Lai",
"curewater",
"Bill “DMAshura” Shillito",
"Illusionz - Issaquah, WA",
"Quarters - Kirkland, WA",
"Pier Amusements - Bournemouth, UK",
"Westcliff Amusements - Bournemouth, UK",
}
local sections = {
{ "☆☆GRAPHICS☆☆", graphics },
{ "☆☆THEME CODE☆☆", theme },
{ "☆☆WEB DESIGN☆☆", web },
{ "☆☆SOUND☆☆", sound },
{ "☆☆PROGRAMMING☆☆", programming },
{ "☆☆SPECIAL THANKS TO☆☆", thanks },
}
-- To add people or sections modify the above.
local fontPath = THEME:GetPathF( "ScreenCredits", "titles" )
local lineOn = cmd()
local sectionOn = cmd(diffuse,1,.5,.5,1)
local otherOn = cmd(diffuse,.5,.5,1,1)
local t = Def.ActorScroller {
SecondsPerItem = 0.40;
NumItemsToDraw = 40;
TransformFunction = function( self, offset, itemIndex, numItems)
self:y(30*offset)
end;
OnCommand = cmd(scrollwithpadding,12,0);
}
local function AddLine( text, command )
local text = Def.BitmapText {
_Level = 2;
File = fontPath;
Text = text or "";
OnCommand = command or lineOn;
}
-- XXX: Hack. Wrap in an ActorFrame so OnCommand works
table.insert( t, Def.ActorFrame { text } )
end
-- Add header and padding
AddLine( "STEPMANIA TEAM", otherOn )
AddLine()
AddLine()
AddLine()
-- Add sections with padding.
for section in ivalues(sections) do
AddLine( section[1], sectionOn )
for name in ivalues(section[2]) do
AddLine( name )
end
AddLine()
AddLine()
AddLine()
end
-- Add more padding and then the join the team.
for i=1,13 do AddLine() end
AddLine( "Join the StepMania team", otherOn )
AddLine( "and help us out!" )
return t;
@@ -1,10 +0,0 @@
local t = Def.ActorFrame {
LoadActor( "song background scroller" ) .. {
InitCommand = cmd(x,SCREEN_CENTER_X-160;y,SCREEN_CENTER_Y);
};
LoadActor( "credits" ) .. {
InitCommand = cmd(x,SCREEN_CENTER_X+160;y,SCREEN_CENTER_Y);
};
}
return t;
@@ -0,0 +1 @@
_blank
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,10 @@
return Def.ActorFrame {
Def.ActorFrame {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+200;draworder,1;);
LoadActor("bar") .. {
};
LoadFont("_venacti Bold 15px") .. {
InitCommand=cmd(settext,"Thank you for playing!";horizalign,left;x,-280;shadowlength,0;strokecolor,color("#000000"););
};
};
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 KiB

@@ -0,0 +1,50 @@
local fontPath = THEME:GetPathF( "Common", "normal" )
local songs = tableslice( tableshuffle( SONGMAN:GetAllSongs() ), 100 );
local spacing_y = 24;
local num_items_to_draw = math.ceil( 480 / spacing_y );
local num_padding_items = (num_items_to_draw/2)+2;
local seconds_per_item = 0.1
local begin_fading_out_seconds = (#songs + num_padding_items * 2) * seconds_per_item;
local t = LoadFallbackB();
t[#t+1] = Def.ActorFrame {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;);
BeginCommand=function(self)
SCREENMAN:GetTopScreen():PostScreenMessage( "SM_BeginFadingOut", begin_fading_out_seconds );
end;
LoadActor("bg") .. {
InitCommand=cmd();
};
LoadActor("char left") .. {
InitCommand=cmd(x,-250+4;y,50+4;);
};
LoadActor("char right") .. {
InitCommand=cmd(x,250+10;y,50+7;);
};
};
local t2 = Def.ActorScroller {
NumItemsToDraw = num_items_to_draw;
SecondsPerItem = seconds_per_item;
TransformFunction = function( self, offset, itemIndex, numItems )
self:y( offset*spacing_y )
end;
BeginCommand = cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scrollwithpadding,num_padding_items,num_padding_items);
}
for i=1,#songs do
local song = songs[i];
local c = SONGMAN:GetSongColor( song )
local text = Def.BitmapText {
_Level = 1;
File = fontPath;
InitCommand = cmd(settext,song:GetDisplayFullTitle();diffuse,c;strokecolor,color("#575100");shadowlength,0;);
}
table.insert( t2, Def.ActorFrame { text } )
end
t[#t+1] = t2;
return t;
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 487 KiB

@@ -0,0 +1,102 @@
-- I'm not comfortable including assets or code from people who want to keep their
-- name a secret. If they believe their contribution places them at any kind of
-- risk, then we should be just as wary. Also, it often makes it hard to track
-- people down a year or more later if necessary.
local graphics = {
"Chris Danford",
"Ryan “Plaguefox” McKanna",
}
local theme = {
"Chris Danford",
}
local web = {
"Chris Danford",
}
local sound = {
"Sanxion7",
"Kyle “KaW” Ward",
}
local programming = {
"Glenn Maynard",
"Chris Danford",
"Steve Checkoway",
"(remake this list)",
}
local smo = {
"Charles Lohr",
"Josh Allen",
}
local thanks = {
"The players and fans!",
}
local sections = {
{ "☆☆GRAPHICS☆☆", graphics },
{ "☆☆THEME CODE☆☆", theme },
{ "☆☆WEB DESIGN☆☆", web },
{ "☆☆SOUND☆☆", sound },
{ "☆☆PROGRAMMING☆☆", programming },
{ "☆☆STEPMANIA ONLINE☆☆", smo },
{ "☆☆SPECIAL THANKS TO☆☆", thanks },
}
-- To add people or sections modify the above.
local fontPath = THEME:GetPathF( "", "_venacti Bold 15px" )
local lineOn = cmd(strokecolor,color("#624e73BB");shadowcolor,color("#000000FF");shadowlengthx,0;shadowlengthy,3;)
local sectionOn = cmd(diffuse,1,.5,.5,1;strokecolor,color("#624e73BB");shadowcolor,color("#000000FF");shadowlengthx,0;shadowlengthy,3;)
local otherOn = cmd(diffuse,.5,.5,1,1;strokecolor,color("#624e73BB");shadowcolor,color("#000000FF");shadowlengthx,0;shadowlengthy,3;)
local item_padding_start = 12;
local t = Def.ActorScroller {
SecondsPerItem = 0.4;
NumItemsToDraw = 40;
TransformFunction = function( self, offset, itemIndex, numItems)
self:y(30*offset)
end;
OnCommand = cmd(scrollwithpadding,item_padding_start,-0.5);
}
local function AddLine( text, command )
if text then text=string.upper(text) end
local text = Def.BitmapText {
_Level = 2;
File = fontPath;
Text = text or "";
OnCommand = command or lineOn;
}
-- XXX: Hack. Wrap in an ActorFrame so OnCommand works
table.insert( t, Def.ActorFrame { text } )
end
-- Add sections with padding.
for section in ivalues(sections) do
AddLine( section[1], sectionOn )
for name in ivalues(section[2]) do
AddLine( name )
end
AddLine()
AddLine()
AddLine()
end
-- Add more padding and then the join the team.
for i=1,13 do AddLine() end
AddLine( "Join the StepMania team")
AddLine( "and help us out!" )
AddLine( "www.stepmania.com", otherOn )
t.BeginCommand=function(self)
SCREENMAN:GetTopScreen():PostScreenMessage( "SM_BeginFadingOut", (t.SecondsPerItem * (#t + item_padding_start) + 5) );
end;
return t;
@@ -0,0 +1,17 @@
local t = LoadFallbackB();
t[#t+1] = LoadActor("bg") .. {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;);
};
t[#t+1] = LoadActor( "song background scroller" ) .. {
InitCommand=cmd(x,SCREEN_CENTER_X-174;y,SCREEN_CENTER_Y;);
};
t[#t+1] = LoadActor( "credits" ) .. {
InitCommand=cmd(x,SCREEN_CENTER_X+114;y,SCREEN_CENTER_Y;);
};
t[#t+1] = LoadActor("team") .. {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-30;);
OnCommand=cmd(sleep,1;decelerate,0.7;addx,274;rotationz,90;);
};
return t;
@@ -1,20 +1,20 @@
local template = Def.ActorFrame {
Def.Sprite {
OnCommand = cmd(LoadBackground,GetRandomSongBackground();scaletoclipped,312,232);
};
LoadActor( THEME:GetPathG("ScreenCredits", "background frame") );
}
local t = Def.ActorScroller {
SecondsPerItem = 4.25;
NumItemsToDraw = 4;
TransformFunction = function( self, offset, itemIndex, numItems )
self:y(-240*offset)
end;
OnCommand = cmd(scrollwithpadding,2,3);
}
for i=1,10 do
table.insert( t, template );
end
return t;
local template = Def.ActorFrame {
Def.Sprite {
OnCommand = cmd(LoadBackground,GetRandomSongBackground();scaletoclipped,226,165;y,0;);
};
LoadActor( "background frame" );
}
local t = Def.ActorScroller {
SecondsPerItem = 4.25;
NumItemsToDraw = 4;
TransformFunction = function( self, offset, itemIndex, numItems )
self:y(-188*offset)
end;
OnCommand = cmd(scrollwithpadding,2,3);
}
for i=1,10 do
table.insert( t, template );
end
return t;
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 439 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

@@ -0,0 +1,10 @@
local t = LoadFallbackB();
t[#t+1] = LoadActor("bg") .. {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;);
};
t[#t+1] = LoadActor( "picture scroller" ) .. {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-20;);
};
return t;
Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

@@ -0,0 +1,26 @@
local names = {
{ "chris", "Chris Danford", "Seattle, WA, USA" },
{ "glenn", "Glenn Maynard", "Boston, MA, USA" },
{ "steve", "Steve Checkoway", "San Diego, CA, USA" },
};
local t = Def.ActorFrame {};
for i=1,#names do
local name = names[i];
t[#t+1] = Def.ActorFrame {
OnCommand=cmd(addx,SCREEN_WIDTH;sleep,(i-1)*3;decelerate,0.5;addx,-SCREEN_WIDTH;sleep,2;accelerate,0.5;addx,-SCREEN_WIDTH;);
LoadActor( name[1] ) .. {
InitCommand = cmd(scaletoclipped,520,342;y,0;);
};
LoadActor( "picture frame" );
LoadFont( "_venacti bold 15px" ) .. {
InitCommand=cmd(horizalign,left;x,100;y,138;settext,string.upper(name[2] .. "\n" .. name[3]);strokecolor,color("#00000077"););
};
};
end
t.BeginCommand=function(self)
SCREENMAN:GetTopScreen():PostScreenMessage( "SM_BeginFadingOut", (3 * #names) );
end;
return t;
Binary file not shown.

After

Width:  |  Height:  |  Size: 451 KiB

@@ -1,8 +0,0 @@
local t = Def.ActorFrame {
LoadActor("gameover.png") .. {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;diffusealpha,0);
OnCommand=cmd(linear,0.3;diffusealpha,0.9;sleep,5);
};
};
return t;
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 KiB

@@ -0,0 +1,47 @@
local t = Def.ActorFrame {
Def.ActorFrame {
LoadActor("star field") .. {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;zoom,16;customtexturerect,0,0,16,16;texcoordvelocity,1,0;);
};
LoadActor("black circle") .. {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y);
};
LoadActor("game star") .. {
InitCommand=cmd(x,SCREEN_CENTER_X-130;y,SCREEN_CENTER_Y-50;);
OnCommand=cmd(addx,SCREEN_WIDTH;sleep,0.0;decelerate,0.5;addx,-SCREEN_WIDTH;);
};
LoadActor("over star") .. {
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+20;);
OnCommand=cmd(addx,SCREEN_WIDTH;sleep,0.2;decelerate,0.5;addx,-SCREEN_WIDTH;);
};
LoadActor("game text") .. {
InitCommand=cmd(x,SCREEN_CENTER_X-60;y,SCREEN_CENTER_Y-50+4;);
OnCommand=cmd(addx,SCREEN_WIDTH;sleep,0.5;decelerate,0.5;addx,-SCREEN_WIDTH;);
};
LoadActor("over text") .. {
InitCommand=cmd(x,SCREEN_CENTER_X+66;y,SCREEN_CENTER_Y+20+4;);
OnCommand=cmd(addx,SCREEN_WIDTH;sleep,0.7;decelerate,0.5;addx,-SCREEN_WIDTH;);
};
Def.ActorFrame {
InitCommand=cmd(x,SCREEN_CENTER_X+114;y,SCREEN_CENTER_Y-50;);
OnCommand=cmd(addx,SCREEN_WIDTH;sleep,1;rotationz,360*2;decelerate,1;addx,-SCREEN_WIDTH;rotationz,0;);
LoadActor("face open") .. {
};
LoadActor("face closed") .. {
OnCommand=cmd(diffusealpha,0;sleep,3;diffusealpha,1;sleep,0.5;diffusealpha,0;);
};
Def.ActorFrame {
InitCommand=cmd(x,-54;y,-60;zoom,0;sleep,2;bounceend,0.3;zoom,1;);
LoadActor("balloon") .. {
};
LoadFont("_venacti Bold 15px") .. {
InitCommand=cmd(y,-5;settext,"See you next time!";diffuse,color("#3f4c72");shadowcolor,color("#dcb2f2aa");wrapwidthpixels,100;skewx,-0.1;shadowlength,2;);
};
};
};
};
};
return t;
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 KiB

@@ -1,10 +0,0 @@
local t = Def.ActorFrame {
LoadActor( "_music scroll background" ) .. {
InitCommand = cmd(scale_or_crop_background);
};
LoadFont( "ScreenMusicScroll", "thanks" ) .. {
Text = "Thank you for playing!";
InitCommand = cmd(align,0,1;x,SCREEN_LEFT+20;y,SCREEN_BOTTOM-40;zoom,.8)
};
}
return t;
@@ -1,27 +0,0 @@
local time = THEME:GetMetric( "ScreenMusicScroll", "TimerSeconds" )
local num = time * 2
local fontPath = THEME:GetPathF( "ScreenMusicScroll", "titles" )
local t = Def.ActorScroller {
NumItemsToDraw = 6;
SecondsPerItem = time / num;
TransformFunction = function( self, offset, itemIndex, numItems )
self:y( offset*80 )
end;
BeginCommand = cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;scrollwithpadding,3,3);
}
for i=1,num do
local song = SONGMAN:GetRandomSong()
local color = SONGMAN:GetSongColor( song )
local text = Def.BitmapText {
_Level = 1;
File = fontPath;
Text = song:GetDisplayFullTitle();
OnCommand = cmd(zoom,0.7;diffuse,color);
}
table.insert( t, Def.ActorFrame { text } )
end
return t;
@@ -1 +0,0 @@
Common normal
@@ -1 +0,0 @@
common normal
@@ -1 +0,0 @@
_venacti Bold 24px
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

@@ -171,8 +171,9 @@ function SelectEndingScreen()
end
local grade = STATSMAN:GetBestFinalGrade()
if Grade:Compare( grade, "Grade_Tier03" ) >= 0 then return "ScreenMusicScroll" end
return "ScreenCredits"
if Grade:Compare( grade, "Grade_Tier03" ) >= 0 then return "ScreenEnding3" end
if Grade:Compare( grade, "Grade_Tier05" ) >= 0 then return "ScreenEnding2" end
return "ScreenEnding1"
end
function ScreenProfileSaveNextScreen()
@@ -86,6 +86,15 @@ function tableshuffle( t )
return ret
end
function tableslice( t, num )
local ret = { }
for i=1,table.getn(t) do
table.insert( ret, i, t[i] );
end
return ret
end
function GetRandomSongBackground()
for i=0,50 do
local song = SONGMAN:GetRandomSong()
+19 -14
View File
@@ -1514,13 +1514,6 @@ WinP2OffCommand=linear,0.7;diffusealpha,0
[MultiplayerEvalScoreRow]
NumberOnCommandFunction=
[ScreenMusicScroll]
Class="ScreenCredits"
Fallback="ScreenCredits"
Announce="music scroll"
NextScreen="ScreenHighScores"
StartScreen=ScreenTitleBranch()
[EditMenu]
EditMode="EditMode_Full"
ShowGroups=true
@@ -3379,17 +3372,29 @@ Line9="list,Background"
Line10="list,SaveScores"
StopMusicOnBack=false
[ScreenCredits]
Class="ScreenCredits"
[ScreenEnding]
Fallback="ScreenAttract"
Announce="credits"
TimerSeconds=58
Class="ScreenEnding"
NextScreen="ScreenHighScores"
[ScreenGameOver]
Class="ScreenAttract"
Fallback="ScreenAttract"
NextScreen="ScreenCompany"
Fallback="ScreenEnding"
TimerSeconds=10
[ScreenEnding1]
Fallback="ScreenEnding"
; decorations send "SM_BeginFadingOut", so timer is disabled
TimerSeconds=0
[ScreenEnding2]
Fallback="ScreenEnding"
; decorations send "SM_BeginFadingOut", so timer is disabled
TimerSeconds=0
[ScreenEnding3]
Fallback="ScreenEnding"
; decorations send "SM_BeginFadingOut", so timer is disabled
TimerSeconds=0
[ScreenSelectCharacter]
Class="ScreenSelectCharacter"