0.8.19/20: Fantastic Global Update II

This commit is contained in:
MrZ_26
2020-05-21 01:12:17 +08:00
parent 2768fa748b
commit 28d5136e95
59 changed files with 3092 additions and 2144 deletions

View File

@@ -53,6 +53,12 @@ return{
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
getRank=function(P)
local W=P.modeData.event
return W>100 and 4 or W>=80 and 3 or W>=50 and 2 or W>=20 and 1 or W>=5 and 0
return
W>=100 and 5 or
W>=80 and 4 or
W>=60 and 3 or
W>=40 and 2 or
W>=20 and 1 or
W>=5 and 0
end,
}

View File

@@ -66,6 +66,12 @@ return{
comp=function(a,b)return a[1]>b[1]or a[1]==b[1]and a[2]<b[2]end,
getRank=function(P)
local W=P.modeData.event
return W>40 and 4 or W>=30 and 3 or W>=20 and 2 or W>=10 and 1 or W>=5 and 0
return
W>=50 and 5 or
W>=40 and 4 or
W>=30 and 3 or
W>=20 and 2 or
W>=10 and 1 or
W>=5 and 0
end,
}

View File

@@ -51,9 +51,9 @@ return{
res[A+2]=7
end
--give O when no Δ=0/give T when no Δ=1
d=0--Δ=0
A=0--Δ=1
--give O when no d=0/give T when no d=1
d=0--d=0 count
A=0--d=1 count
for x=2,10 do
local _=height[x]-height[x-1]
if _==0 then

View File

@@ -1,14 +0,0 @@
return{
color=color.white,
env={
drop=60,lock=60,
freshLimit=15,
bg="none",bgm="way",
},
load=function()
newPlayer(1,20,15)
newPlayer(2,650,15)
end,
mesDisp=function(P,dx,dy)
end,
}

View File

@@ -1,15 +0,0 @@
return{
color=color.white,
env={
drop=60,lock=60,
freshLimit=15,
bg="none",bgm="way",
},
load=function()
newPlayer(1,20,100,.65)
newPlayer(2,435,100,.65)
newPlayer(3,850,100,.65)
end,
mesDisp=function(P,dx,dy)
end,
}

View File

@@ -1,16 +0,0 @@
return{
color=color.white,
env={
drop=60,lock=60,
freshLimit=15,
bg="none",bgm="way",
},
load=function()
newPlayer(1,25,160,.5)
newPlayer(2,335,160,.5)
newPlayer(3,645,160,.5)
newPlayer(4,955,160,.5)
end,
mesDisp=function(P,dx,dy)
end,
}

View File

@@ -42,8 +42,8 @@ return{
if L>=200 then
local T=P.stat.time
return
T<=185 and 5 or
T<=250 and 4 or
T<=226 and 5 or
T<=262 and 4 or
3
else
return

View File

@@ -5,53 +5,35 @@ local pc_lock={55,50,45,40,36,32,30}
local pc_fall={18,16,14,12,10,9,8,7,6}
local PCbase=require("parts/PCbase")
local PClist=require("parts/PClist")
local PCtype={[0]=1,2,1,3,2,3}
local function task_PC(P)
local _
P.modeData.counter=P.modeData.counter+1
if P.modeData.counter==21 then
local t=P.stat.pc%2
local S=P.gameEnv.skin
for i=1,4 do
local r=freeRow.get(0)
for j=1,10 do
_=PCbase[4*t+i][j]
r[j]=S[_]or 0
end
ins(P.field,1,r)
ins(P.visTime,1,freeRow.get(20))
end
P.fieldBeneath=P.fieldBeneath+120
P.curY=P.curY+4
P:freshgho()
if P.modeData.counter==26 then
local base=PCbase[P.modeData.type]
P:pushLine(base[rnd(#base)],P.modeData.symmetry)
return true
end
end
local function newPC(P)
local r=P.field;r=r[#r]
if r then
local r=P.field
if r[1]then
r=r[#r]
local c=0
for i=1,10 do if r[i]>0 then c=c+1 end end
if c<5 then
P:lose()
end
if c<5 then P:lose()end
end
if P.stat.piece%4==0 and #P.field==0 then
P.modeData.event=P.modeData.event==0 and 1 or 0
local r=rnd(#PClist)
local f=P.modeData.event==0
for i=1,4 do
local b=PClist[r][i]
if f then
if b<3 then b=3-b
elseif b<5 then b=7-b
end
end
P:getNext(b)
end
if #P.field==0 then
local type=PCtype[P.stat.pc]or rnd(2,3)
local L=PClist[type][rnd(#PClist[1])]
local symmetry=rnd()>.5
P.modeData.type=type
P.modeData.symmetry=symmetry
P:pushNext(L,symmetry)
P.modeData.counter=P.stat.piece==0 and 20 or 0
TASK.new(task_PC,P)
local s=P.stat.pc*.5
local s=P.stat.pc*.25
if int(s)==s and s>0 then
P.gameEnv.drop=pc_drop[s]or 10
P.gameEnv.lock=pc_lock[s]or 20
@@ -94,11 +76,11 @@ return{
getRank=function(P)
local L=P.stat.pc
return
L>=50 and 5 or
L>=40 and 4 or
L>=30 and 3 or
L>=100 and 5 or
L>=70 and 4 or
L>=40 and 3 or
L>=20 and 2 or
L>=10 and 1 or
L>=1 and 0
L>=2 and 0
end,
}

View File

@@ -1,50 +1,41 @@
local rnd=math.random
local ins=table.insert
local PCbase=require("parts/PCbase")
local PClist=require("parts/PClist")
local PCtype={
[0]=1,1,1,1,2,
1,1,1,1,3,
1,1,1,2,
1,1,1,3,
1,1,2,
1,1,3,
1,2,
1,3,
2,
3,
}
local function task_PC(P)
local _
P.modeData.counter=P.modeData.counter+1
if P.modeData.counter==21 then
local t=P.stat.pc%2
local S=P.gameEnv.skin
for i=1,4 do
local r=freeRow.get(0)
for j=1,10 do
_=PCbase[4*t+i][j]
r[j]=S[_]or 0
end
ins(P.field,1,r)
ins(P.visTime,1,freeRow.get(20))
end
P.fieldBeneath=P.fieldBeneath+120
P.curY=P.curY+4
P:freshgho()
if P.modeData.counter==26 then
local base=PCbase[P.modeData.type]
P:pushLine(base[rnd(#base)],P.modeData.symmetry)
return true
end
end
local function newPC(P)
local r=P.field;r=r[#r]
if r then
local r=P.field
if r[1]then
r=r[#r]
local c=0
for i=1,10 do if r[i]>0 then c=c+1 end end
if c<5 then
P:lose()
end
if c<5 then P:lose()end
end
if P.stat.piece%4==0 and #P.field==0 then
P.modeData.event=P.modeData.event==0 and 1 or 0
local r=rnd(#PClist)
local f=P.modeData.event==0
for i=1,4 do
local b=PClist[r][i]
if f then
if b<3 then b=3-b
elseif b<5 then b=7-b
end
end
P:getNext(b)
end
if #P.field==0 then
local type=PCtype[P.stat.pc]or rnd(2,3)
local L=PClist[type][rnd(#PClist[1])]
local symmetry=rnd()>.5
P.modeData.type=type
P.modeData.symmetry=symmetry
P:pushNext(L,symmetry)
P.modeData.counter=P.stat.piece==0 and 20 or 0
TASK.new(task_PC,P)
end
@@ -54,7 +45,7 @@ return{
env={
next=4,
hold=false,
drop=150,lock=150,
drop=120,lock=180,
fall=20,
sequence="none",
dropPiece=newPC,
@@ -77,11 +68,11 @@ return{
getRank=function(P)
local L=P.stat.pc
return
L>=100 and 5 or
L>=60 and 4 or
L>=40 and 3 or
L>=25 and 2 or
L>=15 and 1 or
L>=1 and 0
L>=260 and 5 or
L>=126 and 4 or
L>=62 and 3 or
L>=26 and 2 or
L>=12 and 1 or
L>=2 and 0
end,
}

View File

@@ -21,7 +21,7 @@ return{
load=function()
newPlayer(1,340,15)
newAIPlayer(2,965,360,.5,AITemplate("CC",10,1,true,5000))
garbageSpeed=1e99
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,

View File

@@ -21,7 +21,7 @@ return{
load=function()
newPlayer(1,340,15)
newAIPlayer(2,965,360,.5,AITemplate("CC",10,1,true,10000))
garbageSpeed=1e99
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,

View File

@@ -21,7 +21,7 @@ return{
load=function()
newPlayer(1,340,15)
newAIPlayer(2,965,360,.5,AITemplate("CC",10,2,true,12600))
garbageSpeed=1e99
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,

View File

@@ -21,7 +21,7 @@ return{
load=function()
newPlayer(1,340,15)
newAIPlayer(2,965,360,.5,AITemplate("CC",10,3,true,16260))
garbageSpeed=1e99
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,

View File

@@ -21,7 +21,7 @@ return{
load=function()
newPlayer(1,340,15)
newAIPlayer(2,965,360,.5,AITemplate("CC",10,3,true,26000))
garbageSpeed=1e99
game.garbageSpeed=1e99
end,
mesDisp=function(P,dx,dy)
end,

44
modes/sprintPenta.lua Normal file
View File

@@ -0,0 +1,44 @@
local gc=love.graphics
local rnd=math.random
return{
color=color.green,
env={
drop=60,lock=60,
sequence="bag",bag={8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25},
target=40,dropPiece=player.reach_winCheck,
bg="strap",bgm="race",
},
load=function()
newPlayer(1,340,15)
end,
mesDisp=function(P)
local dx,dy=P.fieldOff.x,P.fieldOff.y
setFont(55)
local r=40-P.stat.row
if r<0 then r=0 end
mStr(r,-81,265)
if r<21 and r>0 then
gc.setLineWidth(4)
gc.setColor(1,r>10 and 0 or rnd(),.5)
gc.line(dx,600-30*r+dy,300+dx,600-30*r+dy)
end
end,
score=function(P)return{P.stat.time,P.stat.piece}end,
scoreDisp=function(D)return toTime(D[1]).." "..D[2].." Pieces"end,
comp=function(a,b)return a[1]<b[1]or a[1]==b[1]and a[2]<b[2]end,
getRank=function(P)
local T=P.stat.row
if T<5 then
return
elseif T<40 then
return 0
end
T=P.stat.time
return
T<=76 and 5 or
T<=90 and 4 or
T<=150 and 3 or
T<=260 and 2 or
1
end,
}

View File

@@ -29,11 +29,11 @@ return{
if P.stat.row<400 then return end
local T=P.stat.time
return
T<=62,255 and 5 or
T<=90,326 and 4 or
T<=130,462 and 3 or
T<=200,626 and 2 or
T<=360,1260 and 1 or
T<=255 and 5 or
T<=326 and 4 or
T<=462 and 3 or
T<=626 and 2 or
T<=1260 and 1 or
0
end,
}

View File

@@ -1,5 +1,5 @@
local format=string.format
local function tech_check_ultimate(P)
local function tech_check_hard(P)
if #P.clearedRow>0 and P.lastClear<10 or P.lastClear==74 then
P:lose()
end
@@ -11,7 +11,7 @@ return{
drop=30,lock=60,
freshLimit=15,
target=200,
dropPiece=tech_check_ultimate,
dropPiece=tech_check_hard,
bg="matrix",bgm="secret8th",
},
load=function()

View File

@@ -1,5 +1,5 @@
local format=string.format
local function tech_check_ultimate(P)
local function tech_check_hard(P)
if #P.clearedRow>0 and P.lastClear<10 or P.lastClear==74 then
P:lose()
end
@@ -11,7 +11,7 @@ return{
_20G=true,lock=60,
freshLimit=15,
target=200,
dropPiece=tech_check_ultimate,
dropPiece=tech_check_hard,
bg="matrix",bgm="secret7th",
},
load=function()

View File

@@ -1,6 +1,6 @@
local format=string.format
local function tech_check_hard(P)
if #P.clearedRow>0 and P.lastClear<10 then
local function tech_check_easy(P)
if #P.clearedRow>0 and P.b2b<40 then
P:lose()
end
end
@@ -11,7 +11,7 @@ return{
_20G=true,lock=60,
freshLimit=15,
target=200,
dropPiece=tech_check_hard,
dropPiece=tech_check_easy,
bg="matrix",bgm="secret7th",
},
load=function()

View File

@@ -1,5 +1,5 @@
local format=string.format
local function tech_check_ultimate(P)
local function tech_check_hard(P)
if #P.clearedRow>0 and P.lastClear<10 or P.lastClear==74 then
P:lose()
end
@@ -11,7 +11,7 @@ return{
oncehold=false,
drop=1e99,lock=1e99,
target=200,
dropPiece=tech_check_ultimate,
dropPiece=tech_check_hard,
bg="matrix",bgm="newera",
},
load=function()

View File

@@ -1,5 +1,5 @@
local format=string.format
local function tech_check_ultimate(P)
local function tech_check_hard(P)
if #P.clearedRow>0 and P.lastClear<10 or P.lastClear==74 then
P:lose()
end
@@ -13,7 +13,7 @@ return{
freshLimit=15,
target=200,
fineKill=true,
dropPiece=tech_check_ultimate,
dropPiece=tech_check_hard,
bg="flink",bgm="infinite",
},
slowMark=true,

View File

@@ -1,9 +1,4 @@
local format=string.format
local function tech_check_hard(P)
if #P.clearedRow>0 and P.lastClear<10 then
P:lose()
end
end
return{
color=color.lightYellow,
@@ -13,7 +8,6 @@ return{
freshLimit=15,
target=200,
fineKill=true,
dropPiece=tech_check_hard,
bg="flink",bgm="infinite",
},
slowMark=true,