diff --git a/Zframework b/Zframework index f8059337..35953907 160000 --- a/Zframework +++ b/Zframework @@ -1 +1 @@ -Subproject commit f8059337db30faeb6f16a830457c93d1a30f5d79 +Subproject commit 3595390738cf1374dc54fe1210e38b0560764657 diff --git a/parts/eventsets/tech_finesse_lock.lua b/parts/eventsets/tech_finesse_lock.lua new file mode 100644 index 00000000..7456a8fa --- /dev/null +++ b/parts/eventsets/tech_finesse_lock.lua @@ -0,0 +1,57 @@ +local function onMove(P) + if not P.cur then return end + P.holdTime=0 + VK.keys[8].ava=false + P.modeData.moveCount=P.modeData.moveCount+1 + if P.modeData.moveCount>=2 and (P.curY>P.gameEnv.fieldH-2 or P:_roofCheck()) then + P.keyAvailable[1]=false + P.keyAvailable[2]=false + VK.keys[1].ava=false + VK.keys[2].ava=false + end +end +local function onRotate(P) + if not P.cur then return end + P.holdTime=0 + VK.keys[8].ava=false + P.modeData.rotations=P.modeData.rotations+1 + if P.modeData.rotations>=2 and not (P.curY>P.gameEnv.fieldH-2 or P:_roofCheck()) then + P.keyAvailable[3]=false + P.keyAvailable[4]=false + P.keyAvailable[5]=false + VK.keys[3].ava=false + VK.keys[4].ava=false + VK.keys[5].ava=false + end +end +local function resetLock(P) + for i=1,8 do + P.keyAvailable[i]=true + VK.keys[i].ava=true + end + P.modeData.moveCount=0 + P.modeData.rotations=0 + P.holdTime=1 +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) + end, + hook_drop=function(P) + resetLock(P) + if P.stat.atk>=100 then + P:win('finish') + end + end, + hook_left_manual=onMove, hook_right_manual=onMove, + hook_rotLeft=onRotate, hook_rotRight=onRotate, hook_rot180=onRotate +} diff --git a/parts/eventsets/tech_finesse_lock_f.lua b/parts/eventsets/tech_finesse_lock_f.lua new file mode 100644 index 00000000..e21e72fb --- /dev/null +++ b/parts/eventsets/tech_finesse_lock_f.lua @@ -0,0 +1,63 @@ +local function onMove(P) + if not P.cur then return end + P.holdTime=0 + VK.keys[8].ava=false + P.modeData.moveCount=P.modeData.moveCount+1 + if P.modeData.moveCount>=2 and (P.curY>P.gameEnv.fieldH-2 or P:_roofCheck()) then + P.keyAvailable[1]=false + P.keyAvailable[2]=false + VK.keys[1].ava=false + VK.keys[2].ava=false + end +end +local function onRotate(P) + if not P.cur then return end + P.holdTime=0 + VK.keys[8].ava=false + P.modeData.rotations=P.modeData.rotations+1 + if P.modeData.rotations>=2 and not (P.curY>P.gameEnv.fieldH-2 or P:_roofCheck()) then + P.keyAvailable[3]=false + P.keyAvailable[4]=false + P.keyAvailable[5]=false + VK.keys[3].ava=false + VK.keys[4].ava=false + VK.keys[5].ava=false + end +end +local function resetLock(P) + for i=1,8 do + P.keyAvailable[i]=true + VK.keys[i].ava=true + end + P.modeData.moveCount=0 + P.modeData.rotations=0 + P.holdTime=1 +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) + end, + hook_drop=function(P) + resetLock(P) + if P.lastPiece.row>0 then + if not P.lastPiece.special then + P:lose() + return + end + end + if P.stat.atk>=100 then + P:win('finish') + end + end, + hook_left_manual=onMove, hook_right_manual=onMove, + hook_rotLeft=onRotate, hook_rotRight=onRotate, hook_rot180=onRotate +} diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua index 8fd21dba..b35a491b 100644 --- a/parts/language/lang_en.lua +++ b/parts/language/lang_en.lua @@ -365,6 +365,7 @@ return { "huaji2369", "Lexitik", "Tourahi Anime", + "PopUpWaffles", "[All other test staff]", "…And You!", }, @@ -853,115 +854,117 @@ C. Gamepad }, }, modes={ - ['sprint_10l']= {"Sprint", "10L", "Clear 10 lines!"}, - ['sprint_20l']= {"Sprint", "20L", "Clear 20 lines!"}, - ['sprint_40l']= {"Sprint", "40L", "Clear 40 lines!"}, - ['sprint_100l']= {"Sprint", "100L", "Clear 100 lines!"}, - ['sprint_400l']= {"Sprint", "400L", "Clear 400 lines!"}, - ['sprint_1000l']= {"Sprint", "1000L", "Clear 1,000 lines!"}, - ['sprintPenta']= {"Sprint", "PENTOMINO", "40L with the 18 pentominoes"}, - ['sprintMPH']= {"Sprint", "MPH", "Memoryless\nPreviewless\nHoldless"}, - ['sprint123']= {"Sprint", "M123", "40L with only monominoes, dominoes, and triminoes"}, - ['secret_grade']= {"Secret Grade", "", "Building a zigzag shape by following the guide!"}, - ['dig_10l']= {"Dig", "10L", "Dig 10 garbage lines as fast as you can!"}, - ['dig_40l']= {"Dig", "40L", "Dig 40 garbage lines as fast as you can!"}, - ['dig_100l']= {"Dig", "100L", "Dig 100 garbage lines as fast as you can!"}, - ['dig_400l']= {"Dig", "400L", "Dig 400 garbage lines as fast as you can!"}, - ['dig_eff_10l']= {"Dig", "EFFICIENCY 10L", "Dig 10 garbage lines with the least pieces!"}, - ['dig_eff_40l']= {"Dig", "EFFICIENCY 40L", "Dig 40 garbage lines with the least pieces!"}, - ['dig_eff_100l']= {"Dig", "EFFICIENCY 100L","Dig 100 garbage lines with the least pieces!"}, - ['dig_eff_400l']= {"Dig", "EFFICIENCY 400L","Dig 400 garbage lines with the least pieces!"}, - ['dig_quad_10l']= {"Dig", "TECHRASH 10L", "Dig 10 garbage lines using only techrash!"}, - ['drought_n']= {"Drought", "100L", "100L but without I blocks"}, - ['drought_l']= {"Drought+", "100L", "W. T. F."}, - ['marathon_n']= {"Marathon", "NORMAL", "200-line marathon with increasing speed"}, - ['marathon_h']= {"Marathon", "HARD", "200-line high-speed marathon"}, - ['solo_e']= {"Battle", "EASY", "Defeat the AI!"}, - ['solo_n']= {"Battle", "NORMAL", "Defeat the AI!"}, - ['solo_h']= {"Battle", "HARD", "Defeat the AI!"}, - ['solo_l']= {"Battle", "LUNATIC", "Defeat the AI!"}, - ['solo_u']= {"Battle", "ULTIMATE", "Defeat the AI!"}, - ['techmino49_e']= {"Tech 49", "EASY", "49-player battle.\nThe last one standing wins"}, - ['techmino49_h']= {"Tech 49", "HARD", "49-player battle.\nThe last one standing wins"}, - ['techmino49_u']= {"Tech 49", "ULTIMATE", "49-player battle.\nThe last one standing wins"}, - ['techmino99_e']= {"Tech 99", "EASY", "99-player battle.\nThe last one standing wins"}, - ['techmino99_h']= {"Tech 99", "HARD", "99-player battle.\nThe last one standing wins"}, - ['techmino99_u']= {"Tech 99", "ULTIMATE", "99-player battle.\nThe last one standing wins"}, - ['round_e']= {"Turn-Based", "EASY", "Take turns to play against the AI!"}, - ['round_n']= {"Turn-Based", "NORMAL", "Take turns to play against the AI!"}, - ['round_h']= {"Turn-Based", "HARD", "Take turns to play against the AI!"}, - ['round_l']= {"Turn-Based", "LUNATIC", "Take turns to play against the AI!"}, - ['round_u']= {"Turn-Based", "ULTIMATE", "Take turns to play against the AI!"}, - ['big_n']= {"Big", "NORMAL", "Play in a 5×10 field!"}, - ['big_h']= {"Big", "HARD", "Play in a 5×10 field!"}, - ['master_n']= {"Master", "NORMAL", "For 20G beginners"}, - ['master_h']= {"Master", "HARD", "For 20G pros"}, - ['master_m']= {"Master", "M21", "For 20G Masters"}, - ['master_final']= {"Master", "FINAL", "20G and beyond"}, - ['master_ph']= {"Master", "PHANTASM", "???"}, - ['master_g']= {"Master", "GRADED", "Get the highest grade you can!"}, - ['master_ex']= {"GrandMaster", "EXTRA", "An eternity shorter than an instant"}, - ['master_instinct']={"Master", "INSTINCT", "What if the active piece becomes invisible?"}, - ['strategy_e']= {"Strategy", "EASY", "Fast 20G decision"}, - ['strategy_h']= {"Strategy", "HARD", "Fast 20G decision"}, - ['strategy_u']= {"Strategy", "ULTIMATE", "Fast 20G decision"}, - ['strategy_e_plus']={"Strategy", "EASY+", "Holdless strategy!"}, - ['strategy_h_plus']={"Strategy", "HARD+", "Holdless strategy!"}, - ['strategy_u_plus']={"Strategy", "ULTIMATE+", "Holdless strategy!"}, - ['blind_e']= {"Invisible", "HALF", "For beginners"}, - ['blind_n']= {"Invisible", "ALL", "For intermediates"}, - ['blind_h']= {"Invisible", "SUDDEN", "For the experienced"}, - ['blind_l']= {"Invisible", "SUDDEN+", "For professionals"}, - ['blind_u']= {"Invisible", "?", "Are you ready?"}, - ['blind_wtf']= {"Invisible", "WTF", "You're not ready."}, - ['classic_e']= {"Classic", "EASY", "A low-speed recreation game from the 80s"}, - ['classic_h']= {"Classic", "HARD", "A medium-speed recreation game from the 80s"}, - ['classic_l']= {"Classic", "LUNATIC", "A high-speed recreation game from the 80s"}, - ['classic_u']= {"Classic", "ULTIMATE", "An extreme-speed recreation game from the 80s"}, - ['survivor_e']= {"Survival", "EASY", "How long can you survive?"}, - ['survivor_n']= {"Survival", "NORMAL", "How long can you survive?"}, - ['survivor_h']= {"Survival", "HARD", "How long can you survive?"}, - ['survivor_l']= {"Survival", "LUNATIC", "How long can you survive?"}, - ['survivor_u']= {"Survival", "ULTIMATE", "How long can you survive?"}, - ['attacker_h']= {"Attacker", "HARD", "Practice your attacking skills!"}, - ['attacker_u']= {"Attacker", "ULTIMATE", "Practice your attacking skills!"}, - ['defender_n']= {"Defender", "NORMAL", "Practice your defensing skills!"}, - ['defender_l']= {"Defender", "LUNATIC", "Practice your defensing skills!"}, - ['dig_h']= {"Driller", "HARD", "Digging practice!"}, - ['dig_u']= {"Driller", "ULTIMATE", "Digging practice!"}, - ['c4wtrain_n']= {"C4W Training", "NORMAL", "Infinite combos"}, - ['c4wtrain_l']= {"C4W Training", "LUNATIC", "Infinite combos"}, - ['pctrain_n']= {"PC Training", "NORMAL", "Perfect Clear practice"}, - ['pctrain_l']= {"PC Training", "LUNATIC", "A harder Perfect Clear practice"}, - ['pc_n']= {"PC Challenge", "NORMAL", "Get PCs within 100 lines!"}, - ['pc_h']= {"PC Challenge", "HARD", "Get PCs within 100 lines!"}, - ['pc_l']= {"PC Challenge", "LUNATIC", "Get PCs within 100 lines!"}, - ['pc_inf']= {"Inf. PC Challenge", "", "Get PCs as much as you can"}, - ['tech_n']= {"Tech", "NORMAL", "Try to keep the\nBack-to-Back chain!"}, - ['tech_n_plus']= {"Tech", "NORMAL+", "Spins & PCs only"}, - ['tech_h']= {"Tech", "HARD", "Try to keep the\nBack-to-Back chain!"}, - ['tech_h_plus']= {"Tech", "HARD+", "Spins & PCs only"}, - ['tech_l']= {"Tech", "LUNATIC", "Try to keep the\nBack-to-Back chain!"}, - ['tech_l_plus']= {"Tech", "LUNATIC+", "Spins & PCs only"}, - ['tech_finesse']= {"Tech", "FINESSE", "No finesse errors!"}, - ['tech_finesse_f']= {"Tech", "FINESSE+", "No normal clears and finesse errors!"}, - ['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!"}, - ['backfire_n']= {"Backfire", "NORMAL", "Hold back the backfiring garbage lines"}, - ['backfire_h']= {"Backfire", "HARD", "Hold back the backfiring garbage lines"}, - ['backfire_l']= {"Backfire", "LUNATIC", "Hold back the backfiring garbage lines"}, - ['backfire_u']= {"Backfire", "ULTIMATE", "Hold back the backfiring garbage lines"}, - ['sprintAtk']= {"Sprint", "100 Attack", "Send 100 lines!"}, - ['sprintEff']= {"Sprint", "Efficiency", "Send more attack in 40 lines!"}, - ['zen']= {'Zen', "200", "A 200-line run with no time limit"}, - ['ultra']= {'Ultra', "EXTRA", "A 2-minute score attack"}, - ['infinite']= {"Infinite", "", "Just a sandbox"}, - ['infinite_dig']= {"Infinite: Dig", "", "Dig-diggin'-dug"}, - ['marathon_inf']= {"Marathon", "INFINITE", "Infinite marathon."}, + ['sprint_10l']= {"Sprint", "10L", "Clear 10 lines!"}, + ['sprint_20l']= {"Sprint", "20L", "Clear 20 lines!"}, + ['sprint_40l']= {"Sprint", "40L", "Clear 40 lines!"}, + ['sprint_100l']= {"Sprint", "100L", "Clear 100 lines!"}, + ['sprint_400l']= {"Sprint", "400L", "Clear 400 lines!"}, + ['sprint_1000l']= {"Sprint", "1000L", "Clear 1,000 lines!"}, + ['sprintPenta']= {"Sprint", "PENTOMINO", "40L with the 18 pentominoes"}, + ['sprintMPH']= {"Sprint", "MPH", "Memoryless\nPreviewless\nHoldless"}, + ['sprint123']= {"Sprint", "M123", "40L with only monominoes, dominoes, and triminoes"}, + ['secret_grade']= {"Secret Grade", "", "Building a zigzag shape by following the guide!"}, + ['dig_10l']= {"Dig", "10L", "Dig 10 garbage lines as fast as you can!"}, + ['dig_40l']= {"Dig", "40L", "Dig 40 garbage lines as fast as you can!"}, + ['dig_100l']= {"Dig", "100L", "Dig 100 garbage lines as fast as you can!"}, + ['dig_400l']= {"Dig", "400L", "Dig 400 garbage lines as fast as you can!"}, + ['dig_eff_10l']= {"Dig", "EFFICIENCY 10L", "Dig 10 garbage lines with the least pieces!"}, + ['dig_eff_40l']= {"Dig", "EFFICIENCY 40L", "Dig 40 garbage lines with the least pieces!"}, + ['dig_eff_100l']= {"Dig", "EFFICIENCY 100L","Dig 100 garbage lines with the least pieces!"}, + ['dig_eff_400l']= {"Dig", "EFFICIENCY 400L","Dig 400 garbage lines with the least pieces!"}, + ['dig_quad_10l']= {"Dig", "TECHRASH 10L", "Dig 10 garbage lines using only techrash!"}, + ['drought_n']= {"Drought", "100L", "100L but without I blocks"}, + ['drought_l']= {"Drought+", "100L", "W. T. F."}, + ['marathon_n']= {"Marathon", "NORMAL", "200-line marathon with increasing speed"}, + ['marathon_h']= {"Marathon", "HARD", "200-line high-speed marathon"}, + ['solo_e']= {"Battle", "EASY", "Defeat the AI!"}, + ['solo_n']= {"Battle", "NORMAL", "Defeat the AI!"}, + ['solo_h']= {"Battle", "HARD", "Defeat the AI!"}, + ['solo_l']= {"Battle", "LUNATIC", "Defeat the AI!"}, + ['solo_u']= {"Battle", "ULTIMATE", "Defeat the AI!"}, + ['techmino49_e']= {"Tech 49", "EASY", "49-player battle.\nThe last one standing wins"}, + ['techmino49_h']= {"Tech 49", "HARD", "49-player battle.\nThe last one standing wins"}, + ['techmino49_u']= {"Tech 49", "ULTIMATE", "49-player battle.\nThe last one standing wins"}, + ['techmino99_e']= {"Tech 99", "EASY", "99-player battle.\nThe last one standing wins"}, + ['techmino99_h']= {"Tech 99", "HARD", "99-player battle.\nThe last one standing wins"}, + ['techmino99_u']= {"Tech 99", "ULTIMATE", "99-player battle.\nThe last one standing wins"}, + ['round_e']= {"Turn-Based", "EASY", "Take turns to play against the AI!"}, + ['round_n']= {"Turn-Based", "NORMAL", "Take turns to play against the AI!"}, + ['round_h']= {"Turn-Based", "HARD", "Take turns to play against the AI!"}, + ['round_l']= {"Turn-Based", "LUNATIC", "Take turns to play against the AI!"}, + ['round_u']= {"Turn-Based", "ULTIMATE", "Take turns to play against the AI!"}, + ['big_n']= {"Big", "NORMAL", "Play in a 5×10 field!"}, + ['big_h']= {"Big", "HARD", "Play in a 5×10 field!"}, + ['master_n']= {"Master", "NORMAL", "For 20G beginners"}, + ['master_h']= {"Master", "HARD", "For 20G pros"}, + ['master_m']= {"Master", "M21", "For 20G Masters"}, + ['master_final']= {"Master", "FINAL", "20G and beyond"}, + ['master_ph']= {"Master", "PHANTASM", "???"}, + ['master_g']= {"Master", "GRADED", "Get the highest grade you can!"}, + ['master_ex']= {"GrandMaster", "EXTRA", "An eternity shorter than an instant"}, + ['master_instinct']= {"Master", "INSTINCT", "What if the active piece becomes invisible?"}, + ['strategy_e']= {"Strategy", "EASY", "Fast 20G decision"}, + ['strategy_h']= {"Strategy", "HARD", "Fast 20G decision"}, + ['strategy_u']= {"Strategy", "ULTIMATE", "Fast 20G decision"}, + ['strategy_e_plus']= {"Strategy", "EASY+", "Holdless strategy!"}, + ['strategy_h_plus']= {"Strategy", "HARD+", "Holdless strategy!"}, + ['strategy_u_plus']= {"Strategy", "ULTIMATE+", "Holdless strategy!"}, + ['blind_e']= {"Invisible", "HALF", "For beginners"}, + ['blind_n']= {"Invisible", "ALL", "For intermediates"}, + ['blind_h']= {"Invisible", "SUDDEN", "For the experienced"}, + ['blind_l']= {"Invisible", "SUDDEN+", "For professionals"}, + ['blind_u']= {"Invisible", "?", "Are you ready?"}, + ['blind_wtf']= {"Invisible", "WTF", "You're not ready."}, + ['classic_e']= {"Classic", "EASY", "A low-speed recreation game from the 80s"}, + ['classic_h']= {"Classic", "HARD", "A medium-speed recreation game from the 80s"}, + ['classic_l']= {"Classic", "LUNATIC", "A high-speed recreation game from the 80s"}, + ['classic_u']= {"Classic", "ULTIMATE", "An extreme-speed recreation game from the 80s"}, + ['survivor_e']= {"Survival", "EASY", "How long can you survive?"}, + ['survivor_n']= {"Survival", "NORMAL", "How long can you survive?"}, + ['survivor_h']= {"Survival", "HARD", "How long can you survive?"}, + ['survivor_l']= {"Survival", "LUNATIC", "How long can you survive?"}, + ['survivor_u']= {"Survival", "ULTIMATE", "How long can you survive?"}, + ['attacker_h']= {"Attacker", "HARD", "Practice your attacking skills!"}, + ['attacker_u']= {"Attacker", "ULTIMATE", "Practice your attacking skills!"}, + ['defender_n']= {"Defender", "NORMAL", "Practice your defensing skills!"}, + ['defender_l']= {"Defender", "LUNATIC", "Practice your defensing skills!"}, + ['dig_h']= {"Driller", "HARD", "Digging practice!"}, + ['dig_u']= {"Driller", "ULTIMATE", "Digging practice!"}, + ['c4wtrain_n']= {"C4W Training", "NORMAL", "Infinite combos"}, + ['c4wtrain_l']= {"C4W Training", "LUNATIC", "Infinite combos"}, + ['pctrain_n']= {"PC Training", "NORMAL", "Perfect Clear practice"}, + ['pctrain_l']= {"PC Training", "LUNATIC", "A harder Perfect Clear practice"}, + ['pc_n']= {"PC Challenge", "NORMAL", "Get PCs within 100 lines!"}, + ['pc_h']= {"PC Challenge", "HARD", "Get PCs within 100 lines!"}, + ['pc_l']= {"PC Challenge", "LUNATIC", "Get PCs within 100 lines!"}, + ['pc_inf']= {"Inf. PC Challenge", "", "Get PCs as much as you can"}, + ['tech_n']= {"Tech", "NORMAL", "Try to keep the\nBack-to-Back chain!"}, + ['tech_n_plus']= {"Tech", "NORMAL+", "Spins & PCs only"}, + ['tech_h']= {"Tech", "HARD", "Try to keep the\nBack-to-Back chain!"}, + ['tech_h_plus']= {"Tech", "HARD+", "Spins & PCs only"}, + ['tech_l']= {"Tech", "LUNATIC", "Try to keep the\nBack-to-Back chain!"}, + ['tech_l_plus']= {"Tech", "LUNATIC+", "Spins & PCs only"}, + ['tech_finesse']= {"Tech", "FINESSE", "No finesse errors!"}, + ['tech_finesse_f']= {"Tech", "FINESSE+", "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", "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!"}, + ['backfire_n']= {"Backfire", "NORMAL", "Hold back the backfiring garbage lines"}, + ['backfire_h']= {"Backfire", "HARD", "Hold back the backfiring garbage lines"}, + ['backfire_l']= {"Backfire", "LUNATIC", "Hold back the backfiring garbage lines"}, + ['backfire_u']= {"Backfire", "ULTIMATE", "Hold back the backfiring garbage lines"}, + ['sprintAtk']= {"Sprint", "100 Attack", "Send 100 lines!"}, + ['sprintEff']= {"Sprint", "Efficiency", "Send more attack in 40 lines!"}, + ['zen']= {'Zen', "200", "A 200-line run with no time limit"}, + ['ultra']= {'Ultra', "EXTRA", "A 2-minute score attack"}, + ['infinite']= {"Infinite", "", "Just a sandbox"}, + ['infinite_dig']= {"Infinite: Dig", "", "Dig-diggin'-dug"}, + ['marathon_inf']= {"Marathon", "INFINITE", "Infinite marathon."}, - ['custom_clear']= {"Custom", "NORMAL"}, - ['custom_puzzle']= {"Custom", "PUZZLE"}, + ['custom_clear']= {"Custom", "NORMAL"}, + ['custom_puzzle']= {"Custom", "PUZZLE"}, }, getTip={refuseCopy=true, ":pog:", diff --git a/parts/language/lang_es.lua b/parts/language/lang_es.lua index c3b57b7f..a15ec8b6 100644 --- a/parts/language/lang_es.lua +++ b/parts/language/lang_es.lua @@ -362,6 +362,7 @@ return { "huaji2369", "Lexitik", "Tourahi Anime", + "PopUpWaffles", "[Todo el staff de testeo]", "…Y a ti!", }, @@ -897,6 +898,8 @@ return { ['tech_l_plus']= {"Tech", "Lunático+", "¡Sólo se permiten Spins y PCs!"}, ['tech_finesse']= {"Tech", "Finesse", "¡No cometas errores de Finesse!"}, ['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", "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 d4970dfd..cc72525c 100644 --- a/parts/language/lang_fr.lua +++ b/parts/language/lang_fr.lua @@ -341,6 +341,7 @@ return { "huaji2369", "Lexitik", "Tourahi Anime", + "PopUpWaffles", "[All other test staff]", "…And You!", }, @@ -868,6 +869,8 @@ return { ['tech_l_plus']= {"Tech", "LUNATIQUE+", "Spin & PC uniquement"}, ['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 e0cd8901..deddb515 100644 --- a/parts/language/lang_id.lua +++ b/parts/language/lang_id.lua @@ -363,6 +363,7 @@ return { "huaji2369", "Lexitik", "Tourahi Anime", + "PopUpWaffles", "[Semua staf penguji lainnya]", "…Dan Anda!", }, @@ -815,115 +816,117 @@ return { }, }, modes={ - ['sprint_10l']= {"Balapan", "10L", "Buat 10 baris!"}, - ['sprint_20l']= {"Balapan", "20L", "Buat 20 baris!"}, - ['sprint_40l']= {"Balapan", "40L", "Buat 40 baris!"}, - ['sprint_100l']= {"Balapan", "100L", "Buat 100 baris!"}, - ['sprint_400l']= {"Balapan", "400L", "Buat 400 baris!"}, - ['sprint_1000l']= {"Balapan", "1.000L", "Buat 1.000 baris!"}, - ['sprintPenta']= {"Balapan", "PENTOMINO", "40L dengan pentomino!"}, - ['sprintMPH']= {"Balapan", "MPH", "Tanpa ingatan\nTanpa pratinjau\nTanpa simpan"}, - ['sprint123']= {"Balapan", "M123", "40L dengan hanya monomino, domino, dan trimino"}, - ['secret_grade']= {"Secret Grade", "", "Buatlah formasi lubang zigzag, menuruti panduannya!"}, - ['dig_10l']= {"Gali", "10L", "Gali 10 baris!"}, - ['dig_40l']= {"Gali", "40L", "Gali 40 baris!"}, - ['dig_100l']= {"Gali", "100L", "Gali 100 baris!"}, - ['dig_400l']= {"Gali", "400L", "Gali 400 baris!"}, - ['dig_eff_10l']= {"Gali", "EFISIENSI 10L", "Gali 10 baris!"}, - ['dig_eff_40l']= {"Gali", "EFISIENSI 40L", "Gali 40 baris!"}, - ['dig_eff_100l']= {"Gali", "EFISIENSI 100L","Gali 100 baris!"}, - ['dig_eff_400l']= {"Gali", "EFISIENSI 400L","Gali 400 baris!"}, - ['dig_quad_10l']= {"Gali", "TECHRASH 10L", "Gali 10 baris hanya dengan techrash!"}, - ['drought_n']= {"Nasib Buruk", "100L", "Tidak ada blok I..."}, - ['drought_l']= {"Nasib Buruk+", "100L", "Nasib sangat buruk..."}, - ['marathon_n']= {"Maraton", "NORMAL", "200-baris maraton dengan kecepatan meningkat"}, - ['marathon_h']= {"Maraton", "SULIT", "200-baris maraton dengan kecepatan tinggi"}, - ['solo_e']= {"Tarung", "MUDAH", "Kalahkan AInya!"}, - ['solo_n']= {"Tarung", "NORMAL", "Kalahkan AInya!"}, - ['solo_h']= {"Tarung", "SULIT", "Kalahkan AInya!"}, - ['solo_l']= {"Tarung", "GILA", "Kalahkan AInya!"}, - ['solo_u']= {"Tarung", "TERAKHIR", "Kalahkan AInya!"}, - ['techmino49_e']= {"Tech 49", "MUDAH", "Pertarungan dengan 49 pemain."}, - ['techmino49_h']= {"Tech 49", "SULIT", "Pertarungan dengan 49 pemain."}, - ['techmino49_u']= {"Tech 49", "TERAKHIR", "Pertarungan dengan 49 pemain."}, - ['techmino99_e']= {"Tech 99", "MUDAH", "Pertarungan dengan 99 pemain."}, - ['techmino99_h']= {"Tech 99", "SULIT", "Pertarungan dengan 99 pemain."}, - ['techmino99_u']= {"Tech 99", "TERAKHIR", "Pertarungan dengan 99 pemain."}, - ['round_e']= {"Giliran", "MUDAH", "Giliran main melawan AI!"}, - ['round_n']= {"Giliran", "NORMAL", "Giliran main melawan AI!"}, - ['round_h']= {"Giliran", "SULIT", "Giliran main melawan AI!"}, - ['round_l']= {"Giliran", "GILA", "Giliran main melawan AI!"}, - ['round_u']= {"Giliran", "TERAKHIR", "Giliran main melawan AI!"}, - ['big_n']= {"Besar", "NORMAL", "Main dalam tempat main lebih kecil!"}, - ['big_h']= {"Besar", "SULIT", "Main dalam tempat main lebih kecil!"}, - ['master_n']= {"Ahli", "NORMAL", "Untuk pemula 20G"}, - ['master_h']= {"Ahli", "SULIT", "Untuk pro 20G"}, - ['master_m']= {"Ahli", "M21", "Untuk jago 20G"}, - ['master_final']= {"Ahli", "TERAKHIR", "Lebih dari 20G"}, - ['master_ph']= {"Ahli", "KHAYALAN", "???"}, - ['master_g']= {"Ahli", "BERTINGKAT", "Dapatkan tingkat tertinggi!"}, - ['master_ex']= {"Sangat Ahli", "EKSTRA", "Blok tidak kelihatan"}, - ['master_instinct']={"Ahli", "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"}, - ['strategy_e_plus']={"Strategi", "MUDAH+", "Mode strategi, tetapi tanpa menyimpan"}, - ['strategy_h_plus']={"Strategi", "SULIT+", "Mode strategi, tetapi tanpa menyimpan"}, - ['strategy_u_plus']={"Strategi", "TERAKHIR+", "Mode strategi, tetapi tanpa menyimpan"}, - ['blind_e']= {"Tak Terlihat", "MUDAH", "Untuk pemula"}, - ['blind_n']= {"Tak Terlihat", "NORMAL", "Untuk amatir"}, - ['blind_h']= {"Tak Terlihat", "SULIT", "Untuk orang berpengalaman"}, - ['blind_l']= {"Tak Terlihat", "GILA", "Untuk profesional"}, - ['blind_u']= {"Tak Terlihat", "???", "Apakah Anda siap?"}, - ['blind_wtf']= {"Tak Terlihat", "TERAKHIR", "Anda belum siap"}, - ['classic_e']= {"Klasik", "MUDAH", "Rekreasi berkecepatan rendah dari tahun 80-an"}, - ['classic_h']= {"Klasik", "SULIT", "Rekreasi berkecepatan medium dari tahun 80-an"}, - ['classic_l']= {"Klasik", "GILA", "Rekreasi berkecepatan medium-tinggi dari tahun 80-an"}, - ['classic_u']= {"Klasik", "TERAKHIR", "Rekreasi berkecepatan tinggi dari tahun 80-an"}, - ['survivor_e']= {"Bertahan", "MUDAH", "Berapa lama Anda bisa bertahan?"}, - ['survivor_n']= {"Bertahan", "NORMAL", "Berapa lama Anda bisa bertahan?"}, - ['survivor_h']= {"Bertahan", "SULIT", "Berapa lama Anda bisa bertahan?"}, - ['survivor_l']= {"Bertahan", "GILA", "Berapa lama Anda bisa bertahan?"}, - ['survivor_u']= {"Bertahan", "TERAKHIR", "Berapa lama Anda bisa bertahan?"}, - ['attacker_h']= {"Penyerang", "SULIT", "Praktekkan keahlian menyerang Anda!"}, - ['attacker_u']= {"Penyerang", "TERAKHIR", "Praktekkan keahlian menyerang Anda!"}, - ['defender_n']= {"Pembela", "NORMAL", "Praktekkan keahlian membela Anda!"}, - ['defender_l']= {"Pembela", "GILA", "Praktekkan keahlian membela Anda!"}, - ['dig_h']= {"Pembor", "SULIT", "Praktekkan keahlian menggali Anda!"}, - ['dig_u']= {"Pembor", "TERAKHIR", "Praktekkan keahlian menggali Anda!"}, - ['c4wtrain_n']= {"Latihan C4W", "NORMAL", "Kombo tidak terbatas."}, - ['c4wtrain_l']= {"Latihan C4W", "GILA", "Kombo tidak terbatas."}, - ['pctrain_n']= {"Latihan PC", "NORMAL", "Latihan PC"}, - ['pctrain_l']= {"Latihan PC", "GILA", "Latihan PC yang lebih sulit"}, - ['pc_n']= {"Tantangan PC", "NORMAL", "Dapatkan PC sampai 100 baris!"}, - ['pc_h']= {"Tantangan PC", "SULIT", "Dapatkan PC sampai 100 baris!"}, - ['pc_l']= {"Tantangan PC", "GILA", "Dapatkan PC sampai 100 baris!"}, - ['pc_inf']= {"Tantangan PC", "TAK TERBATAS", "Dapatkan PC sebanyaknya!"}, - ['tech_n']= {"Tech", "NORMAL", "Coba jaga deret Back-To-Back!"}, - ['tech_n_plus']= {"Tech", "NORMAL+", "Hanya Spins & PCs dibolehkan"}, - ['tech_h']= {"Tech", "SULIT", "Coba jaga deret Back-To-Back!"}, - ['tech_h_plus']= {"Tech", "SULIT+", "Hanya Spins & PCs dibolehkan"}, - ['tech_l']= {"Tech", "GILA", "Coba jaga deret Back-To-Back!"}, - ['tech_l_plus']= {"Tech", "GILA+", "Hanya Spins & PCs dibolehkan"}, - ['tech_finesse']= {"Tech", "EF. TOMBOL", "Efisiensi tombol harus maksimal!"}, - ['tech_finesse_f']= {"Tech", "EF. TOMBOL+", "Efisiensi tombol maksimal dan tidak ada garis 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!"}, - ['backfire_n']= {"Serangan Balik", "NORMAL", "Tahankan serang baliknya!"}, - ['backfire_h']= {"Serangan Balik", "SULIT", "Tahankan serang baliknya!"}, - ['backfire_l']= {"Serangan Balik", "GILA", "Tahankan serang baliknya!"}, - ['backfire_u']= {"Serangan Balik", "TERAKHIR", "Tahankan serang baliknya!"}, - ['sprintAtk']= {"Balapan", "100 Serangan", "Kirim 100 baris serangan!"}, - ['sprintEff']= {"Balapan", "Efisiensi", "Kirim lebih banyak serangan sampai 40 baris!"}, - ['zen']= {"Zen", "200L", "Permainan 200-garis tanpa batas waktu"}, - ['ultra']= {"Ultra", "EKSTRA", "Permainan 2 menit. Dapatkan nilai sebanyaknya!"}, - ['infinite']= {"Tak Terbatas", "", "Bak pasir"}, - ['infinite_dig']= {"Tak Terbatas: Gali","", "Gali, gali, gali"}, - ['marathon_inf']= {"Maraton", "TAK TERBATAS", "Maraton tanpa akhir."}, + ['sprint_10l']= {"Balapan", "10L", "Buat 10 baris!"}, + ['sprint_20l']= {"Balapan", "20L", "Buat 20 baris!"}, + ['sprint_40l']= {"Balapan", "40L", "Buat 40 baris!"}, + ['sprint_100l']= {"Balapan", "100L", "Buat 100 baris!"}, + ['sprint_400l']= {"Balapan", "400L", "Buat 400 baris!"}, + ['sprint_1000l']= {"Balapan", "1.000L", "Buat 1.000 baris!"}, + ['sprintPenta']= {"Balapan", "PENTOMINO", "40L dengan pentomino!"}, + ['sprintMPH']= {"Balapan", "MPH", "Tanpa ingatan\nTanpa pratinjau\nTanpa simpan"}, + ['sprint123']= {"Balapan", "M123", "40L dengan hanya monomino, domino, dan trimino"}, + ['secret_grade']= {"Secret Grade", "", "Buatlah formasi lubang zigzag, menuruti panduannya!"}, + ['dig_10l']= {"Gali", "10L", "Gali 10 baris!"}, + ['dig_40l']= {"Gali", "40L", "Gali 40 baris!"}, + ['dig_100l']= {"Gali", "100L", "Gali 100 baris!"}, + ['dig_400l']= {"Gali", "400L", "Gali 400 baris!"}, + ['dig_eff_10l']= {"Gali", "EFISIENSI 10L", "Gali 10 baris!"}, + ['dig_eff_40l']= {"Gali", "EFISIENSI 40L", "Gali 40 baris!"}, + ['dig_eff_100l']= {"Gali", "EFISIENSI 100L", "Gali 100 baris!"}, + ['dig_eff_400l']= {"Gali", "EFISIENSI 400L", "Gali 400 baris!"}, + ['dig_quad_10l']= {"Gali", "TECHRASH 10L", "Gali 10 baris hanya dengan techrash!"}, + ['drought_n']= {"Nasib Buruk", "100L", "Tidak ada blok I..."}, + ['drought_l']= {"Nasib Buruk+", "100L", "Nasib sangat buruk..."}, + ['marathon_n']= {"Maraton", "NORMAL", "200-baris maraton dengan kecepatan meningkat"}, + ['marathon_h']= {"Maraton", "SULIT", "200-baris maraton dengan kecepatan tinggi"}, + ['solo_e']= {"Tarung", "MUDAH", "Kalahkan AInya!"}, + ['solo_n']= {"Tarung", "NORMAL", "Kalahkan AInya!"}, + ['solo_h']= {"Tarung", "SULIT", "Kalahkan AInya!"}, + ['solo_l']= {"Tarung", "GILA", "Kalahkan AInya!"}, + ['solo_u']= {"Tarung", "TERAKHIR", "Kalahkan AInya!"}, + ['techmino49_e']= {"Tech 49", "MUDAH", "Pertarungan dengan 49 pemain."}, + ['techmino49_h']= {"Tech 49", "SULIT", "Pertarungan dengan 49 pemain."}, + ['techmino49_u']= {"Tech 49", "TERAKHIR", "Pertarungan dengan 49 pemain."}, + ['techmino99_e']= {"Tech 99", "MUDAH", "Pertarungan dengan 99 pemain."}, + ['techmino99_h']= {"Tech 99", "SULIT", "Pertarungan dengan 99 pemain."}, + ['techmino99_u']= {"Tech 99", "TERAKHIR", "Pertarungan dengan 99 pemain."}, + ['round_e']= {"Giliran", "MUDAH", "Giliran main melawan AI!"}, + ['round_n']= {"Giliran", "NORMAL", "Giliran main melawan AI!"}, + ['round_h']= {"Giliran", "SULIT", "Giliran main melawan AI!"}, + ['round_l']= {"Giliran", "GILA", "Giliran main melawan AI!"}, + ['round_u']= {"Giliran", "TERAKHIR", "Giliran main melawan AI!"}, + ['big_n']= {"Besar", "NORMAL", "Main dalam tempat main lebih kecil!"}, + ['big_h']= {"Besar", "SULIT", "Main dalam tempat main lebih kecil!"}, + ['master_n']= {"Ahli", "NORMAL", "Untuk pemula 20G"}, + ['master_h']= {"Ahli", "SULIT", "Untuk pro 20G"}, + ['master_m']= {"Ahli", "M21", "Untuk jago 20G"}, + ['master_final']= {"Ahli", "TERAKHIR", "Lebih dari 20G"}, + ['master_ph']= {"Ahli", "KHAYALAN", "???"}, + ['master_g']= {"Ahli", "BERTINGKAT", "Dapatkan tingkat tertinggi!"}, + ['master_ex']= {"Sangat Ahli", "EKSTRA", "Blok tidak kelihatan"}, + ['master_instinct']= {"Ahli", "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"}, + ['strategy_e_plus']= {"Strategi", "MUDAH+", "Mode strategi, tetapi tanpa menyimpan"}, + ['strategy_h_plus']= {"Strategi", "SULIT+", "Mode strategi, tetapi tanpa menyimpan"}, + ['strategy_u_plus']= {"Strategi", "TERAKHIR+", "Mode strategi, tetapi tanpa menyimpan"}, + ['blind_e']= {"Tak Terlihat", "MUDAH", "Untuk pemula"}, + ['blind_n']= {"Tak Terlihat", "NORMAL", "Untuk amatir"}, + ['blind_h']= {"Tak Terlihat", "SULIT", "Untuk orang berpengalaman"}, + ['blind_l']= {"Tak Terlihat", "GILA", "Untuk profesional"}, + ['blind_u']= {"Tak Terlihat", "???", "Apakah Anda siap?"}, + ['blind_wtf']= {"Tak Terlihat", "TERAKHIR", "Anda belum siap"}, + ['classic_e']= {"Klasik", "MUDAH", "Rekreasi berkecepatan rendah dari tahun 80-an"}, + ['classic_h']= {"Klasik", "SULIT", "Rekreasi berkecepatan medium dari tahun 80-an"}, + ['classic_l']= {"Klasik", "GILA", "Rekreasi berkecepatan medium-tinggi dari tahun 80-an"}, + ['classic_u']= {"Klasik", "TERAKHIR", "Rekreasi berkecepatan tinggi dari tahun 80-an"}, + ['survivor_e']= {"Bertahan", "MUDAH", "Berapa lama Anda bisa bertahan?"}, + ['survivor_n']= {"Bertahan", "NORMAL", "Berapa lama Anda bisa bertahan?"}, + ['survivor_h']= {"Bertahan", "SULIT", "Berapa lama Anda bisa bertahan?"}, + ['survivor_l']= {"Bertahan", "GILA", "Berapa lama Anda bisa bertahan?"}, + ['survivor_u']= {"Bertahan", "TERAKHIR", "Berapa lama Anda bisa bertahan?"}, + ['attacker_h']= {"Penyerang", "SULIT", "Praktekkan keahlian menyerang Anda!"}, + ['attacker_u']= {"Penyerang", "TERAKHIR", "Praktekkan keahlian menyerang Anda!"}, + ['defender_n']= {"Pembela", "NORMAL", "Praktekkan keahlian membela Anda!"}, + ['defender_l']= {"Pembela", "GILA", "Praktekkan keahlian membela Anda!"}, + ['dig_h']= {"Pembor", "SULIT", "Praktekkan keahlian menggali Anda!"}, + ['dig_u']= {"Pembor", "TERAKHIR", "Praktekkan keahlian menggali Anda!"}, + ['c4wtrain_n']= {"Latihan C4W", "NORMAL", "Kombo tidak terbatas."}, + ['c4wtrain_l']= {"Latihan C4W", "GILA", "Kombo tidak terbatas."}, + ['pctrain_n']= {"Latihan PC", "NORMAL", "Latihan PC"}, + ['pctrain_l']= {"Latihan PC", "GILA", "Latihan PC yang lebih sulit"}, + ['pc_n']= {"Tantangan PC", "NORMAL", "Dapatkan PC sampai 100 baris!"}, + ['pc_h']= {"Tantangan PC", "SULIT", "Dapatkan PC sampai 100 baris!"}, + ['pc_l']= {"Tantangan PC", "GILA", "Dapatkan PC sampai 100 baris!"}, + ['pc_inf']= {"Tantangan PC", "TAK TERBATAS", "Dapatkan PC sebanyaknya!"}, + ['tech_n']= {"Tech", "NORMAL", "Coba jaga deret Back-To-Back!"}, + ['tech_n_plus']= {"Tech", "NORMAL+", "Hanya Spins & PCs dibolehkan"}, + ['tech_h']= {"Tech", "SULIT", "Coba jaga deret Back-To-Back!"}, + ['tech_h_plus']= {"Tech", "SULIT+", "Hanya Spins & PCs dibolehkan"}, + ['tech_l']= {"Tech", "GILA", "Coba jaga deret Back-To-Back!"}, + ['tech_l_plus']= {"Tech", "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!"}, + ['backfire_n']= {"Serangan Balik", "NORMAL", "Tahankan serang baliknya!"}, + ['backfire_h']= {"Serangan Balik", "SULIT", "Tahankan serang baliknya!"}, + ['backfire_l']= {"Serangan Balik", "GILA", "Tahankan serang baliknya!"}, + ['backfire_u']= {"Serangan Balik", "TERAKHIR", "Tahankan serang baliknya!"}, + ['sprintAtk']= {"Balapan", "100 Serangan", "Kirim 100 baris serangan!"}, + ['sprintEff']= {"Balapan", "Efisiensi", "Kirim lebih banyak serangan sampai 40 baris!"}, + ['zen']= {"Zen", "200L", "Permainan 200-garis tanpa batas waktu"}, + ['ultra']= {"Ultra", "EKSTRA", "Permainan 2 menit. Dapatkan nilai sebanyaknya!"}, + ['infinite']= {"Tak Terbatas", "", "Bak pasir"}, + ['infinite_dig']= {"Tak Terbatas: Gali","", "Gali, gali, gali"}, + ['marathon_inf']= {"Maraton", "TAK TERBATAS", "Maraton tanpa akhir."}, - ['custom_clear']= {"Tersesuai", "NORMAL"}, - ['custom_puzzle']= {"Tersesuai", "TEKA-TEKI"}, + ['custom_clear']= {"Tersesuai", "NORMAL"}, + ['custom_puzzle']= {"Tersesuai", "TEKA-TEKI"}, }, getTip={refuseCopy=true, "(RUR'U')R'FR2U'R'U'(RUR'F')", diff --git a/parts/language/lang_ja.lua b/parts/language/lang_ja.lua index 8f3805db..153b0173 100644 --- a/parts/language/lang_ja.lua +++ b/parts/language/lang_ja.lua @@ -364,6 +364,7 @@ return { "huaji2369", "Lexitik", "Tourahi Anime", + "PopUpWaffles", "[All other test staff]", "…And You!", }, @@ -950,6 +951,8 @@ C. ゲームパッド ['tech_l_plus']= {"テクニック", "LUNATIC+", "回転入れとパフェだけ!"}, ['tech_finesse']= {"テクニック", "FINESSE", "最適化!"}, ['tech_finesse_f']= {"テクニック", "FINESSE+", "最適化はそのまま、通常line消去禁止!"}, + --['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チャレンジ", "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 91be3444..6ae837c7 100644 --- a/parts/language/lang_pt.lua +++ b/parts/language/lang_pt.lua @@ -351,6 +351,7 @@ return { "huaji2369", "Lexitik", "Tourahi Anime", + "PopUpWaffles", "[All other test staff]", "…And You!", }, @@ -887,6 +888,8 @@ return { ['tech_l_plus']= {"Tech", "LUNÁTICO+", "Apenas spins e PC"}, ['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 b6c78e9e..ebc094f5 100644 --- a/parts/language/lang_vi.lua +++ b/parts/language/lang_vi.lua @@ -370,6 +370,7 @@ return { "huaji2369", "Lexitik", "Tourahi Anime", + "PopUpWaffles", "[cùng với các thành viên thử nghiệm khác]", "…và BẠN!", }, @@ -969,6 +970,8 @@ C. Tay cầm chơi game (Gamepad): ['tech_l_plus']= {"Tech", "RẤT KHÓ+", "Chỉ được clear Spin hoặc PC"}, ['tech_finesse']= {"Tech", "HOÀN HẢO", "Không được phép có lỗi di chuyển!"}, ['tech_finesse_f']= {"Tech", "HOÀN HẢO+", "Không được phép có lỗi di chuyển hoặc loại Xoá hàng thường!"}, + --['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", "DỄ", "Chỉ được làm T-Spin Double!"}, -- Chỉ được clear… ['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 587d446c..030a0d16 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -363,6 +363,7 @@ return { "huaji2369", "Lexitik", "Tourahi Anime", + "PopUpWaffles", "[All other test staff]", "…And You!", }, @@ -937,6 +938,8 @@ return { ['tech_l_plus']= {"科研", "疯狂+", "仅允许spin与PC"}, ['tech_finesse']= {"科研", "极简", "强制最简操作"}, ['tech_finesse_f']= {"科研", "极简+", "禁止普通消除,强制最简操作"}, + --['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挑战", "简单", "你能连续做几个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 0e95a486..40931fad 100644 --- a/parts/language/lang_zh_code.lua +++ b/parts/language/lang_zh_code.lua @@ -311,6 +311,7 @@ return { "huaji2369", "Lexitik", "Tourahi Anime", + "PopUpWaffles", "[All other test staff]", "…And You!", }, @@ -854,6 +855,8 @@ return { ['tech_l_plus']= {"Tech(LunaticP);", "", "仅允许spin与PC"}, ['tech_finesse']= {"Tech(Finesse);", "", "强制最简操作"}, ['tech_finesse_f']= {"Tech(FinesseF);", "", "禁止普通消除,强制最简操作"}, + --['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(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 ad369017..1d412f9c 100644 --- a/parts/language/lang_zh_trad.lua +++ b/parts/language/lang_zh_trad.lua @@ -363,6 +363,7 @@ return { "huaji2369", "Lexitik", "Tourahi Anime", + "PopUpWaffles", "[All other test staff]", "…And You!", }, @@ -907,6 +908,8 @@ return { ['tech_l_plus']= {"科研", "瘋狂+", "僅允許spin與PC"}, ['tech_finesse']= {"科研", "finesse", "強制finesse"}, ['tech_finesse_f']= {"科研", "finesse+", "禁止普通清除,強制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挑戰", "簡單", "你能連續做幾個TSD?"}, ['tsd_h']= {"TSD挑戰", "困難", "你能連續做幾個TSD?"}, ['tsd_u']= {"TSD挑戰", "極限", "你能連續做幾個TSD?"}, diff --git a/parts/modes.lua b/parts/modes.lua index 706dfe19..8e1b94b6 100644 --- a/parts/modes.lua +++ b/parts/modes.lua @@ -1,135 +1,136 @@ return { - {name='sprint_10l', x=0, y=0, size=40,shape=1,icon="sprint1", unlock={'sprint_20l','sprint_40l'}}, - {name='sprint_20l', x=-200, y=200, size=50,shape=1,icon="sprint1"}, - {name='sprint_40l', x=0, y=-300, size=40,shape=1,icon="sprint2", unlock={'dig_10l','sprint_100l','marathon_n','sprintPenta','sprintMPH','sprint123','secret_grade'}}, - {name='sprint_100l', x=-400, y=200, size=50,shape=1,icon="sprint2", unlock={'sprint_400l','drought_n'}}, - {name='sprint_400l', x=-600, y=200, size=40,shape=1,icon="sprint3", unlock={'sprint_1000l'}}, - {name='sprint_1000l', x=-800, y=200, size=40,shape=1,icon="sprint3"}, + {name='sprint_10l', x=0, y=0, size=40,shape=1,icon="sprint1", unlock={'sprint_20l','sprint_40l'}}, + {name='sprint_20l', x=-200, y=200, size=50,shape=1,icon="sprint1"}, + {name='sprint_40l', x=0, y=-300, size=40,shape=1,icon="sprint2", unlock={'dig_10l','sprint_100l','marathon_n','sprintPenta','sprintMPH','sprint123','secret_grade'}}, + {name='sprint_100l', x=-400, y=200, size=50,shape=1,icon="sprint2", unlock={'sprint_400l','drought_n'}}, + {name='sprint_400l', x=-600, y=200, size=40,shape=1,icon="sprint3", unlock={'sprint_1000l'}}, + {name='sprint_1000l', x=-800, y=200, size=40,shape=1,icon="sprint3"}, - {name='sprint123', x=160, y=-400, size=40,shape=1,icon="sprint_tri"}, - {name='sprintMPH', x=200, y=-260, size=40,shape=3,icon="sprint2"}, - {name='sprintPenta', x=130, y=-140, size=40,shape=3,icon="sprint_pento"}, + {name='sprint123', x=160, y=-400, size=40,shape=1,icon="sprint_tri"}, + {name='sprintMPH', x=200, y=-260, size=40,shape=3,icon="sprint2"}, + {name='sprintPenta', x=130, y=-140, size=40,shape=3,icon="sprint_pento"}, - {name='secret_grade', x=-200, y=-400, size=40,shape=1,icon="secret_grade"}, + {name='secret_grade', x=-200, y=-400, size=40,shape=1,icon="secret_grade"}, - {name='drought_n', x=-600, y=400, size=40,shape=1,icon="drought", unlock={'drought_l'}}, - {name='drought_l', x=-800, y=400, size=40,shape=1,icon="drought"}, + {name='drought_n', x=-600, y=400, size=40,shape=1,icon="drought", unlock={'drought_l'}}, + {name='drought_l', x=-800, y=400, size=40,shape=1,icon="drought"}, - {name='dig_10l', x=-200, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_40l','dig_eff_10l'}}, - {name='dig_40l', x=-400, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_100l'}}, - {name='dig_100l', x=-600, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_400l'}}, - {name='dig_400l', x=-800, y=-200, size=40,shape=1,icon="dig_sprint"}, + {name='dig_10l', x=-200, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_40l','dig_eff_10l'}}, + {name='dig_40l', x=-400, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_100l'}}, + {name='dig_100l', x=-600, y=-200, size=40,shape=1,icon="dig_sprint", unlock={'dig_400l'}}, + {name='dig_400l', x=-800, y=-200, size=40,shape=1,icon="dig_sprint"}, - {name='dig_eff_10l', x=-400, y=0, size=40,shape=1,icon="dig_sprint", unlock={'dig_eff_40l'}}, - {name='dig_eff_40l', x=-600, y=0, size=40,shape=1,icon="dig_sprint", unlock={'dig_eff_100l'}}, - {name='dig_eff_100l', x=-800, y=0, size=40,shape=1,icon="dig_sprint", unlock={'dig_eff_400l'}}, - {name='dig_eff_400l', x=-1000, y=0, size=40,shape=1,icon="dig_sprint"}, + {name='dig_eff_10l', x=-400, y=0, size=40,shape=1,icon="dig_sprint", unlock={'dig_eff_40l'}}, + {name='dig_eff_40l', x=-600, y=0, size=40,shape=1,icon="dig_sprint", unlock={'dig_eff_100l'}}, + {name='dig_eff_100l', x=-800, y=0, size=40,shape=1,icon="dig_sprint", unlock={'dig_eff_400l'}}, + {name='dig_eff_400l', x=-1000, y=0, size=40,shape=1,icon="dig_sprint"}, - {name='marathon_n', x=0, y=-600, size=60,shape=1,icon="marathon", unlock={'marathon_h','solo_e','round_e','big_n','blind_e','classic_e','survivor_e','c4wtrain_n','pctrain_n','sprintAtk','zen'}}, - {name='marathon_h', x=0, y=-800, size=50,shape=1,icon="marathon", unlock={'master_n','strategy_e'}}, + {name='marathon_n', x=0, y=-600, size=60,shape=1,icon="marathon", unlock={'marathon_h','solo_e','round_e','big_n','blind_e','classic_e','survivor_e','c4wtrain_n','pctrain_n','sprintAtk','zen'}}, + {name='marathon_h', x=0, y=-800, size=50,shape=1,icon="marathon", unlock={'master_n','strategy_e'}}, - {name='solo_e', x=-600, y=-1000, size=40,shape=1,icon="solo", unlock={'solo_n'}}, - {name='solo_n', x=-800, y=-1000, size=40,shape=1,icon="solo", unlock={'solo_h'}}, - {name='solo_h', x=-1000, y=-1000, size=40,shape=1,icon="solo", unlock={'solo_l','techmino49_e'}}, - {name='solo_l', x=-1200, y=-1000, size=40,shape=1,icon="solo", unlock={'solo_u'}}, - {name='solo_u', x=-1400, y=-1000, size=40,shape=1,icon="solo"}, + {name='solo_e', x=-600, y=-1000, size=40,shape=1,icon="solo", unlock={'solo_n'}}, + {name='solo_n', x=-800, y=-1000, size=40,shape=1,icon="solo", unlock={'solo_h'}}, + {name='solo_h', x=-1000, y=-1000, size=40,shape=1,icon="solo", unlock={'solo_l','techmino49_e'}}, + {name='solo_l', x=-1200, y=-1000, size=40,shape=1,icon="solo", unlock={'solo_u'}}, + {name='solo_u', x=-1400, y=-1000, size=40,shape=1,icon="solo"}, - {name='techmino49_e', x=-1100, y=-1200, size=40,shape=1,icon="t49", unlock={'techmino49_h','techmino99_e'}}, - {name='techmino49_h', x=-1100, y=-1400, size=40,shape=1,icon="t49", unlock={'techmino49_u'}}, - {name='techmino49_u', x=-1100, y=-1600, size=40,shape=1,icon="t49"}, - {name='techmino99_e', x=-1300, y=-1400, size=40,shape=1,icon="t99", unlock={'techmino99_h'}}, - {name='techmino99_h', x=-1300, y=-1600, size=40,shape=1,icon="t99", unlock={'techmino99_u'}}, - {name='techmino99_u', x=-1300, y=-1800, size=40,shape=1,icon="t99"}, + {name='techmino49_e', x=-1100, y=-1200, size=40,shape=1,icon="t49", unlock={'techmino49_h','techmino99_e'}}, + {name='techmino49_h', x=-1100, y=-1400, size=40,shape=1,icon="t49", unlock={'techmino49_u'}}, + {name='techmino49_u', x=-1100, y=-1600, size=40,shape=1,icon="t49"}, + {name='techmino99_e', x=-1300, y=-1400, size=40,shape=1,icon="t99", unlock={'techmino99_h'}}, + {name='techmino99_h', x=-1300, y=-1600, size=40,shape=1,icon="t99", unlock={'techmino99_u'}}, + {name='techmino99_u', x=-1300, y=-1800, size=40,shape=1,icon="t99"}, - {name='round_e', x=-600, y=-800, size=40,shape=1,icon="round", unlock={'round_n'}}, - {name='round_n', x=-800, y=-800, size=40,shape=1,icon="round", unlock={'round_h'}}, - {name='round_h', x=-1000, y=-800, size=40,shape=1,icon="round", unlock={'round_l'}}, - {name='round_l', x=-1200, y=-800, size=40,shape=1,icon="round", unlock={'round_u'}}, - {name='round_u', x=-1400, y=-800, size=40,shape=1,icon="round"}, + {name='round_e', x=-600, y=-800, size=40,shape=1,icon="round", unlock={'round_n'}}, + {name='round_n', x=-800, y=-800, size=40,shape=1,icon="round", unlock={'round_h'}}, + {name='round_h', x=-1000, y=-800, size=40,shape=1,icon="round", unlock={'round_l'}}, + {name='round_l', x=-1200, y=-800, size=40,shape=1,icon="round", unlock={'round_u'}}, + {name='round_u', x=-1400, y=-800, size=40,shape=1,icon="round"}, - {name='big_n', x=-400, y=-400, size=40,shape=1,icon="big", unlock={'big_h'}}, - {name='big_h', x=-600, y=-400, size=40,shape=1,icon="big",}, + {name='big_n', x=-400, y=-400, size=40,shape=1,icon="big", unlock={'big_h'}}, + {name='big_h', x=-600, y=-400, size=40,shape=1,icon="big",}, - {name='master_n', x=0, y=-1000, size=40,shape=1,icon="master", unlock={'master_h','strategy_h'}}, - {name='master_h', x=0, y=-1200, size=40,shape=3,icon="master", unlock={'master_final','master_ex','master_ph','master_m','master_g','strategy_u'}}, - {name='master_m', x=100, y=-1550, size=40,shape=2,icon="master"}, - {name='master_final', x=-100, y=-1550, size=40,shape=2,icon="master"}, - {name='master_ph', x=-170, y=-1450, size=40,shape=2,icon="master"}, - {name='master_g', x=0, y=-1600, size=40,shape=3,icon="master"}, - {name='master_ex', x=170, y=-1450, size=40,shape=2,icon="master_ex"}, + {name='master_n', x=0, y=-1000, size=40,shape=1,icon="master", unlock={'master_h','strategy_h'}}, + {name='master_h', x=0, y=-1200, size=40,shape=3,icon="master", unlock={'master_final','master_ex','master_ph','master_m','master_g','strategy_u'}}, + {name='master_m', x=100, y=-1550, size=40,shape=2,icon="master"}, + {name='master_final', x=-100, y=-1550, size=40,shape=2,icon="master"}, + {name='master_ph', x=-170, y=-1450, size=40,shape=2,icon="master"}, + {name='master_g', x=0, y=-1600, size=40,shape=3,icon="master"}, + {name='master_ex', x=170, y=-1450, size=40,shape=2,icon="master_ex"}, - {name='strategy_e', x=-150, y=-1020, size=40,shape=3,icon="master", unlock={'strategy_e_plus'}}, - {name='strategy_h', x=-150, y=-1150, size=35,shape=3,icon="master", unlock={'strategy_h_plus'}}, - {name='strategy_u', x=-150, y=-1280, size=30,shape=2,icon="master", unlock={'strategy_u_plus'}}, - {name='strategy_e_plus',x=-300, y=-1120, size=40,shape=3,icon="master"}, - {name='strategy_h_plus',x=-300, y=-1250, size=35,shape=3,icon="master"}, - {name='strategy_u_plus',x=-300, y=-1380, size=30,shape=2,icon="master"}, + {name='strategy_e', x=-150, y=-1020, size=40,shape=3,icon="master", unlock={'strategy_e_plus'}}, + {name='strategy_h', x=-150, y=-1150, size=35,shape=3,icon="master", unlock={'strategy_h_plus'}}, + {name='strategy_u', x=-150, y=-1280, size=30,shape=2,icon="master", unlock={'strategy_u_plus'}}, + {name='strategy_e_plus', x=-300, y=-1120, size=40,shape=3,icon="master"}, + {name='strategy_h_plus', x=-300, y=-1250, size=35,shape=3,icon="master"}, + {name='strategy_u_plus', x=-300, y=-1380, size=30,shape=2,icon="master"}, - {name='blind_e', x=150, y=-700, size=40,shape=1,icon="hidden", unlock={'blind_n','master_instinct'}}, - {name='blind_n', x=150, y=-800, size=40,shape=1,icon="hidden", unlock={'blind_h'}}, - {name='blind_h', x=150, y=-900, size=35,shape=1,icon="hidden", unlock={'blind_l'}}, - {name='blind_l', x=150, y=-1000, size=35,shape=3,icon="hidden2", unlock={'blind_u'}}, - {name='blind_u', x=150, y=-1100, size=30,shape=3,icon="hidden2", unlock={'blind_wtf'}}, - {name='blind_wtf', x=150, y=-1200, size=25,shape=2,icon="hidden2"}, - {name='master_instinct',x=285, y=-835, size=40,shape=3,icon="hidden"}, + {name='blind_e', x=150, y=-700, size=40,shape=1,icon="hidden", unlock={'blind_n','master_instinct'}}, + {name='blind_n', x=150, y=-800, size=40,shape=1,icon="hidden", unlock={'blind_h'}}, + {name='blind_h', x=150, y=-900, size=35,shape=1,icon="hidden", unlock={'blind_l'}}, + {name='blind_l', x=150, y=-1000, size=35,shape=3,icon="hidden2", unlock={'blind_u'}}, + {name='blind_u', x=150, y=-1100, size=30,shape=3,icon="hidden2", unlock={'blind_wtf'}}, + {name='blind_wtf', x=150, y=-1200, size=25,shape=2,icon="hidden2"}, + {name='master_instinct', x=285, y=-835, size=40,shape=3,icon="hidden"}, - {name='classic_e', x=-200, y=-850, size=40,shape=1,icon="classic", unlock={'classic_h'}}, - {name='classic_h', x=-300, y=-950, size=40,shape=3,icon="classic", unlock={'classic_l'}}, - {name='classic_l', x=-400, y=-1050, size=35,shape=3,icon="classic", unlock={'classic_u'}}, - {name='classic_u', x=-500, y=-1150, size=30,shape=2,icon="classic"}, + {name='classic_e', x=-200, y=-850, size=40,shape=1,icon="classic", unlock={'classic_h'}}, + {name='classic_h', x=-300, y=-950, size=40,shape=3,icon="classic", unlock={'classic_l'}}, + {name='classic_l', x=-400, y=-1050, size=35,shape=3,icon="classic", unlock={'classic_u'}}, + {name='classic_u', x=-500, y=-1150, size=30,shape=2,icon="classic"}, - {name='survivor_e', x=450, y=-600, size=40,shape=1,icon="survivor", unlock={'survivor_n'}}, - {name='survivor_n', x=650, y=-600, size=40,shape=1,icon="survivor", unlock={'survivor_h','attacker_h','defender_n','dig_h'}}, - {name='survivor_h', x=850, y=-600, size=40,shape=1,icon="survivor", unlock={'survivor_l'}}, - {name='survivor_l', x=1050, y=-600, size=40,shape=3,icon="survivor", unlock={'survivor_u'}}, - {name='survivor_u', x=1250, y=-600, size=40,shape=2,icon="survivor"}, + {name='survivor_e', x=450, y=-600, size=40,shape=1,icon="survivor", unlock={'survivor_n'}}, + {name='survivor_n', x=650, y=-600, size=40,shape=1,icon="survivor", unlock={'survivor_h','attacker_h','defender_n','dig_h'}}, + {name='survivor_h', x=850, y=-600, size=40,shape=1,icon="survivor", unlock={'survivor_l'}}, + {name='survivor_l', x=1050, y=-600, size=40,shape=3,icon="survivor", unlock={'survivor_u'}}, + {name='survivor_u', x=1250, y=-600, size=40,shape=2,icon="survivor"}, - {name='attacker_h', x=450, y=-800, size=40,shape=1,icon="attack", unlock={'attacker_u'}}, - {name='attacker_u', x=450, y=-1000, size=40,shape=1,icon="attack"}, + {name='attacker_h', x=450, y=-800, size=40,shape=1,icon="attack", unlock={'attacker_u'}}, + {name='attacker_u', x=450, y=-1000, size=40,shape=1,icon="attack"}, - {name='defender_n', x=650, y=-800, size=40,shape=1,icon="defend", unlock={'defender_l'}}, - {name='defender_l', x=650, y=-1000, size=40,shape=1,icon="defend"}, + {name='defender_n', x=650, y=-800, size=40,shape=1,icon="defend", unlock={'defender_l'}}, + {name='defender_l', x=650, y=-1000, size=40,shape=1,icon="defend"}, - {name='dig_h', x=850, y=-800, size=40,shape=1,icon="dig", unlock={'dig_u'}}, - {name='dig_u', x=850, y=-1000, size=40,shape=1,icon="dig"}, + {name='dig_h', x=850, y=-800, size=40,shape=1,icon="dig", unlock={'dig_u'}}, + {name='dig_u', x=850, y=-1000, size=40,shape=1,icon="dig"}, - {name='c4wtrain_n', x=700, y=-450, size=40,shape=1,icon="pc", unlock={'c4wtrain_l'}}, - {name='c4wtrain_l', x=900, y=-450, size=40,shape=1,icon="pc"}, + {name='c4wtrain_n', x=700, y=-450, size=40,shape=1,icon="pc", unlock={'c4wtrain_l'}}, + {name='c4wtrain_l', x=900, y=-450, size=40,shape=1,icon="pc"}, - {name='pctrain_n', x=700, y=-300, size=40,shape=1,icon="pc", unlock={'pctrain_l','pc_n'}}, - {name='pctrain_l', x=900, y=-300, size=40,shape=1,icon="pc"}, + {name='pctrain_n', x=700, y=-300, size=40,shape=1,icon="pc", unlock={'pctrain_l','pc_n'}}, + {name='pctrain_l', x=900, y=-300, size=40,shape=1,icon="pc"}, - {name='pc_n', x=800, y=-140, size=40,shape=1,icon="pc", unlock={'pc_h'}}, - {name='pc_h', x=950, y=-140, size=40,shape=3,icon="pc", unlock={'pc_l','pc_inf'}}, - {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='pc_n', x=800, y=-140, size=40,shape=1,icon="pc", unlock={'pc_h'}}, + {name='pc_h', x=950, y=-140, size=40,shape=3,icon="pc", unlock={'pc_l','pc_inf'}}, + {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','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='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'}}, + {name='tech_n_plus', x=200, y=-10, size=40,shape=3,icon="tech"}, + {name='tech_h', x=400, y=170, size=40,shape=1,icon="tech", unlock={'tech_h_plus','tech_l'}}, + {name='tech_h_plus', x=200, y=140, size=35,shape=3,icon="tech"}, + {name='tech_l', x=400, y=320, size=40,shape=1,icon="tech", unlock={'tech_l_plus'}}, + {name='tech_l_plus', x=200, y=290, size=35,shape=3,icon="tech"}, - {name='tech_n', x=400, y=20, size=40,shape=1,icon="tech", unlock={'tech_n_plus','tech_h'}}, - {name='tech_n_plus', x=200, y=-10, size=40,shape=3,icon="tech"}, - {name='tech_h', x=400, y=170, size=40,shape=1,icon="tech", unlock={'tech_h_plus','tech_l'}}, - {name='tech_h_plus', x=200, y=140, size=35,shape=3,icon="tech"}, - {name='tech_l', x=400, y=320, size=40,shape=1,icon="tech", unlock={'tech_l_plus'}}, - {name='tech_l_plus', x=200, y=290, size=35,shape=3,icon="tech"}, + {name='tech_finesse', x=800, y=20, size=40,shape=1,icon="tech", unlock={'tech_finesse_f','tech_finesse_lock'}}, + {name='tech_finesse_f', x=1000, y=20, size=40,shape=1,icon="tech"}, + {name='tech_finesse_lock', x=900, y=170, size=40,shape=1,icon="tech", unlock={'tech_finesse_lock_f'}}, + {name='tech_finesse_lock_f', x=1100, y=170, size=40,shape=1,icon="tech"}, - {name='tech_finesse', x=800, y=20, size=40,shape=1,icon="tech", unlock={'tech_finesse_f'}}, - {name='tech_finesse_f',x=1000, y=20, size=40,shape=1,icon="tech"}, + {name='tsd_e', x=700, y=170, size=40,shape=1,icon="tsd", unlock={'tsd_h'}}, + {name='tsd_h', x=850, y=320, size=40,shape=1,icon="tsd", unlock={'tsd_u'}}, + {name='tsd_u', x=1050, y=320, size=40,shape=1,icon="tsd"}, - {name='tsd_e', x=720, y=170, size=40,shape=1,icon="tsd", unlock={'tsd_h'}}, - {name='tsd_h', x=960, y=170, size=40,shape=1,icon="tsd", unlock={'tsd_u'}}, - {name='tsd_u', x=1200, y=170, size=40,shape=1,icon="tsd"}, + {name='backfire_n', x=650, y=320, size=40,shape=1,icon="backfire", unlock={'backfire_h'}}, + {name='backfire_h', x=850, y=470, size=40,shape=1,icon="backfire", unlock={'backfire_l'}}, + {name='backfire_l', x=1050, y=470, size=40,shape=3,icon="backfire", unlock={'backfire_u'}}, + {name='backfire_u', x=1250, y=470, size=35,shape=2,icon="backfire"}, - {name='backfire_n', x=650, y=320, size=40,shape=1,icon="backfire", unlock={'backfire_h'}}, - {name='backfire_h', x=850, y=320, size=40,shape=1,icon="backfire", unlock={'backfire_l'}}, - {name='backfire_l', x=1050, y=320, size=40,shape=3,icon="backfire", unlock={'backfire_u'}}, - {name='backfire_u', x=1250, y=320, size=35,shape=2,icon="backfire"}, - - {name='zen', x=-1000, y=-600, size=40,shape=1,icon="zen", unlock={'ultra','infinite','infinite_dig','marathon_inf'}}, - {name='ultra', x=-1200, y=-600, size=40,shape=1,icon="ultra"}, - {name='infinite', x=-1200, y=-400, size=40,shape=1,icon='infinite'}, - {name='infinite_dig', x=-1000, y=-400, size=40,shape=1,icon="dig"}, - {name='marathon_inf', x=-800, y=-400, size=40,shape=1,icon="marathon"} + {name='zen', x=-1000, y=-600, size=40,shape=1,icon="zen", unlock={'ultra','infinite','infinite_dig','marathon_inf'}}, + {name='ultra', x=-1200, y=-600, size=40,shape=1,icon="ultra"}, + {name='infinite', x=-1200, y=-400, size=40,shape=1,icon='infinite'}, + {name='infinite_dig', x=-1000, y=-400, size=40,shape=1,icon="dig"}, + {name='marathon_inf', x=-800, y=-400, size=40,shape=1,icon="marathon"} } diff --git a/parts/modes/tech_finesse_f.lua b/parts/modes/tech_finesse_f.lua index 182a847a..bd0d14cb 100644 --- a/parts/modes/tech_finesse_f.lua +++ b/parts/modes/tech_finesse_f.lua @@ -10,6 +10,13 @@ local function tech_check_hard(P) P:win('finish') end end +local function display(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 return { env={ @@ -17,6 +24,7 @@ return { drop=1e99,lock=60, freshLimit=15, fineKill=true, + mesDisp=display, hook_drop=tech_check_hard, bg='flink',bgm='infinite', }, diff --git a/parts/modes/tech_finesse_lock.lua b/parts/modes/tech_finesse_lock.lua new file mode 100644 index 00000000..4cc56bb2 --- /dev/null +++ b/parts/modes/tech_finesse_lock.lua @@ -0,0 +1,28 @@ +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 new file mode 100644 index 00000000..e943b6ba --- /dev/null +++ b/parts/modes/tech_finesse_lock_f.lua @@ -0,0 +1,28 @@ +return { + env={ + arr=0, + drop=1e99,lock=60, + 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/player/init.lua b/parts/player/init.lua index 37af538b..150b122f 100644 --- a/parts/player/init.lua +++ b/parts/player/init.lua @@ -242,14 +242,28 @@ local function _mergeFuncTable(f,L) end return L end +local hooks = { + 'mesDisp', + 'hook_left', + 'hook_left_manual', + 'hook_left_auto', + 'hook_right', + 'hook_right_manual', + 'hook_right_auto', + 'hook_rotLeft', + 'hook_rotRight', + 'hook_rot180', + 'hook_drop', + 'hook_die', + 'task' +} local function _applyGameEnv(P)-- Finish gameEnv processing local ENV=P.gameEnv -- Apply events - ENV.mesDisp=_mergeFuncTable(ENV.mesDisp,{}) - ENV.hook_drop=_mergeFuncTable(ENV.hook_drop,{}) - ENV.hook_die=_mergeFuncTable(ENV.hook_die,{}) - ENV.task=_mergeFuncTable(ENV.task,{}) + for i=1,#hooks do + ENV[hooks[i]]=_mergeFuncTable(ENV[hooks[i]],{}) + end -- Apply eventSet if ENV.eventSet and ENV.eventSet~="X" then @@ -257,12 +271,7 @@ local function _applyGameEnv(P)-- Finish gameEnv processing local eventSet=require('parts.eventsets.'..ENV.eventSet) if eventSet then for k,v in next,eventSet do - if - k=='mesDisp' or - k=='hook_drop' or - k=='hook_die' or - k=='task' - then + if TABLE.find(hooks,k) then _mergeFuncTable(v,ENV[k]) elseif type(v)=='table' then ENV[k]=TABLE.copy(v) diff --git a/parts/player/player.lua b/parts/player/player.lua index f97ec855..3cb12e5d 100644 --- a/parts/player/player.lua +++ b/parts/player/player.lua @@ -226,8 +226,10 @@ function Player:act_moveLeft(auto) end if self.cur then if self.cur and not self:ifoverlap(self.cur.bk,self.curX-1,self.curY) then + self:_triggerEvent('hook_left') + self:_triggerEvent('hook_left_'..(auto and 'auto' or 'manual')) self:createMoveFX('left') - self.curX=self.curX-1 + self.curX=self.curX+self.movDir self:freshBlock('move') if not auto then self.moving=0 @@ -248,8 +250,10 @@ function Player:act_moveRight(auto) end if self.cur then if self.cur and not self:ifoverlap(self.cur.bk,self.curX+1,self.curY) then + self:_triggerEvent('hook_right') + self:_triggerEvent('hook_right_'..(auto and 'auto' or 'manual')) self:createMoveFX('right') - self.curX=self.curX+1 + self.curX=self.curX+self.movDir self:freshBlock('move') if not auto then self.moving=0 @@ -267,6 +271,7 @@ function Player:act_rotRight() if self.cur then self.ctrlCount=self.ctrlCount+1 self:spin(1) + self:_triggerEvent('hook_rotRight') self.keyPressing[3]=false end end @@ -275,6 +280,7 @@ function Player:act_rotLeft() if self.cur then self.ctrlCount=self.ctrlCount+1 self:spin(3) + self:_triggerEvent('hook_rotLeft') self.keyPressing[4]=false end end @@ -283,6 +289,7 @@ function Player:act_rot180() if self.cur then self.ctrlCount=self.ctrlCount+2 self:spin(2) + self:_triggerEvent('hook_rot180') self.keyPressing[5]=false end end diff --git a/parts/scenes/mode.lua b/parts/scenes/mode.lua index 7cbb952b..6c45f9b5 100644 --- a/parts/scenes/mode.lua +++ b/parts/scenes/mode.lua @@ -67,7 +67,7 @@ local function _moveMap(dx,dy) local k=_getK() local x,y=_getPos() if x>1300 and dx<0 or x<-1500 and dx>0 then dx=0 end - if y>420 and dy<0 or y<-1900 and dy>0 then dy=0 end + if y>620 and dy<0 or y<-1900 and dy>0 then dy=0 end mapCam.xOy:translate(dx/k,dy/k) end function scene.wheelMoved(_,dy)