Compare commits

..

7 Commits

Author SHA1 Message Date
MrZ626
379a6cd511 0.12.1:漏洞修复 2020-12-14 23:26:11 +08:00
MrZ626
1a9c7ad9de 自定义默认开启 2020-12-14 23:26:11 +08:00
MrZ626
1aade88bd9 手机可以玩AtoZ了 2020-12-14 23:26:11 +08:00
MrZ626
ae71968909 两个C2踢墙表调整 2020-12-14 23:26:11 +08:00
MrZ626
b8f22dc99d 修复加载不了CC的手机主界面ai报错 2020-12-14 23:26:11 +08:00
MrZ626
0e08632bf9 修复c4w模式爆炸 2020-12-14 23:26:11 +08:00
Mizu
eaa43442db Update French 2020-12-14 23:26:11 +08:00
13 changed files with 165 additions and 121 deletions

View File

@@ -552,6 +552,7 @@ return{
},
AtoZ={
level="Level",
keyboard="Keyboard",
reset="Reset",
},
savedata={

View File

@@ -26,13 +26,13 @@ return{
speedup="Speed up !",
missionFailed="Mission échouée",
-- speedLV="speed level",
-- line="Lines",atk="Attack",eff="Efficiency",
-- rpm="RPM",tsd="TSD",
-- grade="Grade",techrash="Techrash",
-- wave="Wave",nextWave="Next",
-- combo="Combo",maxcmb="Max Combo",
-- pc="Perfect Clear",ko="KO",
speedLV="niveau de vitesse",
line="Lignes",atk="Attaque",eff="Efficacité",
rpm="RPM",tsd="TSD",
grade="Grade",techrash="Techrash",
wave="Vague",nextWave="Prochain",
combo="Combo",maxcmb="Combo Max",
pc="Perfect Clear",ko="KO",
win="Gagné !",
@@ -62,8 +62,8 @@ return{
needRestart="Fonctionnera dès la prochaine partie",
-- exportSuccess="Export successfully",
-- importSuccess="Import successfully",
exportSuccess="Exporté avec succès",
importSuccess="Importé avec succès",
dataCorrupted="Données corrompues",
VKTchW="Poids du toucher",
@@ -80,11 +80,11 @@ return{
versionIsOld="La version $1 est disponible !",
netErrorCode="Code d'erreur réseau",
-- jsonError="Json error",
jsonError="Erreur json",
noUsername="Entrez votre nom d'utilisateur",
-- wrongCode="Please enter invitation code",
-- wrongEmail="Wrong email address",
wrongCode="Veuillez entrer un code d'invitation",
wrongEmail="Mauvaise adresse email",
noPassword="Entrez votre mot de passe",
diffPassword="Les mots de passe ne se correspondent pas",
registerSuccessed="Enregistré avec succès !",
@@ -151,11 +151,11 @@ return{
"",
"Programme : MrZ, [T9972, FinnTenzor]",
"Art : MrZ, [Gnyar, T0722]",
"Musiqie : MrZ, [T0722]",
"Musique : MrZ, [T0722]",
"Voix & Sons: MrZ, Miya Performance: 模电, HBM",
"Test: 思竣 Web: 渣渣120",
"Anglais: User670, MattMayuga",
"Français :Mizu Espagnol: Mr.Faq",
"Anglais : User670, MattMayuga",
"Français : Mizu Espagnol : Mr.Faq",
"",
"Merci à:",
"Flyz, Farter, 蕴空之灵,",
@@ -387,10 +387,10 @@ return{
clear="Nettoyer",
demo="Masquer les ×",
-- newPage="New Page(N)",
-- delPage="Del Page(M)",
-- prevPage="Prev Page",
-- nextPage="Next Page",
newPage="Nouvelle Page(N)",
delPage="Supp. Page(M)",
prevPage="Page Préc.",
nextPage="Page Suiv.",
},
custom_sequence={
title="Mode personnalisée",
@@ -437,7 +437,7 @@ return{
},
stat={
path="Ouvrir dossier des données",
-- save="Data Management",
save="Gestion des données",
},
music={
title="Salon musical",
@@ -465,70 +465,70 @@ return{
sfx="Sons",
voc="Voix",
-- move="Move",
-- lock="Lock",
-- drop="Drop",
-- fall="Fall",
-- rotate="Rotate",
-- rotatekick="Rotatekick",
-- hold="Hold",
-- prerotate="Prerotate",
-- prehold="Prehold",
-- _pc="PC",
move="Déplacement",
lock="Verrouillage",
drop="Chute",
fall="Tombée",
rotate="Rotation",
rotatekick="Rot+kick",
hold="Réserve",
prerotate="Prérotation",
prehold="Préréserve",
_pc="PC",
-- clear1="clear 1",
-- clear2="clear 2",
-- clear3="clear 3",
-- clear4="clear 4",
-- spin0="spin 0",
-- spin1="spin 1",
-- spin2="spin 2",
-- spin3="spin 3",
clear1="Clear 1",
clear2="Clear 2",
clear3="Clear 3",
clear4="Clear 4",
spin0="spin 0",
spin1="spin 1",
spin2="spin 2",
spin3="spin 3",
-- _1="Single",
-- _2="Double",
-- _3="Triple",
-- _4="Techrash",
-- z0="Z-spin",
-- z1="Z-spin 1",
-- z2="Z-spin 2",
-- z3="Z-spin 3",
-- s0="S-spin",
-- s1="S-spin 1",
-- s2="S-spin 2",
-- s3="S-spin 3",
_1="Simple",
_2="Double",
_3="Triple",
_4="Techrash",
z0="Z-spin",
z1="Z-spin 1",
z2="Z-spin 2",
z3="Z-spin 3",
s0="S-spin",
s1="S-spin 1",
s2="S-spin 2",
s3="S-spin 3",
-- j0="J-spin",
-- j1="J-spin 1",
-- j2="J-spin 2",
-- j3="J-spin 3",
-- l0="L-spin",
-- l1="L-spin 1",
-- l2="L-spin 2",
-- l3="L-spin 3",
j0="J-spin",
j1="J-spin 1",
j2="J-spin 2",
j3="J-spin 3",
l0="L-spin",
l1="L-spin 1",
l2="L-spin 2",
l3="L-spin 3",
-- t0="T-spin",
-- t1="T-spin 1",
-- t2="T-spin 2",
-- t3="T-spin 3",
-- o0="O-spin",
-- o1="O-spin 1",
-- o2="O-spin 2",
-- o3="O-spin 3",
t0="T-spin",
t1="T-spin 1",
t2="T-spin 2",
t3="T-spin 3",
o0="O-spin",
o1="O-spin 1",
o2="O-spin 2",
o3="O-spin 3",
-- i0="I-spin",
-- i1="I-spin 1",
-- i2="I-spin 2",
-- i3="I-spin 3",
i0="I-spin",
i1="I-spin 1",
i2="I-spin 2",
i3="I-spin 3",
-- mini="Mini",
-- b2b="B2B",
-- b3b="B3B",
-- pc="PC",
mini="Mini",
b2b="B2B",
b3b="B3B",
pc="PC",
},
minigame={
p15="15 Puzzle",
schulte_G="Schulte Grid",
schulte_G="Grille de Schulte",
pong="Pong",
},
p15={
@@ -550,7 +550,8 @@ return{
reset="Redémarrer",
},
AtoZ={
-- level="Level",
level="niveau",
keyboard="Clavier",
reset="Redémarrer",
},
help={
@@ -560,15 +561,15 @@ return{
qq="QQ du créateur",
},
savedata={
-- exportUnlock="Export Unlock",
-- exportData="Export Data",
-- exportSetting="Export Setting",
-- exportVK="Export VK",
exportUnlock="Exporter les Unlocks",
exportData="Exporter les Données",
exportSetting="Exporter les Paramètres",
exportVK="Exporter VK",
-- importUnlock="Import Unlock",
-- importData="Import Data",
-- importSetting="Import Setting",
-- importVK="Import VK",
importUnlock="Importer les Unlocks",
importData="Importer les Données",
importSetting="Importer les Paramètres",
importVK="Importer VK",
reset="Réinitialiser ?",
resetUnlock="Réinitialiser les rangs",
@@ -634,8 +635,8 @@ return{
["bigbang"]= {"Big Bang", "FACILE", "Tutoriel All-Spin\nEn construction..."},
["c4wtrain_normal"]= {"Mode essai C4W", "NORMAL", "Combos infinis."},
["c4wtrain_lunatic"]= {"Mode essai C4W", "LUNATIQUE", "Combos infinis."},
["pctrain_normal"]= {"Mode essai PC", "NORMAL", "Simple Perfect Clear mode."},
["pctrain_lunatic"]= {"Mode essai PC", "LUNATIQUE", "Simple Perfect Clear mode."},
["pctrain_normal"]= {"Mode essai PC", "NORMAL", "Mode Perfect Clear simple"},
["pctrain_lunatic"]= {"Mode essai PC", "LUNATIQUE", "Mode Perfect Clear simple"},
["pcchallenge_normal"]= {"PC Challenge", "NORMAL", "Obtenez un PC dans les prochaines 100 lignes !"},
["pcchallenge_hard"]= {"PC Challenge", "DIFFICILE", "Obtenez un PC dans les prochaines 100 lignes !"},
["pcchallenge_lunatic"]={"PC Challenge", "LUNATIQUE", "Obtenez un PC dans les prochaines 100 lignes !"},
@@ -659,6 +660,6 @@ return{
["sprintFix"]= {"Sprint", "Sans gauche/droite","C'est possible."},
["sprintLock"]= {"Sprint", "Sans rotation", "C'est impossible."},
["sprintPenta"]= {"Sprint", "Pentomino", "40 lignes avec 18 pentominos."},
["sprintMPH"]= {"Sprint", "MPH", "Memoriyless\nPreviewless\nHoldless"},
["sprintMPH"]= {"Sprint", "MPH", "Memoryless\nPreviewless\nHoldless"},
},
}

View File

@@ -556,6 +556,7 @@ return{
},
AtoZ={
-- level="Level",
-- keyboard="Keyboard",
reset="Reiniciar",
},
savedata={

View File

@@ -367,7 +367,7 @@ return{
},
dict={
title="TetroDictionary",
keyboard="□□□",
keyboard="[##]",
link="~~e>>",
up="",
down="",
@@ -488,6 +488,7 @@ return{
},
AtoZ={
level="_ _ _",
keyboard="[##]",
reset="R",
},
},

View File

@@ -555,6 +555,7 @@ return{
},
AtoZ={
level="关卡",
keyboard="键盘",
reset="重置",
},
savedata={

View File

@@ -1,4 +1,4 @@
VERSION="Alpha V0.12.0"
VERSION="Alpha V0.12.1"
love.setDeprecationOutput(false)
function love.conf(t)
t.identity="Techmino"--Saving folder

View File

@@ -1,10 +1,10 @@
local min=math.min
local function check_c4w(P)
if #P.clearedRow==0 then
if P.lastPiece.row==0 then
P:lose()
else
for _=1,#P.clearedRow do
P.field[#P.field+1]=FREEROW.get(13)
for _=1,P.lastPiece.row do
P.field[#P.field+1]=FREEROW.get(20)
P.visTime[#P.visTime+1]=FREEROW.get(20)
for i=4,7 do P.field[#P.field][i]=0 end
end
@@ -31,17 +31,17 @@ return{
local P=PLAYERS[1]
local F=P.field
for i=1,24 do
F[i]=FREEROW.get(13)
F[i]=FREEROW.get(20)
P.visTime[i]=FREEROW.get(20)
for x=4,7 do F[i][x]=0 end
end
local r=P:RND(6)
if r==1 then F[1][5],F[1][4],F[2][4]=13,13,13
elseif r==2 then F[1][6],F[1][7],F[2][7]=13,13,13
elseif r==3 then F[1][4],F[2][4],F[2][5]=13,13,13
elseif r==4 then F[1][7],F[2][7],F[2][6]=13,13,13
elseif r==5 then F[1][4],F[1][5],F[1][6]=13,13,13
elseif r==6 then F[1][7],F[1][6],F[1][5]=13,13,13
if r==1 then F[1][5],F[1][4],F[2][4]=20,20,20
elseif r==2 then F[1][6],F[1][7],F[2][7]=20,20,20
elseif r==3 then F[1][4],F[2][4],F[2][5]=20,20,20
elseif r==4 then F[1][7],F[2][7],F[2][6]=20,20,20
elseif r==5 then F[1][4],F[1][5],F[1][6]=20,20,20
elseif r==6 then F[1][7],F[1][6],F[1][5]=20,20,20
end
end,
mesDisp=function(P)

View File

@@ -1,8 +1,8 @@
local min=math.min
local function check_c4w(P)
if #P.lastPiece.row>0 then
if P.lastPiece.row>0 then
for _=1,#P.clearedRow do
P.field[#P.field+1]=FREEROW.get(13)
P.field[#P.field+1]=FREEROW.get(20)
P.visTime[#P.visTime+1]=FREEROW.get(20)
for i=4,7 do P.field[#P.field][i]=0 end
end
@@ -29,17 +29,17 @@ return{
local P=PLAYERS[1]
local F=P.field
for i=1,24 do
F[i]=FREEROW.get(13)
F[i]=FREEROW.get(20)
P.visTime[i]=FREEROW.get(20)
for x=4,7 do F[i][x]=0 end
end
local r=P:RND(6)
if r==1 then F[1][5],F[1][4],F[2][4]=13,13,13
elseif r==2 then F[1][6],F[1][7],F[2][7]=13,13,13
elseif r==3 then F[1][4],F[2][4],F[2][5]=13,13,13
elseif r==4 then F[1][7],F[2][7],F[2][6]=13,13,13
elseif r==5 then F[1][4],F[1][5],F[1][6]=13,13,13
elseif r==6 then F[1][7],F[1][6],F[1][5]=13,13,13
if r==1 then F[1][5],F[1][4],F[2][4]=20,20,20
elseif r==2 then F[1][6],F[1][7],F[2][7]=20,20,20
elseif r==3 then F[1][4],F[2][4],F[2][5]=20,20,20
elseif r==4 then F[1][7],F[2][7],F[2][6]=20,20,20
elseif r==5 then F[1][4],F[1][5],F[1][6]=20,20,20
elseif r==6 then F[1][7],F[1][6],F[1][5]=20,20,20
end
end,
mesDisp=function(P)

View File

@@ -1,7 +1,9 @@
local zero={0,0}
local Zero={zero}
local ZERO={[01]=Zero,[10]=Zero,[03]=Zero,[30]=Zero,[12]=Zero,[21]=Zero,[32]=Zero,[23]=Zero}
local ZERO_180={[01]=Zero,[10]=Zero,[03]=Zero,[30]=Zero,[12]=Zero,[21]=Zero,[32]=Zero,[23]=Zero,[02]=Zero,[20]=Zero,[13]=Zero,[31]=Zero}
local ZERO,ZERO_180 do
local Zero={zero}
ZERO={[01]=Zero,[10]=Zero,[03]=Zero,[30]=Zero,[12]=Zero,[21]=Zero,[32]=Zero,[23]=Zero}
ZERO_180={[01]=Zero,[10]=Zero,[03]=Zero,[30]=Zero,[12]=Zero,[21]=Zero,[32]=Zero,[23]=Zero,[02]=Zero,[20]=Zero,[13]=Zero,[31]=Zero}
end
local map={}
for x=-3,3 do map[x]={}for y=-3,3 do map[x][y]={x,y}end end
@@ -56,8 +58,8 @@ end
local TRS
do
local OspinList={
{111,5,2, 0,-1,0},{111,5,2,-1,-1,0},{111,5,0,-1, 0,0},--t
{333,5,2,-1,-1,0},{333,5,2, 0,-1,0},{333,5,0, 0, 0,0},--t
{111,5,2, 0,-1,0},{111,5,2,-1,-1,0},{111,5,0,-1, 0,0},--T
{333,5,2,-1,-1,0},{333,5,2, 0,-1,0},{333,5,0, 0, 0,0},--T
{313,1,2,-1, 0,0},{313,1,2, 0,-1,0},{313,1,2, 0, 0,0},--Z
{131,2,2, 0, 0,0},{131,2,2,-1,-1,0},{131,2,2,-1, 0,0},--S
{331,3,2, 0,-1,0},{113,3,0, 0, 0,0},{113,3,2,-1, 0,0},--J
@@ -115,7 +117,7 @@ do
[20]={{ 1, 0},{-1, 0},{ 0,-1}},
[13]={{ 0,-1},{ 0, 1},{ 1, 0},{ 0,-2},{ 0, 2}},
[31]={{ 0,-1},{ 0, 1},{-1, 0},{ 0,-2},{ 0, 2}},
},--t
},--T
function(P,d)
if P.human then SFX.fieldPlay("rotate",nil,P)end
if not P.gameEnv.ospin then return end
@@ -383,7 +385,7 @@ end
local C2
do
local L={{0,0},{-1,0},{1,0},{0,-1},{-1,-1},{1,-1}}
local L={{0,0},{-1,0},{1,0},{0,-1},{-1,-1},{1,-1},{0,-2},{0,2}}
C2={{[01]=L,[10]=L,[12]=L,[21]=L,[23]=L,[32]=L,[30]=L,[03]=L}}
collect(C2[1])
for i=2,25 do C2[i]=C2[1]end
@@ -391,11 +393,33 @@ end
local C2sym
do
local L1={{0,0},{-1,0},{1,0},{0,-1},{-1,-1},{1,-1}}
local L2={{0,0},{-1,0},{1,0},{0,-1},{-1,-1},{1,-1}}
C2sym={{[01]=L1,[10]=L2,[12]=L1,[21]=L2,[23]=L1,[32]=L2,[30]=L1,[03]=L2,[02]=L1,[20]=L1,[13]=L1,[31]=L2}}
collect(C2sym[1])
for i=2,25 do C2sym[i]=C2sym[1]end
local L={{0,0},{-1,0},{1,0},{0,-1},{-1,-1},{1,-1},{0,-2},{0,2}}
local R={{0,0},{-1,0},{1,0},{0,-1},{-1,-1},{1,-1},{0,2},{0,-2}}
local Z={
[01]=R,[10]=L,[03]=L,[30]=R,
[12]=R,[21]=L,[32]=L,[23]=R,
[02]=R,[20]=L,[13]=L,[31]=R,
}
collect(Z)
local S=reflect(Z)
collect(S)
C2sym={
Z,S,--Z,S
Z,S,--JL
Z,--T
ZERO,--O
Z,--I
Z,S,--Z5,S5
Z,S,--P,Q
Z,S,--F,E
Z,Z,Z,Z,--T5,U,V,W
ZERO,--X
Z,S,--J5,L5
Z,S,--R,Y
Z,S,--N,H
}
end
local None={}

View File

@@ -323,6 +323,7 @@ function PLY.newDemoPlayer(id,x,y,size)
next=6,
hold=true,oncehold=true,
ospin=true,
RS="TRS",
sequence="bag",
bag={1,2,3,4,5,6,7},
face={0,0,0,0,0,0,0},

View File

@@ -106,5 +106,6 @@ end
WIDGET.init("AtoZ",{
WIDGET.newSelector({name="level",x=640,y=640,w=200,list={"A_Z","Z_A","Tech1","Tech2","KeyTest1","KeyTest2","hello","zzz","zxzx","stair"},disp=WIDGET.lnk_STPval("level"),code=function(i)sceneTemp.level=i;sceneTemp.target=levels[i]end,hide=function()return sceneTemp.state>0 end}),
WIDGET.newButton({name="reset",x=160,y=100,w=180,h=100,color="lGreen",font=40,code=WIDGET.lnk_pressKey("space")}),
WIDGET.newButton({name="keyboard",x=160,y=210,w=180,h=100,code=function()love.keyboard.setTextInput(true,0,select(2,SCR.xOy:transformPoint(0,500)),1,1)end,hide=not MOBILE}),
WIDGET.newButton({name="back",x=1140,y=640,w=170,h=80,font=40,code=WIDGET.lnk_BACK}),
})

View File

@@ -36,7 +36,7 @@ end
WIDGET.init("main",{
WIDGET.newButton({name="offline", x=150,y=220,w=200,h=140,color="lRed", font=40,code=WIDGET.lnk_goScene("mode")}),
WIDGET.newButton({name="online", x=370,y=220,w=200,h=140,color="lCyan", font=40,code=WIDGET.lnk_goScene(LOGIN and"netgame"or"login")}),
WIDGET.newButton({name="custom", x=590,y=220,w=200,h=140,color="lBlue", font=40,code=WIDGET.lnk_goScene("customGame"),hide=function()return not RANKS.marathon_normal end}),
WIDGET.newButton({name="custom", x=590,y=220,w=200,h=140,color="lBlue", font=40,code=WIDGET.lnk_goScene("customGame")}),
WIDGET.newButton({name="setting", x=150,y=380,w=200,h=140,color="lOrange",font=40,code=WIDGET.lnk_goScene("setting_game")}),
WIDGET.newButton({name="stat", x=370,y=380,w=200,h=140,color="lGreen", font=40,code=WIDGET.lnk_goScene("stat")}),
WIDGET.newButton({name="qplay", x=590,y=380,w=200,h=140,color="white", font=40,code=function()SCN.push()loadGame(STAT.lastPlay,true)end}),

View File

@@ -45,6 +45,19 @@ local S=[=[
移动n格+硬降复合操作键; 手势操作; 特殊控件(例如虚拟摇杆)
task-Z(新AI); 工程编译到字节码; 超60帧
0.12.1: 漏洞修复 Bug Fix
新内容:
新增BGM:sugar fairy(用于马拉松极限)
改动:
手机也可以玩A to Z了
自定义默认开启
两个C2踢墙表调整
代码:
三个音频模块的加载表移至模块外
修复:
C4W报错,场地行颜色不对
部分安卓手机主菜单报错
0.12.0: 全局更新+ Global Update Plus
新内容:
注册测试(不对所有人开放)