Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7c797bf14 |
9
ai.lua
9
ai.lua
@@ -112,7 +112,7 @@ function getScore(field,bn,cb,cx,cy)
|
|||||||
ins(freeRow,height)
|
ins(freeRow,height)
|
||||||
score=
|
score=
|
||||||
#field*20
|
#field*20
|
||||||
-cy*40
|
-cy*35
|
||||||
-#cb*25
|
-#cb*25
|
||||||
+clearScore[clear]*(8+#field)
|
+clearScore[clear]*(8+#field)
|
||||||
-hole*50
|
-hole*50
|
||||||
@@ -167,4 +167,11 @@ function AI_getControls(ctrl)
|
|||||||
ins(ctrl,l[i])
|
ins(ctrl,l[i])
|
||||||
end
|
end
|
||||||
ins(ctrl,6)
|
ins(ctrl,6)
|
||||||
|
|
||||||
|
if rnd()<.1 then
|
||||||
|
if P.atkMode~=4 and P==mostDangerous then
|
||||||
|
ins(P.ai.controls,9)
|
||||||
|
--Smarter AI???
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
@@ -530,7 +530,7 @@ function love.run()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
tm.sleep(.2)
|
tm.sleep(.5)
|
||||||
if wd.hasFocus()then
|
if wd.hasFocus()then
|
||||||
tm.step()
|
tm.step()
|
||||||
focus=true
|
focus=true
|
||||||
|
|||||||
8
conf.lua
8
conf.lua
@@ -1,7 +1,7 @@
|
|||||||
function love.conf(t)
|
function love.conf(t)
|
||||||
local X=nil
|
local X=nil
|
||||||
t.identity="Techmino"--The name of the save directory (string)
|
t.identity="Techmino"--Save directory name
|
||||||
t.appendidentity=X--Search files in source directory before save directory (boolean)
|
t.appendidentity=X--If search files in source before save directory
|
||||||
t.version="11.1"
|
t.version="11.1"
|
||||||
t.console=X
|
t.console=X
|
||||||
t.accelerometerjoystick=X--If exposing accelerometer on iOS and Android as a Joystick
|
t.accelerometerjoystick=X--If exposing accelerometer on iOS and Android as a Joystick
|
||||||
@@ -9,7 +9,7 @@ function love.conf(t)
|
|||||||
t.audio.mixwithsystem=true--Switch on to keep sysBGM
|
t.audio.mixwithsystem=true--Switch on to keep sysBGM
|
||||||
|
|
||||||
local W=t.window
|
local W=t.window
|
||||||
W.title="Techmino V0.7.4"
|
W.title="Techmino V0.7.5"
|
||||||
W.icon="/image/icon.png"
|
W.icon="/image/icon.png"
|
||||||
W.width,W.height=1280,720
|
W.width,W.height=1280,720
|
||||||
W.borderless=X
|
W.borderless=X
|
||||||
@@ -20,7 +20,7 @@ function love.conf(t)
|
|||||||
W.vsync=X--0 to set ∞fps
|
W.vsync=X--0 to set ∞fps
|
||||||
W.msaa=X--The number of samples to use with multi-sampled antialiasing (number)
|
W.msaa=X--The number of samples to use with multi-sampled antialiasing (number)
|
||||||
W.depth=X--Bits per sample in the depth buffer
|
W.depth=X--Bits per sample in the depth buffer
|
||||||
W.stencil=8--The number of bits per sample in the stencil buffer
|
W.stencil=1--The number of bits per sample in the stencil buffer
|
||||||
W.display=1--Monitor ID
|
W.display=1--Monitor ID
|
||||||
W.highdpi=X--Enable high-dpi mode for the window on a Retina display (boolean)
|
W.highdpi=X--Enable high-dpi mode for the window on a Retina display (boolean)
|
||||||
W.x,W.y=nil
|
W.x,W.y=nil
|
||||||
|
|||||||
128
gamefunc.lua
128
gamefunc.lua
@@ -23,8 +23,7 @@ function resetGameData()
|
|||||||
until P.atking~=P
|
until P.atking~=P
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
mostBadge=nil
|
mostBadge,mostDangerous,secBadge,secDangerous=nil
|
||||||
mostDangerous=nil
|
|
||||||
end
|
end
|
||||||
for i=1,#virtualkey do
|
for i=1,#virtualkey do
|
||||||
virtualkey[i].press=false
|
virtualkey[i].press=false
|
||||||
@@ -102,7 +101,13 @@ function createPlayer(id,x,y,size,AIspeed,data)
|
|||||||
P.dropDelay,P.lockDelay=P.gameEnv.drop,P.gameEnv.lock
|
P.dropDelay,P.lockDelay=P.gameEnv.drop,P.gameEnv.lock
|
||||||
P.freshTime=0
|
P.freshTime=0
|
||||||
P.lastSpin=false
|
P.lastSpin=false
|
||||||
if P.gameEnv.sequence<5 then
|
if P.gameEnv.sequence==3 then
|
||||||
|
for i=1,6 do
|
||||||
|
local r=rnd(7)
|
||||||
|
P.nxt[i]=r
|
||||||
|
P.nb[i]=blocks[r][0]
|
||||||
|
end
|
||||||
|
elseif P.gameEnv.sequence<5 then
|
||||||
local bag1={1,2,3,4,5,6,7}
|
local bag1={1,2,3,4,5,6,7}
|
||||||
for i=1,7 do
|
for i=1,7 do
|
||||||
P.nxt[i]=rem(bag1,rnd(#bag1))
|
P.nxt[i]=rem(bag1,rnd(#bag1))
|
||||||
@@ -166,28 +171,37 @@ function throwBadge(S,R,amount)--Player id
|
|||||||
end
|
end
|
||||||
ins(FX.badge,{x1,y1,x2,y2,t=0,size=(10+min(amount,10))*.1})
|
ins(FX.badge,{x1,y1,x2,y2,t=0,size=(10+min(amount,10))*.1})
|
||||||
end
|
end
|
||||||
|
function randomTarget(p)
|
||||||
|
if #players.alive>1 then
|
||||||
|
local r
|
||||||
|
repeat
|
||||||
|
r=players.alive[rnd(#players.alive)]
|
||||||
|
until r~=p
|
||||||
|
return r
|
||||||
|
end
|
||||||
|
end
|
||||||
function freshRoyaleTarget()
|
function freshRoyaleTarget()
|
||||||
local b,sec=0
|
mostBadge,secBadge,mostDangerous,secDangerous=nil
|
||||||
|
local h,b=0,0
|
||||||
for i=1,#players.alive do
|
for i=1,#players.alive do
|
||||||
if players.alive[i].badge>b then
|
if players.alive[i].badge>=h then
|
||||||
mostBadge,secBadge=players.alive[i],mostBadge
|
mostBadge,secBadge=players.alive[i],mostBadge
|
||||||
b=players[i].badge
|
h=players[i].badge
|
||||||
|
end
|
||||||
|
if #players.alive[i].field>=b then
|
||||||
|
mostDangerous,secDangerous=players.alive[i],mostDangerous
|
||||||
|
b=#players[i].field
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
for i=1,#players.alive do
|
for i=1,#players.alive do
|
||||||
if P.atkMode==2 then
|
local P=players.alive[i]
|
||||||
|
if P.atkMode==1 then
|
||||||
|
if not P.atking then
|
||||||
|
P.atking=randomTarget(P)
|
||||||
|
end
|
||||||
|
elseif P.atkMode==2 then
|
||||||
P.atking=P~=mostBadge and mostBadge or secBadge
|
P.atking=P~=mostBadge and mostBadge or secBadge
|
||||||
end
|
elseif P.atkMode==3 then
|
||||||
end
|
|
||||||
h,sec=0
|
|
||||||
for i=1,#players.alive do
|
|
||||||
if #players.alive[i].field>h then
|
|
||||||
mostDangerous,secDangerous=players.alive[i],mostBadge
|
|
||||||
h=#players[i].field
|
|
||||||
end
|
|
||||||
end
|
|
||||||
for i=1,#players.alive do
|
|
||||||
if P.atkMode==3 then
|
|
||||||
P.atking=P~=mostDangerous and mostDangerous or secDangerous
|
P.atking=P~=mostDangerous and mostDangerous or secDangerous
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -268,7 +282,8 @@ function resetblock()
|
|||||||
freshgho()
|
freshgho()
|
||||||
if P.keyPressing[6]then act.hardDrop()P.keyPressing[6]=false end
|
if P.keyPressing[6]then act.hardDrop()P.keyPressing[6]=false end
|
||||||
end
|
end
|
||||||
function pressKey(i,P)
|
function pressKey(i,p)
|
||||||
|
P=p
|
||||||
P.keyPressing[i]=true
|
P.keyPressing[i]=true
|
||||||
if i==10 then
|
if i==10 then
|
||||||
act.restart()
|
act.restart()
|
||||||
@@ -276,10 +291,23 @@ function pressKey(i,P)
|
|||||||
if P.control and P.waiting<=0 then
|
if P.control and P.waiting<=0 then
|
||||||
act[actName[i]]()
|
act[actName[i]]()
|
||||||
if i>2 and i<7 then P.keyPressing[i]=false end
|
if i>2 and i<7 then P.keyPressing[i]=false end
|
||||||
elseif i==1 then
|
elseif P.keyPressing[9]then
|
||||||
P.moving=-1
|
if i==1 then
|
||||||
elseif i==2 then
|
P.atkMode=1
|
||||||
P.moving=1
|
P.atking=randomTarget(P)
|
||||||
|
elseif i==2 then
|
||||||
|
P.atkMode=2
|
||||||
|
elseif i==6 then
|
||||||
|
P.atkMode=3
|
||||||
|
elseif i==7 then
|
||||||
|
P.atkMode=4
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if i==1 then
|
||||||
|
P.moving=-1
|
||||||
|
elseif i==2 then
|
||||||
|
P.moving=1
|
||||||
|
end
|
||||||
end
|
end
|
||||||
ins(P.keyTime,1,frame)rem(P.keyTime,11)
|
ins(P.keyTime,1,frame)rem(P.keyTime,11)
|
||||||
P.cstat.key=P.cstat.key+1
|
P.cstat.key=P.cstat.key+1
|
||||||
@@ -287,8 +315,8 @@ function pressKey(i,P)
|
|||||||
end
|
end
|
||||||
--ins(rec,{i,frame})
|
--ins(rec,{i,frame})
|
||||||
end
|
end
|
||||||
function releaseKey(i,player)
|
function releaseKey(i,p)
|
||||||
(player or players[1]).keyPressing[i]=false
|
p.keyPressing[i]=false
|
||||||
-- if playmode=="recording"then ins(rec,{-i,frame})end
|
-- if playmode=="recording"then ins(rec,{-i,frame})end
|
||||||
end
|
end
|
||||||
function spin(d,ifpre)
|
function spin(d,ifpre)
|
||||||
@@ -487,8 +515,8 @@ function drop()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
if atker>1 then
|
if atker>1 then
|
||||||
csend=csend+ceil(atker*.5)
|
csend=csend+reAtk[atker]
|
||||||
exblock=exblock+int(atker*.5)
|
exblock=exblock+reDef[atker]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -503,6 +531,12 @@ function drop()
|
|||||||
if P.id==1 then stat.atk=stat.atk+csend end
|
if P.id==1 then stat.atk=stat.atk+csend end
|
||||||
--ATK statistics
|
--ATK statistics
|
||||||
|
|
||||||
|
if csend>0 then
|
||||||
|
showText(csend,"zoomout",25,70)
|
||||||
|
if exblock>0 then
|
||||||
|
showText(exblock,"zoomout",10,70)
|
||||||
|
end
|
||||||
|
end
|
||||||
while csend>0 and P.atkBuffer[1]do
|
while csend>0 and P.atkBuffer[1]do
|
||||||
if exblock>0 then
|
if exblock>0 then
|
||||||
exblock=exblock-1
|
exblock=exblock-1
|
||||||
@@ -519,34 +553,23 @@ function drop()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
if csend>0 then
|
if csend>0 then
|
||||||
showText(csend,"zoomout",25,70)
|
|
||||||
if modeEnv.royaleMode then
|
if modeEnv.royaleMode then
|
||||||
if #players.alive>1 then
|
if P.atkMode==4 then
|
||||||
if P.atkMode==4 then
|
local f
|
||||||
for i=1,#players.alive do
|
for i=1,#players.alive do
|
||||||
if players.alive[i].atking==P then
|
if players.alive[i].atking==P then
|
||||||
garbageSend(P,players.alive[i],csend,sendTime)
|
garbageSend(P,players.alive[i],csend,sendTime)
|
||||||
end
|
f=true
|
||||||
end
|
|
||||||
else
|
|
||||||
if P.atkMode==1 and rnd()<.2 or not P.atking then
|
|
||||||
local r
|
|
||||||
repeat
|
|
||||||
r=players.alive[rnd(#players.alive)]
|
|
||||||
until r~=P
|
|
||||||
P.atking=r
|
|
||||||
end
|
|
||||||
if P.atking then
|
|
||||||
garbageSend(P,P.atking,csend,sendTime)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
if not f then
|
||||||
|
garbageSend(P,P.atking or randomTarget(P),csend,sendTime)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
garbageSend(P,P.atking or randomTarget(P),csend,sendTime)
|
||||||
end
|
end
|
||||||
elseif #players.alive>1 then
|
elseif #players.alive>1 then
|
||||||
local r
|
garbageSend(P,randomTarget(P),csend,sendTime)
|
||||||
repeat
|
|
||||||
r=players.alive[rnd(#players.alive)]
|
|
||||||
until r~=P
|
|
||||||
garbageSend(P,r,csend,sendTime)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
elseif cc==0 then
|
elseif cc==0 then
|
||||||
@@ -630,7 +653,7 @@ act={
|
|||||||
if P.keyPressing[9]then
|
if P.keyPressing[9]then
|
||||||
if P.atkMode~=2 then
|
if P.atkMode~=2 then
|
||||||
P.atkMode=2
|
P.atkMode=2
|
||||||
P.atking=mostBadge
|
P.atking=P~=mostBadge and mostBadge or secBadge
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if not auto then
|
if not auto then
|
||||||
@@ -652,7 +675,7 @@ act={
|
|||||||
if P.keyPressing[9]then
|
if P.keyPressing[9]then
|
||||||
if P.atkMode~=3 then
|
if P.atkMode~=3 then
|
||||||
P.atkMode=3
|
P.atkMode=3
|
||||||
P.atking=mostDangerous
|
P.atking=P~=mostDangerous and mostDangerous or secDangerous
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if P.waiting<=0 then
|
if P.waiting<=0 then
|
||||||
@@ -695,6 +718,7 @@ act={
|
|||||||
end,
|
end,
|
||||||
restart=function()
|
restart=function()
|
||||||
resetGameData()
|
resetGameData()
|
||||||
|
frame=90
|
||||||
end,
|
end,
|
||||||
insDown=function()if P.cy~=P.y_img then P.cy,P.lockDelay,P.spinLast=P.y_img,P.gameEnv.lock,false end end,
|
insDown=function()if P.cy~=P.y_img then P.cy,P.lockDelay,P.spinLast=P.y_img,P.gameEnv.lock,false end end,
|
||||||
insLeft=function()
|
insLeft=function()
|
||||||
|
|||||||
5
list.lua
5
list.lua
@@ -246,10 +246,11 @@ testScore={[0]=0,[-1]=1,[-2]=0,[-3]=1,2,2,2}
|
|||||||
spin_n={"spin_1","spin_2","spin_3"}
|
spin_n={"spin_1","spin_2","spin_3"}
|
||||||
clear_n={"clear_1","clear_2","clear_3","clear_4"}
|
clear_n={"clear_1","clear_2","clear_3","clear_4"}
|
||||||
ren_n={"ren_1","ren_2","ren_3","ren_4","ren_5","ren_6","ren_7","ren_8","ren_9","ren_10","ren_11"}
|
ren_n={"ren_1","ren_2","ren_3","ren_4","ren_5","ren_6","ren_7","ren_8","ren_9","ren_10","ren_11"}
|
||||||
atkModeName={"Random","Badges","K.O.s","Attackers"}
|
atkModeName={"Random","Badges","K.O.s","Counters"}
|
||||||
up0to4={[0]="000%UP","025%UP","050%UP","075%UP","100%UP",}
|
up0to4={[0]="000%UP","025%UP","050%UP","075%UP","100%UP",}
|
||||||
percent0to5={[0]="0%","20%","40%","60%","80%","100%",}
|
percent0to5={[0]="0%","20%","40%","60%","80%","100%",}
|
||||||
|
reAtk={0,0,1,1,1,2,2,3,3}
|
||||||
|
reDef={0,1,1,2,3,3,4,4,5}
|
||||||
marathon_drop={[0]=60,48,40,30,24,18,15,12,10,8,7,6,5,4,3,2,1,1,0,0}
|
marathon_drop={[0]=60,48,40,30,24,18,15,12,10,8,7,6,5,4,3,2,1,1,0,0}
|
||||||
death_lock={12,11,10,9,8}
|
death_lock={12,11,10,9,8}
|
||||||
death_wait={9,8,7,6,5}
|
death_wait={9,8,7,6,5}
|
||||||
|
|||||||
39
main.lua
39
main.lua
@@ -270,6 +270,7 @@ loadmode={
|
|||||||
techmino41=function()
|
techmino41=function()
|
||||||
modeEnv={
|
modeEnv={
|
||||||
freshLimit=15,
|
freshLimit=15,
|
||||||
|
fall=20,
|
||||||
royaleMode=true,
|
royaleMode=true,
|
||||||
royale={2,5,10,20},
|
royale={2,5,10,20},
|
||||||
}
|
}
|
||||||
@@ -278,13 +279,13 @@ loadmode={
|
|||||||
local n=2
|
local n=2
|
||||||
for i=1,4 do
|
for i=1,4 do
|
||||||
for j=1,5 do
|
for j=1,5 do
|
||||||
createPlayer(n,75*i-48,142*j-130,.19,rnd(15))
|
createPlayer(n,77*i-55,140*j-125,.2,rnd(15))
|
||||||
n=n+1
|
n=n+1
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
for i=9,12 do
|
for i=9,12 do
|
||||||
for j=1,5 do
|
for j=1,5 do
|
||||||
createPlayer(n,75*i+292,142*j-130,.19,rnd(15))
|
createPlayer(n,77*i+275,140*j-125,.2,rnd(15))
|
||||||
n=n+1
|
n=n+1
|
||||||
end
|
end
|
||||||
end--AIs
|
end--AIs
|
||||||
@@ -295,6 +296,7 @@ loadmode={
|
|||||||
techmino99=function()
|
techmino99=function()
|
||||||
modeEnv={
|
modeEnv={
|
||||||
freshLimit=15,
|
freshLimit=15,
|
||||||
|
fall=20,
|
||||||
royaleMode=true,
|
royaleMode=true,
|
||||||
royale={2,6,14,30},
|
royale={2,6,14,30},
|
||||||
}
|
}
|
||||||
@@ -455,26 +457,28 @@ mesDisp={
|
|||||||
techmino41=function()
|
techmino41=function()
|
||||||
setFont(40)
|
setFont(40)
|
||||||
mStr(#players.alive.."/41",-80,180)
|
mStr(#players.alive.."/41",-80,180)
|
||||||
mStr(P.ko,-55,220)
|
mStr(P.ko,-65,220)
|
||||||
setFont(25)
|
setFont(25)
|
||||||
gc.print("KO",-105,229)
|
gc.print("KO",-120,229)
|
||||||
|
gc.print(P.badge,-40,233)
|
||||||
|
setFont(30)
|
||||||
|
gc.print(up0to4[P.strength],-125,295)
|
||||||
for i=1,P.strength do
|
for i=1,P.strength do
|
||||||
gc.draw(badgeIcon,16*i-130,260)
|
gc.draw(badgeIcon,16*i-130,260)
|
||||||
end
|
end
|
||||||
setFont(30)
|
|
||||||
gc.print(up0to4[P.strength],-125,295)
|
|
||||||
end,
|
end,
|
||||||
techmino99=function()
|
techmino99=function()
|
||||||
setFont(40)
|
setFont(40)
|
||||||
mStr(#players.alive.."/99",-80,180)
|
mStr(#players.alive.."/99",-80,180)
|
||||||
mStr(P.ko,-55,220)
|
mStr(P.ko,-65,220)
|
||||||
setFont(25)
|
setFont(25)
|
||||||
gc.print("KO",-105,229)
|
gc.print("KO",-120,229)
|
||||||
|
gc.print(P.badge,-40,233)
|
||||||
|
setFont(30)
|
||||||
|
gc.print(up0to4[P.strength],-125,295)
|
||||||
for i=1,P.strength do
|
for i=1,P.strength do
|
||||||
gc.draw(badgeIcon,16*i-130,260)
|
gc.draw(badgeIcon,16*i-130,260)
|
||||||
end
|
end
|
||||||
setFont(30)
|
|
||||||
gc.print(up0to4[P.strength],-125,295)
|
|
||||||
end,
|
end,
|
||||||
blind=function()
|
blind=function()
|
||||||
setFont(25)
|
setFont(25)
|
||||||
@@ -498,8 +502,9 @@ Event={
|
|||||||
P.control=false
|
P.control=false
|
||||||
P.timing=false
|
P.timing=false
|
||||||
P.waiting=1e99
|
P.waiting=1e99
|
||||||
P.result="WIN"
|
P.atking=nil
|
||||||
P.b2b=0
|
P.b2b=0
|
||||||
|
P.result="WIN"
|
||||||
for i=1,#P.field do
|
for i=1,#P.field do
|
||||||
for j=1,10 do
|
for j=1,10 do
|
||||||
P.visTime[i][j]=min(P.visTime[i][j],20)
|
P.visTime[i][j]=min(P.visTime[i][j],20)
|
||||||
@@ -513,17 +518,14 @@ Event={
|
|||||||
P.alive=false
|
P.alive=false
|
||||||
P.control=false
|
P.control=false
|
||||||
P.timing=false
|
P.timing=false
|
||||||
P.result=" K.O."
|
|
||||||
P.waiting=1e99
|
P.waiting=1e99
|
||||||
P.atking=nil
|
P.atking=nil
|
||||||
P.b2b=0
|
P.b2b=0
|
||||||
|
P.result=" K.O."
|
||||||
showText("LOSE","appear",100,nil,true)
|
showText("LOSE","appear",100,nil,true)
|
||||||
for i=1,#players.alive do
|
for i=1,#players.alive do
|
||||||
if players.alive[i]==P then
|
if players.alive[i]==P then
|
||||||
rem(players.alive,i)
|
rem(players.alive,i)
|
||||||
if #players.alive==1 then
|
|
||||||
ins(players.alive[1].task,Event.task.winTrigger)
|
|
||||||
end
|
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -558,6 +560,9 @@ Event={
|
|||||||
end
|
end
|
||||||
if P.id==1 and players[2]and players[2].ai then SFX("fail")end
|
if P.id==1 and players[2]and players[2].ai then SFX("fail")end
|
||||||
ins(P.task,Event.task.lose)
|
ins(P.task,Event.task.lose)
|
||||||
|
if #players.alive==1 then
|
||||||
|
ins(players.alive[1].task,Event.task.winTrigger)
|
||||||
|
end
|
||||||
end,
|
end,
|
||||||
},
|
},
|
||||||
marathon_reach=function()
|
marathon_reach=function()
|
||||||
@@ -618,7 +623,7 @@ Event={
|
|||||||
end,
|
end,
|
||||||
win=function()
|
win=function()
|
||||||
P.counter=P.counter+1
|
P.counter=P.counter+1
|
||||||
if P.counter>60 then
|
if P.counter>80 then
|
||||||
for i=1,#P.field do
|
for i=1,#P.field do
|
||||||
for j=1,10 do
|
for j=1,10 do
|
||||||
if P.visTime[i][j]>0 then
|
if P.visTime[i][j]>0 then
|
||||||
@@ -637,7 +642,7 @@ Event={
|
|||||||
end,
|
end,
|
||||||
lose=function()
|
lose=function()
|
||||||
P.counter=P.counter+1
|
P.counter=P.counter+1
|
||||||
if P.counter>60 then
|
if P.counter>80 then
|
||||||
for i=1,#P.field do
|
for i=1,#P.field do
|
||||||
for j=1,10 do
|
for j=1,10 do
|
||||||
if P.visTime[i][j]>0 then
|
if P.visTime[i][j]>0 then
|
||||||
|
|||||||
73
paint.lua
73
paint.lua
@@ -134,16 +134,15 @@ function drawDial(x,y,speed)
|
|||||||
mStr(int(speed),0,-14)
|
mStr(int(speed),0,-14)
|
||||||
gc.draw(dialCircle,0,0,nil,nil,nil,32,32)
|
gc.draw(dialCircle,0,0,nil,nil,nil,32,32)
|
||||||
gc.setColor(1,1,1,.6)
|
gc.setColor(1,1,1,.6)
|
||||||
gc.draw(dialNeedle,0,0,2.0944+(speed<=175 and .020944*speed or 4.712389-52.35988/(speed-125)),nil,nil,5,4)
|
gc.draw(dialNeedle,0,0,2.094+(speed<=175 and .02094*speed or 4.712-52.36/(speed-125)),nil,nil,5,4)
|
||||||
gc.pop()
|
gc.pop()
|
||||||
end
|
end
|
||||||
function drawPixel(y,x,id,alpha)
|
function drawPixel(y,x,id,alpha)
|
||||||
gc.setColor(1,1,1,alpha)
|
gc.setColor(1,1,1,alpha)
|
||||||
gc.draw(blockSkin[id],30*x-30,600-30*y)
|
gc.draw(blockSkin[id],30*x-30,600-30*y)
|
||||||
end
|
end
|
||||||
function drawPixelmini(y,x,id,alpha)
|
function drawPixelmini(y,x,id)
|
||||||
gc.setColor(1,1,1,alpha)
|
gc.draw(blockSkinmini[id],30*x-30,600-30*y,nil,5)
|
||||||
gc.draw(blockSkinmini[id],30*x-30,600-30*y,nil,2.5)
|
|
||||||
end
|
end
|
||||||
function drawVirtualkey(s)
|
function drawVirtualkey(s)
|
||||||
gc.setLineWidth(10)
|
gc.setLineWidth(10)
|
||||||
@@ -223,25 +222,25 @@ function Pnt.load()
|
|||||||
end
|
end
|
||||||
function Pnt.intro()
|
function Pnt.intro()
|
||||||
gc.push()
|
gc.push()
|
||||||
gc.translate(250,150)
|
gc.translate(250,150)
|
||||||
gc.scale(30)
|
gc.scale(30)
|
||||||
gc.setColor(1,1,1,min(count,80)*.005)
|
gc.stencil(stencil_miniTitle,"replace",1)
|
||||||
gc.draw(miniTitle)
|
|
||||||
gc.setColor(1,1,1)
|
|
||||||
gc.stencil(stencil_miniTitle,"replace",1)
|
|
||||||
gc.setStencilTest("equal",1)
|
gc.setStencilTest("equal",1)
|
||||||
|
gc.setColor(1,1,1,min(count,80)*.005)
|
||||||
|
gc.rectangle("fill",0,0,26,14)
|
||||||
gc.pop()
|
gc.pop()
|
||||||
gc.setColor(1,1,1,.125)
|
gc.setColor(1,1,1)
|
||||||
for i=19,5,-2 do
|
gc.setColor(1,1,1,.125)
|
||||||
gc.setLineWidth(i)
|
for i=19,5,-2 do
|
||||||
gc.line(250+(count-80)*25,150,(count-80)*25-150,570)
|
gc.setLineWidth(i)
|
||||||
end
|
gc.line(250+(count-80)*25,150,(count-80)*25-150,570)
|
||||||
|
end
|
||||||
gc.setStencilTest()
|
gc.setStencilTest()
|
||||||
end
|
end
|
||||||
function Pnt.main()
|
function Pnt.main()
|
||||||
gc.setColor(1,1,1)
|
gc.setColor(1,1,1)
|
||||||
setFont(30)
|
setFont(30)
|
||||||
gc.print("Alpha V0.7.4",370,150)
|
gc.print("Alpha V0.7.5",370,150)
|
||||||
gc.print(system,530,110)
|
gc.print(system,530,110)
|
||||||
gc.draw(titleImage,30,30)
|
gc.draw(titleImage,30,30)
|
||||||
end
|
end
|
||||||
@@ -291,23 +290,12 @@ function Pnt.play()
|
|||||||
gc.stencil(stencil_field_small,"replace",1)
|
gc.stencil(stencil_field_small,"replace",1)
|
||||||
gc.translate(0,P.fieldBeneath)
|
gc.translate(0,P.fieldBeneath)
|
||||||
gc.setStencilTest("equal",1)
|
gc.setStencilTest("equal",1)
|
||||||
if P.result then
|
gc.setColor(1,1,1,P.result and max(20-P.counter,0)*.05 or 1)
|
||||||
for j=int(P.fieldBeneath/30+1),#P.field do
|
for j=int(P.fieldBeneath/30+1),#P.field do
|
||||||
if P.falling<=0 or without(P.clearing,j)then
|
if P.falling<=0 or without(P.clearing,j)then
|
||||||
for i=1,10 do
|
for i=1,10 do
|
||||||
if P.field[j][i]>0 then
|
if P.field[j][i]>0 then
|
||||||
drawPixelmini(j,i,P.field[j][i],min(P.visTime[j][i],20)*.05)
|
drawPixelmini(j,i,P.field[j][i])
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
for j=int(P.fieldBeneath/30+1),#P.field do
|
|
||||||
if P.falling<=0 or without(P.clearing,j)then
|
|
||||||
for i=1,10 do
|
|
||||||
if P.field[j][i]>0 then
|
|
||||||
drawPixelmini(j,i,P.field[j][i],1)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -448,7 +436,7 @@ function Pnt.play()
|
|||||||
end
|
end
|
||||||
end--Next
|
end--Next
|
||||||
if frame<180 then
|
if frame<180 then
|
||||||
local count=180-frame
|
local count=179-frame
|
||||||
gc.push("transform")
|
gc.push("transform")
|
||||||
gc.translate(155,220)
|
gc.translate(155,220)
|
||||||
gc.setColor(1,1,1)
|
gc.setColor(1,1,1)
|
||||||
@@ -491,18 +479,25 @@ function Pnt.play()
|
|||||||
drawVirtualkey()
|
drawVirtualkey()
|
||||||
end
|
end
|
||||||
if modeEnv.royaleMode then
|
if modeEnv.royaleMode then
|
||||||
gc.setLineWidth(5)
|
|
||||||
gc.setColor(1,1,0,.2)
|
|
||||||
P=players[1]
|
P=players[1]
|
||||||
|
if P.atkMode~=4 then
|
||||||
|
gc.setLineWidth(5)
|
||||||
|
gc.setColor(.8,1,0,.2)
|
||||||
|
else
|
||||||
|
gc.setLineWidth(9)
|
||||||
|
gc.setColor(1,.6,.2,.4)
|
||||||
|
end
|
||||||
for i=1,#players.alive do
|
for i=1,#players.alive do
|
||||||
local p=players.alive[i]
|
local p=players.alive[i]
|
||||||
if p.atking==players[1]then
|
if p.atking==players[1]then
|
||||||
gc.line(p.centerX,p.centerY,P.centerX,P.centerY)
|
gc.line(p.centerX,p.centerY,P.centerX,P.centerY)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if P.atking then
|
if P.atkMode~=4 then
|
||||||
gc.setColor(0,.5,1,.2+(sin(Timer()*7)+1)*.1)
|
if P.atking then
|
||||||
gc.line(P.centerX,P.centerY,P.atking.centerX,P.atking.centerY)
|
gc.setColor(0,.5,1,.2+(sin(Timer()*7)+1)*.1)
|
||||||
|
gc.line(P.centerX,P.centerY,P.atking.centerX,P.atking.centerY)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
57
texture.lua
57
texture.lua
@@ -6,18 +6,20 @@ function C(x,y)
|
|||||||
end
|
end
|
||||||
|
|
||||||
gc.setDefaultFilter("nearest","nearest")
|
gc.setDefaultFilter("nearest","nearest")
|
||||||
miniTitle=C(26,14)
|
|
||||||
gc.setColor(1,1,1)
|
|
||||||
for i=1,#miniTitle_pixel do
|
|
||||||
gc.rectangle("fill",unpack(miniTitle_pixel[i]))
|
|
||||||
end
|
|
||||||
gc.setDefaultFilter("linear","linear")
|
|
||||||
titleImage=N("/image/mess/title.png")
|
|
||||||
spinCenter=N("/image/mess/spinCenter.png")
|
|
||||||
dialCircle=N("/image/mess/dialCircle.png")
|
|
||||||
dialNeedle=N("/image/mess/dialNeedle.png")
|
|
||||||
badgeIcon=N("/image/mess/badge.png")
|
|
||||||
|
|
||||||
|
local blockImg=N("/image/block/1.png")
|
||||||
|
blockSkin,blockSkinmini={},{}
|
||||||
|
for i=1,13 do
|
||||||
|
C(30,30)
|
||||||
|
gc.draw(blockImg,30-30*i,0)
|
||||||
|
blockSkin[i]=c
|
||||||
|
C(6,6)
|
||||||
|
gc.draw(blockImg,6-6*i,0,nil,.2)
|
||||||
|
blockSkinmini[i]=c
|
||||||
|
end
|
||||||
|
for i=1,13 do
|
||||||
|
end
|
||||||
|
blockImg:release()
|
||||||
|
|
||||||
RCPB={10,33,200,33,105,5,105,60}
|
RCPB={10,33,200,33,105,5,105,60}
|
||||||
do royaleCtrlPad=C(300,100)
|
do royaleCtrlPad=C(300,100)
|
||||||
@@ -30,25 +32,6 @@ do royaleCtrlPad=C(300,100)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
do local img=N("/image/block/1.png")
|
|
||||||
blockSkin,blockSkinmini={},{}
|
|
||||||
for i=1,13 do
|
|
||||||
C(30,30)
|
|
||||||
gc.draw(img,30-30*i,0)
|
|
||||||
blockSkin[i]=c
|
|
||||||
C(12,12)
|
|
||||||
gc.draw(img,12-12*i,0,nil,.4)
|
|
||||||
blockSkinmini[i]=c
|
|
||||||
end
|
|
||||||
img:release()
|
|
||||||
end
|
|
||||||
|
|
||||||
background={
|
|
||||||
N("/image/BG/bg1.jpg"),
|
|
||||||
N("/image/BG/bg2.png"),
|
|
||||||
}
|
|
||||||
gc.setDefaultFilter("nearest","nearest")
|
|
||||||
|
|
||||||
virtualkeyIcon={}
|
virtualkeyIcon={}
|
||||||
for i=1,10 do
|
for i=1,10 do
|
||||||
virtualkeyIcon[i]=N("/image/virtualkey/"..actName[i]..".png")
|
virtualkeyIcon[i]=N("/image/virtualkey/"..actName[i]..".png")
|
||||||
@@ -98,6 +81,16 @@ PTC.attack[3]:setSpin(6)
|
|||||||
PTC.attack[3]:setColors(1,1,1,.7,1,1,1,0)
|
PTC.attack[3]:setColors(1,1,1,.7,1,1,1,0)
|
||||||
--Attack particles
|
--Attack particles
|
||||||
|
|
||||||
|
gc.setDefaultFilter("linear","linear")
|
||||||
|
titleImage=N("/image/mess/title.png")
|
||||||
|
spinCenter=N("/image/mess/spinCenter.png")
|
||||||
|
dialCircle=N("/image/mess/dialCircle.png")
|
||||||
|
dialNeedle=N("/image/mess/dialNeedle.png")
|
||||||
|
badgeIcon=N("/image/mess/badge.png")
|
||||||
|
|
||||||
|
background={
|
||||||
|
N("/image/BG/bg1.jpg"),
|
||||||
|
N("/image/BG/bg2.png"),
|
||||||
|
}
|
||||||
c=nil
|
c=nil
|
||||||
gc.setCanvas()
|
gc.setCanvas()
|
||||||
gc.setDefaultFilter("linear","linear")
|
|
||||||
@@ -105,7 +105,7 @@ function Tmr.play(dt)
|
|||||||
P.ai.controlDelay=P.ai.controlDelay0+2
|
P.ai.controlDelay=P.ai.controlDelay0+2
|
||||||
else
|
else
|
||||||
AI_getControls(P.ai.controls)
|
AI_getControls(P.ai.controls)
|
||||||
P.ai.controlDelay=2*P.ai.controlDelay0
|
P.ai.controlDelay=rnd(3)*P.ai.controlDelay0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -243,7 +243,7 @@ function Tmr.play(dt)
|
|||||||
PTC.dust[p]:update(dt)
|
PTC.dust[p]:update(dt)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if modeEnv.royale and frame%120==0 then
|
if modeEnv.royale and frame%75==0 then
|
||||||
freshRoyaleTarget()
|
freshRoyaleTarget()
|
||||||
end
|
end
|
||||||
setmetatable(_G,nil)
|
setmetatable(_G,nil)
|
||||||
|
|||||||
Reference in New Issue
Block a user