diff --git a/parts/eventsets/tech_finesse_lock.lua b/parts/eventsets/sprint_finesse_lock.lua similarity index 91% rename from parts/eventsets/tech_finesse_lock.lua rename to parts/eventsets/sprint_finesse_lock.lua index b4d0e4c1..36ee2e92 100644 --- a/parts/eventsets/tech_finesse_lock.lua +++ b/parts/eventsets/sprint_finesse_lock.lua @@ -70,11 +70,11 @@ return { arr=0, fineKill=true, mesDisp=function(P) - setFont(45) - GC.mStr(("%d"):format(P.stat.atk),63,190) - GC.mStr(("%.2f"):format(P.stat.atk/P.stat.row),63,310) - mText(TEXTOBJ.atk,63,243) - mText(TEXTOBJ.eff,63,363) + setFont(55) + local r=40-P.stat.row + if r<0 then r=0 end + GC.mStr(r,63,265) + PLY.draw.drawTargetLine(P,r) end, task=function(P) resetLock(P) @@ -87,7 +87,7 @@ return { end, hook_drop=function(P) resetLock(P) - if P.stat.atk>=100 then + if P.stat.row>=40 then P:win('finish') end end, diff --git a/parts/eventsets/tech_finesse_lock_f.lua b/parts/eventsets/tech_finesse_lock_f.lua deleted file mode 100644 index 8291199c..00000000 --- a/parts/eventsets/tech_finesse_lock_f.lua +++ /dev/null @@ -1,122 +0,0 @@ -local function lockKey(P,keys) - for _,v in next,keys do - P.keyAvailable[v]=false - VK.keys[v].ava=false - VK.release(v) - end -end -local function unlockKey(P,keys) - for _,v in next,keys do - P.keyAvailable[v]=true - VK.keys[v].ava=true - end -end -local function lockMovement(P) - lockKey(P,{1,2}) -end -local function lockRotation(P) - lockKey(P,{3,4}) -end -local function lockRotation180(P) - lockKey(P,{5}) -end -local function unlock(P) - if P.cur and P.cur.name==6 and not P.gameEnv.skipOCheck then -- don't unlock rotation if O piece & no O-spin - unlockKey(P,{1,2,6,7}) - return - end - unlockKey(P,{1,2,3,4,5,6,7}) -end -local function resetLock(P) - unlock(P) - unlockKey(P,{8}) - - P.modeData.moveCount=0 - P.modeData.rotations=0 - P.holdTime=1 -end - -local function onMove(P) - if not P.cur then return end - - P.holdTime=0 - lockKey(P,{8}) - - if not P:_roofCheck() then - P.modeData.moveCount=P.modeData.moveCount+1 - if P.modeData.moveCount>=2 then lockMovement(P) end - end -end -local function onAutoMove(P) - if P:_roofCheck() then unlock(P) end -end -local function onRotate(P,dir) - if not P.cur then return end - - P.holdTime=0 - lockKey(P,{8}) - - if not P:_roofCheck() then - P.modeData.rotations=P.modeData.rotations+(dir==2 and 2 or 1) - lockRotation180(P) - if P.modeData.rotations>=2 then - lockRotation(P) - end - end -end - -return { - arr=0, - fineKill=true, - mesDisp=function(P) - setFont(45) - GC.mStr(("%d"):format(P.stat.atk),63,190) - GC.mStr(("%.2f"):format(P.stat.atk/P.stat.row),63,310) - mText(TEXTOBJ.atk,63,243) - mText(TEXTOBJ.eff,63,363) - end, - task=function(P) - resetLock(P) - local RSname=P.RS.name - P.gameEnv.skipOCheck=( - string.find(RSname,'TRS') or - string.find(RSname,'BiRS') or - string.find(RSname,'ASC') - ) - end, - hook_drop=function(P) - resetLock(P) - - local C=P.lastPiece - if C.row>0 then - if not C.special then - P:lose() - return - end - end - if P.stat.atk>=100 then - P:win('finish') - end - end, - hook_spawn=function(P) - if P.gameEnv.skipOCheck then return end - if P.cur.name==6 then - lockRotation(P) - lockRotation180(P) - else - resetLock(P) - end - end, - hook_hold=function(P) - if P.gameEnv.skipOCheck then return end - if P.cur.name==6 then - lockRotation(P) - lockRotation180(P) - else - resetLock(P) - end - end, - hook_left_manual=onMove, hook_right_manual=onMove, - hook_left_auto=onAutoMove, hook_right_auto=onAutoMove, - hook_rotate=onRotate, -} diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua index a7cf631c..2ba768b1 100644 --- a/parts/language/lang_en.lua +++ b/parts/language/lang_en.lua @@ -958,8 +958,6 @@ C. Gamepad ['tech_l_plus']= {"Tech B2B", "LUNATIC+", "Spins & PCs only"}, ['tech_finesse']= {"Tech Finesse", "", "No finesse errors!"}, ['tech_finesse_f']= {"Tech Finesse", "PLUS", "No normal clears and finesse errors!"}, - ['tech_finesse_lock']= {"Tech Finesse", "LOCK", "No finesse errors, combined with limited inputs!"}, - ['tech_finesse_lock_f']= {"Tech Finesse", "LOCK PLUS", "No normal clears or finesse errors combined with limited inputs!"}, ['tsd_e']= {"TSD Challenge", "EASY", "T-Spin Doubles only!"}, ['tsd_h']= {"TSD Challenge", "HARD", "T-Spin Doubles only!"}, ['tsd_u']= {"TSD Challenge", "ULTIMATE", "T-Spin Doubles only!"}, diff --git a/parts/language/lang_es.lua b/parts/language/lang_es.lua index 4510879c..01fee6b1 100644 --- a/parts/language/lang_es.lua +++ b/parts/language/lang_es.lua @@ -923,8 +923,6 @@ return { ['tech_finesse']= {"Tech", "Finesse", "¡No cometas errores de Finesse!"}, -- ['tech_finesse_f']= {"Tech Finesse", "PLUS", "No normal clears and finesse errors!"}, ['tech_finesse_f']= {"Tech", "Finesse+", "Sin errores de finesse,\n¡pero tampoco clears normales!"}, - -- ['tech_finesse_lock']= {"Tech Finesse", "LOCK", "No finesse errors, combined with limited inputs!"}, - -- ['tech_finesse_lock_f']= {"Tech Finesse", "LOCK PLUS", "No normal clears or finesse errors combined with limited inputs!"}, ['tsd_e']= {"Desafío de TSD", "Fácil", "¡Sólo se permiten T-Spin Dobles!"}, ['tsd_h']= {"Desafío de TSD", "Difícil", "¡Sólo se permiten T-Spin Dobles!"}, ['tsd_u']= {"Desafío de TSD", "Supremo", "¡Sólo se permiten T-Spin Dobles!"}, diff --git a/parts/language/lang_fr.lua b/parts/language/lang_fr.lua index e578cb60..7bae4e9f 100644 --- a/parts/language/lang_fr.lua +++ b/parts/language/lang_fr.lua @@ -897,8 +897,6 @@ return { -- ['tech_finesse_f']= {"Tech Finesse", "PLUS", "No normal clears and finesse errors!"}, ['tech_finesse']= {"Tech", "FINESSE", "Pas d'erreurs de finesse !"}, ['tech_finesse_f']={"Tech", "FINESSE+", "Pas de nettoyages normaux,\nPas d'erreurs de finesse !"}, - --['tech_finesse_lock']= {"Tech", "FINESSE LOCK", "No finesse errors, combined with limited inputs!"}, - --['tech_finesse_lock_f']= {"Tech", "FINESSE+ LOCK", "No normal clears or finesse errors combined with limited inputs!"}, ['tsd_e']= {"TSD Challenge", "FACILE", "T-spin doubles uniquement !"}, ['tsd_h']= {"TSD Challenge", "DIFFICILE", "T-spin doubles uniquement !"}, ['tsd_u']= {"TSD Challenge", "ULTIME", "T-spin doubles uniquement !"}, diff --git a/parts/language/lang_id.lua b/parts/language/lang_id.lua index 9562a50b..d0ac50cb 100644 --- a/parts/language/lang_id.lua +++ b/parts/language/lang_id.lua @@ -920,8 +920,6 @@ return { ['tech_l_plus']= {"Tech B2B", "GILA+", "Hanya Spins & PCs dibolehkan"}, ['tech_finesse']= {"Tech", "EF. TOMBOL", "Efisiensi tombol harus maksimal!"}, ['tech_finesse_f']= {"Tech", "EF. TOMBOL+", "Efisiensi tombol maksimal dan anda tidak boleh membuat baris normal!"}, - ['tech_finesse_lock']= {"Tech", "EF. TBL. TERBATAS", "Jumlah pemencetan tombol terbatas, dan efisiensinya harus maksimal!"}, - ['tech_finesse_lock_f']= {"Tech", "EF. TBL.+ TERBATAS", "Jumlah pemencetan tombol terbatas, efisiensi tombol harus maksimal, dan anda tidak boleh membuat baris normal!"}, ['tsd_e']= {"Tantangan TSD", "MUDAH", "Hanya T-Spin Double dibolehkan!"}, ['tsd_h']= {"Tantangan TSD", "SULIT", "Hanya T-Spin Double dibolehkan!"}, ['tsd_u']= {"Tantangan TSD", "TERAKHIR", "Hanya T-Spin Double dibolehkan!"}, diff --git a/parts/language/lang_ja.lua b/parts/language/lang_ja.lua index ac3fa509..e34a6694 100644 --- a/parts/language/lang_ja.lua +++ b/parts/language/lang_ja.lua @@ -964,8 +964,6 @@ C. ゲームパッド ['tech_l_plus']= {"テクニック B2B", "LUNATIC+", "回転入れとパフェだけ!"}, ['tech_finesse']= {"テクニック 最適化", "", "最適化!"}, ['tech_finesse_f']= {"テクニック 最適化", "PLUS", "通常Line消去抜きで最適化!"}, - ['tech_finesse_lock']= {"テクニック 最適化", "LOCK", "限られた入力数で最適化!"}, - ['tech_finesse_lock_f']= {"テクニック 最適化", "LOCK PLUS", "限られた入力数で最適化!\nついでに通常Line消去も禁止!"}, ['tsd_e']= {"TSDチャレンジ", "EASY", "TSDだけ!"}, ['tsd_h']= {"TSDチャレンジ", "HARD", "TSDだけ!"}, ['tsd_u']= {"TSDチャレンジ", "ULTIMATE", "TSDだけ!"}, diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua index 2e9bf574..625f0ca8 100644 --- a/parts/language/lang_pt.lua +++ b/parts/language/lang_pt.lua @@ -910,8 +910,6 @@ return { -- ['tech_finesse_f']= {"Tech Finesse", "PLUS", "No normal clears and finesse errors!"}, ['tech_finesse']= {"Tech", "FINESSE", "Não erre a destreza!"}, ['tech_finesse_f']= {"Tech", "FINESSE+", "Sem limpas normais,\nnão erre a destreza!"}, - --['tech_finesse_lock']= {"Tech", "FINESSE LOCK", "No finesse errors, combined with limited inputs!"}, - --['tech_finesse_lock_f']= {"Tech", "FINESSE+ LOCK", "No normal clears or finesse errors combined with limited inputs!"}, ['tsd_e']= {"Desafio TSD", "FÁCIL", "Apenas T-spin-doubles!"}, ['tsd_h']= {"Desafio TSD", "DIFÍCIL", "Apenas T-spin-doubles!"}, ['tsd_u']= {"Desafio TSD", "ULTIMATE", "Apenas T-spin-doubles!"}, diff --git a/parts/language/lang_vi.lua b/parts/language/lang_vi.lua index 4a157cc1..257e0d08 100644 --- a/parts/language/lang_vi.lua +++ b/parts/language/lang_vi.lua @@ -985,8 +985,6 @@ C. Tay cầm chơi game (Gamepad): ['tech_l_plus']= {"Tech B2B", "RẤT KHÓ+", "Chỉ được clear Spin hoặc PC"}, ['tech_finesse']= {"Kỹ thuật di chuyển","", "Không được phép có lỗi di chuyển!"}, ['tech_finesse_f']= {"Kỹ thuật di chuyển","Khg ĐƠN/ĐÔI/TAM","Không được phép có lỗi di chuyển hoặc kiểu Xoá hàng thường!"}, - ['tech_finesse_lock']= {"Kỹ thuật di chuyển","LOCK", "Không được mắc lỗi di chuyển hoặc bạn không thể điều khiển gạch!"}, - ['tech_finesse_lock_f']= {"Kỹ thuật di chuyển","LOCK+", "Không được mắc lỗi di chuyển hoặc bạn không thể điều khiển gạch! Bạn cũng sẽ thua khi dùng kiểu Xóa hàng thường!"}, ['tsd_e']= {"TSD Challenge", "DỄ", "Chỉ được làm T-Spin Double!"}, ['tsd_h']= {"TSD Challenge", "KHÓ", "Chỉ được làm T-Spin Double!"}, ['tsd_u']= {"TSD Challenge", "THÁCH ĐẤU", "Chỉ được làm T-Spin Double!"}, diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua index d3de2f22..bf2003c3 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -948,8 +948,6 @@ return { ['tech_l_plus']= {"科研", "疯狂+", "仅允许spin与PC"}, ['tech_finesse']= {"科研", "极简", "强制最简操作"}, ['tech_finesse_f']= {"科研", "极简+", "禁止普通消除,强制最简操作"}, - ['tech_finesse_lock']= {"科研", "极简限制", "限制操作次数"}, - ['tech_finesse_lock_f']={"科研", "极简限制+", "限制操作次数,禁止断B2B"}, ['tsd_e']= {"TSD挑战", "简单", "你能连续做几个TSD?"}, ['tsd_h']= {"TSD挑战", "困难", "你能连续做几个TSD?"}, ['tsd_u']= {"TSD挑战", "极限", "你能连续做几个TSD?"}, diff --git a/parts/language/lang_zh_code.lua b/parts/language/lang_zh_code.lua index 084a70c8..11f5b763 100644 --- a/parts/language/lang_zh_code.lua +++ b/parts/language/lang_zh_code.lua @@ -867,8 +867,6 @@ return { ['tech_l_plus']= {"Tech(LunaticP);", "", "仅允许spin与PC"}, ['tech_finesse']= {"Tech(Finesse);", "", "强制最简操作"}, ['tech_finesse_f']= {"Tech(FinesseF);", "", "禁止普通消除,强制最简操作"}, - ['tech_finesse_lock']= {"Tech(FineeseLock);", "", "限制操作次数"}, - ['tech_finesse_lock_f']={"Tech(FineeseLockF);", "", "限制操作次数,禁止断B2B"}, ['tsd_e']= {"TSD(Easy);", "", "你能连续做几个TSD?"}, ['tsd_h']= {"TSD(Hard);", "", "你能连续做几个TSD?"}, ['tsd_u']= {"TSD(Ultimate);", "", "你能连续做几个TSD?"}, diff --git a/parts/language/lang_zh_trad.lua b/parts/language/lang_zh_trad.lua index dd2e6d2a..aa671f4b 100644 --- a/parts/language/lang_zh_trad.lua +++ b/parts/language/lang_zh_trad.lua @@ -920,8 +920,6 @@ return { ['tech_l_plus']= {"科研", "瘋狂+", "僅允許spin與PC"}, ['tech_finesse']= {"科研", "finesse", "強制finesse"}, ['tech_finesse_f']= {"科研", "finesse+", "禁止普通清除,強制finesse"}, - ['tech_finesse_lock']= {"科研", "finesse限制", "限制操作次數"}, - ['tech_finesse_lock_f']={"科研", "finesse限制+","限制操作次數,禁止斷B2B"}, ['tsd_e']= {"TSD挑戰", "簡單", "你能連續做幾個TSD?"}, ['tsd_h']= {"TSD挑戰", "困難", "你能連續做幾個TSD?"}, ['tsd_u']= {"TSD挑戰", "極限", "你能連續做幾個TSD?"}, diff --git a/parts/modes.lua b/parts/modes.lua index 2c2ee5c7..67801152 100644 --- a/parts/modes.lua +++ b/parts/modes.lua @@ -108,7 +108,7 @@ return { {name='pc_l', x=1100, y=-140, size=40,shape=3,icon="pc"}, {name='pc_inf', x=1100, y=-280, size=40,shape=2,icon="pc"}, - {name='sprintAtk', x=500, y=-280, size=40,shape=1,icon="sprint2", unlock={'sprintEff','tech_n','tech_finesse','tech_finesse_lock','tsd_e','backfire_n'}}, + {name='sprintAtk', x=500, y=-280, size=40,shape=1,icon="sprint2", unlock={'sprintEff','tech_n','tech_finesse','tsd_e','backfire_n'}}, {name='sprintEff', x=360, y=-150, size=40,shape=1,icon="sprint2"}, {name='tech_n', x=400, y=20, size=40,shape=1,icon="tech", unlock={'tech_n_plus','tech_h'}}, @@ -121,17 +121,14 @@ return { {name='tech_finesse', x=850, y=20, size=40,shape=1,icon="tech", unlock={'tech_finesse_f'}}, {name='tech_finesse_f', x=1050, y=20, size=40,shape=1,icon="tech_plus"}, - {name='tech_finesse_lock', x=850, y=160, size=40,shape=1,icon="tech", unlock={'tech_finesse_lock_f'}}, - {name='tech_finesse_lock_f',x=1050, y=170, size=40,shape=1,icon="tech_plus"}, + {name='tsd_e', x=700, y=100, size=40,shape=1,icon="tsd", unlock={'tsd_h'}}, + {name='tsd_h', x=860, y=160, size=40,shape=1,icon="tsd", unlock={'tsd_u'}}, + {name='tsd_u', x=1050, y=170, size=40,shape=1,icon="tsd"}, - {name='tsd_e', x=700, y=250, size=40,shape=1,icon="tsd", unlock={'tsd_h'}}, - {name='tsd_h', x=860, y=310, size=40,shape=1,icon="tsd", unlock={'tsd_u'}}, - {name='tsd_u', x=1050, y=320, size=40,shape=1,icon="tsd"}, - - {name='backfire_n', x=640, y=420, size=40,shape=1,icon="backfire", unlock={'backfire_h'}}, - {name='backfire_h', x=790, y=450, size=40,shape=1,icon="backfire", unlock={'backfire_l'}}, - {name='backfire_l', x=930, y=450, size=40,shape=3,icon="backfire", unlock={'backfire_u'}}, - {name='backfire_u', x=1070, y=450, size=35,shape=2,icon="backfire"}, + {name='backfire_n', x=640, y=270, size=40,shape=1,icon="backfire", unlock={'backfire_h'}}, + {name='backfire_h', x=790, y=300, size=40,shape=1,icon="backfire", unlock={'backfire_l'}}, + {name='backfire_l', x=930, y=300, size=40,shape=3,icon="backfire", unlock={'backfire_u'}}, + {name='backfire_u', x=1070, y=300, size=35,shape=2,icon="backfire"}, {name='zen', x=-1200,y=-600, size=40,shape=1,icon="zen", unlock={'ultra','infinite','infinite_dig','marathon_inf'}}, {name='ultra', x=-1400,y=-600, size=40,shape=1,icon="ultra"}, diff --git a/parts/modes/sprint_finesse_lock.lua b/parts/modes/sprint_finesse_lock.lua new file mode 100644 index 00000000..0f501e9a --- /dev/null +++ b/parts/modes/sprint_finesse_lock.lua @@ -0,0 +1,20 @@ +return { + env={ + arr=0, + drop=1e99,lock=60, + freshLimit=15, + eventSet='sprint_finesse_lock', + bg='flink',bgm='infinite', + }, + getRank=function(P) + if P.stat.row<40 then return end + local T=P.stat.time + return + T<=30 and 5 or + T<=42 and 4 or + T<=62 and 3 or + T<=126 and 2 or + T<=226 and 1 or + 0 + end, +} diff --git a/parts/modes/tech_finesse_lock.lua b/parts/modes/tech_finesse_lock.lua deleted file mode 100644 index 5331053e..00000000 --- a/parts/modes/tech_finesse_lock.lua +++ /dev/null @@ -1,28 +0,0 @@ -return { - env={ - arr=0, - drop=1e99,lock=60, - freshLimit=15, - bg='flink',bgm='infinite', - eventSet='tech_finesse_lock' - }, - slowMark=true, - score=function(P) return {P.stat.atk<=100 and math.floor(P.stat.atk) or 100,P.stat.time} end, - scoreDisp=function(D) return D[1].." Attack "..STRING.time(D[2]) end, - comp=function(a,b) return a[1]>b[1] or a[1]==b[1] and a[2]=100 then - local T=P.stat.time - return - T<50 and 5 or - T<70 and 4 or - T<100 and 3 or - 2 - else - return - A>=60 and 1 or - A>=30 and 0 - end - end, -} diff --git a/parts/modes/tech_finesse_lock_f.lua b/parts/modes/tech_finesse_lock_f.lua deleted file mode 100644 index a103d5e1..00000000 --- a/parts/modes/tech_finesse_lock_f.lua +++ /dev/null @@ -1,29 +0,0 @@ -return { - env={ - arr=0, - drop=1e99,lock=60, - b2bKill=true, - freshLimit=15, - bg='flink',bgm='infinite', - eventSet='tech_finesse_lock_f', - }, - slowMark=true, - score=function(P) return {P.stat.atk<=100 and math.floor(P.stat.atk) or 100,P.stat.time} end, - scoreDisp=function(D) return D[1].." Attack "..STRING.time(D[2]) end, - comp=function(a,b) return a[1]>b[1] or a[1]==b[1] and a[2]=100 then - local T=P.stat.time - return - T<50 and 5 or - T<70 and 4 or - T<100 and 3 or - 2 - else - return - A>=60 and 1 or - A>=30 and 0 - end - end, -} diff --git a/parts/scenes/setting_skin.lua b/parts/scenes/setting_skin.lua index 02224d99..6a858d1e 100644 --- a/parts/scenes/setting_skin.lua +++ b/parts/scenes/setting_skin.lua @@ -66,7 +66,10 @@ local function _nextDir(i) SETTING.face[i]=(SETTING.face[i]+1)%4 minoRot0[i]=minoRot0[i]+math.pi/2 if not selEggMode and not GAME.playing then - if minoRot0[5]>62 then + if minoRot0[2]>62 then + selEggMode='sprint_finesse_lock' + playEgg.color=COLOR.dY + elseif minoRot0[5]>62 then selEggMode='marathon_bfmax' playEgg.color=COLOR.dR elseif minoRot0[6]>62 then