diff --git a/LANG/lang_en.lua b/LANG/lang_en.lua index 1b7894b8..f0c45666 100644 --- a/LANG/lang_en.lua +++ b/LANG/lang_en.lua @@ -353,7 +353,7 @@ return{ title="Custom Game", subTitle="Field", - b12="[ ]", + b17="[ ]", any="Erase", space="×", copy="Copy", diff --git a/LANG/lang_symbol.lua b/LANG/lang_symbol.lua index 1e31c308..6d9263ca 100644 --- a/LANG/lang_symbol.lua +++ b/LANG/lang_symbol.lua @@ -353,7 +353,7 @@ return{ title="!@#$%^&*", subTitle="!@#$%^&* [##]", - b12="[ ]", + b17="[ ]", any="_", space="×", copy="→__", diff --git a/LANG/lang_yygq.lua b/LANG/lang_yygq.lua index 89116f5a..1fd2ceec 100644 --- a/LANG/lang_yygq.lua +++ b/LANG/lang_yygq.lua @@ -306,7 +306,7 @@ return{ title="自定义游戏", subTitle="场地", - b12="[ ]", + b17="[ ]", any="不定", space="×", copy="复制", diff --git a/LANG/lang_zh.lua b/LANG/lang_zh.lua index 64d6f6a4..2102e698 100644 --- a/LANG/lang_zh.lua +++ b/LANG/lang_zh.lua @@ -355,7 +355,7 @@ return{ title="自定义游戏", subTitle="场地", - b12="[ ]", + b17="[ ]", any="不定", space="×", copy="复制", diff --git a/LANG/lang_zh2.lua b/LANG/lang_zh2.lua index f707a005..e47c7768 100644 --- a/LANG/lang_zh2.lua +++ b/LANG/lang_zh2.lua @@ -291,7 +291,7 @@ return{ title="自定义游戏", subTitle="场地", - b12="[ ]", + b17="[ ]", any="不定", space="×", copy="复制", diff --git a/Zframework/color.lua b/Zframework/color.lua index 25d4ca76..9fff7dad 100644 --- a/Zframework/color.lua +++ b/Zframework/color.lua @@ -60,8 +60,8 @@ end function color.rainbow(phase) return sin(phase)*.4+.6, - sin(phase+6.28/3)*.4+.6, - sin(phase-6.28/3)*.4+.6 + sin(phase+2.0944)*.4+.6, + sin(phase-2.0944)*.4+.6 end return color \ No newline at end of file diff --git a/Zframework/widgetList.lua b/Zframework/widgetList.lua index b2a49502..8819883a 100644 --- a/Zframework/widgetList.lua +++ b/Zframework/widgetList.lua @@ -328,7 +328,7 @@ local Widgets={ newButton({name="skinR", x=200,y=640,w=220,h=80,color="lPurple",font=35, code=function() - SETTING.skin={1,5,8,2,10,3,7,1,5,5,1,8,2,10,3,7,10,7,8,2,8,2,1,5,3} + SETTING.skin={1,7,11,3,14,4,9,1,7,1,7,11,3,14,4,9,14,9,11,3,11,3,1,7,4} SFX.play("rotate") end}), newButton({name="faceR", x=480,y=640,w=220,h=80,color="lRed",font=35, @@ -495,35 +495,43 @@ local Widgets={ newText({name="title", x=1020,y=5,font=70,align="R"}), newText({name="subTitle", x=1030,y=50,font=35,align="L",color="grey"}), - newButton({name="b1", x=500+65*1, y=200, w=58, color="red", code=setPen(1)}),--B1 - newButton({name="b2", x=500+65*2, y=200, w=58, color="orange", code=setPen(2)}),--B2 - newButton({name="b3", x=500+65*3, y=200, w=58, color="yellow", code=setPen(3)}),--B3 - newButton({name="b4", x=500+65*4, y=200, w=58, color="grass", code=setPen(4)}),--B4 - newButton({name="b5", x=500+65*5, y=200, w=58, color="green", code=setPen(5)}),--B5 - newButton({name="b6", x=500+65*6, y=200, w=58, color="water", code=setPen(6)}),--B6 - newButton({name="b7", x=500+65*7, y=200, w=58, color="cyan", code=setPen(7)}),--B7 - newButton({name="b8", x=500+65*8, y=200, w=58, color="blue", code=setPen(8)}),--B8 - newButton({name="b9", x=500+65*9, y=200, w=58, color="purple", code=setPen(9)}),--B9 - newButton({name="b10", x=500+65*10,y=200, w=58, color="magenta",code=setPen(10)}),--B10 - newButton({name="b11", x=500+65*11,y=200, w=58, color="pink", code=setPen(11)}),--B11 + newButton({name="b1", x=580, y=130,w=75,color={color.rainbow( 1.471)},code=setPen(1)}),--B1 + newButton({name="b2", x=660, y=130,w=75,color={color.rainbow( 1.078)},code=setPen(2)}),--B2 + newButton({name="b3", x=740, y=130,w=75,color={color.rainbow( 0.685)},code=setPen(3)}),--B3 + newButton({name="b4", x=820, y=130,w=75,color={color.rainbow( 0.293)},code=setPen(4)}),--B4 + newButton({name="b5", x=900, y=130,w=75,color={color.rainbow(-0.100)},code=setPen(5)}),--B5 + newButton({name="b6", x=980, y=130,w=75,color={color.rainbow(-0.493)},code=setPen(6)}),--B6 + newButton({name="b7", x=1060, y=130,w=75,color={color.rainbow(-0.885)},code=setPen(7)}),--B7 + newButton({name="b8", x=1140, y=130,w=75,color={color.rainbow(-1.278)},code=setPen(8)}),--B8 - newButton({name="b12", x=500+65*1, y=270, w=58, color="dGrey", code=setPen(12)}),--Bone - newButton({name="b13", x=500+65*2, y=270, w=58, color="grey", code=setPen(13)}),--GB1 - newButton({name="b14", x=500+65*3, y=270, w=58, color="lGrey", code=setPen(14)}),--GB2 - newButton({name="b15", x=500+65*4, y=270, w=58, color="dPurple",code=setPen(15)}),--GB3 - newButton({name="b16", x=500+65*5, y=270, w=58, color="dRed", code=setPen(16)}),--GB4 - newButton({name="b17", x=500+65*6, y=270, w=58, color="dGreen", code=setPen(17)}),--GB5 + newButton({name="b9", x=580, y=210,w=75,color={color.rainbow(-1.671)},code=setPen(9)}),--B9 + newButton({name="b10", x=660, y=210,w=75,color={color.rainbow(-2.063)},code=setPen(10)}),--B10 + newButton({name="b11", x=740, y=210,w=75,color={color.rainbow(-2.456)},code=setPen(11)}),--B11 + newButton({name="b12", x=820, y=210,w=75,color={color.rainbow(-2.849)},code=setPen(12)}),--B12 + newButton({name="b13", x=900, y=210,w=75,color={color.rainbow(-3.242)},code=setPen(13)}),--B13 + newButton({name="b14", x=980, y=210,w=75,color={color.rainbow(-3.634)},code=setPen(14)}),--B14 + newButton({name="b15", x=1060, y=210,w=75,color={color.rainbow(-4.027)},code=setPen(15)}),--B15 + newButton({name="b16", x=1140, y=210,w=75,color={color.rainbow(-4.412)},code=setPen(16)}),--B16 - newButton({name="any", x=600, y=380, w=120, color="lGrey", font=40,code=setPen(0)}), - newButton({name="space", x=730, y=380, w=120, color="grey", font=65,code=setPen(-1)}), - newButton({name="copy", x=920, y=380, w=120, color="lRed", font=35,code=pressKey("cC")}), - newButton({name="paste", x=1060, y=380, w=120, color="lBlue", font=35,code=pressKey("cV")}), - newButton({name="clear", x=1200, y=380, w=120, color="white", font=40,code=pressKey("delete")}), - newButton({name="pushLine", x=1060, y=520, w=120, color="lYellow",font=20,code=pressKey("k")}), - newButton({name="delLine", x=1200, y=520, w=120, color="lYellow",font=20,code=pressKey("l")}), - newSwitch({name="demo", x=755, y=640, disp=STPval("demo"),code=STPrev("demo")}), + newButton({name="b17", x=580, y=290,w=75,color="dGrey", code=setPen(17)}),--BONE + newButton({name="b18", x=660, y=290,w=75,color="black", code=setPen(18)}),--HIDE + newButton({name="b19", x=740, y=290,w=75,color="lYellow", code=setPen(19)}),--BOMB + newButton({name="b20", x=820, y=290,w=75,color="grey", code=setPen(20)}),--GB1 + newButton({name="b21", x=900, y=290,w=75,color="lGrey", code=setPen(21)}),--GB2 + newButton({name="b22", x=980, y=290,w=75,color="dPurple", code=setPen(22)}),--GB3 + newButton({name="b23", x=1060, y=290,w=75,color="dRed", code=setPen(23)}),--GB4 + newButton({name="b24", x=1140, y=290,w=75,color="dGreen", code=setPen(24)}),--GB5 - newButton({name="back", x=1140, y=640, w=170,h=80, font=40,code=BACK}), + newButton({name="any", x=600, y=400, w=120, color="lGrey", font=40,code=setPen(0)}), + newButton({name="space", x=730, y=400, w=120, color="grey", font=65,code=setPen(-1)}), + newButton({name="copy", x=905, y=400, w=120, color="lRed", font=35,code=pressKey("cC")}), + newButton({name="paste", x=1035, y=400, w=120, color="lBlue", font=35,code=pressKey("cV")}), + newButton({name="clear", x=1165, y=400, w=120, color="white", font=40,code=pressKey("delete")}), + newButton({name="pushLine", x=1035, y=530, w=120, color="lYellow",font=20,code=pressKey("k")}), + newButton({name="delLine", x=1165, y=530, w=120, color="lYellow",font=20,code=pressKey("l")}), + newSwitch({name="demo", x=755, y=640, disp=STPval("demo"),code=STPrev("demo")}), + + newButton({name="back", x=1140, y=640, w=170,h=80,font=40,code=BACK}), }, custom_sequence={ newText({name="title", x=520,y=5,font=70,align="R"}), diff --git a/main.lua b/main.lua index 4f8e257c..4eb1d108 100644 --- a/main.lua +++ b/main.lua @@ -211,6 +211,7 @@ do if S.finesseRate<.5*S.piece then S.finesseRate=10*S.finesseRate end + SETTING.skin={1,7,11,3,14,4,9,1,7,1,7,11,3,14,4,9,14,9,11,3,11,3,1,7,4} FILE.saveData() FILE.saveSetting() end diff --git a/parts/default_data.lua b/parts/default_data.lua index 413243c4..567e8215 100644 --- a/parts/default_data.lua +++ b/parts/default_data.lua @@ -13,7 +13,7 @@ SETTING={ appLock=false, lang=1, skinSet=1, - skin={1,5,8,2,10,3,7,1,5,1,5,8,2,10,3,7,10,7,8,2,8,2,1,5,3}, + skin={1,7,11,3,14,4,9,1,7,1,7,11,3,14,4,9,14,9,11,3,11,3,1,7,4}, face={}, --Graphic diff --git a/parts/gametoolfunc.lua b/parts/gametoolfunc.lua index 68a12e8a..098aa0b3 100644 --- a/parts/gametoolfunc.lua +++ b/parts/gametoolfunc.lua @@ -189,7 +189,7 @@ function pasteBoard(str) end __=_%32-1--Block id - if __>17 then return end--Illegal blockid + if __>26 then return end--Illegal blockid _=int(_/32)--Mode id FIELD[fY][fX]=__ diff --git a/parts/player.lua b/parts/player.lua index 1c2155fa..5435f732 100644 --- a/parts/player.lua +++ b/parts/player.lua @@ -1579,7 +1579,7 @@ function player.garbageRelease(P) while true do local A=P.atkBuffer[n] if A and A.countdown<=0 and not A.sent then - P:garbageRise(12+A.lv,A.amount,A.pos) + P:garbageRise(19+A.lv,A.amount,A.pos) P.atkBuffer.sum=P.atkBuffer.sum-A.amount A.sent,A.time=true,0 P.stat.pend=P.stat.pend+A.amount @@ -1936,7 +1936,7 @@ end function player.getNext(P,n) local E=P.gameEnv - ins(P.next,{bk=blocks[n][E.face[n]],id=n,color=E.bone and 12 or E.skin[n],name=n}) + ins(P.next,{bk=blocks[n][E.face[n]],id=n,color=E.bone and 17 or E.skin[n],name=n}) end function player.popNext(P)--Pop next queue to hand P.holded=false @@ -2016,14 +2016,14 @@ do--player.drop(P)--Place piece local b2bATK={3,5,8,12,18} local clearSCR={80,200,400} local spinSCR={--[blockName][row] - {200,750,1300},--Z - {200,750,1300},--S - {220,700,1300},--L - {220,700,1300},--J - {250,800,1400},--T - {260,900,1700,4000},--O - {300,1200,1700,4000},--I - {220,800,2000,3000,8000},--Else + {200,750,1300,2000},--Z + {200,750,1300,2000},--S + {220,700,1300,2000},--L + {220,700,1300,2000},--J + {250,800,1400,2000},--T + {260,900,1700,4000,6000},--O + {300,1200,1700,4000,6000},--I + {220,800,2000,3000,8000,26000},--Else } --B2BMUL:1.2/2.0 --Techrash:1K;MUL:1.3/1.8 @@ -2100,7 +2100,21 @@ do--player.drop(P)--Place piece --Clear list of cleared-rows if P.clearedRow[1]then P.clearedRow={}end - --Check rows to be cleared + --Check bomb garbage + if CY>1 then + local L=P.field[CY-1] + local l=CB.bk[1] + for i=1,P.c do + if l[i]and L[CX+i-1]==19 then + cc=1--cc=cc+1 + P.clearingRow[1]=CY-1--P.clearingRow[cc]=CY-1 + P.clearedRow[1]=CY-1--P.clearedRow[cc]=CY-1 + break + end + end + end + + --Check rows filled for i=0,P.r-1 do local h=CY+i if P:ckfull(h)then diff --git a/parts/scenes.lua b/parts/scenes.lua index d77edfff..08c5f4e7 100644 --- a/parts/scenes.lua +++ b/parts/scenes.lua @@ -1444,7 +1444,7 @@ do--setting_game function Pnt.setting_game() gc.setColor(1,1,1) - gc.draw(blockSkin[int(Timer()*2)%11+1],590,540,Timer()%6.28319,2,nil,15,15) + gc.draw(blockSkin[int(Timer()*2)%16+1],590,540,Timer()%6.28319,2,nil,15,15) end end do--setting_video @@ -1721,8 +1721,9 @@ do--setting_skin end end gc.circle("fill",-10+140*N,340,sin(Timer()*10)+5) end - for i=1,6 do - gc.draw(blockSkin[11+i],570+60*i,610,nil,2) + gc.draw(blockSkin[17],930,610,nil,2) + for i=1,5 do + gc.draw(blockSkin[19+i],570+60*i,610,nil,2) end end end @@ -2201,7 +2202,7 @@ do--custom_field elseif key=="j"then sceneTemp.demo=not sceneTemp.demo elseif key=="k"then - ins(FIELD,1,{14,14,14,14,14,14,14,14,14,14}) + ins(FIELD,1,{21,21,21,21,21,21,21,21,21,21}) FIELD[21]=nil SFX.play("blip") elseif key=="l"then @@ -2278,27 +2279,31 @@ do--custom_field if pen>0 then gc.setLineWidth(13) gc.setColor(SKIN.libColor[pen]) - gc.rectangle("line",565,460,70,70) + gc.rectangle("line",565,500,70,70) elseif pen==-1 then gc.setLineWidth(5) gc.setColor(.9,.9,.9) - gc.line(575,470,625,520) - gc.line(575,520,625,470) + gc.line(575,510,625,560) + gc.line(575,560,625,510) end --Confirm reset if S.sure>0 then gc.setColor(1,1,1,S.sure*.02) - gc.draw(drawableText.question,1180,290) + gc.draw(drawableText.question,1180,340) end --Block name - setFont(40) + setFont(55) + gc.setColor(1,1,1) local _ for i=1,7 do _=SETTING.skin[i] - gc.setColor(SKIN.libColor[_]) - mStr(text.block[i],500+65*_,115) + if _<=8 then + mStr(text.block[i],500+80*_,90) + else + mStr(text.block[i],500+80*(_-8),170) + end end end end diff --git a/parts/skin.lua b/parts/skin.lua index 8abc9af4..9fefa0b1 100644 --- a/parts/skin.lua +++ b/parts/skin.lua @@ -33,18 +33,25 @@ local SKIN={} SKIN.lib={} SKIN.libMini={} SKIN.libColor={ - color.red, - color.orange, - color.yellow, - color.grass, - color.green, - color.water, - color.cyan, - color.blue, - color.purple, - color.magenta, - color.pink, + {color.rainbow( 1.471)}, + {color.rainbow( 1.078)}, + {color.rainbow( 0.685)}, + {color.rainbow( 0.293)}, + {color.rainbow(-0.100)}, + {color.rainbow(-0.493)}, + {color.rainbow(-0.885)}, + {color.rainbow(-1.278)}, + {color.rainbow(-1.671)}, + {color.rainbow(-2.063)}, + {color.rainbow(-2.456)}, + {color.rainbow(-2.849)}, + {color.rainbow(-3.242)}, + {color.rainbow(-3.634)}, + {color.rainbow(-4.027)}, + {color.rainbow(-4.412)}, color.dGrey, + color.black, + color.lYellow, color.grey, color.lGrey, color.dPurple, @@ -59,7 +66,7 @@ function SKIN.loadOne(_) gc.origin() gc.setDefaultFilter("nearest","nearest") gc.setColor(1,1,1) - SKIN.lib[_],SKIN.libMini[_]={},{}--30/6 + SKIN.lib[_],SKIN.libMini[_]={},{} local N="/image/skin/"..list[_]..".png" local I if love.filesystem.getInfo(N)then @@ -68,19 +75,14 @@ function SKIN.loadOne(_) I=gc.newImage("/image/skin/"..list[1]..".png") LOG.print("No skin file: "..list[_],"warn") end - for j=1,11 do - SKIN.lib[_][j]=C(30,30) - gc.draw(I,30-30*j,0) + for i=0,2 do + for j=1,8 do + SKIN.lib[_][8*i+j]=C(30,30) + gc.draw(I,30-30*j,-30*i) - SKIN.libMini[_][j]=C(6,6) - gc.draw(I,6-6*j,0,nil,.2) - end - for j=1,6 do - SKIN.lib[_][11+j]=C(30,30) - gc.draw(I,30-30*j,-30) - - SKIN.libMini[_][11+j]=C(6,6) - gc.draw(I,6-6*j,-6,nil,.2) + SKIN.libMini[_][j]=C(6,6) + gc.draw(I,6-6*j,-6*i,nil,.2) + end end I:release() gc.setCanvas() @@ -107,11 +109,11 @@ function SKIN.nextSet()--Next skin_set end function SKIN.prev(i)--Prev skin for [i] local _=SETTING.skin - _[i]=(_[i]-2)%11+1 + _[i]=(_[i]-2)%16+1 end function SKIN.next(i)--Next skin for [i] local _=SETTING.skin - _[i]=_[i]%11+1 + _[i]=_[i]%16+1 end function SKIN.rotate(i)--Change direction of [i] SETTING.face[i]=(SETTING.face[i]+1)%4