diff --git a/Themes/_fallback/BGAnimations/ScreenCredits overlay.lua b/Themes/_fallback/BGAnimations/ScreenCredits overlay.lua new file mode 100644 index 0000000000..94591c70b1 --- /dev/null +++ b/Themes/_fallback/BGAnimations/ScreenCredits overlay.lua @@ -0,0 +1,141 @@ +local function Fooled() + local phrases = { + "hornswaggled", + "bamboozled", + "hoodwinked", + "swindled", + "duped", + "hoaxed", + "fleeced", + "shafted", + "caboodled", + "beguiled", + "finagled", + "two-timed", + "suckered", + "flimflammed" + } + return phrases[math.random(#phrases)] +end + +local ssc = { + "AJ Kelly as freem", + "Jonathan Payne (Midiman)", + "Colby Klein (shakesoda)", +} + +local sm_ssc = { + "Jason Felds (wolfman2000)", + "Alberto Ramos (Daisuke Master)", + "Jack Walstrom (FSX)", +} + +local stepmania = { + "Chris Danford", + "Glenn Maynard", + "Steve Checkoway", + -- and various other contributors +} + +local contrib = { + "Aldo Fregoso (Aldo_MX)", -- delays + "Chris Eldridge (kurisu)", -- dance-threepanel + "cerbo", + "cesarmades", -- pump/cmd* noteskins + "corec", -- various fixes + "galopin", -- piu PlayStation2 usb mat support + "gholms", -- automake 1.11 support + "juanelote", -- SongManager:GetSongGroupByIndex, JumpToNext/PrevGroup logic mods + "Kaox", -- pump/default noteskin + "NitroX72", -- pump/frame noteskin + "sy567", -- beginner helper fix + "Thai Pangsakulyanont (theDtTvB)", + "v1toko", -- x-mode from StepNXA +} + +local thanks = { + "A Pseudonymous Coder", -- support + "Bill Shillito (DM Ashura)", -- Music (not yet though) + "cpubasic13", -- testing (a lot) + "Dreamwoods", + "Infamouspat", -- oitg bro + "Jason Bolt (LightningXCE)", + "Jousway", -- Noteskins + "Matt1360", -- Automake magic + oitg bro + "Mark Cannon (vyhd)", -- oitg bro + twirl/roll + "Petriform", -- Music + "Renard", + "Ryan McKanna (Plaguefox)", +} + +local shoutout = { + "The Lua team", -- lua project lead or some shit. super nerdy but oh hell. + "Mojang", -- minecraft forever -freem + "NAKET Coder", + "Ciera Boyd", -- you bet your ass I'm putting my girlfriend in the credits + --Image(), -- we should have some logos probably to look super pro + "You showed us... your ultimate dance", + -- "Can't stop crying... buckets of tears!" +} + +local copyright = { + "StepMania is released under the terms of the MIT license.", + "If you paid for the program you've been " .. Fooled() .. ".", + "All content is the sole property of their respectful owners." +} + +local sections = { + { "the spinal shark collective (project lead)", ssc }, + { "sm-ssc Team", sm_ssc }, + { "StepMania Team", stepmania }, + { "Other Contributors", contrib }, + { "Special Thanks", thanks }, + { "Shoutouts", shoutout }, + { "Copyright", copyright }, +} + +-- To add people or sections modify the above. + +local lineOn = cmd(zoom,0.875;strokecolor,color("#444444");shadowcolor,color("#444444");shadowlength,3) +local sectionOn = cmd(diffuse,color("#88DDFF");strokecolor,color("#446688");shadowcolor,color("#446688");shadowlength,3) +local item_padding_start = 4; + +local creditScroller = Def.ActorScroller { + SecondsPerItem = 0.5; + NumItemsToDraw = 40; + TransformFunction = function( self, offset, itemIndex, numItems) + self:y(30*offset) + end; + OnCommand = cmd(scrollwithpadding,item_padding_start,15); +} + +local function AddLine( text, command ) + local text = Def.ActorFrame{ + LoadFont("Common normal")..{ + Text = text or ""; + OnCommand = command or lineOn; + } + } + table.insert( creditScroller, 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() +end + +creditScroller.BeginCommand=function(self) + SCREENMAN:GetTopScreen():PostScreenMessage( "SM_BeginFadingOut", (t.SecondsPerItem * (#t + item_padding_start) + 5) ); +end; + + +return Def.ActorFrame{ + creditScroller..{ + InitCommand=cmd(CenterX;y,SCREEN_BOTTOM-64), + } +}; \ No newline at end of file diff --git a/Themes/_fallback/Languages/en.ini b/Themes/_fallback/Languages/en.ini index ff7db0434f..75617dacb0 100644 --- a/Themes/_fallback/Languages/en.ini +++ b/Themes/_fallback/Languages/en.ini @@ -435,7 +435,7 @@ SoundResampleQuality=Advanced: Select the resampling quality to use. SoundVolume=Adjust the volume level during gameplay. SoundVolumeAttract=Adjust the volume level during attract mode. Speed=Speed -Stepmania Credits=The Stepmania Development Team +StepMania Credits=The StepMania Development Team. Steps=Steps Style= Test Input=Test the responsiveness of connected joysticks. @@ -991,7 +991,7 @@ ShowSongOptions=Show Song Options ShowStats=Show Stats SmoothLines=SmoothLines SoundEffect=Sound Effect -Stepmania Credits=Stepmania Credits +StepMania Credits=StepMania Credits Center1Player=Center 1 Player Song=Song Song Group=Song Group diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 524bda0550..d88ba5c72c 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -2479,7 +2479,7 @@ Fallback="ScreenOptionsSimpleService" NextScreen=Branch.Init() PrevScreen=Branch.Init() -LineNames="SystemDirection,KeyConfig,GameType,6,8,Reload,MoreOptions" +LineNames="SystemDirection,KeyConfig,GameType,6,8,Reload,Credits,MoreOptions" # LineNames="SystemDirection,1,2,Sync,13,3,10,11,4,12,6,5,Theme,8,9" Line1="gamecommand;screen,ScreenMapControllers;name,Key Joy Mappings" Line2="gamecommand;screen,ScreenTestInput;name,Test Input" @@ -2500,6 +2500,7 @@ LineKeyConfig="gamecommand;screen,ScreenMapControllers;name,Key Joy Mappings" LineGameType="gamecommand;screen,ScreenSelectGame;name,Select Game" LineSync="gamecommand;screen,ScreenGameplaySyncMachine;name,Calibrate Machine Sync" LineReload="gamecommand;screen,ScreenReloadSongs;name,Reload Songs" +LineCredits="gamecommand;screen,ScreenCredits;name,StepMania Credits" LineMoreOptions="gamecommand;screen,ScreenOptionsExtended;name,More Options" [ScreenOptionsExtended] @@ -4190,3 +4191,15 @@ StartScreen="ScreenTitleMenu" LightsMode="LightsMode_Demonstration" ShowCourseModifiersProbability=0 AllowAdvancedModifiers=true + +[ScreenCredits] +Class="ScreenSplash" +Fallback="ScreenSplash" +AllowStartToSkip=true +NextScreen=Branch.TitleMenu() +PrevScreen=Branch.TitleMenu() +TimerSeconds=40 +TimerStealth=true +ForceTimer=true +TimerMetricsGroup="MenuTimerNoSound" +TimerOnCommand=visible,false \ No newline at end of file diff --git a/Themes/default/BGAnimations/ScreenCredits background/_grid.png b/Themes/default/BGAnimations/ScreenCredits background/_grid.png new file mode 100644 index 0000000000..c2e0a20e6d Binary files /dev/null and b/Themes/default/BGAnimations/ScreenCredits background/_grid.png differ diff --git a/Themes/default/BGAnimations/ScreenCredits background/_space.png b/Themes/default/BGAnimations/ScreenCredits background/_space.png new file mode 100644 index 0000000000..c95cb4c478 Binary files /dev/null and b/Themes/default/BGAnimations/ScreenCredits background/_space.png differ diff --git a/Themes/default/BGAnimations/ScreenCredits background/default.lua b/Themes/default/BGAnimations/ScreenCredits background/default.lua new file mode 100644 index 0000000000..47e9237339 --- /dev/null +++ b/Themes/default/BGAnimations/ScreenCredits background/default.lua @@ -0,0 +1,20 @@ +local scrolltime = 95; + +local t = Def.ActorFrame { + InitCommand=cmd(Center); + LoadActor("_space")..{ + InitCommand=cmd(y,-SCREEN_HEIGHT*1.5;fadebottom,0.125;fadetop,0.25); + OnCommand=cmd(linear,scrolltime;addy,SCREEN_HEIGHT*1.5825); + }; + Def.Quad { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH+1,SCREEN_HEIGHT); + OnCommand=cmd(diffusecolor,color("#FFCB05");diffusebottomedge,color("#F0BA00");diffusealpha,0.45); + }; + LoadActor("_grid")..{ + InitCommand=cmd(customtexturerect,0,0,(SCREEN_WIDTH+1)/4,SCREEN_HEIGHT/4;SetTextureFiltering,true); + OnCommand=cmd(zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT;diffuse,Color("Black");diffuseshift;effecttiming,(1/8)*4,0,(7/8)*4,0;effectclock,'beatnooffset'; + effectcolor2,Color("Black");effectcolor1,Colors.Alpha(Color("Black"),0.45);fadebottom,0.25;fadetop,0.25;croptop,48/480;cropbottom,48/480;diffusealpha,0.345); + }; +}; + +return t \ No newline at end of file diff --git a/Themes/default/BGAnimations/ScreenCredits overlay.lua b/Themes/default/BGAnimations/ScreenCredits overlay.lua new file mode 100644 index 0000000000..49bef89970 --- /dev/null +++ b/Themes/default/BGAnimations/ScreenCredits overlay.lua @@ -0,0 +1,144 @@ +local function Fooled() + local phrases = { + "hornswaggled", + "bamboozled", + "hoodwinked", + "swindled", + "duped", + "hoaxed", + "fleeced", + "shafted", + "caboodled", + "beguiled", + "finagled", + "two-timed", + "suckered", + "flimflammed" + } + return phrases[math.random(#phrases)] +end + +local ssc = { + "AJ Kelly as freem", + "Jonathan Payne (Midiman)", + "Colby Klein (shakesoda)", +} + +local sm_ssc = { + "Jason Felds (wolfman2000)", + "Alberto Ramos (Daisuke Master)", + "Jack Walstrom (FSX)", +} + +local stepmania = { + "Chris Danford", + "Glenn Maynard", + "Steve Checkoway", + -- and various other contributors +} + +local contrib = { + "Aldo Fregoso (Aldo_MX)", -- delays + "Chris Eldridge (kurisu)", -- dance-threepanel + "cerbo", + "cesarmades", -- pump/cmd* noteskins + "corec", -- various fixes + "galopin", -- piu PlayStation2 usb mat support + "gholms", -- automake 1.11 support + "juanelote", -- SongManager:GetSongGroupByIndex, JumpToNext/PrevGroup logic mods + "Kaox", -- pump/default noteskin + "NitroX72", -- pump/frame noteskin + "sy567", -- beginner helper fix + "Thai Pangsakulyanont (theDtTvB)", + "v1toko", -- x-mode from StepNXA +} + +local thanks = { + "A Pseudonymous Coder", -- support + "Bill Shillito (DM Ashura)", -- Music (not yet though) + "cpubasic13", -- testing (a lot) + "Dreamwoods", + "Infamouspat", -- oitg bro + "Jason Bolt (LightningXCE)", + "Jousway", -- Noteskins + "Matt1360", -- Automake magic + oitg bro + "Mark Cannon (vyhd)", -- oitg bro + twirl/roll + "Petriform", -- Music + "Renard", + "Ryan McKanna (Plaguefox)", +} + +local shoutout = { + "The Lua team", -- lua project lead or some shit. super nerdy but oh hell. + "Mojang", -- minecraft forever -freem + "NAKET Coder", + "Ciera Boyd", -- you bet your ass I'm putting my girlfriend in the credits + --Image(), -- we should have some logos probably to look super pro + "You showed us... your ultimate dance", + -- "Can't stop crying... buckets of tears!" +} + +local copyright = { + "StepMania is released under the terms of the MIT license.", + "If you paid for the program you've been " .. Fooled() .. ".", + "All content is the sole property of their respectful owners." +} + +local sections = { + { "the spinal shark collective (project lead)", ssc }, + { "sm-ssc Team", sm_ssc }, + { "StepMania Team", stepmania }, + { "Other Contributors", contrib }, + { "Special Thanks", thanks }, + { "Shoutouts", shoutout }, + { "Copyright", copyright }, +} + +-- To add people or sections modify the above. + +local lineOn = cmd(zoom,0.875;strokecolor,color("#444444");shadowcolor,color("#444444");shadowlength,3) +local sectionOn = cmd(diffuse,color("#88DDFF");strokecolor,color("#446688");shadowcolor,color("#446688");shadowlength,3) +local item_padding_start = 4; + +local creditScroller = Def.ActorScroller { + SecondsPerItem = 1.25; + NumItemsToDraw = 40; + TransformFunction = function( self, offset, itemIndex, numItems) + self:y(30*offset) + end; + OnCommand = cmd(scrollwithpadding,item_padding_start,15); +} + +local function AddLine( text, command ) + local text = Def.ActorFrame{ + LoadFont("Common normal")..{ + Text = text or ""; + OnCommand = command or lineOn; + } + } + table.insert( creditScroller, 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() +end + +creditScroller.BeginCommand=function(self) + SCREENMAN:GetTopScreen():PostScreenMessage( "SM_BeginFadingOut", (t.SecondsPerItem * (#t + item_padding_start) + 5) ); +end; + + +return Def.ActorFrame{ + creditScroller..{ + InitCommand=cmd(CenterX;y,SCREEN_BOTTOM-64), + }, + LoadActor(THEME:GetPathB("ScreenWithMenuElements","background/_bg top"))..{ + InitCommand=cmd(Center), + }, +}; \ No newline at end of file diff --git a/Themes/default/metrics.ini b/Themes/default/metrics.ini index ddba187e95..a9931ae5f6 100644 --- a/Themes/default/metrics.ini +++ b/Themes/default/metrics.ini @@ -2132,3 +2132,6 @@ ShowBPMDisplay=false [ScreenJukeboxMenu] [ScreenJukebox] + +[ScreenCredits] +TimerSeconds=96 \ No newline at end of file