Skip to content

Commit 9769b33

Browse files
Add "Tech Finesse Lock" modes and some other improvements (#946)
* Improve Tech FInesse modes and add new player hooks * Add Tech Finesse[+] Lock into mode map * Credit PopUpWaffles * Rearrange mode map
1 parent 5196874 commit 9769b33

20 files changed

+596
-365
lines changed

parts/eventsets/tech_finesse_lock.lua

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
local function onMove(P)
2+
if not P.cur then return end
3+
P.holdTime=0
4+
VK.keys[8].ava=false
5+
P.modeData.moveCount=P.modeData.moveCount+1
6+
if P.modeData.moveCount>=2 and (P.curY>P.gameEnv.fieldH-2 or P:_roofCheck()) then
7+
P.keyAvailable[1]=false
8+
P.keyAvailable[2]=false
9+
VK.keys[1].ava=false
10+
VK.keys[2].ava=false
11+
end
12+
end
13+
local function onRotate(P)
14+
if not P.cur then return end
15+
P.holdTime=0
16+
VK.keys[8].ava=false
17+
P.modeData.rotations=P.modeData.rotations+1
18+
if P.modeData.rotations>=2 and not (P.curY>P.gameEnv.fieldH-2 or P:_roofCheck()) then
19+
P.keyAvailable[3]=false
20+
P.keyAvailable[4]=false
21+
P.keyAvailable[5]=false
22+
VK.keys[3].ava=false
23+
VK.keys[4].ava=false
24+
VK.keys[5].ava=false
25+
end
26+
end
27+
local function resetLock(P)
28+
for i=1,8 do
29+
P.keyAvailable[i]=true
30+
VK.keys[i].ava=true
31+
end
32+
P.modeData.moveCount=0
33+
P.modeData.rotations=0
34+
P.holdTime=1
35+
end
36+
return {
37+
arr=0,
38+
fineKill=true,
39+
mesDisp=function(P)
40+
setFont(45)
41+
GC.mStr(("%d"):format(P.stat.atk),63,190)
42+
GC.mStr(("%.2f"):format(P.stat.atk/P.stat.row),63,310)
43+
mText(TEXTOBJ.atk,63,243)
44+
mText(TEXTOBJ.eff,63,363)
45+
end,
46+
task=function(P)
47+
resetLock(P)
48+
end,
49+
hook_drop=function(P)
50+
resetLock(P)
51+
if P.stat.atk>=100 then
52+
P:win('finish')
53+
end
54+
end,
55+
hook_left_manual=onMove, hook_right_manual=onMove,
56+
hook_rotLeft=onRotate, hook_rotRight=onRotate, hook_rot180=onRotate
57+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
local function onMove(P)
2+
if not P.cur then return end
3+
P.holdTime=0
4+
VK.keys[8].ava=false
5+
P.modeData.moveCount=P.modeData.moveCount+1
6+
if P.modeData.moveCount>=2 and (P.curY>P.gameEnv.fieldH-2 or P:_roofCheck()) then
7+
P.keyAvailable[1]=false
8+
P.keyAvailable[2]=false
9+
VK.keys[1].ava=false
10+
VK.keys[2].ava=false
11+
end
12+
end
13+
local function onRotate(P)
14+
if not P.cur then return end
15+
P.holdTime=0
16+
VK.keys[8].ava=false
17+
P.modeData.rotations=P.modeData.rotations+1
18+
if P.modeData.rotations>=2 and not (P.curY>P.gameEnv.fieldH-2 or P:_roofCheck()) then
19+
P.keyAvailable[3]=false
20+
P.keyAvailable[4]=false
21+
P.keyAvailable[5]=false
22+
VK.keys[3].ava=false
23+
VK.keys[4].ava=false
24+
VK.keys[5].ava=false
25+
end
26+
end
27+
local function resetLock(P)
28+
for i=1,8 do
29+
P.keyAvailable[i]=true
30+
VK.keys[i].ava=true
31+
end
32+
P.modeData.moveCount=0
33+
P.modeData.rotations=0
34+
P.holdTime=1
35+
end
36+
return {
37+
arr=0,
38+
fineKill=true,
39+
mesDisp=function(P)
40+
setFont(45)
41+
GC.mStr(("%d"):format(P.stat.atk),63,190)
42+
GC.mStr(("%.2f"):format(P.stat.atk/P.stat.row),63,310)
43+
mText(TEXTOBJ.atk,63,243)
44+
mText(TEXTOBJ.eff,63,363)
45+
end,
46+
task=function(P)
47+
resetLock(P)
48+
end,
49+
hook_drop=function(P)
50+
resetLock(P)
51+
if P.lastPiece.row>0 then
52+
if not P.lastPiece.special then
53+
P:lose()
54+
return
55+
end
56+
end
57+
if P.stat.atk>=100 then
58+
P:win('finish')
59+
end
60+
end,
61+
hook_left_manual=onMove, hook_right_manual=onMove,
62+
hook_rotLeft=onRotate, hook_rotRight=onRotate, hook_rot180=onRotate
63+
}

parts/language/lang_en.lua

Lines changed: 112 additions & 109 deletions
Large diffs are not rendered by default.

parts/language/lang_es.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,7 @@ return {
362362
"huaji2369",
363363
"Lexitik",
364364
"Tourahi Anime",
365+
"PopUpWaffles",
365366
"[Todo el staff de testeo]",
366367
"…Y a ti!",
367368
},
@@ -897,6 +898,8 @@ return {
897898
['tech_l_plus']= {"Tech", "Lunático+", "¡Sólo se permiten Spins y PCs!"},
898899
['tech_finesse']= {"Tech", "Finesse", "¡No cometas errores de Finesse!"},
899900
['tech_finesse_f']= {"Tech", "Finesse+", "Sin errores de finesse,\n¡pero tampoco clears normales!"},
901+
-- ['tech_finesse_lock']= {"Tech", "FINESSE LOCK", "No finesse errors, combined with limited inputs!"},
902+
-- ['tech_finesse_lock_f']= {"Tech", "FINESSE+ LOCK", "No normal clears or finesse errors combined with limited inputs!"},
900903
['tsd_e']= {"Desafío de TSD", "Fácil", "¡Sólo se permiten T-Spin Dobles!"},
901904
['tsd_h']= {"Desafío de TSD", "Difícil", "¡Sólo se permiten T-Spin Dobles!"},
902905
['tsd_u']= {"Desafío de TSD", "Supremo", "¡Sólo se permiten T-Spin Dobles!"},

parts/language/lang_fr.lua

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,7 @@ return {
341341
"huaji2369",
342342
"Lexitik",
343343
"Tourahi Anime",
344+
"PopUpWaffles",
344345
"[All other test staff]",
345346
"…And You!",
346347
},
@@ -868,6 +869,8 @@ return {
868869
['tech_l_plus']= {"Tech", "LUNATIQUE+", "Spin & PC uniquement"},
869870
['tech_finesse']= {"Tech", "FINESSE", "Pas d'erreurs de finesse !"},
870871
['tech_finesse_f']={"Tech", "FINESSE+", "Pas de nettoyages normaux,\nPas d'erreurs de finesse !"},
872+
--['tech_finesse_lock']= {"Tech", "FINESSE LOCK", "No finesse errors, combined with limited inputs!"},
873+
--['tech_finesse_lock_f']= {"Tech", "FINESSE+ LOCK", "No normal clears or finesse errors combined with limited inputs!"},
871874
['tsd_e']= {"TSD Challenge", "FACILE", "T-spin doubles uniquement !"},
872875
['tsd_h']= {"TSD Challenge", "DIFFICILE", "T-spin doubles uniquement !"},
873876
['tsd_u']= {"TSD Challenge", "ULTIME", "T-spin doubles uniquement !"},

0 commit comments

Comments
 (0)