任务系统完成,支持导入导出,修复错误(之前的anyN有问题)
This commit is contained in:
@@ -285,36 +285,36 @@ local Widgets={
|
|||||||
},
|
},
|
||||||
custom_mission={
|
custom_mission={
|
||||||
newKey({name="Z1", x=100, y=340, w=90, color="white", font=50,code=pressKey(11)}),
|
newKey({name="Z1", x=100, y=340, w=90, color="white", font=50,code=pressKey(11)}),
|
||||||
newKey({name="S1", x=200, y=340, w=90, color="white", font=50,code=pressKey(12)}),
|
newKey({name="S1", x=200, y=340, w=90, color="white", font=50,code=pressKey(21)}),
|
||||||
newKey({name="J1", x=300, y=340, w=90, color="white", font=50,code=pressKey(13)}),
|
newKey({name="J1", x=300, y=340, w=90, color="white", font=50,code=pressKey(31)}),
|
||||||
newKey({name="L1", x=400, y=340, w=90, color="white", font=50,code=pressKey(14)}),
|
newKey({name="L1", x=400, y=340, w=90, color="white", font=50,code=pressKey(41)}),
|
||||||
newKey({name="T1", x=500, y=340, w=90, color="white", font=50,code=pressKey(15)}),
|
newKey({name="T1", x=500, y=340, w=90, color="white", font=50,code=pressKey(51)}),
|
||||||
newKey({name="O1", x=600, y=340, w=90, color="white", font=50,code=pressKey(16)}),
|
newKey({name="O1", x=600, y=340, w=90, color="white", font=50,code=pressKey(61)}),
|
||||||
newKey({name="I1", x=700, y=340, w=90, color="white", font=50,code=pressKey(17)}),
|
newKey({name="I1", x=700, y=340, w=90, color="white", font=50,code=pressKey(71)}),
|
||||||
|
|
||||||
newKey({name="Z2", x=100, y=440, w=90, color="white", font=50,code=pressKey(21)}),
|
newKey({name="Z2", x=100, y=440, w=90, color="white", font=50,code=pressKey(12)}),
|
||||||
newKey({name="S2", x=200, y=440, w=90, color="white", font=50,code=pressKey(22)}),
|
newKey({name="S2", x=200, y=440, w=90, color="white", font=50,code=pressKey(22)}),
|
||||||
newKey({name="J2", x=300, y=440, w=90, color="white", font=50,code=pressKey(23)}),
|
newKey({name="J2", x=300, y=440, w=90, color="white", font=50,code=pressKey(32)}),
|
||||||
newKey({name="L2", x=400, y=440, w=90, color="white", font=50,code=pressKey(24)}),
|
newKey({name="L2", x=400, y=440, w=90, color="white", font=50,code=pressKey(42)}),
|
||||||
newKey({name="T2", x=500, y=440, w=90, color="white", font=50,code=pressKey(25)}),
|
newKey({name="T2", x=500, y=440, w=90, color="white", font=50,code=pressKey(52)}),
|
||||||
newKey({name="O2", x=600, y=440, w=90, color="white", font=50,code=pressKey(26)}),
|
newKey({name="O2", x=600, y=440, w=90, color="white", font=50,code=pressKey(62)}),
|
||||||
newKey({name="I2", x=700, y=440, w=90, color="white", font=50,code=pressKey(27)}),
|
newKey({name="I2", x=700, y=440, w=90, color="white", font=50,code=pressKey(72)}),
|
||||||
|
|
||||||
newKey({name="Z3", x=100, y=540, w=90, color="white", font=50,code=pressKey(31)}),
|
newKey({name="Z3", x=100, y=540, w=90, color="white", font=50,code=pressKey(13)}),
|
||||||
newKey({name="S3", x=200, y=540, w=90, color="white", font=50,code=pressKey(32)}),
|
newKey({name="S3", x=200, y=540, w=90, color="white", font=50,code=pressKey(23)}),
|
||||||
newKey({name="J3", x=300, y=540, w=90, color="white", font=50,code=pressKey(33)}),
|
newKey({name="J3", x=300, y=540, w=90, color="white", font=50,code=pressKey(33)}),
|
||||||
newKey({name="L3", x=400, y=540, w=90, color="white", font=50,code=pressKey(34)}),
|
newKey({name="L3", x=400, y=540, w=90, color="white", font=50,code=pressKey(43)}),
|
||||||
newKey({name="T3", x=500, y=540, w=90, color="white", font=50,code=pressKey(35)}),
|
newKey({name="T3", x=500, y=540, w=90, color="white", font=50,code=pressKey(53)}),
|
||||||
newKey({name="O3", x=600, y=540, w=90, color="white", font=50,code=pressKey(36)}),
|
newKey({name="O3", x=600, y=540, w=90, color="white", font=50,code=pressKey(63)}),
|
||||||
newKey({name="I3", x=700, y=540, w=90, color="white", font=50,code=pressKey(37)}),
|
newKey({name="I3", x=700, y=540, w=90, color="white", font=50,code=pressKey(73)}),
|
||||||
|
|
||||||
newKey({name="any1", x=100, y=640, w=90, color="white", font=30,code=pressKey(91)}),
|
newKey({name="any1", x=100, y=640, w=90, color="white", font=30,code=pressKey(91)}),
|
||||||
newKey({name="any2", x=200, y=640, w=90, color="white", font=30,code=pressKey(92)}),
|
newKey({name="any2", x=200, y=640, w=90, color="white", font=30,code=pressKey(92)}),
|
||||||
newKey({name="any3", x=300, y=640, w=90, color="white", font=30,code=pressKey(93)}),
|
newKey({name="any3", x=300, y=640, w=90, color="white", font=30,code=pressKey(93)}),
|
||||||
newKey({name="any4", x=400, y=640, w=90, color="white", font=30,code=pressKey(94)}),
|
newKey({name="any4", x=400, y=640, w=90, color="white", font=30,code=pressKey(94)}),
|
||||||
newKey({name="PC", x=500, y=640, w=90, color="white", font=50,code=pressKey(99)}),
|
newKey({name="PC", x=500, y=640, w=90, color="white", font=50,code=pressKey(99)}),
|
||||||
newKey({name="O4", x=600, y=640, w=90, color="white", font=50,code=pressKey(46)}),
|
newKey({name="O4", x=600, y=640, w=90, color="white", font=50,code=pressKey(64)}),
|
||||||
newKey({name="I4", x=700, y=640, w=90, color="white", font=50,code=pressKey(47)}),
|
newKey({name="I4", x=700, y=640, w=90, color="white", font=50,code=pressKey(74)}),
|
||||||
|
|
||||||
newKey({name="_1", x=800, y=540, w=90, color="white", font=50,code=pressKey(1)}),
|
newKey({name="_1", x=800, y=540, w=90, color="white", font=50,code=pressKey(1)}),
|
||||||
newKey({name="_2", x=900, y=540, w=90, color="white", font=50,code=pressKey(2)}),
|
newKey({name="_2", x=900, y=540, w=90, color="white", font=50,code=pressKey(2)}),
|
||||||
|
|||||||
@@ -169,6 +169,37 @@ function pasteSequence(str)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function copyTarget()
|
||||||
|
local str=""
|
||||||
|
local preMission=preMission
|
||||||
|
for i=1,#preMission do
|
||||||
|
str=str..char(preMission[i])
|
||||||
|
end
|
||||||
|
|
||||||
|
return data.encode("string","base64",data.compress("string","deflate",str))
|
||||||
|
end
|
||||||
|
function pasteTarget(str)
|
||||||
|
local _
|
||||||
|
|
||||||
|
--Decode
|
||||||
|
_,str=pcall(data.decode,"string","base64",str)
|
||||||
|
if not _ then return end
|
||||||
|
_,str=pcall(data.decompress,"string","deflate",str)
|
||||||
|
if not _ then return end
|
||||||
|
|
||||||
|
local mission={}
|
||||||
|
for i=1,#str do
|
||||||
|
_=byte(str,i)
|
||||||
|
if missionEnum[_]then
|
||||||
|
ins(mission,_)
|
||||||
|
else
|
||||||
|
return
|
||||||
|
end
|
||||||
|
end
|
||||||
|
preMission=mission
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
function mergeStat(stat,delta)
|
function mergeStat(stat,delta)
|
||||||
for k,v in next,delta do
|
for k,v in next,delta do
|
||||||
if type(v)=="table"then
|
if type(v)=="table"then
|
||||||
|
|||||||
@@ -163,6 +163,22 @@ for i=1,8 do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
missionEnum={
|
||||||
|
_1=01,_2=02,_3=03,_4=04,
|
||||||
|
Z1=11,Z2=12,Z3=13,
|
||||||
|
S1=21,S2=22,S3=23,
|
||||||
|
J1=31,J2=32,J3=33,
|
||||||
|
L1=41,L2=42,L3=43,
|
||||||
|
T1=51,T2=52,T3=53,
|
||||||
|
O1=61,O2=62,O3=63,O4=64,
|
||||||
|
I1=71,I2=72,I3=73,I4=74,
|
||||||
|
A1=91,A2=92,A3=93,A4=94,
|
||||||
|
PC=99,
|
||||||
|
}
|
||||||
|
for k,v in next,missionEnum do
|
||||||
|
missionEnum[v]=k
|
||||||
|
end
|
||||||
|
|
||||||
local function T(s,t)return love.graphics.newText(setFont(s),t)end
|
local function T(s,t)return love.graphics.newText(setFont(s),t)end
|
||||||
drawableText={
|
drawableText={
|
||||||
question=T(100,"?"),right=T(45,"→"),
|
question=T(100,"?"),right=T(45,"→"),
|
||||||
|
|||||||
@@ -2420,11 +2420,11 @@ do--player.drop(P)--Place piece
|
|||||||
success=true
|
success=true
|
||||||
end
|
end
|
||||||
elseif t<90 then
|
elseif t<90 then
|
||||||
if C.row==int(t/10)and C.name==t%10 then
|
if C.row==t%10 and C.name==int(t/10)then
|
||||||
success=true
|
success=true
|
||||||
end
|
end
|
||||||
elseif t<99 then
|
elseif t<99 then
|
||||||
if C.row==int(t/10)then
|
if C.row==t%10 then
|
||||||
success=true
|
success=true
|
||||||
end
|
end
|
||||||
elseif t==99 then
|
elseif t==99 then
|
||||||
@@ -2434,6 +2434,7 @@ do--player.drop(P)--Place piece
|
|||||||
end
|
end
|
||||||
if success then
|
if success then
|
||||||
P.missionProgress=P.missionProgress+1
|
P.missionProgress=P.missionProgress+1
|
||||||
|
SFX.play("reach")
|
||||||
if P.missionProgress==#P.gameEnv.mission then
|
if P.missionProgress==#P.gameEnv.mission then
|
||||||
P:win()
|
P:win()
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1592,28 +1592,7 @@ do--custom_mission
|
|||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
local clear={
|
local missionEnum=missionEnum
|
||||||
Z1=11,Z2=21,Z3=31,
|
|
||||||
S1=12,S2=22,S3=32,
|
|
||||||
J1=13,J2=23,J3=33,
|
|
||||||
L1=14,L2=24,L3=34,
|
|
||||||
T1=15,T2=25,T3=35,
|
|
||||||
O1=16,O2=26,O3=36,O4=46,
|
|
||||||
I1=17,I2=27,I3=37,I4=47,
|
|
||||||
A1=91,A2=92,A3=93,A4=94,
|
|
||||||
_1=01,_2=02,_3=03,_4=04,
|
|
||||||
PC=99,
|
|
||||||
[11]="Z1",[21]="Z2",[31]="Z3",
|
|
||||||
[12]="S1",[22]="S2",[32]="S3",
|
|
||||||
[13]="J1",[23]="J2",[33]="J3",
|
|
||||||
[14]="L1",[24]="L2",[34]="L3",
|
|
||||||
[15]="T1",[25]="T2",[35]="T3",
|
|
||||||
[16]="O1",[26]="O2",[36]="O3",[46]="O4",
|
|
||||||
[17]="I1",[27]="I2",[37]="I3",[47]="I4",
|
|
||||||
[91]="A1",[92]="A2",[93]="A3",[94]="A4",
|
|
||||||
[01]="_1",[02]="_2",[03]="_3",[04]="_4",
|
|
||||||
[99]="PC",
|
|
||||||
}
|
|
||||||
local legalInput={Z=true,S=true,J=true,L=true,T=true,O=true,I=true,A=true,_=true,P=true}
|
local legalInput={Z=true,S=true,J=true,L=true,T=true,O=true,I=true,A=true,_=true,P=true}
|
||||||
function keyDown.custom_mission(key)
|
function keyDown.custom_mission(key)
|
||||||
local S=sceneTemp
|
local S=sceneTemp
|
||||||
@@ -1675,9 +1654,9 @@ do--custom_mission
|
|||||||
|
|
||||||
local input=S.input
|
local input=S.input
|
||||||
input=input..key
|
input=input..key
|
||||||
if clear[input]then
|
if missionEnum[input]then
|
||||||
input=""
|
input=""
|
||||||
ins(preMission,clear[input])
|
ins(preMission,missionEnum[input])
|
||||||
elseif #input>1 or not legalInput[input]then
|
elseif #input>1 or not legalInput[input]then
|
||||||
input=""
|
input=""
|
||||||
end
|
end
|
||||||
@@ -1712,7 +1691,7 @@ do--custom_mission
|
|||||||
local x,y=100,136--Next block pos
|
local x,y=100,136--Next block pos
|
||||||
local cx,cy=100,136--Cursor-center pos
|
local cx,cy=100,136--Cursor-center pos
|
||||||
for i=1,#preMission do
|
for i=1,#preMission do
|
||||||
gc.print(clear[preMission[i]],x,y-25)
|
gc.print(missionEnum[preMission[i]],x,y-25)
|
||||||
x=x+55
|
x=x+55
|
||||||
if x>1160 then
|
if x>1160 then
|
||||||
x,y=100,y+50
|
x,y=100,y+50
|
||||||
|
|||||||
Reference in New Issue
Block a user