Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Not really rewrite mod system #1072

Open
wants to merge 42 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
478eb07
Test
SweetSea-ButImNotSweet Jan 1, 2024
b3ca43f
Final push
SweetSea-ButImNotSweet Jan 2, 2024
7723288
small update
SweetSea-ButImNotSweet Jan 3, 2024
8252f85
Fix some bugs
SweetSea-ButImNotSweet Jan 4, 2024
e6f416e
Shorten code, remove ``unranked``
SweetSea-ButImNotSweet Jan 4, 2024
47fc75b
Modify some mods' behavior
SweetSea-ButImNotSweet Jan 4, 2024
b8ec5df
Fix redundant "end"
SweetSea-ButImNotSweet Jan 4, 2024
1117b53
Fix bug (again)
SweetSea-ButImNotSweet Jan 4, 2024
c47ddf2
Merge remote-tracking branch 'upstream/main' into mod-patch
SweetSea-ButImNotSweet Jan 5, 2024
72d5e46
Change "modSystem" to "modApplyAt"
SweetSea-ButImNotSweet Jan 6, 2024
4c3abc4
Add TABLE.newWithLockMetamethod()
SweetSea-ButImNotSweet Jan 6, 2024
f0a45b8
Change most mods' configuration
SweetSea-ButImNotSweet Jan 6, 2024
2cd330f
Modify how executing mods again
SweetSea-ButImNotSweet Jan 6, 2024
6873317
Fix mods, update UI
SweetSea-ButImNotSweet Jan 6, 2024
3825b7c
Add VI translation
SweetSea-ButImNotSweet Jan 6, 2024
869135a
Add English translation
SweetSea-ButImNotSweet Jan 6, 2024
766b32b
Final update
SweetSea-ButImNotSweet Jan 6, 2024
70558e8
Add viewLog
SweetSea-ButImNotSweet Jan 6, 2024
6594b4a
Fix viewLog
SweetSea-ButImNotSweet Jan 6, 2024
d09f5b0
update viewlog
SweetSea-ButImNotSweet Jan 7, 2024
898539c
update viewLog
SweetSea-ButImNotSweet Jan 7, 2024
65c050f
Small update for viewLog
SweetSea-ButImNotSweet Jan 7, 2024
2816a76
Fix bugs and small changes to other thing
SweetSea-ButImNotSweet Jan 7, 2024
d61372c
Small tweak
SweetSea-ButImNotSweet Jan 7, 2024
3cda61b
Add a short delay before displaying username
SweetSea-ButImNotSweet Jan 7, 2024
dc8488f
Clean-up
SweetSea-ButImNotSweet Jan 7, 2024
5361742
Resolves change requests
SweetSea-ButImNotSweet Jan 8, 2024
888f2f6
Resolve change requests part 2
SweetSea-ButImNotSweet Jan 8, 2024
f2686fb
Resolve change requests part 3
SweetSea-ButImNotSweet Jan 8, 2024
c20e4ac
Add short delay before showing nickname (again)
SweetSea-ButImNotSweet Jan 8, 2024
9c47e95
Revert the default username from SweetSea to <nil>
SweetSea-ButImNotSweet Jan 8, 2024
4928f19
Remove an unused arg
SweetSea-ButImNotSweet Jan 8, 2024
97b1abb
Resolve change request part Tetra
SweetSea-ButImNotSweet Jan 9, 2024
d399f3c
Moving part 1
SweetSea-ButImNotSweet Jan 11, 2024
519687a
Moving part 2
SweetSea-ButImNotSweet Jan 11, 2024
c143e8e
Moving part 3
SweetSea-ButImNotSweet Jan 11, 2024
58648f7
Remove some texts (most deprecated)
SweetSea-ButImNotSweet Jan 11, 2024
378d88c
Small edit to manual_vi
SweetSea-ButImNotSweet Jan 11, 2024
44ff5e8
Merge branch 'main' of https://github.com/26F-Studio/Techmino into mo…
SweetSea-ButImNotSweet Jan 21, 2024
387bbfa
Moving changes to #1085
SweetSea-ButImNotSweet Jan 21, 2024
271769c
Merge branch 'main' into mod-patch
SweetSea-ButImNotSweet Jun 6, 2024
c6903c8
Merge branch 'main' of https://github.com/26F-Studio/Techmino into mo…
SweetSea-ButImNotSweet Nov 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Resolves change requests
  • Loading branch information
SweetSea-ButImNotSweet committed Jan 8, 2024
commit 536174220dcb32c262efc178f2ab9f0259efed99
86 changes: 42 additions & 44 deletions parts/gameTables.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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)
Expand All @@ -487,15 +485,15 @@ 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)
end,
},
{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)
Expand All @@ -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
Expand Down
4 changes: 2 additions & 2 deletions parts/language/lang_en.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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.",
Expand Down Expand Up @@ -450,7 +450,7 @@ C. Gamepad
},
mod={
title="Mods",
applyAt="Apply mods at",
applyAt="Apply during",
reset="Reset (tab)",
unranked="Unranked",
},
Expand Down
8 changes: 3 additions & 5 deletions parts/player/draw.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 6 additions & 6 deletions parts/player/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 3 additions & 3 deletions parts/scenes/mod.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
23 changes: 1 addition & 22 deletions parts/scenes/viewLog.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
Loading