diff --git a/media/music/antispace.ogg b/media/music/antispace.ogg new file mode 100644 index 00000000..f2b8d238 Binary files /dev/null and b/media/music/antispace.ogg differ diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua index fb1910bc..fa1b44b3 100644 --- a/parts/language/lang_en.lua +++ b/parts/language/lang_en.lua @@ -1062,5 +1062,6 @@ return{ {C.R,"LrL ",C.G,"RlR ",C.B,"LLr ",C.O,"RRl ",C.P,"RRR ",C.P,"LLL ",C.C,"FFF ",C.Y,"RfR ",C.Y,"RRf ",C.Y,"rFF"}, {C.Y,"O-Spin Triple!"}, {C.Z,"What? ",C.lC,"Xspin?"}, - } + }, + pumpkin="I'm a pumpkin", } diff --git a/parts/language/lang_es.lua b/parts/language/lang_es.lua index 429f6fa6..4d3f4142 100644 --- a/parts/language/lang_es.lua +++ b/parts/language/lang_es.lua @@ -921,4 +921,5 @@ return{ ['custom_clear']= {"Personalizado", "Normal"}, ['custom_puzzle']= {"Personalizado", "Puzzle"}, }, + -- pumpkin="I'm a pumpkin", } diff --git a/parts/language/lang_fr.lua b/parts/language/lang_fr.lua index faac8e40..283ca464 100644 --- a/parts/language/lang_fr.lua +++ b/parts/language/lang_fr.lua @@ -883,4 +883,5 @@ return{ ['custom_clear']= {"Perso.", "NORMAL"}, ['custom_puzzle']= {"Perso.", "PUZZLE"}, }, + -- pumpkin="I'm a pumpkin", } diff --git a/parts/language/lang_id.lua b/parts/language/lang_id.lua index 4d590e0a..7af25e90 100644 --- a/parts/language/lang_id.lua +++ b/parts/language/lang_id.lua @@ -1051,5 +1051,6 @@ return{ {C.R,"LrL ",C.G,"RlR ",C.B,"LLr ",C.O,"RRl ",C.P,"RRR ",C.P,"LLL ",C.C,"FFF ",C.Y,"RfR ",C.Y,"RRf ",C.Y,"rFF"}, {C.Y,"O-Spin Triple!"}, {C.Z,"Apa? ",C.lC,"X-spin?"}, - } + }, + -- pumpkin="I'm a pumpkin", } diff --git a/parts/language/lang_ja.lua b/parts/language/lang_ja.lua index 8d35d2ac..8d7102aa 100644 --- a/parts/language/lang_ja.lua +++ b/parts/language/lang_ja.lua @@ -1060,4 +1060,5 @@ getTip={refuseCopy=true, {C.Y,"O-Spin Triple!"}, {C.Z,"なんだって? ",C.lC,"X-Spin?"}, } + -- pumpkin="I'm a pumpkin", } diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua index dbf270f8..6f48a7c8 100644 --- a/parts/language/lang_pt.lua +++ b/parts/language/lang_pt.lua @@ -1028,5 +1028,6 @@ return{ {C.Y,"暫定段位:MO"}, {C.Y,"暫定段位:MV"}, {C.Y,"O-spin Triple!"}, - } + }, + -- pumpkin="I'm a pumpkin", } diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua index 0e7b753d..90990919 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -1358,5 +1358,6 @@ return{ {C.R,"上班时间不许摸鱼打块!"}, {C.R,"上课时间不许摸鱼打块!"}, {C.W,"uid:225238922"}, - } + }, + pumpkin="我是南瓜", } diff --git a/parts/language/lang_zh_trad.lua b/parts/language/lang_zh_trad.lua index c4a9a57a..36935366 100644 --- a/parts/language/lang_zh_trad.lua +++ b/parts/language/lang_zh_trad.lua @@ -931,4 +931,5 @@ return{ ['custom_clear']= {"自定義", "普通"}, ['custom_puzzle']= {"自定義", "拼圖"}, }, + pumpkin="我是南瓜", } diff --git a/parts/scenes/load.lua b/parts/scenes/load.lua index 53a5955a..409668fa 100644 --- a/parts/scenes/load.lua +++ b/parts/scenes/load.lua @@ -103,7 +103,7 @@ local loadingThread=coroutine.wrap(function() SFX.play('enter',.8) SFX.play('welcome') VOC.play('welcome') - THEME.fresh() + THEME.set(THEME.calculate(os.date('%Y'),os.date('%m'),os.date('%d'))) LOADED=true saveStats() Z.setPowerInfo(SETTING.powerInfo) diff --git a/parts/scenes/main.lua b/parts/scenes/main.lua index 6966c27f..302dfd24 100644 --- a/parts/scenes/main.lua +++ b/parts/scenes/main.lua @@ -4,6 +4,7 @@ local verName=("%s %s %s"):format(SYSTEM,VERSION.string,VERSION.name) local tipLength=760 local tip=GC.newText(getFont(30),"") local scrollX-- Tip scroll position +local flash=0 local widgetX0={ -10,-10,-10,-10, @@ -18,6 +19,16 @@ local enterConsole=coroutine.wrap(function() end end) function scene.sceneInit() + if THEME.cur=='halloween' then + TASK.new(function() + TEST.yieldT(.26) + while SCN.stack[#SCN.stack]=='main' do + flash=.355 + SFX.play('clear_'..math.random(4,6),1,math.random()*2-1,-9-math.random()*3) + TEST.yieldT(.626+math.random()*6.26) + end + end) + end BG.set() -- Set tip @@ -117,6 +128,7 @@ end function scene.update(dt) if dt>.26 then return end + if flash>0 then flash=flash-dt*.6 end PLAYERS[1]:update(dt) scrollX=scrollX-162*dt if scrollX<-tip:getWidth() then @@ -155,8 +167,41 @@ function scene.draw() GC.setStencilTest() GC.pop() + if THEME.cur=='halloween' then + GC.setColor(1,1,1) + GC.mDraw(TEXTURE.spiderweb,480,50,.26,1.26) + GC.mDraw(TEXTURE.spiderweb,816,94.2,.62) + + GC.setColor(COLOR.O) + GC.mDraw(TEXTURE.miniBlock[1],1126,90,-.16,40) + GC.setColor(COLOR.lO) + GC.setLineWidth(12) + GC.line(1037,25,1032,101) + GC.line(1099,16,1082,93) + GC.line(1151,16,1113,169) + GC.line(1196,83,1184,159) + GC.line(1244,101,1235,150) + GC.push('transform') + GC.translate(1126,90) + GC.setColor(.1,.5,.1) + GC.setLineWidth(16) + GC.line(20,-30,48,-60,70,-65) + GC.rotate(.162) + GC.setColor(COLOR.D) + FONT.set(20) + GC.mStr(text.pumpkin,0,-13) + GC.pop() + end + -- Player PLAYERS[1]:draw() + + if flash>0 then + GC.replaceTransform(SCR.origin) + GC.setColor(1,1,1,flash) + GC.rectangle('fill',0,0,SCR.w,SCR.h) + GC.replaceTransform(SCR.xOy) + end end scene.widgetList={ diff --git a/parts/texture.lua b/parts/texture.lua index 23d0827e..ea3335db 100644 --- a/parts/texture.lua +++ b/parts/texture.lua @@ -110,6 +110,21 @@ do GC.translate(-10,-10) end +TEXTURE.spiderweb=NSC(60,60) +do + GC.clear(1,1,1,0) + GC.setLineWidth(1) + GC.push('transform') + GC.translate(30,30) + for i=8,22,6 do + GC.circle('line',0,0,i,7) + end + for i=0,7 do + GC.line(0,0,26*math.cos(MATH.tau/7*i),26*math.sin(MATH.tau/7*i)) + end + GC.pop() +end + TEXTURE.multiple=GC.DO{15,15, {'setLW',3}, {'line',2,2,12,12}, diff --git a/parts/theme.lua b/parts/theme.lua index be30a404..0f25896c 100644 --- a/parts/theme.lua +++ b/parts/theme.lua @@ -4,6 +4,7 @@ local THEME={ local themeColor={ xmas={COLOR.lR,COLOR.Z,COLOR.lG}, sprfes={COLOR.lR,COLOR.O,COLOR.lY}, + halloween={COLOR.lH,COLOR.O,{COLOR.hsv(0.76, 0.50, 0.42)},{COLOR.hsv(0.33, 0.80, 0.42)}}, } function THEME.calculate(Y,M,D) @@ -16,6 +17,10 @@ function THEME.calculate(Y,M,D) M=='12' and math.abs(D-25)<4 and 'xmas' or + -- Halloween + (M=='11' and D>='28' or M=='12' and D<='04') and + 'halloween' or + -- Birthday M=='06' and D=='06' and 'birth' or @@ -65,6 +70,10 @@ function THEME.set(theme) BG.setDefault('firework') BGM.setDefault('spring festival') MES.new('info',"★☆新年快乐☆★") + elseif theme=='halloween' then + BG.setDefault('glow') + BGM.setDefault('antispace') + MES.new('info',">>Happy halloween<<") elseif theme=='zday1' then BG.setDefault('lanterns') BGM.setDefault('overzero') @@ -105,8 +114,4 @@ function THEME.getThemeColor(theme) return themeColor[theme] end -function THEME.fresh() - THEME.set(THEME.calculate(os.date('%Y'),os.date('%m'),os.date('%d'))) -end - return THEME