diff --git a/parts/gameTables.lua b/parts/gameTables.lua index ced0e5dd..8083e8ee 100644 --- a/parts/gameTables.lua +++ b/parts/gameTables.lua @@ -369,45 +369,44 @@ do-- Mod data end end end MODOPT={-- Mod options - -- funcA always triggered, funcA1 only triggered once, but both functions can lock values {no=0,id="NX",name="next", key="q",x=80,y=230,color='lO', list={0,1,2,3,4,5,6}, - func =function(P,O) P.gameEnv.nextCount=O end, - funcA1=_lockVfunc('nextCount'), + funcInit=function(P,O) P.gameEnv.nextCount=O end, + funcOnce=_lockVfunc('nextCount'), }, {no=1,id="HL",name="hold", key="w",x=200,y=230,color='lO', list={0,1,2,3,4,5,6}, - func =function(P,O) P.gameEnv.holdCount=O end, - funcA1=_lockVfunc('holdCount'), + funcInit=function(P,O) P.gameEnv.holdCount=O end, + funcOnce=_lockVfunc('holdCount'), }, {no=2,id="FL",name="hideNext", key="e",x=320,y=230,color='lA', list={1,2,3,4,5}, - func =function(P,O) P.gameEnv.nextStartPos=O+1 end, - funcA1=_lockVfunc('nextStartPos'), + funcInit=function(P,O) P.gameEnv.nextStartPos=O+1 end, + funcOnce=_lockVfunc('nextStartPos'), }, {no=3,id="IH",name="infHold", key="r",x=440,y=230,color='lA', - func =function(P) P.gameEnv.infHold=true end, - funcA1=_lockVfunc('infHold'), + funcInit=function(P) P.gameEnv.infHold=true end, + funcOnce=_lockVfunc('infHold'), }, {no=4,id="HB",name="hideBlock", key="y",x=680,y=230,color='lV', - func =function(P) P.gameEnv.block=false end, - funcA1=_lockVfunc('block'), + funcInit=function(P) P.gameEnv.block=false end, + funcOnce=_lockVfunc('block'), }, {no=5,id="HG",name="hideGhost", key="u",x=800,y=230,color='lV', - func =function(P) P.gameEnv.ghost=false end, - funcA1=function(P) P.gameEnv.ghost=false; P.gameEnv.__lock('ghost') end, + funcInit=function(P) P.gameEnv.ghost=false end, + funcOnce=function(P) P.gameEnv.ghost=false; P.gameEnv.__lock('ghost') end, }, {no=6,id="HD",name="hidden", key="i",x=920,y=230,color='lP', list={'easy','slow','medium','fast','none'}, - func =function(P,O) P.gameEnv.visible=O end, - funcA =function(P,O) + funcInit=function(P,O) P.gameEnv.visible=O end, + funcRepe=function(P,O) if P.showTime~=_invisibleTime[O] then P:setInvisible(_invisibleTime[O]) end @@ -416,22 +415,21 @@ do-- Mod data {no=7,id="HB",name="hideBoard", key="o",x=1040,y=230,color='lP', list={'down','up','all'}, - func =function(P,O) P.gameEnv.hideBoard=O end, - funcA1=_lockVfunc('hideBoard'), + funcInit=function(P,O) P.gameEnv.hideBoard=O end, }, {no=8,id="FB",name="flipBoard", key="p",x=1160,y=230,color='lJ', list={'U-D','L-R','180'}, - func =function(P,O) P.gameEnv.flipBoard=O end, - funcA1=_lockVfunc('flipBoard'), + funcInit=function(P,O) P.gameEnv.flipBoard=O end, + funcOnce=_lockVfunc('flipBoard'), }, {no=9,id="DT",name="dropDelay", key="a",x=140,y=350,color='lR', list={0,.125,.25,.5,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99}, - func =function(P,O) P.gameEnv.drop=O end, - funcA =function(P,O) - if P.gameEnv.drop~=O then + funcInit=function(P,O) P.gameEnv.drop=O end, + funcRepe=function(P,O) + if P.dropDelay~=O then P.gameEnv.drop=O P:set20G(O==0) end @@ -440,45 +438,45 @@ do-- Mod data {no=10,id="LT",name="lockDelay", key="s",x=260,y=350,color='lR', list={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99}, - func =function(P,O) P.gameEnv.lock=O end, - funcA1=_lockVfunc('lockDelay'), + funcInit=function(P,O) P.gameEnv.lock=O end, + funcRepe=function(P,O) P.dropDelay=O end, }, {no=11,id="ST",name="waitDelay", key="d",x=380,y=350,color='lR', list={0,1,2,3,4,5,6,7,8,10,15,20,30,60}, - func =function(P,O) P.gameEnv.wait=O end, - funcA1=_lockVfunc('waitDelay'), + funcInit=function(P,O) P.gameEnv.wait=O end, + funcOnce=_lockVfunc('waitDelay'), }, {no=12,id="CT",name="fallDelay", key="f",x=500,y=350,color='lR', list={0,1,2,3,4,5,6,7,8,10,15,20,30,60}, - func =function(P,O) P.gameEnv.fall=O end, - funcA1=_lockVfunc('fallDelay'), + funcInit=function(P,O) P.gameEnv.fall=O end, + funcOnce=_lockVfunc('fallDelay'), }, {no=13,id="LF",name="life", key="j",x=860,y=350,color='lY', list={0,1,2,3,5,10,15,26,42,87,500}, - func =function(P,O) P.gameEnv.life=O end, - funcA1=_lockVfunc('life'), + funcInit=function(P,O) P.gameEnv.life=O end, + funcOnce=_lockVfunc('life'), }, {no=14,id="FB",name="forceB2B", key="k",x=980,y=350,color='lY', - func =function(P) P.gameEnv.b2bKill=true end, - funcA1=_lockVfunc('b2bKill'), + funcInit=function(P) P.gameEnv.b2bKill=true end, + funcOnce=_lockVfunc('b2bKill'), }, {no=15,id="PF",name="forceFinesse", key="l",x=1100,y=350,color='lY', - func =function(P) P.gameEnv.fineKill=true end, - funcA1=_lockVfunc('fineKill'), + funcInit=function(P) P.gameEnv.fineKill=true end, + funcOnce=_lockVfunc('fineKill'), }, {no=16,id="TL",name="tele", key="z",x=200,y=470,color='lH', - func =function(P) + funcInit=function(P) P.gameEnv.das,P.gameEnv.arr=0,0 P.gameEnv.sddas,P.gameEnv.sdarr=0,0 end, - funcA1=function(P) + funcOnce=function(P) for _,k in pairs{'das','arr','sddas','sdarr'} do P.gameEnv[k]=0 P.gameEnv.__lock(k) @@ -487,7 +485,7 @@ do-- Mod data }, {no=17,id="FX",name="noRotation", key="x",x=320,y=470,color='lH', - func =function(P) + funcInit=function(P) _disableKey(P,3) _disableKey(P,4) _disableKey(P,5) @@ -495,7 +493,7 @@ do-- Mod data }, {no=18,id="GL",name="noMove", key="c",x=440,y=470,color='lH', - func =function(P) + funcInit=function(P) _disableKey(P,1) _disableKey(P,2) _disableKey(P,11)_disableKey(P,12) _disableKey(P,17)_disableKey(P,18) @@ -505,20 +503,20 @@ do-- Mod data {no=19,id="CS",name="customSeq", key="b",x=680,y=470,color='lB', list={'bag','bagES','his','hisPool','c2','bagP1inf','rnd','mess','reverb'}, - func =function(P,O) P.gameEnv.sequence=O end, - funcA1=_lockVfunc('sequence'), + funcInit=function(P,O) P.gameEnv.sequence=O end, + funcOnce=_lockVfunc('sequence'), }, {no=20,id="PS",name="pushSpeed", key="n",x=800,y=470,color='lB', list={.5,1,2,3,5,15,1e99}, - func =function(P,O) P.gameEnv.pushSpeed=O end, - funcA1=_lockVfunc('pushSpeed'), + funcInit=function(P,O) P.gameEnv.pushSpeed=O end, + funcOnce=_lockVfunc('pushSpeed'), }, {no=21,id="BN",name="boneBlock", key="m",x=920,y=470,color='lB', list={'on','off'}, - func =function(P,O) P.gameEnv.bone=O end, - funcA =function(P,O) + funcInit=function(P,O) P.gameEnv.bone=O end, + funcRepe=function(P,O) P.gameEnv.bone=O if O=='on' then for _,bk in pairs(P.nextQueue) do bk.color=17 end diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua index ec6ef822..5ae9ed8a 100644 --- a/parts/language/lang_en.lua +++ b/parts/language/lang_en.lua @@ -209,7 +209,7 @@ return { tryAnotherBuild="UTF-8 decoding error. If you are using Microsoft Windows, please try to download the build with the different architecture. If you are using the x86 version of Techmino, try downloading the x64 version and vice versa.", modInstruction="Choose your modifiers here!\nMods allow you to change the rules in various ways, but they can also crash the game. Feel free to play the game your way!\nNote that scores are not saved when using mods. You can also toggle mods using your keyboard keys (hold Shift to reverse).", - modApplyAtInstruction="Choose when you want the modifier to be applied.\nprelnit: Before loading the modes. The default option in V0.17.15 and earlier, but may cause problems with certain mods.\npostInit: After loading the game. This can fix some bugs in preInit, but some mods can still be disabled by modes in some situations.\nalways: Throughout the entire game. Keeps the effects of the mods in all situations. ", + modApplyAtInstruction="Choose when you want the modifier to be applied.\npreInit: Before loading the modes. The default option in V0.17.15 and earlier, but may cause problems with certain mods.\npostInit: After loading the game. This can fix some bugs in preInit, but some mods can still be disabled by modes in some situations.\nalways: Throughout the entire game. Keeps the effects of the mods in all situations. ", modInfo={ next="NEXT\nOverrides the number of Next pieces displayed.", hold="HOLD\nOverrides the number of Hold pieces displayed.", @@ -450,7 +450,7 @@ C. Gamepad }, mod={ title="Mods", - applyAt="Apply mods at", + applyAt="Apply during", reset="Reset (tab)", unranked="Unranked", }, diff --git a/parts/player/draw.lua b/parts/player/draw.lua index 2a84c642..f83feb01 100644 --- a/parts/player/draw.lua +++ b/parts/player/draw.lua @@ -787,11 +787,9 @@ function draw.norm(P,repMode) gc_scale(P.size) -- Draw username - if GAME.modUsed and P.frameRun>GAME.modUsed*26 or not GAME.modUsed then - setFont(30) - gc_setColor(GROUP_COLORS[P.group]) - GC.mStr(P.username or USERS.getUsername(P.uid),300,-60) - end + setFont(30) + gc_setColor(GROUP_COLORS[P.group]) + GC.mStr(P.username or USERS.getUsername(P.uid),300,-60) -- Draw HUD if ENV.nextCount>0 then _drawNext(P,repMode) end diff --git a/parts/player/init.lua b/parts/player/init.lua index 975f5a57..684f900a 100644 --- a/parts/player/init.lua +++ b/parts/player/init.lua @@ -203,15 +203,15 @@ local function _executeMod(P) if GAME.mod[i]>0 then local M=MODOPT[i] if applyStatus=='always' then - if M.funcA1 then - M.funcA1(P,M.list and M.list[GAME.mod[i]]) - elseif M.funcA then - table.insert(GAME.modCodeList[P.id],function() M.func(P,M.list and M.list[GAME.mod[i]]) end) + if M.funcOnce then + M.funcOnce(P,M.list and M.list[GAME.mod[i]]) + elseif M.funcRepe then + table.insert(GAME.modCodeList[P.id],function() M.funcInit(P,M.list and M.list[GAME.mod[i]]) end) else - M.func(P,M.list and M.list[GAME.mod[i]]) + M.funcInit(P,M.list and M.list[GAME.mod[i]]) end else -- Already checked pre or post before calling _executeMod() - M.func(P,M.list and M.list[GAME.mod[i]]) + M.funcInit(P,M.list and M.list[GAME.mod[i]]) end end end diff --git a/parts/scenes/mod.lua b/parts/scenes/mod.lua index 763815fb..536e4e8c 100644 --- a/parts/scenes/mod.lua +++ b/parts/scenes/mod.lua @@ -108,9 +108,9 @@ function scene.draw() GC.rotate(t) local rad,side=45,5 if GAME.modApplyAt=='always' then - if M.funcA then side=nil - elseif M.funcA1 then side=8 - else side=5 end + if M.funcRepe then side=nil + elseif M.funcOnce then side=8 + else side=5 end end local color=M.color GC.setColor(color[1],color[2],color[3],5*t) diff --git a/parts/scenes/viewLog.lua b/parts/scenes/viewLog.lua index c8e10c31..bbe98b59 100644 --- a/parts/scenes/viewLog.lua +++ b/parts/scenes/viewLog.lua @@ -49,31 +49,10 @@ function scene.enter() for i,d in pairs(fullLog) do logTimeList[i]=d:split('\n')[1] end - function logList:press(x) - if x then - local s=self.select - if x1 then s=s-1 - SYSFX.newShade(3,self.x,self.y-WIDGET.scrollPos,self.w*.5,60) - end - else - if s<#self.list then s=s+1 - SYSFX.newShade(3,self.x+self.w*.5,self.y-WIDGET.scrollPos,self.w*.5,60) - end - end - if self.select~=s then - self.code(s) - self.select=s - self.selText=self.list[s] - if self.sound then SFX.play('selector') end - end - end - end - logList.list=logTimeList logList.select=false logList.disp=function() return currentLogText[1] end - logList.code=function(s) + logList.code=function(_,s) if s>currentLogID then scene.keyDown('right') else scene.keyDown('left') end updateText()