2019-05-22 22:57:34 -05:00
|
|
|
local TitleScene = Scene:extend()
|
|
|
|
|
2020-12-19 19:31:14 -06:00
|
|
|
TitleScene.title = "Title"
|
2020-12-19 19:44:24 -06:00
|
|
|
TitleScene.restart_message = false
|
2020-12-19 19:31:14 -06:00
|
|
|
|
2019-05-22 22:57:34 -05:00
|
|
|
local main_menu_screens = {
|
|
|
|
ModeSelectScene,
|
2020-12-20 08:45:49 -06:00
|
|
|
SettingsScene,
|
2020-12-20 09:28:34 -06:00
|
|
|
CreditsScene,
|
2020-11-06 19:49:44 -06:00
|
|
|
ExitScene,
|
2019-05-22 22:57:34 -05:00
|
|
|
}
|
|
|
|
|
2020-10-10 20:17:48 -05:00
|
|
|
local mainmenuidle = {
|
2020-11-06 19:49:44 -06:00
|
|
|
"Idle",
|
|
|
|
"On title screen",
|
|
|
|
"On main menu screen",
|
|
|
|
"Twiddling their thumbs",
|
|
|
|
"Admiring the main menu's BG",
|
|
|
|
"Waiting for spring to come",
|
|
|
|
"Actually not playing",
|
|
|
|
"Contemplating collecting stars",
|
|
|
|
"Preparing to put the block!!",
|
|
|
|
"Having a nap",
|
|
|
|
"In menus",
|
|
|
|
"Bottom text",
|
2021-09-25 18:33:04 -05:00
|
|
|
"Trying to see all the funny rpc messages (maybe)",
|
|
|
|
"Not not not playing",
|
|
|
|
"AFK",
|
2021-09-26 20:55:42 -05:00
|
|
|
"Preparing for their next game",
|
|
|
|
"Who are those people on that boat?",
|
|
|
|
"Welcome to Cambridge!",
|
|
|
|
"who even reads these",
|
|
|
|
"Made with love in LOVE!",
|
|
|
|
"This is probably the longest RPC string out of every possible RPC string that can be displayed."
|
2020-10-10 20:17:48 -05:00
|
|
|
}
|
2020-10-09 17:43:22 -05:00
|
|
|
|
2021-10-22 00:39:39 -05:00
|
|
|
local menusplash = {
|
|
|
|
"Welcome to Cambridge!",
|
|
|
|
"Get ready to put the block!",
|
|
|
|
"Also try Master of Blocks!",
|
|
|
|
"Also try Shiromino!",
|
|
|
|
"1 year in the making!",
|
|
|
|
"haileyjunk!",
|
|
|
|
"WOOOOAAAAAHHH!!!!!"
|
|
|
|
}
|
|
|
|
|
|
|
|
local currentSplash = menusplash[math.random(#menusplash)]
|
|
|
|
local now = os.date("t")
|
|
|
|
|
|
|
|
showDebugKeys = false
|
|
|
|
|
2019-05-22 22:57:34 -05:00
|
|
|
function TitleScene:new()
|
|
|
|
self.main_menu_state = 1
|
2020-12-24 21:58:06 -06:00
|
|
|
self.frames = 0
|
|
|
|
self.snow_bg_opacity = 0
|
|
|
|
self.y_offset = 0
|
|
|
|
self.text = ""
|
|
|
|
self.text_flag = false
|
2020-10-10 20:17:48 -05:00
|
|
|
DiscordRPC:update({
|
2020-11-06 19:49:44 -06:00
|
|
|
details = "In menus",
|
2020-11-08 15:19:01 -06:00
|
|
|
state = mainmenuidle[math.random(#mainmenuidle)],
|
2021-10-22 00:04:28 -05:00
|
|
|
largeImageKey = "1year",
|
|
|
|
largeImageText = version.." | Thanks for 1 year!"
|
2020-11-06 19:49:44 -06:00
|
|
|
})
|
2021-10-22 00:39:39 -05:00
|
|
|
|
|
|
|
if now.month == 12 then
|
|
|
|
DiscordRPC:update({
|
|
|
|
largeImageKey = "snow"
|
|
|
|
})
|
|
|
|
end
|
2019-05-22 22:57:34 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
function TitleScene:update()
|
2020-12-24 21:58:06 -06:00
|
|
|
if self.text_flag then
|
|
|
|
self.frames = self.frames + 1
|
|
|
|
self.snow_bg_opacity = self.snow_bg_opacity + 0.01
|
|
|
|
end
|
|
|
|
if self.frames < 125 then self.y_offset = self.frames
|
|
|
|
elseif self.frames < 185 then self.y_offset = 125
|
|
|
|
else self.y_offset = 310 - self.frames end
|
2019-05-22 22:57:34 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
function TitleScene:render()
|
2021-10-16 23:34:30 -05:00
|
|
|
love.graphics.setFont(font_3x5_4)
|
2020-12-24 21:58:06 -06:00
|
|
|
love.graphics.setColor(1, 1, 1, 1 - self.snow_bg_opacity)
|
2021-10-16 23:34:30 -05:00
|
|
|
--[[
|
2019-05-22 22:57:34 -05:00
|
|
|
love.graphics.draw(
|
|
|
|
backgrounds["title"],
|
|
|
|
0, 0, 0,
|
|
|
|
0.5, 0.5
|
|
|
|
)
|
2021-10-16 23:34:30 -05:00
|
|
|
]]
|
|
|
|
love.graphics.draw(
|
|
|
|
backgrounds["title_night"],
|
|
|
|
0, 0, 0,
|
|
|
|
0.5, 0.5
|
|
|
|
)
|
|
|
|
love.graphics.draw(
|
|
|
|
misc_graphics["icon"],
|
|
|
|
460, 170, 0,
|
|
|
|
2, 2
|
|
|
|
)
|
2021-10-22 00:39:39 -05:00
|
|
|
love.graphics.printf(currentSplash, 390, 280, 320, "center", 0, 0.75, 0.75)
|
2019-05-22 22:57:34 -05:00
|
|
|
|
2021-10-16 23:34:30 -05:00
|
|
|
love.graphics.setFont(font_3x5_2)
|
2020-12-24 21:58:06 -06:00
|
|
|
love.graphics.setColor(1, 1, 1, self.snow_bg_opacity)
|
|
|
|
love.graphics.draw(
|
|
|
|
backgrounds["snow"],
|
|
|
|
0, 0, 0,
|
|
|
|
0.5, 0.5
|
|
|
|
)
|
|
|
|
|
|
|
|
love.graphics.draw(
|
|
|
|
misc_graphics["santa"],
|
|
|
|
400, -205 + self.y_offset,
|
|
|
|
0, 0.5, 0.5
|
|
|
|
)
|
|
|
|
love.graphics.print("Happy Holidays!", 320, -100 + self.y_offset)
|
|
|
|
|
2021-01-08 19:33:44 -06:00
|
|
|
love.graphics.setColor(1, 1, 1, 1)
|
2020-12-19 19:44:24 -06:00
|
|
|
love.graphics.print(self.restart_message and "Restart Cambridge..." or "", 0, 0)
|
|
|
|
|
2019-05-22 22:57:34 -05:00
|
|
|
love.graphics.setColor(1, 1, 1, 0.5)
|
|
|
|
love.graphics.rectangle("fill", 20, 278 + 20 * self.main_menu_state, 160, 22)
|
|
|
|
|
|
|
|
love.graphics.setColor(1, 1, 1, 1)
|
|
|
|
for i, screen in pairs(main_menu_screens) do
|
|
|
|
love.graphics.printf(screen.title, 40, 280 + 20 * i, 120, "left")
|
|
|
|
end
|
2021-10-22 00:39:39 -05:00
|
|
|
|
|
|
|
if showDebugKeys then
|
|
|
|
love.graphics.print("DEBUG KEYS\n\nF3+S: Get new splash message\nF3+R: Restart\nF3+I: Toggle this")
|
|
|
|
end
|
|
|
|
|
2019-05-22 22:57:34 -05:00
|
|
|
end
|
|
|
|
|
|
|
|
function TitleScene:changeOption(rel)
|
|
|
|
local len = table.getn(main_menu_screens)
|
|
|
|
self.main_menu_state = (self.main_menu_state + len + rel - 1) % len + 1
|
|
|
|
end
|
|
|
|
|
2021-10-22 00:39:39 -05:00
|
|
|
|
|
|
|
|
2020-11-08 14:55:06 -06:00
|
|
|
function TitleScene:onInputPress(e)
|
2021-10-22 00:39:39 -05:00
|
|
|
local debugkey = love.keyboard.isDown("f3")
|
2021-10-21 19:52:42 -05:00
|
|
|
if e.input == "menu_decide" or e.scancode == "return" then
|
2020-10-09 16:50:05 -05:00
|
|
|
playSE("main_decide")
|
2019-05-22 22:57:34 -05:00
|
|
|
scene = main_menu_screens[self.main_menu_state]()
|
2021-10-21 19:52:42 -05:00
|
|
|
elseif e.input == "up" or e.scancode == "up" then
|
2019-05-22 22:57:34 -05:00
|
|
|
self:changeOption(-1)
|
2020-10-09 16:50:05 -05:00
|
|
|
playSE("cursor")
|
2021-10-21 19:52:42 -05:00
|
|
|
elseif e.input == "down" or e.scancode == "down" then
|
2019-05-22 22:57:34 -05:00
|
|
|
self:changeOption(1)
|
2020-10-09 16:50:05 -05:00
|
|
|
playSE("cursor")
|
2021-10-21 19:52:42 -05:00
|
|
|
elseif e.input == "menu_back" or e.scancode == "backspace" or e.scancode == "delete" then
|
2020-11-06 19:49:44 -06:00
|
|
|
love.event.quit()
|
2021-10-22 00:39:39 -05:00
|
|
|
-- small debug feature, press f3+s to get a new splash message
|
|
|
|
elseif e.scancode == "s" then
|
|
|
|
if debugkey then
|
|
|
|
currentSplash = menusplash[math.random(#menusplash)]
|
|
|
|
playSE("main_decide")
|
|
|
|
end
|
|
|
|
elseif e.scancode == "r" then
|
|
|
|
if debugkey then
|
|
|
|
love.event.quit("restart")
|
|
|
|
end
|
|
|
|
elseif e.scancode == "i" then
|
|
|
|
if debugkey then
|
|
|
|
if showDebugKeys then
|
|
|
|
showDebugKeys = false
|
|
|
|
else
|
|
|
|
showDebugKeys = true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2021-10-16 23:34:30 -05:00
|
|
|
-- no winter easter egg for now
|
|
|
|
--[[
|
2020-12-24 21:58:06 -06:00
|
|
|
else
|
2021-10-16 23:34:30 -05:00
|
|
|
self.text = self.text .. (e.scancode or "")
|
2020-12-24 21:58:06 -06:00
|
|
|
if self.text == "ffffff" then
|
|
|
|
self.text_flag = true
|
2021-09-26 22:12:05 -05:00
|
|
|
DiscordRPC:update({
|
|
|
|
largeImageKey = "snow"
|
|
|
|
})
|
2020-12-24 21:58:06 -06:00
|
|
|
end
|
2021-10-16 23:34:30 -05:00
|
|
|
]]
|
2019-05-22 22:57:34 -05:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
return TitleScene
|