Resolves change requests
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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",
|
||||
},
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 x<self.x+self.w*.5 then
|
||||
if s>1 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()
|
||||
|
||||
Reference in New Issue
Block a user