Add Master Instinct mode (#545)
* Add Inverse Invisible mode A mode where the locked pieces doesn't become invisible, but your active piece does. [NOTE: I haven't added the mode to the map yet because the mode selection screen is changing] * Renamed to Master Instinct
This commit is contained in:
80
parts/eventsets/master_instinct.lua
Normal file
80
parts/eventsets/master_instinct.lua
Normal file
@@ -0,0 +1,80 @@
|
||||
local inv_lock={60,50,45,40,37, 34,32,30,28,26}
|
||||
local inv_wait={12,11,11,10,10, 10,10, 9, 9, 9}
|
||||
local inv_fall={18,16,14,13,12, 12,11,11,10,10}
|
||||
local inv_hide={20,17,14,11, 8, 5, 3, 2, 1, 0}
|
||||
local hidetimer=0
|
||||
local held=false
|
||||
|
||||
return{
|
||||
drop=0,
|
||||
lock=inv_lock[1],
|
||||
wait=inv_wait[1],
|
||||
fall=inv_fall[1],
|
||||
ghost=false,
|
||||
noTele=true,
|
||||
das=10,arr=1,
|
||||
mesDisp=function(P)
|
||||
PLY.draw.drawProgress(P.modeData.pt,P.modeData.target)
|
||||
end,
|
||||
hook_drop=function(P)
|
||||
local D=P.modeData
|
||||
|
||||
local c=#P.clearedRow
|
||||
if c==0 and D.pt%100==99 then return end
|
||||
local s=c<3 and c+1 or c==3 and 5 or 7
|
||||
if P.combo>7 then s=s+2
|
||||
elseif P.combo>3 then s=s+1
|
||||
end
|
||||
D.pt=D.pt+s
|
||||
held=false
|
||||
if D.pt<1000 then
|
||||
hidetimer=0-inv_wait[(P.modeData.pt/100-(P.modeData.pt%100)/100)+1]
|
||||
if c>0 then hidetimer=hidetimer-inv_fall[(P.modeData.pt/100-(P.modeData.pt%100)/100)+1] end
|
||||
end
|
||||
|
||||
if D.pt%100==99 then
|
||||
SFX.play('warn_1')
|
||||
elseif D.pt>=D.target then--Level up!
|
||||
s=D.target/100
|
||||
local E=P.gameEnv
|
||||
E.lock=inv_lock[s]
|
||||
E.wait=inv_wait[s]
|
||||
E.fall=inv_fall[s]
|
||||
|
||||
if s==2 then
|
||||
E.das=8
|
||||
elseif s==4 then
|
||||
BG.set('rgb')
|
||||
elseif s==5 then
|
||||
E.das=7
|
||||
elseif s==7 then
|
||||
E.das=6
|
||||
BGM.play('far')
|
||||
elseif s==10 then
|
||||
D.pt=1000
|
||||
P:win('finish')
|
||||
return
|
||||
end
|
||||
D.target=D.target+100
|
||||
P:stageComplete(s)
|
||||
SFX.play('reach')
|
||||
end
|
||||
end,
|
||||
task=function(P)
|
||||
P.modeData.pt=0
|
||||
P.modeData.target=100
|
||||
while true do
|
||||
YIELD()
|
||||
if P.holdTime==0 and P.waiting<=0 and not held then
|
||||
hidetimer=0
|
||||
held=true
|
||||
end
|
||||
hidetimer=hidetimer+1
|
||||
if hidetimer>inv_hide[(P.modeData.pt/100-(P.modeData.pt%100)/100)+1] then
|
||||
P.gameEnv.block=false
|
||||
else
|
||||
P.gameEnv.block=true
|
||||
end
|
||||
end
|
||||
end,
|
||||
}
|
||||
@@ -713,6 +713,7 @@ return{
|
||||
['master_final']= {"Master", "FINAL", "20G and beyond"},
|
||||
['master_ph']= {"Master", "PHANTASM", "???"},
|
||||
['master_ex']= {"GrandMaster", "EXTRA", "An eternity shorter than an instant"},
|
||||
['master_instinct']={"Master", "INSTINCT", "What if the active piece turned invisible?"},
|
||||
['strategy_e']= {"Strategy", "EASY", "Fast 20G decision"},
|
||||
['strategy_h']= {"Strategy", "HARD", "Fast 20G decision"},
|
||||
['strategy_u']= {"Strategy", "ULTIMATE", "Fast 20G decision"},
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
local C=COLOR
|
||||
return{
|
||||
fallback='en',
|
||||
loadText={
|
||||
loadSFX="Memuat efek suara",
|
||||
loadSample="Memuat sampel-sampel instrumen",
|
||||
@@ -713,6 +714,7 @@ return{
|
||||
['master_final']= {"Jago", "TERAKHIR", "Lebih dari 20G"},
|
||||
['master_ph']= {"Jago", "KHAYALAN", "???"},
|
||||
['master_ex']= {"Sangat Jago", "EKSTRA", "Blok tidak kelihatan"},
|
||||
['master_instinct']={"Jago", "INSTINK", "Bagaimana jika blok terkontrol tersembunyi?"},
|
||||
['strategy_e']= {"Strategi", "MUDAH", "Keputusan 20G cepat"},
|
||||
['strategy_h']= {"Strategi", "SULIT", "Keputusan 20G cepat"},
|
||||
['strategy_u']= {"Strategi", "TERAKHIR", "Keputusan 20G cepat"},
|
||||
|
||||
@@ -712,6 +712,7 @@ return{
|
||||
['master_final']= {"大师", "终点", "究极20G:无法触及的终点"},
|
||||
['master_ph']= {"大师", "虚幻", "虚幻20G:???"},
|
||||
['master_ex']= {"宗师", "EX", "成为方块大师"},
|
||||
['master_instinct']={"大师", "本能", "隐藏当前块"},
|
||||
['strategy_e']= {"策略堆叠", "简单", "20G堆叠中速决策练习"},
|
||||
['strategy_h']= {"策略堆叠", "困难", "20G堆叠快速决策练习"},
|
||||
['strategy_u']= {"策略堆叠", "极限", "20G堆叠极速决策练习"},
|
||||
|
||||
@@ -119,6 +119,7 @@ return{
|
||||
['master_final']= {"大师", "终点", "究极20G:无法触及的终点"},
|
||||
['master_ph']= {"大师", "虚幻", "虚幻20G:???"},
|
||||
['master_ex']= {"宗师", "EX", "成为方块大师"},
|
||||
['master_instinct']={"大师", "本能", "隐藏当前块"},
|
||||
['strategy_e']= {"策略堆叠", "简单", "20G堆叠中速决策练习"},
|
||||
['strategy_h']= {"策略堆叠", "困难", "20G堆叠快速决策练习"},
|
||||
['strategy_u']= {"策略堆叠", "极限", "20G堆叠极速决策练习"},
|
||||
|
||||
@@ -710,6 +710,7 @@ return{
|
||||
['master_final']= {"主人", "最终", "20G及以上"},
|
||||
['master_ph']= {"主人", "幻觉", "???"},
|
||||
['master_ex']= {"大师", "额外的", "比瞬间还短的永恒"},
|
||||
['master_instinct']={"主人", "情绪", "步行的秘密部分"},
|
||||
['strategy_e']= {"策略堆叠", "简单", "20G堆叠中速决策练习"},
|
||||
['strategy_h']= {"策略堆叠", "困难", "20G堆叠快速决策练习"},
|
||||
['strategy_u']= {"策略堆叠", "极限", "20G堆叠极速决策练习"},
|
||||
|
||||
@@ -712,6 +712,7 @@ return{
|
||||
['master_final']= {"大師", "究極", "究極20G:無法觸及的終點"},
|
||||
['master_ph']= {"大師", "虛幻", "虛幻20G:???"},
|
||||
['master_ex']= {"宗師", "EX", "成為方塊大師"},
|
||||
['master_instinct']={"大師", "本能", "隱藏當前塊"},
|
||||
['strategy_e']= {"策略堆疊", "簡單", "20G堆疊中速決策練習"},
|
||||
['strategy_h']= {"策略堆疊", "困難", "20G堆疊快速決策練習"},
|
||||
['strategy_u']= {"策略堆疊", "極限", "20G堆疊極速決策練習"},
|
||||
@@ -724,6 +725,7 @@ return{
|
||||
['blind_l']= {"隱形", "瞬隱+", "最強大腦"},
|
||||
['blind_u']= {"隱形", "啊這", "你準備好了嗎"},
|
||||
['blind_wtf']= {"隱形", "不會吧", "還沒準備好"},
|
||||
['blind_inv']= {"隱形", "倒置的", "隱形活動件"},
|
||||
['classic_e']= {"高速經典", "簡單", "高速經典"},
|
||||
['classic_h']= {"高速經典", "困難", "飛速經典"},
|
||||
['classic_u']= {"高速經典", "極限", "極速經典"},
|
||||
|
||||
24
parts/modes/master_instinct.lua
Normal file
24
parts/modes/master_instinct.lua
Normal file
@@ -0,0 +1,24 @@
|
||||
return{
|
||||
env={
|
||||
sequence="bagES",
|
||||
freshLimit=15,
|
||||
eventSet='master_instinct',
|
||||
bg='glow',bgm='sugar fairy',
|
||||
},
|
||||
slowMark=true,
|
||||
score=function(P)return{P.modeData.pt,P.stat.time}end,
|
||||
scoreDisp=function(D)return D[1].."P "..STRING.time(D[2])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 S=P.modeData.pt
|
||||
return
|
||||
S>=1000 and 5 or
|
||||
S>=800 and 4 or
|
||||
S>=500 and 3 or
|
||||
S>=300 and 2 or
|
||||
S>=100 and 1 or
|
||||
S>=60 and 0
|
||||
end,
|
||||
}
|
||||
Reference in New Issue
Block a user