diff --git a/parts/eventsets/master_instinct.lua b/parts/eventsets/master_instinct.lua new file mode 100644 index 00000000..2ab87b53 --- /dev/null +++ b/parts/eventsets/master_instinct.lua @@ -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, +} diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua index 1736e20d..894df133 100644 --- a/parts/language/lang_en.lua +++ b/parts/language/lang_en.lua @@ -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"}, diff --git a/parts/language/lang_id.lua b/parts/language/lang_id.lua index 42a256ef..36e33081 100644 --- a/parts/language/lang_id.lua +++ b/parts/language/lang_id.lua @@ -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"}, diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua index 8f89c4e5..679bb82a 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -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堆叠极速决策练习"}, diff --git a/parts/language/lang_zh_full.lua b/parts/language/lang_zh_full.lua index ad80470a..c5401a36 100644 --- a/parts/language/lang_zh_full.lua +++ b/parts/language/lang_zh_full.lua @@ -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堆叠极速决策练习"}, diff --git a/parts/language/lang_zh_grass.lua b/parts/language/lang_zh_grass.lua index 75cd0dff..85139179 100644 --- a/parts/language/lang_zh_grass.lua +++ b/parts/language/lang_zh_grass.lua @@ -710,6 +710,7 @@ return{ ['master_final']= {"主人", "最终", "20G及以上"}, ['master_ph']= {"主人", "幻觉", "???"}, ['master_ex']= {"大师", "额外的", "比瞬间还短的永恒"}, + ['master_instinct']={"主人", "情绪", "步行的秘密部分"}, ['strategy_e']= {"策略堆叠", "简单", "20G堆叠中速决策练习"}, ['strategy_h']= {"策略堆叠", "困难", "20G堆叠快速决策练习"}, ['strategy_u']= {"策略堆叠", "极限", "20G堆叠极速决策练习"}, diff --git a/parts/language/lang_zh_trad.lua b/parts/language/lang_zh_trad.lua index d63abcd9..c7a5f419 100644 --- a/parts/language/lang_zh_trad.lua +++ b/parts/language/lang_zh_trad.lua @@ -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']= {"高速經典", "極限", "極速經典"}, diff --git a/parts/modes/master_instinct.lua b/parts/modes/master_instinct.lua new file mode 100644 index 00000000..5373f9dc --- /dev/null +++ b/parts/modes/master_instinct.lua @@ -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]=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, +}