From edfa4e463caa9959bb953d6a105ac5b45286f14f Mon Sep 17 00:00:00 2001 From: MrZ_26 <1046101471@qq.com> Date: Thu, 25 Jan 2024 19:42:12 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E5=BA=A6=E4=BA=8B=E4=BB=B6=E5=92=8C?= =?UTF-8?q?=E9=9F=B3=E4=B9=90=E4=BA=8B=E4=BB=B6=E7=8B=AC=E7=AB=8B=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E8=AE=BE=E7=BD=AE=E5=A5=BD=E4=BC=98=E5=85=88=E7=BA=A7?= =?UTF-8?q?=20exterior=E9=A9=AC=E6=8B=89=E6=9D=BE=E6=B7=BB=E5=8A=A030?= =?UTF-8?q?=E9=80=9F=E5=90=8E=E5=BD=A9=E8=9B=8B=20=E6=A1=86=E6=9E=B6?= =?UTF-8?q?=E8=B7=9F=E8=BF=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Zenitha | 2 +- assets/game/mechanicLib/init.lua | 1 + assets/game/mechanicLib/mino/marathon.lua | 32 +- assets/game/mechanicLib/mino/music.lua | 514 ++++++++++++++++++ assets/game/mechanicLib/mino/progress.lua | 377 +------------ assets/game/mechanicLib/mino/statistics.lua | 3 + assets/game/minoPlayer.lua | 2 +- .../game/mode/mino/exterior/backfire_100.lua | 2 +- .../mino/exterior/backfire_amplify_100.lua | 2 +- .../mino/exterior/backfire_cheese_100.lua | 2 +- .../mode/mino/exterior/combo_practice.lua | 6 +- assets/game/mode/mino/exterior/dig_100.lua | 2 +- assets/game/mode/mino/exterior/dig_40.lua | 2 +- assets/game/mode/mino/exterior/dig_400.lua | 2 +- assets/game/mode/mino/exterior/dig_shale.lua | 2 +- .../game/mode/mino/exterior/dig_volcanics.lua | 2 +- .../game/mode/mino/exterior/hypersonic_hd.lua | 2 +- .../game/mode/mino/exterior/hypersonic_hi.lua | 2 +- .../game/mode/mino/exterior/hypersonic_lo.lua | 2 +- .../game/mode/mino/exterior/hypersonic_ti.lua | 2 +- assets/game/mode/mino/exterior/marathon.lua | 5 +- .../game/mode/mino/exterior/sprint_1000.lua | 2 +- assets/game/mode/mino/exterior/sprint_200.lua | 2 +- assets/game/mode/mino/exterior/sprint_40.lua | 3 +- .../game/mode/mino/exterior/sprint_big_80.lua | 2 +- .../mode/mino/exterior/sprint_blind_40.lua | 2 +- .../mode/mino/exterior/sprint_delay_20.lua | 2 +- .../mode/mino/exterior/sprint_dizzy_40.lua | 2 +- .../mode/mino/exterior/sprint_drought_40.lua | 2 +- .../game/mode/mino/exterior/sprint_fix_20.lua | 2 +- .../mode/mino/exterior/sprint_flip_40.lua | 2 +- .../mode/mino/exterior/sprint_float_40.lua | 2 +- .../mode/mino/exterior/sprint_flood_40.lua | 2 +- .../mode/mino/exterior/sprint_hide_40.lua | 2 +- .../mode/mino/exterior/sprint_invis_40.lua | 1 + .../mode/mino/exterior/sprint_lock_20.lua | 2 +- .../game/mode/mino/exterior/sprint_low_40.lua | 2 +- .../game/mode/mino/exterior/sprint_mph_40.lua | 2 +- .../mode/mino/exterior/sprint_obstacle_20.lua | 2 +- .../mode/mino/exterior/sprint_pento_40.lua | 2 +- .../mode/mino/exterior/sprint_randctrl_40.lua | 2 +- .../mode/mino/exterior/sprint_small_20.lua | 2 +- .../game/mode/mino/exterior/sprint_sym_40.lua | 2 +- .../mode/mino/exterior/sprint_wind_40.lua | 2 +- .../game/mode/mino/exterior/survivor_b2b.lua | 5 +- .../mode/mino/exterior/survivor_cheese.lua | 5 +- .../mode/mino/exterior/survivor_spike.lua | 5 +- .../game/mode/mino/exterior/techrash_easy.lua | 1 + .../game/mode/mino/exterior/techrash_hard.lua | 1 + 49 files changed, 605 insertions(+), 424 deletions(-) create mode 100644 assets/game/mechanicLib/mino/music.lua diff --git a/Zenitha b/Zenitha index e4478d52..30e0ae24 160000 --- a/Zenitha +++ b/Zenitha @@ -1 +1 @@ -Subproject commit e4478d520b97d9a0fabd2d76eb908c8f54df9126 +Subproject commit 30e0ae241e68cf03299cfb5bc2070fd9fd39bc69 diff --git a/assets/game/mechanicLib/init.lua b/assets/game/mechanicLib/init.lua index 7fe9f320..3cd89b37 100644 --- a/assets/game/mechanicLib/init.lua +++ b/assets/game/mechanicLib/init.lua @@ -33,6 +33,7 @@ local mechLib={ stack=require'assets.game.mechanicLib.mino.stack', squeeze=require'assets.game.mechanicLib.mino.squeeze', progress=require'assets.game.mechanicLib.mino.progress', + music=require'assets.game.mechanicLib.mino.music', }, puyo={ -- Basic diff --git a/assets/game/mechanicLib/mino/marathon.lua b/assets/game/mechanicLib/mino/marathon.lua index c8ae4532..be96ba23 100644 --- a/assets/game/mechanicLib/mino/marathon.lua +++ b/assets/game/mechanicLib/mino/marathon.lua @@ -21,20 +21,20 @@ local levels={-- par: drop interval {drop=17, lock=700 ,spawn=110, par=357}, {drop=12, lock=700 ,spawn=110, par=333}, {drop=9, lock=600 ,spawn=90, par=312}, - {drop=7, lock=600 ,spawn=90, par=294}, - {drop=5, lock=600 ,spawn=90, par=277}, - {drop=3, lock=600 ,spawn=90, par=263}, - {drop=2, lock=600 ,spawn=90, par=250}, - {drop=0, lock=590 ,spawn=75, par=238}, - {drop=0, lock=580 ,spawn=75, par=227}, - {drop=0, lock=570 ,spawn=75, par=217}, - {drop=0, lock=560 ,spawn=75, par=200}, - {drop=0, lock=550 ,spawn=75, par=189}, - {drop=0, lock=540 ,spawn=70, par=179}, - {drop=0, lock=530 ,spawn=70, par=169}, - {drop=0, lock=520 ,spawn=70, par=161}, - {drop=0, lock=510 ,spawn=70, par=154}, - {drop=0, lock=500 ,spawn=70, par=143}, + {drop=7, lock=580 ,spawn=90, par=294}, + {drop=5, lock=560 ,spawn=90, par=277}, + {drop=3, lock=540 ,spawn=90, par=263}, + {drop=2, lock=520 ,spawn=90, par=250}, + {drop=0, lock=500 ,spawn=75, par=238}, + {drop=0, lock=480 ,spawn=75, par=227}, + {drop=0, lock=460 ,spawn=75, par=217}, + {drop=0, lock=440 ,spawn=75, par=200}, + {drop=0, lock=420 ,spawn=75, par=189}, + {drop=0, lock=400 ,spawn=70, par=179}, + {drop=0, lock=380 ,spawn=70, par=169}, + {drop=0, lock=360 ,spawn=70, par=161}, + {drop=0, lock=340 ,spawn=70, par=154}, + {drop=0, lock=320 ,spawn=70, par=143}, } function marathon.event_playerInit_auto(P) @@ -88,6 +88,10 @@ function marathon.event_afterClear(P) P.settings.spawnDelay=levels[md.level].spawn else md.ascend=md.ascend+1 + if md.ascend>=4 then + P.settings.lockDelay=max(P.settings.lockDelay-40,200) + P.settings.spawnDelay=max(P.settings.spawnDelay-25,0) + end end md.lineTarget=md.lineTarget+10 md.levelPieces=0 diff --git a/assets/game/mechanicLib/mino/music.lua b/assets/game/mechanicLib/mino/music.lua new file mode 100644 index 00000000..51d6e37c --- /dev/null +++ b/assets/game/mechanicLib/mino/music.lua @@ -0,0 +1,514 @@ +---@type Techmino.Mech.mino +local music={} + +do -- sprint_40 + local bgmTransP1,bgmTransP2=10,30 + function music.sprint_40_afterClear(P) + if not P.isMain then return true end + local pt=P.modeData.stat.line + if pt>bgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptmd.marathon_lastLevel then + if md.marathon_lastLevel<15 then + BGM.set(bgmPack('propel','a1','a3','b3'),'volume',math.min(md.level/15,1)^2) + end + if md.level>=22 then + BGM.set(bgmPack('propel','p'),'volume',math.min(.2+(md.level-20)*.8,1),6.26) + PROGRESS.setModeState('mino_stdMap','hypersonic_lo') + end + if md.level>=25 and md.marathon_lastLevel<25 then + BGM.set(bgmPack('propel','a1','a3'),'volume',0,26) + end + md.marathon_lastLevel=md.level + else + if not md.marathon_lastAscend then md.marathon_lastAscend=0 end + if md.ascend>md.marathon_lastAscend then + print(md.ascend) + if md.ascend==1 then + BGM.set('all','volume',0,.26) + BGM.set(bgmPack('propel','m','b2','b3','p'),'volume',1,.26) + elseif md.ascend==2 then + BGM.set('all','volume',0,.26) + BGM.set(bgmPack('propel','b1','b2','p'),'volume',1,.26) + elseif md.ascend==3 then + BGM.set('all','volume',0,.26) + BGM.set(bgmPack('propel','a1','a2','a3'),'volume',1,.26) + BGM.set(bgmPack('propel','p'),'volume',.42,.26) + elseif md.ascend==4 then + BGM.set('all','volume',0,.26) + BGM.set('all','pitch',1.5,.26) + BGM.set(bgmPack('propel','p'),'volume',.626,.26) + else + BGM.set('all','volume',1,.26) + BGM.set(bgmPack('propel','p'),'volume',0,.26) + BGM.set('all','pitch',math.min(md.ascend/2-.5,32),.26) + end + end + end + end +end + +do -- techrash_easy + local bgmTransP1,bgmTransP2=4,10 + function music.techrash_easy_afterClear(P) + if not P.isMain then return true end + local pt=P.modeData.techrash + if pt>bgmTransP1 and pt<=bgmTransP2 then + BGM.set(bgmList['way'].add,'volume',math.min((pt-bgmTransP1)/(bgmTransP2-bgmTransP1),1),2.6) + end + end +end + +do -- hypersonic_lo + local bgmTransP1,bgmTransP2=100,300 + function music.hypersonic_lo_afterSpawn(P) + if not P.isMain then return true end + local pt=P.modeData.point + if pt>bgmTransP1 and ptbgmTransP1 and pt<=bgmTransP2 then + BGM.set(bgmList['way'].add,'volume',math.min((pt-bgmTransP1)/(bgmTransP2-bgmTransP1),1),2.6) + end + end +end + +do -- hypersonic_hi + local bgmTransP1,bgmTransP2=100,500 + function music.hypersonic_hi_afterSpawn(P) + if not P.isMain then return true end + local pt=P.modeData.point + if pt>bgmTransP1 and ptbgmTransP1 and pt=2 then + BGM.set(bgmPack('secret7th','m1'),'volume',1,26) + P.modeData.hypersonic_bgmTransition1=true + end + end + if not P.modeData.hypersonic_bgmTransition2 then + if P.modeData.level>=9 then + BGM.set(bgmPack('secret7th','m2','a'),'volume',0,26) + P.modeData.hypersonic_bgmTransition2=true + end + end + end +end + +do -- hypersonic_ti + local bgmTransP1,bgmTransP2=200,600 + function music.hypersonic_ti_afterSpawn(P) + if not P.isMain then return true end + local pt=P.modeData.point + if pt>bgmTransP1 and ptbgmTransP1 and pt<=bgmTransP2 then + BGM.set(bgmList['oxygen'].add,'volume',math.min((pt-bgmTransP1)/(bgmTransP2-bgmTransP1),1),2.6) + end + end +end + +do -- dig_shale + local bgmTransP1,bgmTransP2=10,30 + function music.dig_shale_afterClear(P) + if not P.isMain then return true end + local pt=P.modeData.lineDig + if pt>bgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and pt<=bgmTransP2 then + BGM.set(bgmList['here'].add,'volume',math.min((pt-bgmTransP1)/(bgmTransP2-bgmTransP1),1),2.6) + end + end +end + +do -- survivor_cheese + local bgmTransP1,bgmTransP2=30,80 + function music.survivor_cheese_afterClear(P) + if not P.isMain then return true end + local pt=P.modeData.wave + if pt>bgmTransP1 and pt<=bgmTransP2 then + BGM.set(bgmList['here'].add,'volume',math.min((pt-bgmTransP1)/(bgmTransP2-bgmTransP1),1),2.6) + end + end +end + +do -- survivor_spike + local bgmTransP1,bgmTransP2=10,30 + function music.survivor_spike_afterClear(P) + if not P.isMain then return true end + local pt=P.modeData.wave + if pt>bgmTransP1 and pt<=bgmTransP2 then + BGM.set(bgmList['here'].add,'volume',math.min((pt-bgmTransP1)/(bgmTransP2-bgmTransP1),1),2.6) + end + end +end + +do -- backfire_100 + local bgmTransP1,bgmTransP2=40,75 + function music.backfire_100_afterClear(P) + if not P.isMain then return true end + local pt=P.modeData.stat.line + if pt>bgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptmd.marathon_lastLevel then - if md.marathon_lastLevel<15 then - BGM.set(bgmPack('propel','a1','a3','b3'),'volume',math.min(md.level/15,1)^2) - end - if md.level>=22 then - BGM.set('propel/drum','volume',math.min(.2+(md.level-20)*.8,1),6.26) - PROGRESS.setModeState('mino_stdMap','hypersonic_lo') - end - if md.level>=25 and md.marathon_lastLevel<25 then - BGM.set(bgmPack('propel','a1','a3'),'volume',0,26) - end - md.marathon_lastLevel=md.level - else - if not md.marathon_lastAscend then md.marathon_lastAscend=0 end - if md.ascend>md.marathon_lastAscend then - if md.ascend==1 then - BGM.set('all','volume',0,.26) - BGM.set(bgmPack('propel','m','b2','b3','d'),'volume',1,.26) - elseif md.ascend==2 then - BGM.set('all','volume',0,.26) - BGM.set(bgmPack('propel','b1','b2','d'),'volume',1,.26) - elseif md.ascend==3 then - BGM.set('all','volume',0,.26) - BGM.set(bgmPack('propel','a1','a2','a3'),'volume',1,.26) - BGM.set(bgmPack('propel','d'),'volume',.5,.26) - elseif md.ascend==4 then - BGM.set('all','volume',0,.26) - BGM.set('all','pitch',1.5,.26) - BGM.set(bgmPack('propel','d'),'volume',.626,.26) - else - BGM.set('all','volume',1,.26) - BGM.set('all','pitch',math.min(md.ascend-3,32),.26) - end - end - end - if md.stat.clears[4]==16 then + if P.modeData.stat.clears[4]==16 then PROGRESS.setModeState('mino_stdMap','techrash_easy') end end @@ -490,13 +271,8 @@ do -- marathon end do -- techrash_easy - local bgmTransP1,bgmTransP2=4,10 function progress.techrash_easy_afterClear(P) if not P.isMain then return true end - local pt=P.modeData.techrash - if pt>bgmTransP1 and pt<=bgmTransP2 then - BGM.set(bgmList['way'].add,'volume',math.min((pt-bgmTransP1)/(bgmTransP2-bgmTransP1),1),2.6) - end if P.modeData.stat.clears[4]>=20 then PROGRESS.setModeState('mino_stdMap','techrash_easy',1) end @@ -504,14 +280,6 @@ do -- techrash_easy end do -- hypersonic_lo - local bgmTransP1,bgmTransP2=100,300 - function progress.hypersonic_lo_afterSpawn(P) - if not P.isMain then return true end - local pt=P.modeData.point - if pt>bgmTransP1 and ptbgmTransP1 and pt<=bgmTransP2 then - BGM.set(bgmList['way'].add,'volume',math.min((pt-bgmTransP1)/(bgmTransP2-bgmTransP1),1),2.6) - end if P.modeData.stat.clears[4]>=20 then PROGRESS.setModeState('mino_stdMap','techrash_easy',1) end @@ -542,14 +305,6 @@ do -- techrash_hard end do -- hypersonic_hi - local bgmTransP1,bgmTransP2=100,500 - function progress.hypersonic_hi_afterSpawn(P) - if not P.isMain then return true end - local pt=P.modeData.point - if pt>bgmTransP1 and ptbgmTransP1 and pt=2 then - BGM.set('secret7th/melody1','volume',1,26) - P.modeData.hypersonic_bgmTransition1=true - end - end - if not P.modeData.hypersonic_bgmTransition2 then - if P.modeData.level>=9 then - BGM.set(bgmPack('secret7th','m2','a'),'volume',0,26) - P.modeData.hypersonic_bgmTransition2=true - end - end - end function progress.hypersonic_hd_gameOver(P) + if not P.isMain then return true end if P.modeData.point>=1000 then PROGRESS.setModeState('mino_stdMap','hypersonic_hd',1) end @@ -594,36 +330,21 @@ do -- hypersonic_hd end do -- hypersonic_ti - local bgmTransP1,bgmTransP2=200,600 - function progress.hypersonic_ti_afterSpawn(P) - if not P.isMain then return end - local pt=P.modeData.point - if pt>bgmTransP1 and pt=1000 then + if not P.isMain then return true end + if P.modeData.point>=1000 then PROGRESS.setModeState('mino_stdMap','hypersonic_ti',1) end end end do -- combo_practice - local bgmTransP1,bgmTransP2=50,100 function progress.combo_practice_afterClear(P) if not P.isMain then return true end if P.modeData.cleared==12 then PROGRESS.setModeState('mino_stdMap','tsd_easy') end end - function progress.combo_practice_beforeDiscard(P) - if not P.isMain then return true end - local pt=P.modeData.comboCount - if pt>bgmTransP1 and pt<=bgmTransP2 then - BGM.set(bgmList['oxygen'].add,'volume',math.min((pt-bgmTransP1)/(bgmTransP2-bgmTransP1),1),2.6) - end - end function progress.combo_practice_gameOver(P,reason) if not P.isMain then return true end if reason=='AC' then @@ -649,14 +370,6 @@ do -- dig_practice end do -- dig_shale - local bgmTransP1,bgmTransP2=10,30 - function progress.dig_shale_afterClear(P) - if not P.isMain then return true end - local pt=P.modeData.lineDig - if pt>bgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and pt<=bgmTransP2 then - BGM.set(bgmList['here'].add,'volume',math.min((pt-bgmTransP1)/(bgmTransP2-bgmTransP1),1),2.6) - end - if pt==42 then + if P.modeData.wave==42 then PROGRESS.setModeState('mino_stdMap','backfire_100') PROGRESS.setModeState('mino_stdMap','survivor_cheese') PROGRESS.setModeState('mino_stdMap','survivor_b2b',1) @@ -760,14 +436,9 @@ do -- survivor_b2b end do -- survivor_cheese - local bgmTransP1,bgmTransP2=30,80 function progress.survivor_cheese_afterClear(P) if not P.isMain then return true end - local pt=P.modeData.wave - if pt>bgmTransP1 and pt<=bgmTransP2 then - BGM.set(bgmList['here'].add,'volume',math.min((pt-bgmTransP1)/(bgmTransP2-bgmTransP1),1),2.6) - end - if pt==62 then + if P.modeData.wave==62 then PROGRESS.setModeState('mino_stdMap','survivor_spike') PROGRESS.setModeState('mino_stdMap','sprint_randctrl_40',1) end @@ -775,28 +446,15 @@ do -- survivor_cheese end do -- survivor_spike - local bgmTransP1,bgmTransP2=10,30 function progress.survivor_spike_afterClear(P) if not P.isMain then return true end - local pt=P.modeData.wave - if pt>bgmTransP1 and pt<=bgmTransP2 then - BGM.set(bgmList['here'].add,'volume',math.min((pt-bgmTransP1)/(bgmTransP2-bgmTransP1),1),2.6) - end - if pt==20 then + if P.modeData.wave==20 then PROGRESS.setModeState('mino_stdMap','survivor_spike',1) end end end do -- backfire_100 - local bgmTransP1,bgmTransP2=40,75 - function progress.backfire_100_afterClear(P) - if not P.isMain then return true end - local pt=P.modeData.stat.line - if pt>bgmTransP1 and ptbgmTransP1 and ptbgmTransP1 and pt