diff --git a/Zenitha b/Zenitha index cb6ee932..ce3a78b5 160000 --- a/Zenitha +++ b/Zenitha @@ -1 +1 @@ -Subproject commit cb6ee932a5a139f490fcaa6ae8b50b8d883f28e5 +Subproject commit ce3a78b51661399296c562441b4a1096b383ed17 diff --git a/assets/game/acryPlayer.lua b/assets/game/acryPlayer.lua index 94faeabc..2013f47c 100644 --- a/assets/game/acryPlayer.lua +++ b/assets/game/acryPlayer.lua @@ -783,11 +783,11 @@ end -- Other function AP:decodeScript(line,errMsg) - -- TODO + -- TODO (script) -- error(errMsg.."No string command '"..cmd.."'") end function AP:checkScriptSyntax(cmd,arg,errMsg) - -- TODO + -- TODO (script) end -------------------------------------------------------------- diff --git a/assets/game/brikPlayer.lua b/assets/game/brikPlayer.lua index 11d57be9..f68b5c49 100644 --- a/assets/game/brikPlayer.lua +++ b/assets/game/brikPlayer.lua @@ -1902,7 +1902,7 @@ function BP:decodeScript(line,errMsg) end function BP:checkScriptSyntax(cmd,arg,errMsg) if cmd=='setField' then - -- TODO + -- TODO (script) elseif cmd=='switchAction' then assert(self._actions[arg],"Invalid action name '"..arg.."'") elseif cmd=='clearHold' then @@ -1911,7 +1911,7 @@ function BP:checkScriptSyntax(cmd,arg,errMsg) assert(arg==nil,errMsg.."No arg needed") elseif cmd=='pushNext' then if type(arg)=='string' then - -- TODO + -- TODO (script) elseif type(arg)=='table' then for i=1,#arg do assert(Brik.get(arg[i]),errMsg.."Invalid brik id '"..arg[i].."'") diff --git a/assets/game/brikmap.lua b/assets/game/brikmap.lua index 3304997b..288eac41 100644 --- a/assets/game/brikmap.lua +++ b/assets/game/brikmap.lua @@ -17,9 +17,8 @@ local tau=MATH.tau -- Z local modes={ {pos={10,10,0},name='marathon'}, - {pos={10,25,0},name='techrash_easy'}, {pos={25,25,0},name='hypersonic_lo'}, - {pos={25,35,0},name='techrash_hard'}, + {pos={25,35,0},name='techrash'}, {pos={35,35,0},name='hypersonic_hi'}, {pos={55,55,0},name='hypersonic_ti'}, {pos={35,45,0},name='hypersonic_hd'}, @@ -83,9 +82,8 @@ local modes_str={} for i=1,#modes do modes_str[modes[i].name]=modes[i] end local bridgeLinks={ 'marathon - dig_practice - sprint_40 - marathon', - 'marathon - techrash_easy', 'marathon - hypersonic_lo - hypersonic_hi - hypersonic_ti', - 'hypersonic_lo - techrash_hard', + 'hypersonic_lo - techrash', 'hypersonic_hi - hypersonic_hd', 'marathon - combo_practice - ac_easy - ac_hard - ac_challenge', 'combo_practice - tsd_practice - tsd_easy - tsd_hard', diff --git a/assets/game/gelaPlayer.lua b/assets/game/gelaPlayer.lua index 06c7cf98..e85262e5 100644 --- a/assets/game/gelaPlayer.lua +++ b/assets/game/gelaPlayer.lua @@ -1384,11 +1384,11 @@ end -- Other function GP:decodeScript(line,errMsg) - -- TODO + -- TODO (script) -- error(errMsg.."No string command '"..cmd.."'") end function GP:checkScriptSyntax(cmd,arg,errMsg) - -- TODO + -- TODO (script) end -------------------------------------------------------------- diff --git a/assets/game/mechanicLib/brik/misc.lua b/assets/game/mechanicLib/brik/misc.lua index 3a17f640..5acffe7c 100644 --- a/assets/game/mechanicLib/brik/misc.lua +++ b/assets/game/mechanicLib/brik/misc.lua @@ -326,7 +326,7 @@ do -- obstacle end) end -do -- Cascade +do -- cascade local function getSolidMat(P) local F=P.field local visitedMat={} diff --git a/assets/game/mechanicLib/brik/music.lua b/assets/game/mechanicLib/brik/music.lua index c7d294c7..006009d3 100644 --- a/assets/game/mechanicLib/brik/music.lua +++ b/assets/game/mechanicLib/brik/music.lua @@ -122,17 +122,12 @@ function music.marathon_afterClear(P) FMOD.music.setParam('level_marathon_exterior',(md.level or 1)+(md.ascend or 0)) end -function music.techrash_easy_afterClear(P) - if not P.isMain then return true end - FMOD.music.setParam('intensity',MATH.icLerp(4,10,P.modeData.techrash)) -end - function music.hypersonic_lo_afterSpawn(P) if not P.isMain then return true end FMOD.music.setParam('intensity',MATH.icLerp(100,300,P.modeData.point)) end -function music.techrash_hard_afterClear(P) +function music.techrash_afterClear(P) if not P.isMain then return true end FMOD.music.setParam('intensity',MATH.icLerp(4,10,P.modeData.techrash)) end diff --git a/assets/game/mechanicLib/brik/progress.lua b/assets/game/mechanicLib/brik/progress.lua index c9db5af2..531cec96 100644 --- a/assets/game/mechanicLib/brik/progress.lua +++ b/assets/game/mechanicLib/brik/progress.lua @@ -256,12 +256,6 @@ do -- sprint_dizzy_40 end do -- marathon - function progress.marathon_afterClear(P) - if not P.isMain then return true end - if P.modeData.stat.clears[4]==16 then - PROGRESS.setModeState('brik_stdMap','techrash_easy') - end - end function progress.marathon_gameOver(P,reason) if not P.isMain then return true end if reason=='AC' then @@ -270,20 +264,11 @@ do -- marathon end end -do -- techrash_easy - function progress.techrash_easy_afterClear(P) - if not P.isMain then return true end - if P.modeData.stat.clears[4]>=20 then - PROGRESS.setModeState('brik_stdMap','techrash_easy',1) - end - end -end - do -- hypersonic_lo function progress.hypersonic_lo_afterClear(P) if not P.isMain then return true end if P.modeData.stat.clears[4]==36 then - PROGRESS.setModeState('brik_stdMap','techrash_hard') + PROGRESS.setModeState('brik_stdMap','techrash') end end function progress.hypersonic_lo_gameOver(P,reason) @@ -295,11 +280,11 @@ do -- hypersonic_lo end end -do -- techrash_hard - function progress.techrash_hard_afterClear(P) +do -- techrash + function progress.techrash_afterClear(P) if not P.isMain then return true end if P.modeData.stat.clears[4]>=20 then - PROGRESS.setModeState('brik_stdMap','techrash_easy',1) + PROGRESS.setModeState('brik_stdMap','techrash',1) end end end diff --git a/assets/game/mechanicLib/brik/sequence.lua b/assets/game/mechanicLib/brik/sequence.lua index 8225210c..50ba8db9 100644 --- a/assets/game/mechanicLib/brik/sequence.lua +++ b/assets/game/mechanicLib/brik/sequence.lua @@ -37,7 +37,7 @@ function sequence.bag7(P,d,init) return rem(d.bag,P:random(#d.bag)) end -function sequence.bag7_p1fromBag7(P,d,init) -- bag8, which the extra piece from another bag +function sequence.bag7_p1fromBag7(P,d,init) -- bag7 + 1 from another bag7 if init then d.bag={} d.extra={} @@ -125,7 +125,7 @@ function sequence.bag7_sprint(P,d,init) -- bag7, but no early S/Z/O and shufflin end end -function sequence.bag7_spreadFirstTo3211(P,d,init) -- bag7, but first bag 3+2+1+1-ly splited into next four bags +function sequence.bag7_spread1stTo3211(P,d,init) -- bag7, but first bag 3+2+1+1-ly splited into next four bags if init then d.bag={} d.victim=TABLE.copy(Tetros) diff --git a/assets/game/mechanicLib/brik/techrashChallenge.lua b/assets/game/mechanicLib/brik/techrashChallenge.lua index d0d23b91..57cb272c 100644 --- a/assets/game/mechanicLib/brik/techrashChallenge.lua +++ b/assets/game/mechanicLib/brik/techrashChallenge.lua @@ -1,84 +1,6 @@ -local gc=love.graphics - ---@type Map local techrash={} -function techrash.easy_seqType(P,d,init) - if init then - P.modeData.bagLoop=0 - d.l1={} - d.l2={} - return - end - -- Fill list1 (bag7_p0to4_by_bagLoop_fromBag6_noI) - if not d.l1[1] then - P.modeData.bagLoop=P.modeData.bagLoop+1 - for i=1,7 do table.insert(d.l1,i) end - for _=1, - P.modeData.bagLoop<=10 and 0 or - P.modeData.bagLoop<=20 and 1 or - P.modeData.bagLoop<=30 and 2 or - P.modeData.bagLoop<=40 and 3 or - 4 - do - -- Fill list2 (bag6_noI) - if not d.l2[1] then for i=1,6 do table.insert(d.l2,i) end end - table.insert(d.l1,table.remove(d.l2,P:random(#d.l2))) - end - end - return table.remove(d.l1,P:random(#d.l1)) -end -function techrash.easy_event_playerInit(P) - P.modeData.techrash=0 - P.modeData.minH=0 -end -function techrash.easy_event_afterLock(P) - local minH=P.field:getHeight() - for x=1,P.settings.fieldW do - for y=P.field:getHeight(),0,-1 do - if P.field:getCell(x,y) then - if y=4 then - P.modeData.techrash=P.modeData.techrash+1 - if P.modeData.techrash>1 then - P:playSound('charge',math.min(math.floor((P.modeData.techrash+2.6)^1.2/5.4),11)) - end - local HC=P.field:getHeight()==0 - if not HC then - HC=true - for x=1,P.settings.fieldW do - if #P:getConnectedCells(x,1)%4~=0 then - HC=false - break - end - end - end - if HC then P:playSound('frenzy') end - P.modeData.bagLoop=math.max(P.modeData.bagLoop-(P.lastMovement.combo-1)*2-(HC and 2 or 0),0) - else - P:finish('PE') - end -end -function techrash.easy_event_drawInField(P) - gc.setColor(1,1,1,.26) - for y=P.modeData.minH+4,19,4 do - gc.rectangle('fill',0,-y*40-2,P.settings.fieldW*40,4) - end -end -function techrash.easy_event_drawOnPlayer(P) - P:drawInfoPanel(-380,-60,160,120) - FONT.set(80) GC.mStr(P.modeData.techrash,-300,-70) - FONT.set(30) GC.mStr(Text.target_techrash,-300,15) -end - local initPower=3 local initSidePower=0 local maxPower=6 @@ -90,13 +12,13 @@ local infoMeta={__index=function(self,k) self[k]={charge=0,_charge=0} return self[k] end} -function techrash.hard_event_playerInit(P) +function techrash.event_playerInit(P) P.modeData.techrash=0 P.modeData.chargePower=initPower P.modeData.sidePower=initSidePower P.modeData.techrashInfo=setmetatable({},infoMeta) end -function techrash.hard_event_always(P) +function techrash.event_always(P) for _,v in next,P.modeData.techrashInfo do if v._charge~=v.charge then if v._charge0 or v.dead then @@ -174,6 +96,10 @@ function techrash.hard_event_drawBelowMarks(P) end end end -techrash.hard_event_drawOnPlayer=techrash.easy_event_drawOnPlayer +function techrash.event_drawOnPlayer(P) + P:drawInfoPanel(-380,-60,160,120) + FONT.set(80) GC.mStr(P.modeData.techrash,-300,-70) + FONT.set(30) GC.mStr(Text.target_techrash,-300,15) +end return techrash diff --git a/assets/game/mechanicLib/gela/colorSet.lua b/assets/game/mechanicLib/gela/colorSet.lua index 6fdb07b9..6f716b94 100644 --- a/assets/game/mechanicLib/gela/colorSet.lua +++ b/assets/game/mechanicLib/gela/colorSet.lua @@ -10,7 +10,7 @@ colorSet.dark ={400,440,014,141,204,144,420,413} colorSet.greyscale={111,333,777,999,888,555,444,222} function colorSet.getRandom(P) - -- TODO + -- TODO: reasonable random color end return colorSet diff --git a/assets/game/mechanicLib/gela/sequence.lua b/assets/game/mechanicLib/gela/sequence.lua index 6c2921f2..07f483f2 100644 --- a/assets/game/mechanicLib/gela/sequence.lua +++ b/assets/game/mechanicLib/gela/sequence.lua @@ -60,6 +60,6 @@ end end -------------------------------------------------------------- -- Multi --- TODO +-- TODO: complicate shade puyo sets return sequence diff --git a/assets/game/mode/brik/exterior/marathon.lua b/assets/game/mode/brik/exterior/marathon.lua index 705035da..d26c3775 100644 --- a/assets/game/mode/brik/exterior/marathon.lua +++ b/assets/game/mode/brik/exterior/marathon.lua @@ -15,7 +15,6 @@ return { }, afterClear={ mechLib.brik.music.marathon_afterClear, - mechLib.brik.progress.marathon_afterClear, }, gameOver=mechLib.brik.progress.marathon_gameOver, }, diff --git a/assets/game/mode/brik/exterior/techrash.lua b/assets/game/mode/brik/exterior/techrash.lua new file mode 100644 index 00000000..6018e56f --- /dev/null +++ b/assets/game/mode/brik/exterior/techrash.lua @@ -0,0 +1,22 @@ +---@type Techmino.Mode +return { + initialize=function() + GAME.newPlayer(1,'brik') + GAME.setMain(1) + playBgm('way') + end, + settings={brik={ + seqType='bag7p7p2_power', + event={ + playerInit=mechLib.brik.techrashChallenge.event_playerInit, + always=mechLib.brik.techrashChallenge.event_always, + afterClear={ + mechLib.brik.techrashChallenge.event_afterClear, + mechLib.brik.music.techrash_afterClear, + mechLib.brik.progress.techrash_afterClear, + }, + drawBelowMarks=mechLib.brik.techrashChallenge.event_drawBelowMarks, + drawOnPlayer=mechLib.brik.techrashChallenge.event_drawOnPlayer, + }, + }}, +} diff --git a/assets/game/mode/brik/exterior/techrash_easy.lua b/assets/game/mode/brik/exterior/techrash_easy.lua deleted file mode 100644 index 7be80d8a..00000000 --- a/assets/game/mode/brik/exterior/techrash_easy.lua +++ /dev/null @@ -1,22 +0,0 @@ ----@type Techmino.Mode -return { - initialize=function() - GAME.newPlayer(1,'brik') - GAME.setMain(1) - playBgm('way') - end, - settings={brik={ - seqType=mechLib.brik.techrashChallenge.easy_seqType, - event={ - playerInit=mechLib.brik.techrashChallenge.easy_event_playerInit, - afterLock=mechLib.brik.techrashChallenge.easy_event_afterLock, - afterClear={ - mechLib.brik.techrashChallenge.easy_event_afterClear, - mechLib.brik.music.techrash_easy_afterClear, - mechLib.brik.progress.techrash_easy_afterClear, - }, - drawInField=mechLib.brik.techrashChallenge.easy_event_drawInField, - drawOnPlayer=mechLib.brik.techrashChallenge.easy_event_drawOnPlayer, - }, - }}, -} diff --git a/assets/game/mode/brik/exterior/techrash_hard.lua b/assets/game/mode/brik/exterior/techrash_hard.lua deleted file mode 100644 index d7540af7..00000000 --- a/assets/game/mode/brik/exterior/techrash_hard.lua +++ /dev/null @@ -1,21 +0,0 @@ ----@type Techmino.Mode -return { - initialize=function() - GAME.newPlayer(1,'brik') - GAME.setMain(1) - playBgm('way') - end, - settings={brik={ - event={ - playerInit=mechLib.brik.techrashChallenge.hard_event_playerInit, - always=mechLib.brik.techrashChallenge.hard_event_always, - afterClear={ - mechLib.brik.techrashChallenge.hard_event_afterClear, - mechLib.brik.music.techrash_hard_afterClear, - mechLib.brik.progress.techrash_hard_afterClear, - }, - drawBelowMarks=mechLib.brik.techrashChallenge.hard_event_drawBelowMarks, - drawOnPlayer=mechLib.brik.techrashChallenge.hard_event_drawOnPlayer, - }, - }}, -} diff --git a/assets/language/lang_en.lua b/assets/language/lang_en.lua index 0ad80fc8..fd9dbe9b 100644 --- a/assets/language/lang_en.lua +++ b/assets/language/lang_en.lua @@ -203,8 +203,7 @@ local L={ -- Mode name exteriorModeInfo={ marathon= {"Marathon","Clear 200 lines with acceleration"}, - techrash_easy= {"Techrash Easy","Clear as many Techrashes as you can"}, - techrash_hard= {"Techrash Hard","Clear as many Techrashes as you can, but not too close together"}, + techrash= {"Techrash","Clear as many Techrashes as you can, but not close to previous ones"}, hypersonic_lo= {"Hypersonic LO","Hypersonic\nHello World"}, hypersonic_hi= {"Hypersonic HI","Hypersonic\nSerious Challange"}, hypersonic_ti= {"Hypersonic TI","Hypersonic\nVelocital Trepidation"}, diff --git a/assets/language/lang_zh.lua b/assets/language/lang_zh.lua index 28892548..33f764fb 100644 --- a/assets/language/lang_zh.lua +++ b/assets/language/lang_zh.lua @@ -203,8 +203,7 @@ local L={ -- Mode name exteriorModeInfo={ marathon= {"马拉松","在逐渐加速下消除200行"}, - techrash_easy= {"消四-简单","做出更多的消四"}, - techrash_hard= {"消四-困难","做出更多的消四,但不能靠太近"}, + techrash= {"消四","做出更多的消四,但位置不能重复"}, hypersonic_lo= {"超音速-易","瞬间下落\n新世界"}, hypersonic_hi= {"超音速-难","瞬间下落\n严峻挑战"}, hypersonic_ti= {"超音速-钛","瞬间下落\n极速恐慌"}, diff --git a/assets/scene/app_piano.lua b/assets/scene/app_piano.lua index 021b5f76..15c63e6c 100644 --- a/assets/scene/app_piano.lua +++ b/assets/scene/app_piano.lua @@ -22,7 +22,7 @@ function scene.enter() end function scene.touchDown(x,y,k) - -- TODO + -- TODO: cool piano end scene.mouseDown=scene.touchDown