From 81e1efbe8e87fb4fc9f5a4b6c7b730cb13fef6d6 Mon Sep 17 00:00:00 2001 From: FMS-Cat Date: Sat, 14 Mar 2020 10:40:37 +0900 Subject: [PATCH 1/6] wip metamods --- BGAnimations/ScreenEvaluation overlay.xml | 4 +- Languages/english.ini | 7 +++ Scripts/Mods.lua | 71 ++++++++++++++++++++++- Scripts/Theme.lua | 2 +- 4 files changed, 80 insertions(+), 4 deletions(-) diff --git a/BGAnimations/ScreenEvaluation overlay.xml b/BGAnimations/ScreenEvaluation overlay.xml index e4d4151d..3a5f3af3 100644 --- a/BGAnimations/ScreenEvaluation overlay.xml +++ b/BGAnimations/ScreenEvaluation overlay.xml @@ -20,7 +20,7 @@ /> @@ -42,7 +42,7 @@ Font="_misobold small" OnCommand="y,87;zoom,.5;shadowlength,1;diffuse,#FFFFFF" InitCommand="animate,0;playcommand,Update" - UpdateCommand="%function(self) RateBPMlabel(self) end" + UpdateCommand="%function(self) SongOptionsLabel(self) end" /> diff --git a/Languages/english.ini b/Languages/english.ini index e6b7fbe8..c17e81a7 100644 --- a/Languages/english.ini +++ b/Languages/english.ini @@ -150,6 +150,7 @@ NoteSkin=Choose a different appearance for the arrows. Handicap=Removes notes. Using these may invalidate a high score. Handicap2=Removes notes. Using these may invalidate a high score. Hide=Adjust the visibility of the targets. +MetaMods=Apply mods that is not affected by mods in the chart. Persp=Change the viewing angle of the arrow stream. Perspective=Change the viewing angle of the arrow stream. Steps=Adjust the difficulty of the steps. @@ -283,6 +284,7 @@ Accel=Acceleration Effect=Effect Mini=Mini Appearance=Fade +MetaMods=Meta Mods Turn=Turn InsertTaps=Insert InsertOther=Other @@ -449,6 +451,11 @@ Tornado=Tornado Tipsy=Float Beat=Beat +MetaFlip=MetaFlip +MetaOrient=MetaOrient +MetaReverse=MetaReverse +50% MetaStealth=50% MetaStealth + Normal=Normal -30% Mini=Huge 20% Mini=20% diff --git a/Scripts/Mods.lua b/Scripts/Mods.lua index 7c55f8f0..ccc67b96 100644 --- a/Scripts/Mods.lua +++ b/Scripts/Mods.lua @@ -114,7 +114,7 @@ -- These will be the option rows available on the [nth] option screen. The 'NextScreen' row will be automatically added as long as there is more than 1 option screen. playerOptions = {} playerOptions[1] = { 'SpeedType','SpeedNumber','Mini','Perspective','NoteSkin','Turn','LifeBar','Compare','Rate' } - playerOptions[2] = { 'Turn','Accel','Scroll','Effect','Appearance','Handicap','InsertTaps','InsertOther','Hide','Ghost' } + playerOptions[2] = { 'Turn','Accel','Scroll','Effect','Appearance','MetaMods','Handicap','InsertTaps','InsertOther','Hide','Ghost' } playerOptions.Edit = { 'SpeedType','SpeedNumber','Mini','Perspective','NoteSkin','Turn' } ShowAllInRow = false @@ -729,10 +729,46 @@ end -- BPM format and display functions ------------------------------------- +function SongOptionsLabel(self) + local t = {} + + local bpm = RateBPMlabel() + if bpm ~= '' then table.insert(t, bpm) end + + local meta = MetaModsText() + if meta ~= '' then table.insert(t, meta) end + + s = table.concat(t, ', ') + + if self then + self:settext(s) + else + return s + end +end + function BPMlabelRate(self) s = AdjustedBPM() .. ' BPM ' .. RateModAppend() if self then self:settext(s) else return s end end function BPMandRate(self) s = AdjustedBPM() .. ' ' .. RateModAppend() if self then self:settext(s) else return s end end function RateBPMlabel(self) s = RateModText() if s ~= '' then s = s .. ' (' .. AdjustedBPM() .. ' BPM)' end if self then self:settext(s) else return s end end +function MetaModsText(self) + mods = {} + + for i, v in ipairs(metaMods.mods) do + if CheckMod(0, v) then + table.insert(mods, metaMods.modlist[i]) + end + end + + s = table.concat(mods, ', ') + + if self then + self:settext(s) + else + return s + end +end + function RateModText(self) s = '' if modRate ~= 1 then s = string.format('%01.1f',modRate) .. 'x Music Rate' end if self then self:settext(s) else return s end end function RateModAppend(self) s = RateModText() if s ~= '' then s = '(' .. s .. ')' end if self then self:settext(s) else return s end end @@ -774,6 +810,12 @@ end baseSpeed = { "C700", "C800", "C900", "C1000", "C1100", "C1200", "C1300", "C1400", "1x", "2x", "3x", "4x", "5x", "6x", "7x", "C400", "C500", "C600" } extraSpeed = { "0", "+C10", "+C20", "+C30", "+C40", "+C50", "+C60", "+C70", "+C80", "+C90", "+.75x", "+.50x", "+.25x" } +metaMods = { + modlist = {'MetaFlip', 'MetaOrient', 'MetaReverse', '50% MetaStealth', 'MetaDizzy'}, + default = 'no metaflip, no metaorient, no metareverse, no metastealth, no metadizzy', + mods = {'metaflip', 'metaorient', 'metareverse', '50% metastealth', 'metadizzy'} +} + rateMods = { "1.0x", "1.1x", "1.2x", "1.3x", "1.4x", "1.5x", "1.6x", "1.7x", "1.8x", "1.9x", "2.0x" } rateModsEdit = { "1.0x", "1.1x", "1.2x", "1.3x", "1.4x", "1.5x", "1.6x", "1.7x", "1.8x", "1.9x", "2.0x", "0.3x", "0.4x", "0.5x", "0.6x", "0.7x", "0.8x", "0.9x" } @@ -816,6 +858,7 @@ ModsMaster.Tipsy = { float = true } ModsMaster.Beat = { float = true } ModsMaster.Mini = { float = true } +ModsMaster.MetaMods = { fnctn = 'MetaMods' } ModsMaster.SpeedType = { fnctn = 'SpeedType' } ModsMaster.SpeedNumber = { fnctn = 'SpeedNumber' } ModsMaster.Next = { fnctn = 'NextScreenOption' } @@ -998,6 +1041,32 @@ do end end +function MetaMods( s ) + local t = OptionRowBase('Meta Mods', metaMods.modlist) + + t.SelectType = 'SelectMultiple' + t.OneChoiceForAllPlayers = true + + t.LoadSelections = function(self, list, pn) + for i, v in ipairs(metaMods.mods) do + list[i] = CheckMod(pn, v) + end + end + + t.SaveSelections = function(self, list, pn) + if pn ~= 0 then return end -- in OneChoiceForAllPlayers row, list in other players than player 1 is not valid + + ApplyMod(metaMods.default, pn+1) + for i, v in ipairs(list) do + if v then + ApplyMod(metaMods.mods[i], pn+1) + end + end + end + + return t +end + function NextScreenOption() local t = OptionRowBase('Next Screen',{'Gameplay','Select Music','More Options'}) t.OneChoiceForAllPlayers = true diff --git a/Scripts/Theme.lua b/Scripts/Theme.lua index 32b446b6..61d58692 100644 --- a/Scripts/Theme.lua +++ b/Scripts/Theme.lua @@ -14,7 +14,7 @@ rateModsFree = { "1.0x", "1.1x", "1.2x", "1.3x", "1.4x", "1.5x", "1.6x", "1.7x", screenList = { Gameplay = 'ScreenStage' , SelectMusic = 'ScreenSelectMusic' , PlayerOptions = 'ScreenPlayerOptions' , TitleMenu = ScreenTitleBranch , NameEntry = 'ScreenNameEntryTraditional' , Evaluation = SelectEvaluationScreen , Summary = 'Summary' , Ending = SelectEndingScreen } playerOptions[1] = { 'SpeedType','SpeedNumber','Mini','Perspective','NoteSkin','Turn','JudgmentFont','Voice','Rate' } -playerOptions[2] = { 'Accel','Scroll','Effect','Appearance','Handicap','InsertTaps','InsertOther','Hide','Ghost','Compare','Measure','LifeBar' } +playerOptions[2] = { 'Accel','Scroll','Effect','Appearance','MetaMods','Handicap','InsertTaps','InsertOther','Hide','Ghost','Compare','Measure','LifeBar' } function CompareTextFormat(self,n) self:zoom(.3) end -- This is added on top of the base positioning etc. From 2ad9cde68d6533583f0643f78d3d48edc49ef131 Mon Sep 17 00:00:00 2001 From: FMS-Cat Date: Tue, 5 May 2020 04:27:29 +0900 Subject: [PATCH 2/6] MetaMods: make it top of second option screen --- Scripts/Mods.lua | 4 ++-- Scripts/Theme.lua | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Scripts/Mods.lua b/Scripts/Mods.lua index ccc67b96..b5470a48 100644 --- a/Scripts/Mods.lua +++ b/Scripts/Mods.lua @@ -114,7 +114,7 @@ -- These will be the option rows available on the [nth] option screen. The 'NextScreen' row will be automatically added as long as there is more than 1 option screen. playerOptions = {} playerOptions[1] = { 'SpeedType','SpeedNumber','Mini','Perspective','NoteSkin','Turn','LifeBar','Compare','Rate' } - playerOptions[2] = { 'Turn','Accel','Scroll','Effect','Appearance','MetaMods','Handicap','InsertTaps','InsertOther','Hide','Ghost' } + playerOptions[2] = { 'MetaMods','Turn','Accel','Scroll','Effect','Appearance','Handicap','InsertTaps','InsertOther','Hide','Ghost' } playerOptions.Edit = { 'SpeedType','SpeedNumber','Mini','Perspective','NoteSkin','Turn' } ShowAllInRow = false @@ -1042,7 +1042,7 @@ do end function MetaMods( s ) - local t = OptionRowBase('Meta Mods', metaMods.modlist) + local t = OptionRowBase('MetaMods', metaMods.modlist) t.SelectType = 'SelectMultiple' t.OneChoiceForAllPlayers = true diff --git a/Scripts/Theme.lua b/Scripts/Theme.lua index 61d58692..0a312cbe 100644 --- a/Scripts/Theme.lua +++ b/Scripts/Theme.lua @@ -14,7 +14,7 @@ rateModsFree = { "1.0x", "1.1x", "1.2x", "1.3x", "1.4x", "1.5x", "1.6x", "1.7x", screenList = { Gameplay = 'ScreenStage' , SelectMusic = 'ScreenSelectMusic' , PlayerOptions = 'ScreenPlayerOptions' , TitleMenu = ScreenTitleBranch , NameEntry = 'ScreenNameEntryTraditional' , Evaluation = SelectEvaluationScreen , Summary = 'Summary' , Ending = SelectEndingScreen } playerOptions[1] = { 'SpeedType','SpeedNumber','Mini','Perspective','NoteSkin','Turn','JudgmentFont','Voice','Rate' } -playerOptions[2] = { 'Accel','Scroll','Effect','Appearance','MetaMods','Handicap','InsertTaps','InsertOther','Hide','Ghost','Compare','Measure','LifeBar' } +playerOptions[2] = { 'MetaMods','Accel','Scroll','Effect','Appearance','Handicap','InsertTaps','InsertOther','Hide','Ghost','Compare','Measure','LifeBar' } function CompareTextFormat(self,n) self:zoom(.3) end -- This is added on top of the base positioning etc. From 4ea01a02465c4744e5c197ffd82aa27414506da9 Mon Sep 17 00:00:00 2001 From: FMS-Cat Date: Tue, 5 May 2020 05:13:38 +0900 Subject: [PATCH 3/6] add MetaInvert, make metamods 2 rows --- Languages/english.ini | 8 ++++++-- Scripts/Mods.lua | 47 ++++++++++++++++++++++++++++++------------- Scripts/Theme.lua | 2 +- 3 files changed, 40 insertions(+), 17 deletions(-) diff --git a/Languages/english.ini b/Languages/english.ini index c17e81a7..f12ae4a1 100644 --- a/Languages/english.ini +++ b/Languages/english.ini @@ -150,7 +150,8 @@ NoteSkin=Choose a different appearance for the arrows. Handicap=Removes notes. Using these may invalidate a high score. Handicap2=Removes notes. Using these may invalidate a high score. Hide=Adjust the visibility of the targets. -MetaMods=Apply mods that is not affected by mods in the chart. +MetaMods1=Apply mods that is not affected by mods in the chart. +MetaMods2=Apply mods that is not affected by mods in the chart. Persp=Change the viewing angle of the arrow stream. Perspective=Change the viewing angle of the arrow stream. Steps=Adjust the difficulty of the steps. @@ -284,7 +285,8 @@ Accel=Acceleration Effect=Effect Mini=Mini Appearance=Fade -MetaMods=Meta Mods +MetaMods1=MetaMods 1 +MetaMods2=MetaMods 2 Turn=Turn InsertTaps=Insert InsertOther=Other @@ -452,9 +454,11 @@ Tipsy=Float Beat=Beat MetaFlip=MetaFlip +MetaInvert=MetaInvert MetaOrient=MetaOrient MetaReverse=MetaReverse 50% MetaStealth=50% MetaStealth +MetaOrient=MetaOrient Normal=Normal -30% Mini=Huge diff --git a/Scripts/Mods.lua b/Scripts/Mods.lua index b5470a48..362f4705 100644 --- a/Scripts/Mods.lua +++ b/Scripts/Mods.lua @@ -114,7 +114,7 @@ -- These will be the option rows available on the [nth] option screen. The 'NextScreen' row will be automatically added as long as there is more than 1 option screen. playerOptions = {} playerOptions[1] = { 'SpeedType','SpeedNumber','Mini','Perspective','NoteSkin','Turn','LifeBar','Compare','Rate' } - playerOptions[2] = { 'MetaMods','Turn','Accel','Scroll','Effect','Appearance','Handicap','InsertTaps','InsertOther','Hide','Ghost' } + playerOptions[2] = { 'MetaMods1','MetaMods2','Turn','Accel','Scroll','Effect','Appearance','Handicap','InsertTaps','InsertOther','Hide','Ghost' } playerOptions.Edit = { 'SpeedType','SpeedNumber','Mini','Perspective','NoteSkin','Turn' } ShowAllInRow = false @@ -754,9 +754,11 @@ function RateBPMlabel(self) s = RateModText() if s ~= '' then s = s .. ' (' .. A function MetaModsText(self) mods = {} - for i, v in ipairs(metaMods.mods) do - if CheckMod(0, v) then - table.insert(mods, metaMods.modlist[i]) + for _, metaModsRow in ipairs(metaModsRows) do + for i, v in ipairs(metaModsRow.mods) do + if CheckMod(0, v) then + table.insert(mods, metaModsRow.modlist[i]) + end end end @@ -810,10 +812,17 @@ end baseSpeed = { "C700", "C800", "C900", "C1000", "C1100", "C1200", "C1300", "C1400", "1x", "2x", "3x", "4x", "5x", "6x", "7x", "C400", "C500", "C600" } extraSpeed = { "0", "+C10", "+C20", "+C30", "+C40", "+C50", "+C60", "+C70", "+C80", "+C90", "+.75x", "+.50x", "+.25x" } -metaMods = { - modlist = {'MetaFlip', 'MetaOrient', 'MetaReverse', '50% MetaStealth', 'MetaDizzy'}, - default = 'no metaflip, no metaorient, no metareverse, no metastealth, no metadizzy', - mods = {'metaflip', 'metaorient', 'metareverse', '50% metastealth', 'metadizzy'} +metaModsRows = { + { + modlist = {'MetaFlip', 'MetaInvert', 'MetaReverse'}, + default = 'no metaflip, no metainvert, no metareverse', + mods = {'metaflip', 'metainvert', 'metareverse'} + }, + { + modlist = {'MetaOrient', '50% MetaStealth', 'MetaDizzy'}, + default = 'no metaorient, no metastealth, no metadizzy', + mods = {'metaorient', '50% metastealth', 'metadizzy'} + } } rateMods = { "1.0x", "1.1x", "1.2x", "1.3x", "1.4x", "1.5x", "1.6x", "1.7x", "1.8x", "1.9x", "2.0x" } @@ -858,7 +867,8 @@ ModsMaster.Tipsy = { float = true } ModsMaster.Beat = { float = true } ModsMaster.Mini = { float = true } -ModsMaster.MetaMods = { fnctn = 'MetaMods' } +ModsMaster.MetaMods1 = { fnctn = 'MetaMods1' } +ModsMaster.MetaMods2 = { fnctn = 'MetaMods2' } ModsMaster.SpeedType = { fnctn = 'SpeedType' } ModsMaster.SpeedNumber = { fnctn = 'SpeedNumber' } ModsMaster.Next = { fnctn = 'NextScreenOption' } @@ -1041,14 +1051,15 @@ do end end -function MetaMods( s ) - local t = OptionRowBase('MetaMods', metaMods.modlist) +function MetaMods( s, iRow ) + local metaModsRow = metaModsRows[ iRow ] + local t = OptionRowBase('MetaMods' .. iRow, metaModsRow.modlist) t.SelectType = 'SelectMultiple' t.OneChoiceForAllPlayers = true t.LoadSelections = function(self, list, pn) - for i, v in ipairs(metaMods.mods) do + for i, v in ipairs(metaModsRow.mods) do list[i] = CheckMod(pn, v) end end @@ -1056,10 +1067,10 @@ function MetaMods( s ) t.SaveSelections = function(self, list, pn) if pn ~= 0 then return end -- in OneChoiceForAllPlayers row, list in other players than player 1 is not valid - ApplyMod(metaMods.default, pn+1) + ApplyMod(metaModsRow.default, pn+1) for i, v in ipairs(list) do if v then - ApplyMod(metaMods.mods[i], pn+1) + ApplyMod(metaModsRow.mods[i], pn+1) end end end @@ -1067,6 +1078,14 @@ function MetaMods( s ) return t end +function MetaMods1( s ) + return MetaMods( s, 1 ) +end + +function MetaMods2( s ) + return MetaMods( s, 2 ) +end + function NextScreenOption() local t = OptionRowBase('Next Screen',{'Gameplay','Select Music','More Options'}) t.OneChoiceForAllPlayers = true diff --git a/Scripts/Theme.lua b/Scripts/Theme.lua index 0a312cbe..1b847c98 100644 --- a/Scripts/Theme.lua +++ b/Scripts/Theme.lua @@ -14,7 +14,7 @@ rateModsFree = { "1.0x", "1.1x", "1.2x", "1.3x", "1.4x", "1.5x", "1.6x", "1.7x", screenList = { Gameplay = 'ScreenStage' , SelectMusic = 'ScreenSelectMusic' , PlayerOptions = 'ScreenPlayerOptions' , TitleMenu = ScreenTitleBranch , NameEntry = 'ScreenNameEntryTraditional' , Evaluation = SelectEvaluationScreen , Summary = 'Summary' , Ending = SelectEndingScreen } playerOptions[1] = { 'SpeedType','SpeedNumber','Mini','Perspective','NoteSkin','Turn','JudgmentFont','Voice','Rate' } -playerOptions[2] = { 'MetaMods','Accel','Scroll','Effect','Appearance','Handicap','InsertTaps','InsertOther','Hide','Ghost','Compare','Measure','LifeBar' } +playerOptions[2] = { 'MetaMods1','MetaMods2','Accel','Scroll','Effect','Appearance','Handicap','InsertTaps','InsertOther','Hide','Ghost','Compare','Measure','LifeBar' } function CompareTextFormat(self,n) self:zoom(.3) end -- This is added on top of the base positioning etc. From 8553f2a7631972130f2b90036c0259e71bb3b5af Mon Sep 17 00:00:00 2001 From: FMS-Cat Date: Wed, 21 Apr 2021 00:47:23 +0900 Subject: [PATCH 4/6] refactor: a comment --- Scripts/Mods.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Scripts/Mods.lua b/Scripts/Mods.lua index 362f4705..863f81be 100644 --- a/Scripts/Mods.lua +++ b/Scripts/Mods.lua @@ -729,6 +729,9 @@ end -- BPM format and display functions ------------------------------------- +-- Intended to be used from ScreenEvaluation. +-- It will return a human-readable string consists of metamods and rate mods currently being used. +-- If BitmapText is given, this function will set the string to the BitmapText. function SongOptionsLabel(self) local t = {} From 4470f70c96919a29090069c602a9a6e521f0e126 Mon Sep 17 00:00:00 2001 From: FMS-Cat Date: Wed, 21 Apr 2021 03:35:20 +0900 Subject: [PATCH 5/6] feature: add several metamods to the listing --- Languages/english.ini | 8 ++++++-- Scripts/Mods.lua | 12 ++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Languages/english.ini b/Languages/english.ini index f12ae4a1..75ad78cc 100644 --- a/Languages/english.ini +++ b/Languages/english.ini @@ -455,10 +455,14 @@ Beat=Beat MetaFlip=MetaFlip MetaInvert=MetaInvert -MetaOrient=MetaOrient +MetaVideogames=MetaVideogames +MetaMonocolumn=MetaMonocolumn MetaReverse=MetaReverse -50% MetaStealth=50% MetaStealth +MetaDizzy=MetaDizzy MetaOrient=MetaOrient +MetaBrake=MetaBrake +MetaHidden=MetaHidden +50% MetaStealth=50% MetaStealth Normal=Normal -30% Mini=Huge diff --git a/Scripts/Mods.lua b/Scripts/Mods.lua index 863f81be..8256cda6 100644 --- a/Scripts/Mods.lua +++ b/Scripts/Mods.lua @@ -817,14 +817,14 @@ extraSpeed = { "0", "+C10", "+C20", "+C30", "+C40", "+C50", "+C60", "+C70", "+C8 metaModsRows = { { - modlist = {'MetaFlip', 'MetaInvert', 'MetaReverse'}, - default = 'no metaflip, no metainvert, no metareverse', - mods = {'metaflip', 'metainvert', 'metareverse'} + modlist = {'MetaFlip', 'MetaInvert', 'MetaVideogames', 'MetaMonocolumn', 'MetaReverse'}, + default = 'no metaflip, no metainvert, no metavideogames, no metamonocolumn, no metareverse', + mods = {'metaflip', 'metainvert', 'metavideogames', 'metamonocolumn', 'metareverse'} }, { - modlist = {'MetaOrient', '50% MetaStealth', 'MetaDizzy'}, - default = 'no metaorient, no metastealth, no metadizzy', - mods = {'metaorient', '50% metastealth', 'metadizzy'} + modlist = {'MetaDizzy', 'MetaOrient', 'MetaBrake', 'MetaHidden', '50% MetaStealth'}, + default = 'no metadizzy, no metaorient, no metabrake, no metahidden, no metastealth', + mods = {'metadizzy', 'metaorient', 'metabrake', 'metahidden', '50% metastealth'} } } From 95d4773a9d5bdc305f5e23d96f77796a4b9c5362 Mon Sep 17 00:00:00 2001 From: FMS-Cat Date: Wed, 21 Apr 2021 03:52:08 +0900 Subject: [PATCH 6/6] UI: made metamods 3 lines --- Languages/english.ini | 2 ++ Scripts/Mods.lua | 24 +++++++++++++++++------- Scripts/Theme.lua | 2 +- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Languages/english.ini b/Languages/english.ini index 75ad78cc..263f8019 100644 --- a/Languages/english.ini +++ b/Languages/english.ini @@ -152,6 +152,7 @@ Handicap2=Removes notes. Using these may invalidate a high score. Hide=Adjust the visibility of the targets. MetaMods1=Apply mods that is not affected by mods in the chart. MetaMods2=Apply mods that is not affected by mods in the chart. +MetaMods3=Apply mods that is not affected by mods in the chart. Persp=Change the viewing angle of the arrow stream. Perspective=Change the viewing angle of the arrow stream. Steps=Adjust the difficulty of the steps. @@ -287,6 +288,7 @@ Mini=Mini Appearance=Fade MetaMods1=MetaMods 1 MetaMods2=MetaMods 2 +MetaMods3=MetaMods 3 Turn=Turn InsertTaps=Insert InsertOther=Other diff --git a/Scripts/Mods.lua b/Scripts/Mods.lua index 8256cda6..59fc9fb8 100644 --- a/Scripts/Mods.lua +++ b/Scripts/Mods.lua @@ -114,7 +114,7 @@ -- These will be the option rows available on the [nth] option screen. The 'NextScreen' row will be automatically added as long as there is more than 1 option screen. playerOptions = {} playerOptions[1] = { 'SpeedType','SpeedNumber','Mini','Perspective','NoteSkin','Turn','LifeBar','Compare','Rate' } - playerOptions[2] = { 'MetaMods1','MetaMods2','Turn','Accel','Scroll','Effect','Appearance','Handicap','InsertTaps','InsertOther','Hide','Ghost' } + playerOptions[2] = { 'MetaMods1','MetaMods2','MetaMods3','Turn','Accel','Scroll','Effect','Appearance','Handicap','InsertTaps','InsertOther','Hide','Ghost' } playerOptions.Edit = { 'SpeedType','SpeedNumber','Mini','Perspective','NoteSkin','Turn' } ShowAllInRow = false @@ -817,14 +817,19 @@ extraSpeed = { "0", "+C10", "+C20", "+C30", "+C40", "+C50", "+C60", "+C70", "+C8 metaModsRows = { { - modlist = {'MetaFlip', 'MetaInvert', 'MetaVideogames', 'MetaMonocolumn', 'MetaReverse'}, - default = 'no metaflip, no metainvert, no metavideogames, no metamonocolumn, no metareverse', - mods = {'metaflip', 'metainvert', 'metavideogames', 'metamonocolumn', 'metareverse'} + modlist = {'MetaFlip', 'MetaInvert', 'MetaVideogames', 'MetaMonocolumn'}, + default = 'no metaflip, no metainvert, no metavideogames, no metamonocolumn', + mods = {'metaflip', 'metainvert', 'metavideogames', 'metamonocolumn'} }, { - modlist = {'MetaDizzy', 'MetaOrient', 'MetaBrake', 'MetaHidden', '50% MetaStealth'}, - default = 'no metadizzy, no metaorient, no metabrake, no metahidden, no metastealth', - mods = {'metadizzy', 'metaorient', 'metabrake', 'metahidden', '50% metastealth'} + modlist = {'MetaReverse', 'MetaDizzy', 'MetaOrient', 'MetaBrake'}, + default = 'no metareverse, no metadizzy, no metaorient, no metabrake', + mods = {'metareverse', 'metadizzy', 'metaorient', 'metabrake'} + }, + { + modlist = {'MetaHidden', '50% MetaStealth'}, + default = 'no metahidden, no metastealth', + mods = {'metahidden', '50% metastealth'} } } @@ -872,6 +877,7 @@ ModsMaster.Mini = { float = true } ModsMaster.MetaMods1 = { fnctn = 'MetaMods1' } ModsMaster.MetaMods2 = { fnctn = 'MetaMods2' } +ModsMaster.MetaMods3 = { fnctn = 'MetaMods3' } ModsMaster.SpeedType = { fnctn = 'SpeedType' } ModsMaster.SpeedNumber = { fnctn = 'SpeedNumber' } ModsMaster.Next = { fnctn = 'NextScreenOption' } @@ -1089,6 +1095,10 @@ function MetaMods2( s ) return MetaMods( s, 2 ) end +function MetaMods3( s ) + return MetaMods( s, 3 ) +end + function NextScreenOption() local t = OptionRowBase('Next Screen',{'Gameplay','Select Music','More Options'}) t.OneChoiceForAllPlayers = true diff --git a/Scripts/Theme.lua b/Scripts/Theme.lua index 1b847c98..b85fd5cb 100644 --- a/Scripts/Theme.lua +++ b/Scripts/Theme.lua @@ -14,7 +14,7 @@ rateModsFree = { "1.0x", "1.1x", "1.2x", "1.3x", "1.4x", "1.5x", "1.6x", "1.7x", screenList = { Gameplay = 'ScreenStage' , SelectMusic = 'ScreenSelectMusic' , PlayerOptions = 'ScreenPlayerOptions' , TitleMenu = ScreenTitleBranch , NameEntry = 'ScreenNameEntryTraditional' , Evaluation = SelectEvaluationScreen , Summary = 'Summary' , Ending = SelectEndingScreen } playerOptions[1] = { 'SpeedType','SpeedNumber','Mini','Perspective','NoteSkin','Turn','JudgmentFont','Voice','Rate' } -playerOptions[2] = { 'MetaMods1','MetaMods2','Accel','Scroll','Effect','Appearance','Handicap','InsertTaps','InsertOther','Hide','Ghost','Compare','Measure','LifeBar' } +playerOptions[2] = { 'MetaMods1','MetaMods2','MetaMods3','Accel','Scroll','Effect','Appearance','Handicap','InsertTaps','InsertOther','Hide','Ghost','Compare','Measure','LifeBar' } function CompareTextFormat(self,n) self:zoom(.3) end -- This is added on top of the base positioning etc.