diff --git a/src/love/images/png/resultsScreen/difEasy.png b/src/love/images/png/resultsScreen/difEasy.png new file mode 100644 index 00000000..4a2285a9 Binary files /dev/null and b/src/love/images/png/resultsScreen/difEasy.png differ diff --git a/src/love/images/png/resultsScreen/difErect.png b/src/love/images/png/resultsScreen/difErect.png new file mode 100644 index 00000000..3dbe8410 Binary files /dev/null and b/src/love/images/png/resultsScreen/difErect.png differ diff --git a/src/love/images/png/resultsScreen/difHard.png b/src/love/images/png/resultsScreen/difHard.png new file mode 100644 index 00000000..41a416b1 Binary files /dev/null and b/src/love/images/png/resultsScreen/difHard.png differ diff --git a/src/love/images/png/resultsScreen/difNightmare.png b/src/love/images/png/resultsScreen/difNightmare.png new file mode 100644 index 00000000..4aa363f4 Binary files /dev/null and b/src/love/images/png/resultsScreen/difNightmare.png differ diff --git a/src/love/images/png/resultsScreen/difNormal.png b/src/love/images/png/resultsScreen/difNormal.png new file mode 100644 index 00000000..4426a3c4 Binary files /dev/null and b/src/love/images/png/resultsScreen/difNormal.png differ diff --git a/src/love/images/png/resultsScreen/highscoreNew.png b/src/love/images/png/resultsScreen/highscoreNew.png new file mode 100644 index 00000000..4b5f457f Binary files /dev/null and b/src/love/images/png/resultsScreen/highscoreNew.png differ diff --git a/src/love/images/png/resultsScreen/ratingsPopin.png b/src/love/images/png/resultsScreen/ratingsPopin.png new file mode 100644 index 00000000..c23be50d Binary files /dev/null and b/src/love/images/png/resultsScreen/ratingsPopin.png differ diff --git a/src/love/images/png/resultsScreen/resultBoyfriendGOOD.png b/src/love/images/png/resultsScreen/resultBoyfriendGOOD.png new file mode 100644 index 00000000..f6d2319e Binary files /dev/null and b/src/love/images/png/resultsScreen/resultBoyfriendGOOD.png differ diff --git a/src/love/images/png/resultsScreen/resultGirlfriendGOOD.png b/src/love/images/png/resultsScreen/resultGirlfriendGOOD.png new file mode 100644 index 00000000..6204863b Binary files /dev/null and b/src/love/images/png/resultsScreen/resultGirlfriendGOOD.png differ diff --git a/src/love/images/png/resultsScreen/results.png b/src/love/images/png/resultsScreen/results.png new file mode 100644 index 00000000..42032aaf Binary files /dev/null and b/src/love/images/png/resultsScreen/results.png differ diff --git a/src/love/images/png/resultsScreen/score-digital-numbers.png b/src/love/images/png/resultsScreen/score-digital-numbers.png new file mode 100644 index 00000000..177c9734 Binary files /dev/null and b/src/love/images/png/resultsScreen/score-digital-numbers.png differ diff --git a/src/love/images/png/resultsScreen/scorePopin.png b/src/love/images/png/resultsScreen/scorePopin.png new file mode 100644 index 00000000..4838e35f Binary files /dev/null and b/src/love/images/png/resultsScreen/scorePopin.png differ diff --git a/src/love/images/png/resultsScreen/soundSystem.png b/src/love/images/png/resultsScreen/soundSystem.png new file mode 100644 index 00000000..21194e90 Binary files /dev/null and b/src/love/images/png/resultsScreen/soundSystem.png differ diff --git a/src/love/images/png/resultsScreen/tallieNumber.png b/src/love/images/png/resultsScreen/tallieNumber.png new file mode 100644 index 00000000..ba30b220 Binary files /dev/null and b/src/love/images/png/resultsScreen/tallieNumber.png differ diff --git a/src/love/images/png/resultsScreen/tardlingSpritesheet.png b/src/love/images/png/resultsScreen/tardlingSpritesheet.png new file mode 100644 index 00000000..aec30c66 Binary files /dev/null and b/src/love/images/png/resultsScreen/tardlingSpritesheet.png differ diff --git a/src/love/images/png/resultsScreen/topBarBlack.png b/src/love/images/png/resultsScreen/topBarBlack.png new file mode 100644 index 00000000..39c3ea88 Binary files /dev/null and b/src/love/images/png/resultsScreen/topBarBlack.png differ diff --git a/src/love/main.lua b/src/love/main.lua index 8932687f..a11e2e42 100644 --- a/src/love/main.lua +++ b/src/love/main.lua @@ -182,6 +182,10 @@ function love.load() NoteSplash = require "modules.Splash" HoldCover = require "modules.Cover" loadSavedata() + settings.pixelPerfect = false + + -- Modding + importMods = require "modding.importMods" -- XML Modules Sprite = require "modules.xml.Sprite" @@ -238,6 +242,7 @@ function love.load() menuSettings = require "states.menu.options.OptionsState" menuCredits = require "states.menu.menuCredits" menuSelect = require "states.menu.menuSelect" + resultsScreen = require "states.menu.results" firstStartup = true @@ -392,6 +397,8 @@ function love.load() } } + modWeekPlacement = #weekMeta -- everything after the main weeks is a mod folder. + -- LÖVE init if curOS == "OS X" then love.window.setIcon(love.image.newImageData("icons/macos.png")) @@ -450,11 +457,17 @@ function love.load() (love.audio.getVolume()) )) + + volumeWidth = {width = 160 } + + if CONSTANTS.OPTIONS.DO_MODS then + importMods.setup() + importMods.loadAllMods() + end + Gamestate.switch(menu) love.setFpsCap(settings.fpsCap) - - DO_SAVE_DATA = true end function love.resize(width, height) @@ -520,6 +533,21 @@ function love.keypressed(key) lastAudioVolume = love.audio.getVolume() love.audio.setVolume(0) end + --[[ elseif key == "-" and love.keyboard.isDown("lalt") then + Gamestate.switch(resultsScreen, { + diff = "hard", + song = "High Erect", + artist = "Kohta Takahashi (feat. Kawai Sprite)", + scores = { + sickCount = 10, + goodCount = 15, + badCount = 20, + shitCount = 25, + missedCount = 30, + maxCombo = 384, + score = 192000 + } + }) ]] elseif key == "-" then volFade = 1 if fixVol > 0 then @@ -594,41 +622,78 @@ function love.draw() graphics.screenBase(push:getWidth(), push:getHeight()) if mainDrawing then - push:start() - graphics.setColor(1, 1, 1) -- Fade effect on - Gamestate.draw() - love.graphics.setColor(1, 1, 1) -- Fade effect off - love.graphics.setFont(font) - if status.getLoading() then - love.graphics.print("Loading...", push:getWidth() - 175, push:getHeight() - 50) - end - if volFade > 0 then - love.graphics.setColor(1, 1, 1, volFade) - fixVol = tonumber(string.format( - "%.1f ", - (love.audio.getVolume()) - )) - love.graphics.setColor(0.5, 0.5, 0.5, volFade - 0.3) - - love.graphics.rectangle("fill", 1110, 0, 170, 50) - - love.graphics.setColor(1, 1, 1, volFade) - - if volTween then Timer.cancel(volTween) end - volTween = Timer.tween( - 0.2, - volumeWidth, - {width = fixVol * 160}, - "out-quad" - ) - love.graphics.rectangle("fill", 1113, 10, volumeWidth.width, 30) - graphics.setColor(1, 1, 1, 1) - end - if fade.mesh then - graphics.setColor(1,1,1) - love.graphics.draw(fade.mesh, 0, fade.y, 0, push:getWidth(), fade.height) - end - push:finish() + if not status.getNoResize() then + push:start() + graphics.setColor(1, 1, 1) -- Fade effect on + Gamestate.draw() + love.graphics.setColor(1, 1, 1) -- Fade effect off + love.graphics.setFont(font) + if status.getLoading() then + love.graphics.print("Loading...", push:getWidth() - 175, push:getHeight() - 50) + end + if volFade > 0 then + love.graphics.setColor(1, 1, 1, volFade) + fixVol = tonumber(string.format( + "%.1f ", + (love.audio.getVolume()) + )) + love.graphics.setColor(0.5, 0.5, 0.5, volFade - 0.3) + + love.graphics.rectangle("fill", 1110, 0, 170, 50) + + love.graphics.setColor(1, 1, 1, volFade) + + if volTween then Timer.cancel(volTween) end + volTween = Timer.tween( + 0.2, + volumeWidth, + {width = fixVol * 160}, + "out-quad" + ) + love.graphics.rectangle("fill", 1113, 10, volumeWidth.width, 30) + graphics.setColor(1, 1, 1, 1) + end + if fade.mesh then + graphics.setColor(1,1,1) + love.graphics.draw(fade.mesh, 0, fade.y, 0, push:getWidth(), fade.height) + end + push:finish() + else + graphics.setColor(1, 1, 1) -- Fade effect on + Gamestate.draw() + love.graphics.setColor(1, 1, 1) -- Fade effect off + love.graphics.setFont(font) + if status.getLoading() then + love.graphics.print("Loading...", graphics.getWidth() - 175, graphics.getHeight() - 50) + end + if volFade > 0 then + love.graphics.setColor(1, 1, 1, volFade) + fixVol = tonumber(string.format( + "%.1f ", + (love.audio.getVolume()) + )) + love.graphics.setColor(0.5, 0.5, 0.5, volFade - 0.3) + + love.graphics.rectangle("fill", 1110, 0, 170, 50) + + love.graphics.setColor(1, 1, 1, volFade) + + if volTween then Timer.cancel(volTween) end + volTween = Timer.tween( + 0.2, + volumeWidth, + {width = fixVol * 160}, + "out-quad" + ) + love.graphics.rectangle("fill", 1113, 10, volumeWidth.width, 30) + graphics.setColor(1, 1, 1, 1) + end + if fade.mesh then + graphics.setColor(1,1,1) + love.graphics.draw(fade.mesh, 0, fade.y, 0, graphics.getWidth(), fade.height) + end + end + graphics.setColor(1,1,1,capturedScreenshot.flash) love.graphics.rectangle("fill", 0, 0, love.graphics.getWidth(), love.graphics.getHeight()) diff --git a/src/love/modding/importMods.lua b/src/love/modding/importMods.lua new file mode 100644 index 00000000..14978979 --- /dev/null +++ b/src/love/modding/importMods.lua @@ -0,0 +1,85 @@ +local importMods = {} +importMods.storedMods = {} +importMods.inMod = false + +function importMods.setup() + if not love.filesystem.getInfo("mods") then + love.filesystem.createDirectory("mods") + end +end + +function importMods.loadMod(mod) -- The file name of the mod + if love.filesystem.getInfo("mods/" .. mod .. "/stages/") then + local stagesList = love.filesystem.getDirectoryItems("mods/" .. mod .. "/stages") + for i, stage in ipairs(stagesList) do + local stageData = require(("mods." .. mod .. ".stages." .. stage):gsub("/", "."):gsub(".lua", "")) + stages[stageData.name] = stageData + end + end + + if love.filesystem.getInfo("mods/" .. mod .. "/weeks/") then + local weeksList = love.filesystem.getDirectoryItems("mods/" .. mod .. "/weeks") + for i, week in ipairs(weeksList) do + local weekDataFile = require(("mods." .. mod .. ".weeks." .. week):gsub("/", "."):gsub(".lua", "")) + table.insert(weekData, weekDataFile) + table.insert(weekDesc, weekDataFile.description) + table.insert(weekMeta, { + weekDataFile.name, + weekDataFile.songs + }) + end + end + + table.insert(importMods.storedMods, { + name = mod, + path = "mods/" .. mod + }) + + print("Loaded mod: " .. mod) +end + +function importMods.loadAllMods() + local mods = love.filesystem.getDirectoryItems("mods") + for i, mod in ipairs(mods) do + if love.filesystem.getInfo("mods/" .. mod .. "/meta.lua") then + local meta = love.filesystem.load("mods/" .. mod .. "/meta.lua")() + if meta.enabled == nil or meta.enabled then + importMods.loadMod(mod) + end + end + end +end + +function importMods.getCurrentMod() + return importMods.storedMods[weekNum - modWeekPlacement] +end + +function loadLuaFile(path) + local currentMod = importMods.getCurrentMod() + + + if love.filesystem.getInfo(currentMod.path .. "/" .. path) then + return love.filesystem.load(currentMod.path .. "/" .. path) + else + return love.filesystem.load(path) + end +end + +function loadAudioFile(path) + local currentMod = importMods.getCurrentMod() + + if love.filesystem.getInfo(currentMod.path .. "/" .. path) then + return love.audio.newSource(currentMod.path .. "/" .. path, "stream") + else + return love.audio.newSource(path, "stream") + end + --[[ return love.audio.newSource(currentMod.path .. "/" .. path, "stream") ]] +end + +function loadImageFile(path) + local currentMod = importMods.getCurrentMod() + + return love.graphics.newImage(path) +end + +return importMods \ No newline at end of file diff --git a/src/love/modules/constants.lua b/src/love/modules/constants.lua index edda7953..0e4cfb42 100644 --- a/src/love/modules/constants.lua +++ b/src/love/modules/constants.lua @@ -1,5 +1,11 @@ local CONSTANTS = {} +CONSTANTS.OPTIONS ={ + SHOW_RESULTS_SCREEN = true, + DO_SAVE_DATA = true, + DO_MODS = true, +} + CONSTANTS.WEEKS = { ANIM_LIST = { "singLEFT", diff --git a/src/love/modules/graphics.lua b/src/love/modules/graphics.lua index 702ff2c3..97cc88b4 100644 --- a/src/love/modules/graphics.lua +++ b/src/love/modules/graphics.lua @@ -54,10 +54,25 @@ return { imagePath = function(path) local pathStr = "images/" .. imageType .. "/" .. path .. "." .. imageType - if love.filesystem.getInfo(pathStr) then - return pathStr + if not importMods.inMod then + if love.filesystem.getInfo(pathStr) then + return pathStr + else + return "images/png/" .. path .. ".png" + end else - return "images/png/" .. path .. ".png" + local currentMod = importMods.getCurrentMod() + if love.filesystem.getInfo(currentMod.path .. "/images/" .. imageType .. "/" .. path .. "." .. imageType) then + return currentMod.path .. "/images/" .. imageType .. "/" .. path .. "." .. imageType + elseif love.filesystem.getInfo(currentMod.path .. "/images/png/" .. path .. ".png") then + return currentMod.path .. "/images/png/" .. path .. ".png" + else + if love.filesystem.getInfo(pathStr) then + return pathStr + else + return "images/png/" .. path .. ".png" + end + end end end, setImageType = function(type) @@ -104,6 +119,14 @@ return { return image end, + getWidth = function(self) + return width + end, + + getHeight = function(self) + return height + end, + draw = function(self) local x = self.x local y = self.y @@ -131,7 +154,8 @@ return { udraw = function(self, sx, sy) local sx = sx or 7 - local sy = sy or 7 + local sy = sy or sx + print(sx, sy) local x = self.x local y = self.y @@ -179,6 +203,7 @@ return { local isAnimated local isLooped + local forceFrameStart local options @@ -237,7 +262,7 @@ return { return anims[name] ~= nil end, - animate = function(self, animName, loopAnim, func, forceSpecial) + animate = function(self, animName, loopAnim, func, forceSpecial, frameOverride, keepFrameOverride) -- defaults forceSpecial to true forceSpecial = forceSpecial == nil and true or forceSpecial self.holdTimer = 0 @@ -268,10 +293,16 @@ return { self.func = func - frame = anim.start + frame = frameOverride or anim.start isLooped = loopAnim isAnimated = true + + if not keepFrameOverride then + forceFrameStart = nil + else + forceFrameStart = frameOverride + end end, getAnims = function(self) return anims @@ -310,7 +341,7 @@ return { self.func = nil end if isLooped then - frame = anim.start + frame = forceFrameStart or anim.start else isAnimated = false end diff --git a/src/love/modules/savedata.lua b/src/love/modules/savedata.lua index a12a9e69..235a3c19 100644 --- a/src/love/modules/savedata.lua +++ b/src/love/modules/savedata.lua @@ -42,6 +42,7 @@ if love.filesystem.getInfo("settings") then customBindRight = customBindRight, window = settings.window, fpsCap = settings.fpsCap, + pixelPerfect = false, settingsVer = settingsVer } serialized = lume.serialize(settingdata) @@ -68,6 +69,7 @@ if not love.filesystem.getInfo("settings") or settingsVer ~= 3 then settings.scrollUnderlayTrans = 0 settings.window = false settings.fpsCap = 60 + settings.pixelPerfect = false --settings.noteSkins = 1 customBindLeft = "a" customBindRight = "d" @@ -92,6 +94,7 @@ if not love.filesystem.getInfo("settings") or settingsVer ~= 3 then keystrokes = settings.keystrokes, scrollUnderlayTrans = settings.scrollUnderlayTrans, fpsCap = settings.fpsCap, + pixelPerfect = false, customBindLeft = "a", customBindRight = "d", @@ -136,6 +139,7 @@ function saveSettings(menu) flashinglights = settings.flashinglights, window = settings.window, fpsCap = settings.fpsCap, + pixelPerfect = false, customBindDown = customBindDown, customBindUp = customBindUp, customBindLeft = customBindLeft, @@ -176,6 +180,7 @@ function saveSettings(menu) flashinglights = settings.flashinglights, window = settings.window, fpsCap = settings.fpsCap, + pixelPerfect = false, customBindDown = customBindDown, customBindUp = customBindUp, diff --git a/src/love/modules/status.lua b/src/love/modules/status.lua index e032fecf..f8a32dfb 100644 --- a/src/love/modules/status.lua +++ b/src/love/modules/status.lua @@ -32,7 +32,7 @@ return { setNoResize = function(state) noResize = state end, - getNoResize = function(state) + getNoResize = function() return noResize end, diff --git a/src/love/music/results/resultsNORMAL.ogg b/src/love/music/results/resultsNORMAL.ogg new file mode 100644 index 00000000..aa823b88 Binary files /dev/null and b/src/love/music/results/resultsNORMAL.ogg differ diff --git a/src/love/music/results/resultsPERFECT.ogg b/src/love/music/results/resultsPERFECT.ogg new file mode 100644 index 00000000..214960ef Binary files /dev/null and b/src/love/music/results/resultsPERFECT.ogg differ diff --git a/src/love/music/results/resultsSHIT.ogg b/src/love/music/results/resultsSHIT.ogg new file mode 100644 index 00000000..a94b0f42 Binary files /dev/null and b/src/love/music/results/resultsSHIT.ogg differ diff --git a/src/love/sprites/resultsScreen/ratingsPopin.lua b/src/love/sprites/resultsScreen/ratingsPopin.lua new file mode 100644 index 00000000..fe6a7bf7 --- /dev/null +++ b/src/love/sprites/resultsScreen/ratingsPopin.lua @@ -0,0 +1,44 @@ +return graphics.newSprite( + _resultsCache.ratingsPopin, + { + {x = 693, y = 963, width = 448, height = 36, offsetX = 0, offsetY = -32, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 1: Categories0000 + {x = 0, y = 817, width = 304, height = 83, offsetX = -204, offsetY = 0, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 2: Categories0001 + {x = 693, y = 830, width = 448, height = 128, offsetX = -60, offsetY = 0, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 3: Categories0002 + {x = 704, y = 647, width = 368, height = 178, offsetX = -143, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 4: Categories0003 + {x = 746, y = 410, width = 379, height = 232, offsetX = -132, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 5: Categories0004 + {x = 333, y = 767, width = 355, height = 287, offsetX = -154, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 6: Categories0005 + {x = 333, y = 416, width = 366, height = 346, offsetX = -143, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 7: Categories0006 + {x = 0, y = 0, width = 408, height = 396, offsetX = -100, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 8: Categories0007 + {x = 0, y = 401, width = 328, height = 411, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 9: Categories0008 + {x = 413, y = 0, width = 328, height = 411, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 10: Categories0009 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 11: Categories0010 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 12: Categories0011 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 13: Categories0012 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 14: Categories0013 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 15: Categories0014 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 16: Categories0015 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 17: Categories0016 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 18: Categories0017 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 19: Categories0018 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 20: Categories0019 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 21: Categories0020 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 22: Categories0021 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 23: Categories0022 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 24: Categories0023 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 25: Categories0024 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 26: Categories0025 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 27: Categories0026 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 28: Categories0027 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 29: Categories0028 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 30: Categories0029 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 31: Categories0030 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 32: Categories0031 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false}, -- 33: Categories0032 + {x = 746, y = 0, width = 328, height = 405, offsetX = -180, offsetY = -7, offsetWidth = 511, offsetHeight = 418, rotated = false} -- 34: Categories0033 + }, + { + ["idle"] = {start = 1, stop = 34, speed = 24, offsetX = 0, offsetY = 0}, -- 1: idle + }, + "idle", + false +) \ No newline at end of file diff --git a/src/love/sprites/resultsScreen/resultBoyfriendGOOD.lua b/src/love/sprites/resultsScreen/resultBoyfriendGOOD.lua new file mode 100644 index 00000000..d16f08cb --- /dev/null +++ b/src/love/sprites/resultsScreen/resultBoyfriendGOOD.lua @@ -0,0 +1,85 @@ +return graphics.newSprite( + love.graphics.newImage(graphics.imagePath("resultsScreen/resultBoyfriendGOOD")), + -- Automatically generated from resultBoyfriendGOOD.xml + { + {x = 4, y = 4, width = 451, height = 464, offsetX = -114, offsetY = 0, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 1: Boyfriend Good Anim0000 + {x = 4, y = 4, width = 451, height = 464, offsetX = -114, offsetY = -96, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 2: Boyfriend Good Anim0001 + {x = 459, y = 4, width = 447, height = 573, offsetX = -114, offsetY = -196, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 3: Boyfriend Good Anim0002 + {x = 910, y = 4, width = 511, height = 430, offsetX = -56, offsetY = -507, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 4: Boyfriend Good Anim0003 + {x = 910, y = 4, width = 511, height = 430, offsetX = -56, offsetY = -507, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 5: Boyfriend Good Anim0004 + {x = 1425, y = 4, width = 496, height = 450, offsetX = -56, offsetY = -484, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 6: Boyfriend Good Anim0005 + {x = 1425, y = 4, width = 496, height = 450, offsetX = -56, offsetY = -484, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 7: Boyfriend Good Anim0006 + {x = 1425, y = 4, width = 496, height = 450, offsetX = -56, offsetY = -484, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 8: Boyfriend Good Anim0007 + {x = 1925, y = 4, width = 496, height = 455, offsetX = -56, offsetY = -479, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 9: Boyfriend Good Anim0008 + {x = 1925, y = 4, width = 496, height = 455, offsetX = -56, offsetY = -479, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 10: Boyfriend Good Anim0009 + {x = 2425, y = 4, width = 502, height = 456, offsetX = -53, offsetY = -478, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 11: Boyfriend Good Anim0010 + {x = 2425, y = 4, width = 502, height = 456, offsetX = -53, offsetY = -478, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 12: Boyfriend Good Anim0011 + {x = 2931, y = 4, width = 655, height = 524, offsetX = 0, offsetY = -396, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 13: Boyfriend Good Anim0012 + {x = 2931, y = 4, width = 655, height = 524, offsetX = 0, offsetY = -396, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 14: Boyfriend Good Anim0013 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 15: Boyfriend Good Anim0014 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 16: Boyfriend Good Anim0015 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 17: Boyfriend Good Anim0016 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 18: Boyfriend Good Anim0017 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 19: Boyfriend Good Anim0018 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 20: Boyfriend Good Anim0019 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 21: Boyfriend Good Anim0020 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 22: Boyfriend Good Anim0021 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 23: Boyfriend Good Anim0022 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 24: Boyfriend Good Anim0023 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 25: Boyfriend Good Anim0024 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 26: Boyfriend Good Anim0025 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 27: Boyfriend Good Anim0026 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 28: Boyfriend Good Anim0027 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 29: Boyfriend Good Anim0028 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 30: Boyfriend Good Anim0029 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 31: Boyfriend Good Anim0030 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 32: Boyfriend Good Anim0031 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 33: Boyfriend Good Anim0032 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 34: Boyfriend Good Anim0033 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 35: Boyfriend Good Anim0034 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 36: Boyfriend Good Anim0035 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 37: Boyfriend Good Anim0036 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 38: Boyfriend Good Anim0037 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 39: Boyfriend Good Anim0038 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 40: Boyfriend Good Anim0039 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 41: Boyfriend Good Anim0040 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 42: Boyfriend Good Anim0041 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 43: Boyfriend Good Anim0042 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 44: Boyfriend Good Anim0043 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 45: Boyfriend Good Anim0044 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 46: Boyfriend Good Anim0045 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 47: Boyfriend Good Anim0046 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 48: Boyfriend Good Anim0047 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 49: Boyfriend Good Anim0048 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 50: Boyfriend Good Anim0049 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 51: Boyfriend Good Anim0050 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 52: Boyfriend Good Anim0051 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 53: Boyfriend Good Anim0052 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 54: Boyfriend Good Anim0053 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 55: Boyfriend Good Anim0054 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 56: Boyfriend Good Anim0055 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 57: Boyfriend Good Anim0056 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 58: Boyfriend Good Anim0057 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 59: Boyfriend Good Anim0058 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 60: Boyfriend Good Anim0059 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 61: Boyfriend Good Anim0060 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 62: Boyfriend Good Anim0061 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 63: Boyfriend Good Anim0062 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 64: Boyfriend Good Anim0063 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 65: Boyfriend Good Anim0064 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 66: Boyfriend Good Anim0065 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 67: Boyfriend Good Anim0066 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 68: Boyfriend Good Anim0067 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 69: Boyfriend Good Anim0068 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 70: Boyfriend Good Anim0069 + {x = 4, y = 581, width = 637, height = 516, offsetX = -11, offsetY = -408, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 71: Boyfriend Good Anim0070 + {x = 645, y = 581, width = 634, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 72: Boyfriend Good Anim0071 + {x = 1283, y = 581, width = 638, height = 515, offsetX = -11, offsetY = -409, offsetWidth = 655, offsetHeight = 937, rotated = false}, -- 73: Boyfriend Good Anim0072 + {x = 1925, y = 581, width = 635, height = 518, offsetX = -11, offsetY = -406, offsetWidth = 655, offsetHeight = 937, rotated = false} -- 74: Boyfriend Good Anim0073 + }, + { + ["idle"] = {start = 1, stop = 74, speed = 24, offsetX = 0, offsetY = 0}, -- 1: idle + }, + "idle", + false +) \ No newline at end of file diff --git a/src/love/sprites/resultsScreen/resultGirlfriendGOOD.lua b/src/love/sprites/resultsScreen/resultGirlfriendGOOD.lua new file mode 100644 index 00000000..f8175db2 --- /dev/null +++ b/src/love/sprites/resultsScreen/resultGirlfriendGOOD.lua @@ -0,0 +1,63 @@ +return graphics.newSprite( + love.graphics.newImage(graphics.imagePath("resultsScreen/resultGirlfriendGOOD")), + -- Automatically generated from resultGirlfriendGOOD.xml + { + {x = 4, y = 4, width = 222, height = 226, offsetX = -42, offsetY = -128, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 1: Girlfriend Good Anim0000 + {x = 230, y = 4, width = 210, height = 290, offsetX = -18, offsetY = -45, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 2: Girlfriend Good Anim0001 + {x = 230, y = 4, width = 210, height = 290, offsetX = -18, offsetY = -45, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 3: Girlfriend Good Anim0002 + {x = 444, y = 4, width = 210, height = 290, offsetX = 0, offsetY = 0, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 4: Girlfriend Good Anim0003 + {x = 444, y = 4, width = 210, height = 290, offsetX = 0, offsetY = 0, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 5: Girlfriend Good Anim0004 + {x = 658, y = 4, width = 210, height = 290, offsetX = -1, offsetY = -3, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 6: Girlfriend Good Anim0005 + {x = 658, y = 4, width = 210, height = 290, offsetX = -1, offsetY = -3, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 7: Girlfriend Good Anim0006 + {x = 4, y = 298, width = 210, height = 290, offsetX = -6, offsetY = -15, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 8: Girlfriend Good Anim0007 + {x = 218, y = 298, width = 210, height = 290, offsetX = -6, offsetY = -15, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 9: Girlfriend Good Anim0008 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 10: Girlfriend Good Anim0009 + {x = 645, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 11: Girlfriend Good Anim0010 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 12: Girlfriend Good Anim0011 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 13: Girlfriend Good Anim0012 + {x = 217, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 14: Girlfriend Good Anim0013 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 15: Girlfriend Good Anim0014 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 16: Girlfriend Good Anim0015 + {x = 645, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 17: Girlfriend Good Anim0016 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 18: Girlfriend Good Anim0017 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 19: Girlfriend Good Anim0018 + {x = 217, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 20: Girlfriend Good Anim0019 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 21: Girlfriend Good Anim0020 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 22: Girlfriend Good Anim0021 + {x = 645, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 23: Girlfriend Good Anim0022 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 24: Girlfriend Good Anim0023 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 25: Girlfriend Good Anim0024 + {x = 217, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 26: Girlfriend Good Anim0025 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 27: Girlfriend Good Anim0026 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 28: Girlfriend Good Anim0027 + {x = 645, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 29: Girlfriend Good Anim0028 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 30: Girlfriend Good Anim0029 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 31: Girlfriend Good Anim0030 + {x = 217, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 32: Girlfriend Good Anim0031 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 33: Girlfriend Good Anim0032 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 34: Girlfriend Good Anim0033 + {x = 645, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 35: Girlfriend Good Anim0034 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 36: Girlfriend Good Anim0035 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 37: Girlfriend Good Anim0036 + {x = 217, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 38: Girlfriend Good Anim0037 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 39: Girlfriend Good Anim0038 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 40: Girlfriend Good Anim0039 + {x = 645, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 41: Girlfriend Good Anim0040 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 42: Girlfriend Good Anim0041 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 43: Girlfriend Good Anim0042 + {x = 217, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 44: Girlfriend Good Anim0043 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 45: Girlfriend Good Anim0044 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 46: Girlfriend Good Anim0045 + {x = 645, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 47: Girlfriend Good Anim0046 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 48: Girlfriend Good Anim0047 + {x = 4, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 49: Girlfriend Good Anim0048 + {x = 217, y = 592, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 50: Girlfriend Good Anim0049 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false}, -- 51: Girlfriend Good Anim0050 + {x = 432, y = 298, width = 209, height = 290, offsetX = -6, offsetY = -12, offsetWidth = 264, offsetHeight = 354, rotated = false} -- 52: Girlfriend Good Anim0051 + }, + { + ["idle"] = {start = 1, stop = 52, speed = 24, offsetX = 0, offsetY = 0}, -- 1: idle + }, + "idle", + false +) \ No newline at end of file diff --git a/src/love/sprites/resultsScreen/resultsAnim.lua b/src/love/sprites/resultsScreen/resultsAnim.lua new file mode 100644 index 00000000..fc5f5e54 --- /dev/null +++ b/src/love/sprites/resultsScreen/resultsAnim.lua @@ -0,0 +1,47 @@ +return graphics.newSprite( + love.graphics.newImage(graphics.imagePath("resultsScreen/results")), + -- Automatically generated from results.xml + { + {x = 1118, y = 1128, width = 561, height = 30, offsetX = -295, offsetY = -49, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 1: results instance 10000 + {x = 1521, y = 1007, width = 174, height = 80, offsetX = -785, offsetY = -24, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 2: results instance 10001 + {x = 1129, y = 0, width = 910, height = 116, offsetX = -220, offsetY = -7, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 3: results instance 10002 + {x = 1118, y = 1007, width = 398, height = 116, offsetX = -732, offsetY = -7, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 4: results instance 10003 + {x = 0, y = 242, width = 887, height = 118, offsetX = -235, offsetY = -6, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 5: results instance 10004 + {x = 1465, y = 628, width = 450, height = 118, offsetX = -672, offsetY = -6, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 6: results instance 10005 + {x = 0, y = 365, width = 844, height = 118, offsetX = -280, offsetY = 0, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 7: results instance 10006 + {x = 1687, y = 121, width = 324, height = 118, offsetX = -800, offsetY = 0, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 8: results instance 10007 + {x = 0, y = 599, width = 854, height = 106, offsetX = -270, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 9: results instance 10008 + {x = 1264, y = 896, width = 490, height = 106, offsetX = -634, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 10: results instance 10009 + {x = 0, y = 488, width = 902, height = 106, offsetX = -222, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 11: results instance 10010 + {x = 1465, y = 517, width = 576, height = 106, offsetX = -548, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 12: results instance 10011 + {x = 0, y = 127, width = 975, height = 110, offsetX = -149, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 13: results instance 10012 + {x = 1264, y = 781, width = 612, height = 110, offsetX = -512, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 14: results instance 10013 + {x = 0, y = 0, width = 1124, height = 122, offsetX = 0, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 15: results instance 10014 + {x = 0, y = 710, width = 701, height = 122, offsetX = -423, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 16: results instance 10015 + {x = 0, y = 837, width = 530, height = 137, offsetX = -594, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 17: results instance 10016 + {x = 0, y = 837, width = 530, height = 137, offsetX = -594, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 18: results instance 10017 + {x = 0, y = 979, width = 555, height = 127, offsetX = -569, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 19: results instance 10018 + {x = 0, y = 979, width = 555, height = 127, offsetX = -569, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 20: results instance 10019 + {x = 1129, y = 121, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 21: results instance 10020 + {x = 892, y = 253, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 22: results instance 10021 + {x = 907, y = 385, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 23: results instance 10022 + {x = 907, y = 517, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 24: results instance 10023 + {x = 859, y = 649, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 25: results instance 10024 + {x = 706, y = 781, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 26: results instance 10025 + {x = 560, y = 913, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 27: results instance 10026 + {x = 560, y = 1045, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 28: results instance 10027 + {x = 1450, y = 253, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 29: results instance 10028 + {x = 1465, y = 385, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 30: results instance 10029 + {x = 1450, y = 253, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 31: results instance 10030 + {x = 1450, y = 253, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 32: results instance 10031 + {x = 1465, y = 385, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 33: results instance 10032 + {x = 1450, y = 253, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 34: results instance 10033 + {x = 1450, y = 253, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false}, -- 35: results instance 10034 + {x = 1450, y = 253, width = 553, height = 127, offsetX = -571, offsetY = -12, offsetWidth = 1130, offsetHeight = 149, rotated = false} -- 36: results instance 10035 + }, + { + ["idle"] = {start = 1, stop = 36, speed = 24, offsetX = 0, offsetY = 0}, -- 1: idle + }, + "idle", + false +) \ No newline at end of file diff --git a/src/love/sprites/resultsScreen/scoreDigitalNumbers.lua b/src/love/sprites/resultsScreen/scoreDigitalNumbers.lua new file mode 100644 index 00000000..e34d15b7 --- /dev/null +++ b/src/love/sprites/resultsScreen/scoreDigitalNumbers.lua @@ -0,0 +1,72 @@ +return graphics.newSprite( + _resultsCache.scoreDigitalNumbers, + -- Automatically generated from score-digital-numbers.xml + { + {x = 4, y = 4, width = 79, height = 123, offsetX = -15, offsetY = -1, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 1: ONE DIGITAL0001 + {x = 4, y = 4, width = 79, height = 123, offsetX = -15, offsetY = -1, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 2: ONE DIGITAL0002 + {x = 87, y = 4, width = 67, height = 99, offsetX = -15, offsetY = -13, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 3: ONE DIGITAL0003 + {x = 87, y = 4, width = 67, height = 99, offsetX = -15, offsetY = -13, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 4: ONE DIGITAL0004 + {x = 158, y = 4, width = 64, height = 93, offsetX = -15, offsetY = -16, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 5: ONE DIGITAL0005 + {x = 226, y = 4, width = 94, height = 125, offsetX = 0, offsetY = 0, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 6: TWO DIGITAL0001 + {x = 226, y = 4, width = 94, height = 125, offsetX = 0, offsetY = 0, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 7: TWO DIGITAL0002 + {x = 324, y = 4, width = 70, height = 101, offsetX = -12, offsetY = -12, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 8: TWO DIGITAL0003 + {x = 324, y = 4, width = 70, height = 101, offsetX = -12, offsetY = -12, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 9: TWO DIGITAL0004 + {x = 398, y = 4, width = 64, height = 95, offsetX = -15, offsetY = -15, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 10: TWO DIGITAL0005 + {x = 466, y = 4, width = 95, height = 125, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0, rotated = false}, -- 11: THREE DIGITAL0001 + {x = 466, y = 4, width = 95, height = 125, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0, rotated = false}, -- 12: THREE DIGITAL0002 + {x = 565, y = 4, width = 71, height = 101, offsetX = -12, offsetY = -12, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 13: THREE DIGITAL0003 + {x = 565, y = 4, width = 71, height = 101, offsetX = -12, offsetY = -12, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 14: THREE DIGITAL0004 + {x = 640, y = 4, width = 65, height = 95, offsetX = -15, offsetY = -15, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 15: THREE DIGITAL0005 + {x = 709, y = 4, width = 94, height = 123, offsetX = 0, offsetY = -1, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 16: FOUR DIGITAL0001 + {x = 709, y = 4, width = 94, height = 123, offsetX = 0, offsetY = -1, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 17: FOUR DIGITAL0002 + {x = 807, y = 4, width = 70, height = 99, offsetX = -12, offsetY = -13, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 18: FOUR DIGITAL0003 + {x = 807, y = 4, width = 70, height = 99, offsetX = -12, offsetY = -13, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 19: FOUR DIGITAL0004 + {x = 881, y = 4, width = 64, height = 93, offsetX = -15, offsetY = -16, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 20: FOUR DIGITAL0005 + {x = 4, y = 133, width = 94, height = 125, offsetX = 0, offsetY = 0, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 21: FIVE DIGITAL0001 + {x = 4, y = 133, width = 94, height = 125, offsetX = 0, offsetY = 0, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 22: FIVE DIGITAL0002 + {x = 102, y = 133, width = 70, height = 101, offsetX = -12, offsetY = -12, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 23: FIVE DIGITAL0003 + {x = 102, y = 133, width = 70, height = 101, offsetX = -12, offsetY = -12, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 24: FIVE DIGITAL0004 + {x = 176, y = 133, width = 64, height = 95, offsetX = -15, offsetY = -15, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 25: FIVE DIGITAL0005 + {x = 244, y = 133, width = 94, height = 125, offsetX = 0, offsetY = 0, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 26: SIX DIGITAL0001 + {x = 244, y = 133, width = 94, height = 125, offsetX = 0, offsetY = 0, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 27: SIX DIGITAL0002 + {x = 342, y = 133, width = 70, height = 101, offsetX = -12, offsetY = -12, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 28: SIX DIGITAL0003 + {x = 342, y = 133, width = 70, height = 101, offsetX = -12, offsetY = -12, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 29: SIX DIGITAL0004 + {x = 416, y = 133, width = 64, height = 95, offsetX = -15, offsetY = -15, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 30: SIX DIGITAL0005 + {x = 484, y = 133, width = 94, height = 124, offsetX = 0, offsetY = 0, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 31: SEVEN DIGITAL0001 + {x = 484, y = 133, width = 94, height = 124, offsetX = 0, offsetY = 0, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 32: SEVEN DIGITAL0002 + {x = 582, y = 133, width = 70, height = 100, offsetX = -12, offsetY = -12, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 33: SEVEN DIGITAL0003 + {x = 582, y = 133, width = 70, height = 100, offsetX = -12, offsetY = -12, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 34: SEVEN DIGITAL0004 + {x = 656, y = 133, width = 64, height = 94, offsetX = -15, offsetY = -15, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 35: SEVEN DIGITAL0005 + {x = 724, y = 133, width = 94, height = 125, offsetX = 0, offsetY = 0, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 36: EIGHT DIGITAL0001 + {x = 724, y = 133, width = 94, height = 125, offsetX = 0, offsetY = 0, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 37: EIGHT DIGITAL0002 + {x = 822, y = 133, width = 70, height = 101, offsetX = -12, offsetY = -12, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 38: EIGHT DIGITAL0003 + {x = 822, y = 133, width = 70, height = 101, offsetX = -12, offsetY = -12, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 39: EIGHT DIGITAL0004 + {x = 896, y = 133, width = 64, height = 95, offsetX = -15, offsetY = -15, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 40: EIGHT DIGITAL0005 + {x = 4, y = 262, width = 94, height = 124, offsetX = 0, offsetY = -1, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 41: NINE DIGITAL0001 + {x = 4, y = 262, width = 94, height = 124, offsetX = 0, offsetY = -1, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 42: NINE DIGITAL0002 + {x = 102, y = 262, width = 70, height = 100, offsetX = -12, offsetY = -13, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 43: NINE DIGITAL0003 + {x = 102, y = 262, width = 70, height = 100, offsetX = -12, offsetY = -13, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 44: NINE DIGITAL0004 + {x = 176, y = 262, width = 64, height = 94, offsetX = -15, offsetY = -16, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 45: NINE DIGITAL0005 + {x = 244, y = 262, width = 94, height = 124, offsetX = 0, offsetY = -1, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 46: ZERO DIGITAL0001 + {x = 244, y = 262, width = 94, height = 124, offsetX = 0, offsetY = -1, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 47: ZERO DIGITAL0002 + {x = 342, y = 262, width = 70, height = 100, offsetX = -12, offsetY = -13, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 48: ZERO DIGITAL0003 + {x = 342, y = 262, width = 70, height = 100, offsetX = -12, offsetY = -13, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 49: ZERO DIGITAL0004 + {x = 416, y = 262, width = 64, height = 94, offsetX = -15, offsetY = -16, offsetWidth = 95, offsetHeight = 125, rotated = false}, -- 50: ZERO DIGITAL0005 + {x = 484, y = 262, width = 60, height = 89, offsetX = -15, offsetY = -16, offsetWidth = 95, offsetHeight = 125, rotated = false} -- 51: DISABLED0001 + }, + { + ["DISABLED"] = {start = 51, stop = 51, speed = 24, offsetX = 0, offsetY = 0}, -- 1: DISABLED + ["0"] = {start = 46, stop = 50, speed = 24, offsetX = 0, offsetY = 0}, -- 2: ZERO DIGITAL + ["1"] = {start = 1, stop = 5, speed = 24, offsetX = 0, offsetY = 0}, -- 3: ONE DIGITAL + ["2"] = {start = 6, stop = 10, speed = 24, offsetX = 0, offsetY = 0}, -- 4: TWO DIGITAL + ["3"] = {start = 11, stop = 15, speed = 24, offsetX = 0, offsetY = 0}, -- 5: THREE DIGITAL + ["4"] = {start = 16, stop = 20, speed = 24, offsetX = 0, offsetY = 0}, -- 6: FOUR DIGITAL + ["5"] = {start = 21, stop = 25, speed = 24, offsetX = 0, offsetY = 0}, -- 7: FIVE DIGITAL + ["6"] = {start = 26, stop = 30, speed = 24, offsetX = 0, offsetY = 0}, -- 8: SIX DIGITAL + ["7"] = {start = 31, stop = 35, speed = 24, offsetX = 0, offsetY = 0}, -- 9: SEVEN DIGITAL + ["8"] = {start = 36, stop = 40, speed = 24, offsetX = 0, offsetY = 0}, -- 10: EIGHT DIGITAL + ["9"] = {start = 41, stop = 45, speed = 24, offsetX = 0, offsetY = 0} -- 11: NINE DIGITAL + }, + "idle", + false +) diff --git a/src/love/sprites/resultsScreen/scorePopin.lua b/src/love/sprites/resultsScreen/scorePopin.lua new file mode 100644 index 00000000..4d3c9f15 --- /dev/null +++ b/src/love/sprites/resultsScreen/scorePopin.lua @@ -0,0 +1,41 @@ +return graphics.newSprite( + _resultsCache.scorePopin, + -- Automatically generated from scorePopin.xml + { + {x = 412, y = 824, width = 420, height = 50, offsetX = 0, offsetY = -47, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 1: tally score0000 + {x = 0, y = 727, width = 407, height = 108, offsetX = -157, offsetY = -18, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 2: tally score0001 + {x = 0, y = 614, width = 415, height = 108, offsetX = -153, offsetY = -18, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 3: tally score0002 + {x = 892, y = 791, width = 425, height = 82, offsetX = -148, offsetY = -31, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 4: tally score0003 + {x = 892, y = 704, width = 435, height = 82, offsetX = -143, offsetY = -31, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 5: tally score0004 + {x = 886, y = 614, width = 447, height = 85, offsetX = -137, offsetY = -30, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 6: tally score0005 + {x = 420, y = 614, width = 461, height = 88, offsetX = -130, offsetY = -28, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 7: tally score0006 + {x = 412, y = 727, width = 475, height = 92, offsetX = -123, offsetY = -26, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 8: tally score0007 + {x = 0, y = 513, width = 491, height = 96, offsetX = -115, offsetY = -24, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 9: tally score0008 + {x = 554, y = 511, width = 509, height = 98, offsetX = -106, offsetY = -23, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 10: tally score0009 + {x = 554, y = 403, width = 529, height = 103, offsetX = -96, offsetY = -21, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 11: tally score0010 + {x = 0, y = 400, width = 549, height = 108, offsetX = -86, offsetY = -18, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 12: tally score0011 + {x = 0, y = 281, width = 571, height = 114, offsetX = -75, offsetY = -15, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 13: tally score0012 + {x = 624, y = 280, width = 595, height = 118, offsetX = -63, offsetY = -13, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 14: tally score0013 + {x = 0, y = 150, width = 619, height = 126, offsetX = -51, offsetY = -9, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 15: tally score0014 + {x = 708, y = 143, width = 647, height = 132, offsetX = -37, offsetY = -6, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 16: tally score0015 + {x = 708, y = 0, width = 673, height = 138, offsetX = -24, offsetY = -3, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 17: tally score0016 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 18: tally score0017 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 19: tally score0018 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 20: tally score0019 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 21: tally score0020 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 22: tally score0021 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 23: tally score0022 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 24: tally score0023 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 25: tally score0024 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 26: tally score0025 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 27: tally score0026 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 28: tally score0027 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false}, -- 29: tally score0028 + {x = 0, y = 0, width = 703, height = 145, offsetX = -9, offsetY = 0, offsetWidth = 712, offsetHeight = 145, rotated = false} -- 30: tally score0029 + }, + { + ["idle"] = {start = 1, stop = 30, speed = 24, offsetX = 0, offsetY = 0}, -- 1: idle + }, + "idle", + false +) \ No newline at end of file diff --git a/src/love/sprites/resultsScreen/soundSystem.lua b/src/love/sprites/resultsScreen/soundSystem.lua new file mode 100644 index 00000000..4eb566e0 --- /dev/null +++ b/src/love/sprites/resultsScreen/soundSystem.lua @@ -0,0 +1,76 @@ +return graphics.newSprite( + love.graphics.newImage(graphics.imagePath("resultsScreen/soundSystem")), + -- Automatically generated from soundSystem.xml + { + {x = 0, y = 1393, width = 753, height = 260, offsetX = -63, offsetY = -181, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 1: sound system0000 + {x = 0, y = 1393, width = 753, height = 260, offsetX = -63, offsetY = -181, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 2: sound system0001 + {x = 0, y = 942, width = 690, height = 446, offsetX = -95, offsetY = -324, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 3: sound system0002 + {x = 836, y = 935, width = 873, height = 817, offsetX = -2, offsetY = -146, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 4: sound system0003 + {x = 836, y = 935, width = 873, height = 817, offsetX = -2, offsetY = -146, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 5: sound system0004 + {x = 1714, y = 1670, width = 831, height = 761, offsetX = -23, offsetY = -169, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 6: sound system0005 + {x = 836, y = 0, width = 831, height = 930, offsetX = -23, offsetY = 0, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 7: sound system0006 + {x = 0, y = 0, width = 831, height = 937, offsetX = -23, offsetY = 0, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 8: sound system0007 + {x = 2531, y = 0, width = 833, height = 822, offsetX = -21, offsetY = -115, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 9: sound system0008 + {x = 1672, y = 0, width = 854, height = 830, offsetX = 0, offsetY = -110, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 10: sound system0009 + {x = 1714, y = 835, width = 854, height = 830, offsetX = 0, offsetY = -110, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 11: sound system0010 + {x = 849, y = 2385, width = 845, height = 610, offsetX = -9, offsetY = -327, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 12: sound system0011 + {x = 1699, y = 2436, width = 845, height = 610, offsetX = -9, offsetY = -327, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 13: sound system0012 + {x = 2550, y = 1670, width = 840, height = 629, offsetX = -14, offsetY = -308, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 14: sound system0013 + {x = 2550, y = 2304, width = 840, height = 629, offsetX = -14, offsetY = -308, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 15: sound system0014 + {x = 852, y = 1757, width = 844, height = 623, offsetX = -10, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 16: sound system0015 + {x = 0, y = 2385, width = 844, height = 623, offsetX = -10, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 17: sound system0016 + {x = 2573, y = 827, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 18: sound system0017 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 19: sound system0018 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 20: sound system0019 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 21: sound system0020 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 22: sound system0021 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 23: sound system0022 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 24: sound system0023 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 25: sound system0024 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 26: sound system0025 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 27: sound system0026 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 28: sound system0027 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 29: sound system0028 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 30: sound system0029 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 31: sound system0030 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 32: sound system0031 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 33: sound system0032 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 34: sound system0033 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 35: sound system0034 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 36: sound system0035 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 37: sound system0036 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 38: sound system0037 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 39: sound system0038 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 40: sound system0039 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 41: sound system0040 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 42: sound system0041 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 43: sound system0042 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 44: sound system0043 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 45: sound system0044 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 46: sound system0045 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 47: sound system0046 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 48: sound system0047 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 49: sound system0048 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 50: sound system0049 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 51: sound system0050 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 52: sound system0051 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 53: sound system0052 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 54: sound system0053 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 55: sound system0054 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 56: sound system0055 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 57: sound system0056 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 58: sound system0057 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 59: sound system0058 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 60: sound system0059 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 61: sound system0060 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 62: sound system0061 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 63: sound system0062 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false}, -- 64: sound system0063 + {x = 0, y = 1757, width = 847, height = 623, offsetX = -7, offsetY = -314, offsetWidth = 875, offsetHeight = 963, rotated = false} -- 65: sound system0064 + }, + { + ["idle"] = {start = 1, stop = 65, speed = 24, offsetX = 0, offsetY = 0}, -- 1: idle + }, + "idle", + false +) \ No newline at end of file diff --git a/src/love/sprites/resultsScreen/tallieNumber.lua b/src/love/sprites/resultsScreen/tallieNumber.lua new file mode 100644 index 00000000..2ef6f989 --- /dev/null +++ b/src/love/sprites/resultsScreen/tallieNumber.lua @@ -0,0 +1,30 @@ +return graphics.newSprite( + _resultsCache.tallieNumber, + -- Automatically generated from tallieNumber.xml + { + {x = 78, y = 141, width = 34, height = 37, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0, rotated = false}, -- 1: 0 small0000 + {x = 79, y = 0, width = 32, height = 42, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0, rotated = false}, -- 2: 1 small0000 + {x = 0, y = 48, width = 35, height = 42, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0, rotated = false}, -- 3: 2 small0000 + {x = 40, y = 0, width = 34, height = 43, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0, rotated = false}, -- 4: 3 small0000 + {x = 78, y = 96, width = 33, height = 40, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0, rotated = false}, -- 5: 4 small0000 + {x = 0, y = 0, width = 35, height = 43, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0, rotated = false}, -- 6: 5 small0000 + {x = 0, y = 95, width = 34, height = 43, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0, rotated = false}, -- 7: 6 small0000 + {x = 39, y = 95, width = 34, height = 43, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0, rotated = false}, -- 8: 7 small0000 + {x = 40, y = 48, width = 33, height = 41, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0, rotated = false}, -- 9: 8 small0000 + {x = 78, y = 48, width = 33, height = 43, offsetX = 0, offsetY = 0, offsetWidth = 0, offsetHeight = 0, rotated = false} -- 10: 9 small0000 + }, + { + ["0"] = {start = 1, stop = 1, speed = 0, offsetX = 0, offsetY = 0}, -- 1: 0 small + ["1"] = {start = 2, stop = 2, speed = 0, offsetX = 0, offsetY = 0}, -- 2: 1 small + ["2"] = {start = 3, stop = 3, speed = 0, offsetX = 0, offsetY = 0}, -- 3: 2 small + ["3"] = {start = 4, stop = 4, speed = 0, offsetX = 0, offsetY = 0}, -- 4: 3 small + ["4"] = {start = 5, stop = 5, speed = 0, offsetX = 0, offsetY = 0}, -- 5: 4 small + ["5"] = {start = 6, stop = 6, speed = 0, offsetX = 0, offsetY = 0}, -- 6: 5 small + ["6"] = {start = 7, stop = 7, speed = 0, offsetX = 0, offsetY = 0}, -- 7: 6 small + ["7"] = {start = 8, stop = 8, speed = 0, offsetX = 0, offsetY = 0}, -- 8: 7 small + ["8"] = {start = 9, stop = 9, speed = 0, offsetX = 0, offsetY = 0}, -- 9: 8 small + ["9"] = {start = 10, stop = 10, speed = 0, offsetX = 0, offsetY = 0} -- 10: 9 small + }, + "0", + false +) \ No newline at end of file diff --git a/src/love/stages/school.lua b/src/love/stages/school.lua index 053cb707..f0431b92 100644 --- a/src/love/stages/school.lua +++ b/src/love/stages/school.lua @@ -35,22 +35,29 @@ return { enemy = love.filesystem.load("sprites/characters/senpai.lua")() enemy.colours = {255,170,111} fakeBoyfriend = love.filesystem.load("sprites/characters/boyfriend-pixel-dead.lua")() -- Used for game over - girlfriend.x, girlfriend.y = 30, -50 - boyfriend.x, boyfriend.y = 300, 190 - fakeBoyfriend.x, fakeBoyfriend.y = 300, 190 - enemy.x, enemy.y = -340, -20 + if settings.pixelPerfect then + girlfriend.x, girlfriend.y = 0, 0 + boyfriend.x, boyfriend.y = 50, 30 + fakeBoyfriend.x, fakeBoyfriend.y = 50, 30 + enemy.x, enemy.y = -50, 0 + else + girlfriend.x, girlfriend.y = 30, -50 + boyfriend.x, boyfriend.y = 300, 190 + fakeBoyfriend.x, fakeBoyfriend.y = 300, 190 + enemy.x, enemy.y = -340, -20 + end end, load = function(self) if song == 3 then enemy = love.filesystem.load("sprites/characters/spirit.lua")() stageImages["School"] = love.filesystem.load("sprites/week6/evil-school.lua")() - enemy.x, enemy.y = -340, -20 + enemy.x, enemy.y = -50, 0 elseif song == 2 then enemy = love.filesystem.load("sprites/characters/senpai-angry.lua")() enemy.colours = {255,170,111} stageImages["Freaks"]:animate("dissuaded", true) - enemy.x, enemy.y = -340, -20 + enemy.x, enemy.y = -50, 0 end end, @@ -65,30 +72,57 @@ return { end, draw = function() - love.graphics.push() - love.graphics.translate(camera.x * 0.9, camera.y * 0.9) - - if song ~= 3 then - stageImages["Sky"]:udraw() - end - - stageImages["School"]:udraw() - if song ~= 3 then - stageImages["Street"]:udraw() - stageImages["Trees Back"]:udraw() - - stageImages["Trees"]:udraw() - stageImages["Petals"]:udraw() - stageImages["Freaks"]:udraw() - end - girlfriend:udraw() - love.graphics.pop() - love.graphics.push() - love.graphics.translate(camera.x, camera.y) - - enemy:udraw() - boyfriend:udraw() - love.graphics.pop() + if not settings.pixelPerfect then + love.graphics.push() + love.graphics.translate(camera.x * 0.9, camera.y * 0.9) + + if song ~= 3 then + stageImages["Sky"]:udraw() + end + + stageImages["School"]:udraw() + if song ~= 3 then + stageImages["Street"]:udraw() + stageImages["Trees Back"]:udraw() + + stageImages["Trees"]:udraw() + stageImages["Petals"]:udraw() + stageImages["Freaks"]:udraw() + end + girlfriend:udraw() + love.graphics.pop() + love.graphics.push() + love.graphics.translate(camera.x, camera.y) + + enemy:udraw() + boyfriend:udraw() + love.graphics.pop() + else + love.graphics.push() + love.graphics.translate(camera.x * 0.9, camera.y * 0.9) + + if song ~= 3 then + stageImages["Sky"]:draw() + end + + stageImages["School"]:draw() + if song ~= 3 then + stageImages["Street"]:draw() + stageImages["Trees Back"]:draw() + + stageImages["Trees"]:draw() + stageImages["Petals"]:draw() + stageImages["Freaks"]:draw() + end + girlfriend:draw() + love.graphics.pop() + love.graphics.push() + love.graphics.translate(camera.x, camera.y) + + enemy:draw() + boyfriend:draw() + love.graphics.pop() + end end, leave = function() diff --git a/src/love/states/menu/menuFreeplay.lua b/src/love/states/menu/menuFreeplay.lua index a526c31a..40093043 100644 --- a/src/love/states/menu/menuFreeplay.lua +++ b/src/love/states/menu/menuFreeplay.lua @@ -183,7 +183,7 @@ return { function() songAppend = allWeeks[weekNum].songs[songNum].diffs[songDifficulty][1] isErect = songDifficulty > 3 and allWeeks[weekNum].songs[songNum].diffs[songDifficulty][2] or false - _psychmod = false + importMods.inMod = weekNum > modWeekPlacement storyMode = false diff --git a/src/love/states/menu/menuWeek.lua b/src/love/states/menu/menuWeek.lua index 00fcd110..53f7b5bc 100644 --- a/src/love/states/menu/menuWeek.lua +++ b/src/love/states/menu/menuWeek.lua @@ -124,7 +124,7 @@ return { --week images weekImages = {} - for i = 0, 7 do + for i = 0, modWeekPlacement-1 do table.insert(weekImages, graphics.newImage(graphics.imagePath("menu/week" .. i))) end table.insert(weekImages, graphics.newImage(graphics.imagePath("menu/weekend1"))) @@ -159,7 +159,6 @@ return { end ) end - end, update = function(self, dt) @@ -221,8 +220,8 @@ return { currentWeek = currentWeek - 1 weekNum = weekNum - 1 else - currentWeek = #weekMeta - 1 - weekNum = #weekMeta + currentWeek = modWeekPlacement - 1 + weekNum = modWeekPlacement end if freeplayColours[weekNum] then colourTween() else colourTweenAlt() end menuFunc() @@ -235,7 +234,7 @@ return { arrowRight:animate("arrow", true) end) - if currentWeek ~= #weekMeta - 1 then + if currentWeek ~= modWeekPlacement - 1 then currentWeek = currentWeek + 1 weekNum = weekNum + 1 else diff --git a/src/love/states/menu/results.lua b/src/love/states/menu/results.lua new file mode 100644 index 00000000..5760fd77 --- /dev/null +++ b/src/love/states/menu/results.lua @@ -0,0 +1,480 @@ +local diffToFile = { + ["easy"] = "difEasy", + ["normal"] = "difNormal", + ["hard"] = "difHard", + ["erect"] = "difErect", + ["nightmare"] = "difNightmare" +} +local variationToFile = { + ["NORMAL"] = "GOOD" +} +local diffName, songName, scores, scoreData, artist +_resultsCache = { + --[[ ratingsPopin = love.graphics.newImage(graphics.imagePath("resultsScreen/ratingsPopin")), ]] +} +local resultsVariation = "NORMAL" +local resultsGF, resultsBF, soundSystem +local letterOrder = "AaBbCcDdEeFfGgHhiIJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789:1234567890" +local resultsFont = {quads={}, img=nil} + +local topBarBlack, resultsAnim, ratingsPopin, scorePopin +local textTween + +local curDiff + +local thePosEverX = 0 +local thePosEverY = {0} + +local function printResultsFont(x, y, text, scale) + -- remove anything that isn't in letterOrder. BUT KEEP SPACES + text = text:gsub("[^" .. letterOrder .. " ]", "") + for i = 1, #text do + local char = text:sub(i, i) + local index = letterOrder:find(char) + if index then + love.graphics.draw(resultsFont.img, resultsFont.quads[index], x + (i - 1) * 37 * scale, y, 0, scale, scale) + end + end +end + +local scoreNumbers = { + sprites = {}, + score = 0, + visible = false, + animateNumbers = function(self) + local paddedStr = string.format("%010d", self.score) + -- all 0's before the first non-zero number are replaced with underscores + for i = 1, #paddedStr do + if paddedStr:sub(i, i) == "0" then + paddedStr = paddedStr:sub(1, i - 1) .. "_" .. paddedStr:sub(i + 1) + else + break + end + end + + for i = 1, #paddedStr do + local char = paddedStr:sub(i, i) + if char == "_" then + self.sprites[i]:animate("DISABLED", false) + else + self.sprites[i].visible = true + self.sprites[i]:animate(char, false) + end + end + end +} -- 10 numbers max, AKA 9999999999 max score to be displayed +local tallies = {} +local resultsMusic + +return { + enter = function(self, last, scoreData_) + music:stop() + + soundSystem = love.filesystem.load("sprites/resultsScreen/soundSystem.lua")() + soundSystem.visible = false + soundSystem.x, soundSystem.y = 425, 300 + + resultsGF = love.filesystem.load("sprites/resultsScreen/resultGirlfriend" .. variationToFile[resultsVariation] .. ".lua")() + resultsGF.visible = false + resultsGF.x, resultsGF.y = 760, 500 + + resultsBF = love.filesystem.load("sprites/resultsScreen/resultBoyfriend" .. variationToFile[resultsVariation] .. ".lua")() + resultsBF.visible = false + resultsBF.x, resultsBF.y = 965, 265 + + resultsMusic = love.audio.newSource("music/results/results" .. resultsVariation .. ".ogg", "stream") + resultsMusic:setLooping(true) + resultsMusic:play() + + resultsFont.quads = {} + resultsFont.img = love.graphics.newImage(graphics.imagePath("resultsScreen/tardlingSpritesheet")) + -- 49x62 per quads + for x = 0, resultsFont.img:getWidth() - 49, 49 do + table.insert(resultsFont.quads, love.graphics.newQuad(x, 0, 49, 62, resultsFont.img:getDimensions())) + end + for y = 62, resultsFont.img:getHeight() - 62, 62 do + for x = 0, resultsFont.img:getWidth() - 49, 49 do + table.insert(resultsFont.quads, love.graphics.newQuad(x, y, 49, 62, resultsFont.img:getDimensions())) + end + end + + topBarBlack = graphics.newImage(graphics.imagePath("resultsScreen/topBarBlack")) + topBarBlack.y = -topBarBlack:getHeight()/2 + topBarBlack.x = topBarBlack:getWidth()/2 + Timer.after(0.5, function() + Timer.tween( + 0.4, + topBarBlack, + { + y = topBarBlack:getHeight()/2 + }, + "out-quart" + ) + end) + + resultsAnim = love.filesystem.load("sprites/resultsScreen/resultsAnim.lua")() + resultsAnim.x = 1280/2 - resultsAnim:getFrameWidth()/2 + resultsAnim.y = resultsAnim:getFrameHeight() + 35 + resultsAnim:animate("idle", false) + + _resultsCache.ratingsPopin = love.graphics.newImage(graphics.imagePath("resultsScreen/ratingsPopin")) + _resultsCache.scorePopin = love.graphics.newImage(graphics.imagePath("resultsScreen/scorePopin")) + _resultsCache.tallieNumber = love.graphics.newImage(graphics.imagePath("resultsScreen/tallieNumber")) + _resultsCache.scoreDigitalNumbers = love.graphics.newImage(graphics.imagePath("resultsScreen/score-digital-numbers")) + + ratingsPopin = love.filesystem.load("sprites/resultsScreen/ratingsPopin.lua")() + ratingsPopin.x, ratingsPopin.y = 110, 330 + ratingsPopin.visible = false + + scorePopin = love.filesystem.load("sprites/resultsScreen/scorePopin.lua")() + scorePopin.x, scorePopin.y = 180, 590 + scorePopin.visible = false + + curDiff = graphics.newImage(graphics.imagePath("resultsScreen/" .. diffToFile[scoreData_.diff])) + curDiff.x, curDiff.y = 570 + curDiff:getWidth()/2, 160 + thePosEverX = curDiff.x + thePosEverY = {curDiff.y} + + scoreData = scoreData_ + diffName = scoreData.diff + songName = scoreData.song + scores = scoreData.scores + artist = scoreData.artist + + scores.totalNotes = scores.sickCount + scores.goodCount + scores.badCount + scores.shitCount + scores.missedCount + + -- Tallies (Dogshit code ahead) + for i = 1, 7 do + tallies[i] = {sprites={},colour={1, 1, 1},num=0,curNum=0,displayedNums=1,storedX={},flippedSprites={},visibleSprites={},visible=false} + end + + for i = 1, #tostring(scores.totalNotes) do + table.insert(tallies[1].sprites, love.filesystem.load("sprites/resultsScreen/tallieNumber.lua")()) + tallies[1].sprites[i]:animate("0", false) + tallies[1].sprites[i].x = 400 + (i - 1) * 38 + tallies[1].sprites[i].y = 155 + tallies[1].num = scores.totalNotes + tallies[1].storedX[i] = tallies[1].sprites[i].x + + tallies[1].colour = {1, 1, 1} + end + newStoredX = {} + for i = #tallies[1].sprites, 1, -1 do + table.insert(newStoredX, tallies[1].storedX[i]) + end + tallies[1].storedX = newStoredX + for i = 2, #tallies[1].sprites do + tallies[1].sprites[i].visible = false + end + + for i = 1, #tostring(scores.maxCombo) do + table.insert(tallies[2].sprites, love.filesystem.load("sprites/resultsScreen/tallieNumber.lua")()) + tallies[2].sprites[i]:animate("0", false) + tallies[2].sprites[i].x = 400 + (i - 1) * 38 + tallies[2].sprites[i].y = 225 + tallies[2].num = scores.maxCombo + tallies[2].storedX[i] = tallies[2].sprites[i].x + + tallies[2].colour = {1, 1, 1} + end + newStoredX = {} + for i = #tallies[2].sprites, 1, -1 do + table.insert(newStoredX, tallies[2].storedX[i]) + end + tallies[2].storedX = newStoredX + for i = 2, #tallies[2].sprites do + tallies[2].sprites[i].visible = false + end + + for i = 1, #tostring(scores.sickCount) do + table.insert(tallies[3].sprites, love.filesystem.load("sprites/resultsScreen/tallieNumber.lua")()) + tallies[3].sprites[i]:animate("0", false) + tallies[3].sprites[i].x = 255 + (i - 1) * 38 + tallies[3].sprites[i].y = 285 + tallies[3].num = scores.sickCount + tallies[3].storedX[i] = tallies[3].sprites[i].x + + tallies[3].colour = {137/255, 229/255, 158/255} + end + local newStoredX = {} + for i = #tallies[3].sprites, 1, -1 do + table.insert(newStoredX, tallies[3].storedX[i]) + end + tallies[3].storedX = newStoredX + for i = 2, #tallies[3].sprites do + tallies[3].sprites[i].visible = false + end + + for i = 1, #tostring(scores.goodCount) do + table.insert(tallies[4].sprites, love.filesystem.load("sprites/resultsScreen/tallieNumber.lua")()) + tallies[4].sprites[i]:animate("0", false) + tallies[4].sprites[i].x = 235 + (i - 1) * 38 + tallies[4].sprites[i].y = 340 + tallies[4].num = scores.goodCount + tallies[4].storedX[i] = tallies[4].sprites[i].x + + tallies[4].colour = {137/255, 201/255, 229/255} + end + newStoredX = {} + for i = #tallies[4].sprites, 1, -1 do + table.insert(newStoredX, tallies[4].storedX[i]) + end + tallies[4].storedX = newStoredX + for i = 2, #tallies[4].sprites do + tallies[4].sprites[i].visible = false + end + + for i = 1, #tostring(scores.badCount) do + table.insert(tallies[5].sprites, love.filesystem.load("sprites/resultsScreen/tallieNumber.lua")()) + tallies[5].sprites[i]:animate("0", false) + tallies[5].sprites[i].x = 210 + (i - 1) * 38 + tallies[5].sprites[i].y = 390 + tallies[5].num = scores.badCount + tallies[5].storedX[i] = tallies[5].sprites[i].x + + tallies[5].colour = {230/255, 207/255, 138/255} + end + newStoredX = {} + for i = #tallies[5].sprites, 1, -1 do + table.insert(newStoredX, tallies[5].storedX[i]) + end + tallies[5].storedX = newStoredX + for i = 2, #tallies[5].sprites do + tallies[5].sprites[i].visible = false + end + + for i = 1, #tostring(scores.shitCount) do + table.insert(tallies[6].sprites, love.filesystem.load("sprites/resultsScreen/tallieNumber.lua")()) + tallies[6].sprites[i]:animate("0", false) + tallies[6].sprites[i].x = 235 + (i - 1) * 38 + tallies[6].sprites[i].y = 440 + tallies[6].num = scores.shitCount + tallies[6].storedX[i] = tallies[6].sprites[i].x + + tallies[6].colour = {230/255, 140/255, 138/255} + end + newStoredX = {} + for i = #tallies[4].sprites, 1, -1 do + table.insert(newStoredX, tallies[6].storedX[i]) + end + tallies[6].storedX = newStoredX + for i = 2, #tallies[6].sprites do + tallies[6].sprites[i].visible = false + end + + for i = 1, #tostring(scores.missedCount) do + table.insert(tallies[7].sprites, love.filesystem.load("sprites/resultsScreen/tallieNumber.lua")()) + tallies[7].sprites[i]:animate("0", false) + tallies[7].sprites[i].x = 265 + (i - 1) * 38 + tallies[7].sprites[i].y = 500 + tallies[7].num = scores.missedCount + tallies[7].storedX[i] = tallies[7].sprites[i].x + + tallies[7].colour = {198/255, 138/255, 230/255} + end + newStoredX = {} + for i = #tallies[7].sprites, 1, -1 do + table.insert(newStoredX, tallies[7].storedX[i]) + end + tallies[7].storedX = newStoredX + for i = 2, #tallies[7].sprites do + tallies[7].sprites[i].visible = false + end + + scoreNumbers.score = scores.score + scoreNumbers.visible = false + scoreNumbers.sprites = {} + local paddedScoreStr = string.format("%010d", scores.score) + for i = 1, #paddedScoreStr do + local char = paddedScoreStr:sub(i, i) + local num = tonumber(char) + if num then + table.insert(scoreNumbers.sprites, love.filesystem.load("sprites/resultsScreen/scoreDigitalNumbers.lua")()) + scoreNumbers.sprites[i]:animate("DISABLED", false) + scoreNumbers.sprites[i].x = 130 + (i - 1) * (scoreNumbers.sprites[i]:getFrameWidth()-15) + scoreNumbers.sprites[i].y = 670 + end + end + + Timer.after(0.5, function() + ratingsPopin:animate("idle", false, function() + scorePopin.visible = true + scorePopin:animate("idle", false, function() + scoreNumbers.visible = true + scoreNumbers:animateNumbers() + end) + end) + ratingsPopin.visible = true + end) + + Timer.after( + 0.4, function() + soundSystem:animate("idle") + soundSystem.visible = true + end + ) + + Timer.after( + (1/24) * 22, function() + resultsGF:animate("idle", false, function() + resultsGF:animate("idle", true, nil, false, 10, true) + end) + --[[ resultsGF:animate("idle", true, nil, false, 10) ]] + resultsGF.visible = true + end + ) + + for i = 1, #tallies do + Timer.after( + 0.3 * i + 0.55, function() + tallies[i].visible = true + Timer.tween(0.5, tallies[i], { + curNum = tallies[i].num + }, "out-quart", function() + tallies[i].curNum = tallies[i].num + end) + end + ) + end + + resultsBF.visible = true + resultsBF:animate("idle", false, function() + resultsBF:animate("idle", true, nil, false, 15, true) + end) + end, + + update = function(self, dt) + resultsGF:update(dt) + resultsBF:update(dt) + soundSystem:update(dt) + + resultsAnim:update(dt) + + ratingsPopin:update(dt) + scorePopin:update(dt) + + if thePosEverY[1] == 160 and not textTween then + thePosEverX = thePosEverX - 5 * dt * 100 + + curDiff.y = curDiff.y + 5.5 * dt * 7 + -- get y based on x + curDiff.x = thePosEverX + else + if not textTween then + curDiff.x = 570 + curDiff:getWidth()/2 + curDiff.y = 160 - 300 + textTween = Timer.after(0.5, function() + textTween = Timer.tween( + 1, thePosEverY, {160}, "out-quart", + function() + textTween = Timer.after(0.25, function() textTween = nil end) + thePosEverY[1] = 160 + end + ) + end) + end + curDiff.y = thePosEverY[1] + end + + if thePosEverX < -1500 then + thePosEverX = 570 + curDiff:getWidth()/2 + curDiff.y = 160 - 300 + thePosEverY[1] = 160 - 300 + end + + -- update tallies for rating counts making the needed digits visible when needed + for i = 1, #tallies do + if math.floor(tallies[i].curNum) > tallies[i].num then + tallies[i].curNum = tallies[i].num + end + local flipped = tostring(math.floor(tallies[i].curNum)):reverse() + for j = 1, #flipped do + local num = tonumber(flipped:sub(j, j)) + if num then + tallies[i].sprites[j]:animate(tostring(num), false) + if j > 1 and num > 0 and not tallies[i].sprites[j].visible then + tallies[i].sprites[j].visible = true + tallies[i].sprites[j].x = tallies[i].storedX[j-1] - 38 + for k = 1, j-1 do + tallies[i].sprites[k].x = tallies[i].storedX[k] + end + end + end + end + end + + for i = 1, #scoreNumbers.sprites do + scoreNumbers.sprites[i]:update(dt) + end + end, + + draw = function(self) + love.graphics.push() + graphics.setColor(255/255, 204/255, 92/255) + love.graphics.rectangle("fill", 0, 0, 1280, 720) + graphics.setColor(1, 1, 1) + curDiff:draw() + love.graphics.push() + love.graphics.translate(1280/2, 720/2) + love.graphics.rotate(-0.08) + love.graphics.translate(-1280/2, -720/2) + local formattedStr + if artist ~= nil then + formattedStr = string.format("%s by %s", songName, artist) + else + formattedStr = songName + end + printResultsFont(thePosEverX + curDiff:getWidth()/2+25, thePosEverY[1] - curDiff:getHeight()/4, formattedStr, 1) + + graphics.setColor(255/255, 204/255, 92/255) + love.graphics.rectangle("fill", 0, 0, 1280/2-80, 720) -- Rectangle because Nintendo switch doesn't support Sprite Clipping + graphics.setColor(1, 1, 1) + love.graphics.pop() + + resultsGF:draw() + resultsBF:draw() + soundSystem:draw() + + topBarBlack:draw() + resultsAnim:draw() + + ratingsPopin:draw() + scorePopin:draw() + + for i = 1, #tallies do + for j = 1, #tallies[i].sprites do + if not tallies[i].visible then + break + end + graphics.setColor(tallies[i].colour[1], tallies[i].colour[2], tallies[i].colour[3]) + tallies[i].sprites[j]:draw() + graphics.setColor(1, 1, 1) + end + end + + for i = 1, #scoreNumbers.sprites do + if not scoreNumbers.visible then + break + end + scoreNumbers.sprites[i]:draw() + end + love.graphics.pop() + end, + + leave = function(self) + tallies = {} + scoreNumbers = {} + resultsGF = nil + resultsBF = nil + soundSystem = nil + ratingsPopin = nil + scorePopin = nil + resultsAnim = nil + topBarBlack = nil + resultsFont = nil + curDiff = nil + thePosEverX = 0 + thePosEverY = {0} + textTween = nil + end +} \ No newline at end of file diff --git a/src/love/states/weeks.lua b/src/love/states/weeks.lua index bd96f655..f4c4292a 100644 --- a/src/love/states/weeks.lua +++ b/src/love/states/weeks.lua @@ -40,8 +40,31 @@ local countNum = 4 -- Used for countdown local healthLerp +local allStates = { + sickCounter = 0, + goodCounter = 0, + badCounter = 0, + shitCounter = 0, + missCounter = 0, + maxCombo = 0, + score = 0 +} + +local sickCounter, goodCounter, badCounter, shitCounter, missCounter, maxCombo, score = 0, 0, 0, 0, 0, 0, 0 + return { enter = function(self, option) + allStates = { + sickCounter = 0, + goodCounter = 0, + badCounter = 0, + shitCounter = 0, + missCounter = 0, + maxCombo = 0, + score = 0 + } + + sickCounter, goodCounter, badCounter, shitCounter, missCounter, maxCombo, score = 0, 0, 0, 0, 0, 0, 0 playMenuMusic = false beatHandler.reset() option = option or "normal" @@ -239,7 +262,7 @@ return { end, saveData = function(self) - if not DO_SAVE_DATA then return end + if not CONSTANTS.OPTIONS.DO_SAVE_DATA then return end local diff = difficulty ~= "" and difficulty or "normal" if savedata[weekNum] then if savedata[weekNum][song] then @@ -278,6 +301,14 @@ return { --if not (countingDown or graphics.isFading()) and not (inst and inst:isPlaying()) and not paused and not inCutscene then -- use inst, if inst doesn't exist, use voices, else dont use anything if not (countingDown or graphics.isFading()) and not ((inst and inst:isPlaying()) or (voicesBF and voicesBF:isPlaying())) and not paused and not inCutscene then + allStates.sickCounter = allStates.sickCounter + sickCounter + allStates.goodCounter = allStates.goodCounter + goodCounter + allStates.badCounter = allStates.badCounter + badCounter + allStates.shitCounter = allStates.shitCounter + shitCounter + allStates.missCounter = allStates.missCounter + misses + if maxCombo > allStates.maxCombo then allStates.maxCombo = maxCombo end + allStates.score = allStates.score + score + if storyMode and song < #weekMeta[weekNum][2] then self:saveData() song = song + 1 @@ -291,7 +322,20 @@ return { graphics:fadeOutWipe( 0.7, function() - Gamestate.switch(menu) + Gamestate.switch(resultsScreen, { + diff = string.lower(CURDIFF), + song = not storyMode and SONGNAME or weekDesc[weekNum], + artist = not storyMode and ARTIST or nil, + scores = { + sickCount = allStates.sickCounter, + goodCount = allStates.goodCounter, + badCount = allStates.badCounter, + shitCount = allStates.shitCounter, + missedCount = allStates.missCounter, + maxCombo = allStates.maxCombo, + score = allStates.score + } + }) status.setLoading(false) end @@ -300,7 +344,7 @@ return { end end, - initUI = function(self, option) + initUI = function(self) events = {} songEvents = {} enemyNotes = {} @@ -343,20 +387,38 @@ return { } for i = 1, 4 do - if settings.middleScroll then - boyfriendArrows[i].x = -410 + 165 * i - -- ew stuff - enemyArrows[1].x = -925 + 165 * 1 - enemyArrows[2].x = -925 + 165 * 2 - enemyArrows[3].x = 100 + 165 * 3 - enemyArrows[4].x = 100 + 165 * 4 + if pixel and settings.pixelPerfect then + if not settings.middleScroll then + boyfriendArrows[i].x = -20 + 20 * i + + -- ew stuff + enemyArrows[1].x = -125 + 20 * 1 + enemyArrows[2].x = -125 + 20 * 2 + enemyArrows[3].x = 25 + 20 * 3 + enemyArrows[4].x = 25 + 20 * 4 + else + enemyArrows[i].x = -125 + 20 * i + boyfriendArrows[i].x = 25 + 20 * i + end + + enemyArrows[i].y = -55 + boyfriendArrows[i].y = -55 else - enemyArrows[i].x = -925 + 165 * i - boyfriendArrows[i].x = 100 + 165 * i - end + if settings.middleScroll then + boyfriendArrows[i].x = -410 + 165 * i + -- ew stuff + enemyArrows[1].x = -925 + 165 * 1 + enemyArrows[2].x = -925 + 165 * 2 + enemyArrows[3].x = 100 + 165 * 3 + enemyArrows[4].x = 100 + 165 * 4 + else + enemyArrows[i].x = -925 + 165 * i + boyfriendArrows[i].x = 100 + 165 * i + end - enemyArrows[i].y = -400 - boyfriendArrows[i].y = -400 + enemyArrows[i].y = -400 + boyfriendArrows[i].y = -400 + end boyfriendArrows[i]:animate(CONSTANTS.WEEKS.NOTE_LIST[i]) enemyArrows[i]:animate(CONSTANTS.WEEKS.NOTE_LIST[i]) @@ -382,6 +444,10 @@ return { local metadata = json.decode(love.filesystem.read(metadata)) + SONGNAME = metadata.songName + CURDIFF = difficulty + ARTIST = metadata.artist + local events = {} for _, timeChange in ipairs(metadata.timeChanges) do @@ -892,6 +958,7 @@ return { if boyfriendNote[1]:getAnimName() ~= "hold" and boyfriendNote[1]:getAnimName() ~= "end" then noteCounter = noteCounter + 1 combo = combo + 1 + if combo > maxCombo then maxCombo = combo end numbers[1]:animate(tostring(math.floor(combo / 100 % 10)), false) numbers[2]:animate(tostring(math.floor(combo / 10 % 10)), false) @@ -954,6 +1021,15 @@ return { ratingAnim = self:judgeNote(notePos) score = score + self:scoreNote(notePos) + if ratingAnim == "sick" then + sickCounter = sickCounter + 1 + elseif ratingAnim == "good" then + goodCounter = goodCounter + 1 + elseif ratingAnim == "bad" then + badCounter = badCounter + 1 + elseif ratingAnim == "shit" then + shitCounter = shitCounter + 1 + end if ratingAnim == "sick" then NoteSplash:new( @@ -967,6 +1043,7 @@ return { end combo = combo + 1 + if combo > maxCombo then maxCombo = combo end noteCounter = noteCounter + 1 numbers[1]:animate(tostring(math.floor(combo / 100 % 10)), false) @@ -1095,7 +1172,7 @@ return { --love.graphics.origin() love.graphics.translate(0, -35) graphics.setColor(1, 1, 1, ratingVisibility[1]) - if pixel then + if pixel and not settings.pixelPerfect then love.graphics.translate(-16, 0) rating:udraw(5.25, 5.25) for i = 1, 3 do @@ -1164,24 +1241,24 @@ return { else graphics.setColor(1, 1, 1, enemyArrows[i].alpha) end - if not pixel then - enemyArrows[i]:draw() - else + if pixel and not settings.pixelPerfect then if not settings.downscroll then enemyArrows[i]:udraw(8, 8) else enemyArrows[i]:udraw(8, -8) end + else + enemyArrows[i]:draw() end graphics.setColor(1, 1, 1) - if not pixel then - boyfriendArrows[i]:draw() - else + if pixel and not settings.pixelPerfect then if not settings.downscroll then boyfriendArrows[i]:udraw(8, 8) else boyfriendArrows[i]:udraw(8, -8) end + else + boyfriendArrows[i]:draw() end graphics.setColor(1, 1, 1) @@ -1196,14 +1273,14 @@ return { graphics.setColor(1, 1, 1, 1 * enemyNotes[i][j].alpha) end - if not pixel then - enemyNotes[i][j]:draw() - else + if pixel and not settings.pixelPerfect then if not settings.downscroll then enemyNotes[i][j]:udraw(8, 8) else enemyNotes[i][j]:udraw(8, -8) end + else + enemyNotes[i][j]:draw() end graphics.setColor(1, 1, 1) end @@ -1215,14 +1292,14 @@ return { local animName = boyfriendNotes[i][j]:getAnimName() graphics.setColor(1, 1, 1, math.min(1, (500 + (boyfriendNotes[i][j].y)) / 75) * boyfriendNotes[i][j].alpha) - if not pixel then - boyfriendNotes[i][j]:draw() - else + if pixel and not settings.pixelPerfect then if not settings.downscroll then boyfriendNotes[i][j]:udraw(8, 8) else boyfriendNotes[i][j]:udraw(8, -8) end + else + boyfriendNotes[i][j]:draw() end end end @@ -1232,24 +1309,24 @@ return { end HoldCover:draw() - if not pixel then - NoteSplash:draw() - else + if pixel and not settings.pixelPerfect then NoteSplash:udraw(8, 8) + else + NoteSplash:draw() end graphics.setColor(1, 1, 1, countdownFade[1]) if not settings.downscroll then - if not pixel or pixel then - countdown:draw() - else + if pixel and not settings.pixelPerfect then countdown:udraw(6.75, 6.75) + else + countdown:draw() end else - if not pixel or pixel then - countdown:udraw(1, -1) - else + if pixel and not settings.pixelPerfect then countdown:udraw(6.75, -6.75) + else + countdown:udraw(1, -1) end end graphics.setColor(1, 1, 1) @@ -1297,7 +1374,7 @@ return { graphics.setColor(0, 1, 0) love.graphics.rectangle("fill", 500, 350+downscrollOffset, -healthLerp * 500, 25) graphics.setColor(0, 0, 0) - love.graphics.setLineWidth(10) + love.graphics.setLineWidth(8) love.graphics.rectangle("line", -500, 350+downscrollOffset, 1000, 25) love.graphics.setLineWidth(1) graphics.setColor(1, 1, 1) @@ -1329,5 +1406,6 @@ return { Timer.clear() fakeBoyfriend = nil + importMods.inMod = false end } diff --git a/src/love/substates/options/gameplay.lua b/src/love/substates/options/gameplay.lua index 27baed0d..01f8a0df 100644 --- a/src/love/substates/options/gameplay.lua +++ b/src/love/substates/options/gameplay.lua @@ -39,6 +39,15 @@ function gameplay:enter() ) ) + --[[ self:addOption( + Option:new( + "Pixel Perfect", + "If checked, pixel weeks will be pixel perfect. Mod developers may force-disable this option", + settings.pixelPerfect, + "bool" + ) + ) ]] + local o = Option:new( "Scrollspeed", "How fast the notes scroll, 1 is the default song speed", @@ -75,8 +84,9 @@ function gameplay:leave() settings.middleScroll = self.optionsArray[2]:getValue() settings.ghostTapping = self.optionsArray[3]:getValue() settings.botPlay = self.optionsArray[4]:getValue() - settings.customScrollSpeed = self.optionsArray[5]:getValue() - settings.scrollUnderlayTrans = self.optionsArray[6]:getValue() + --[[ settings.pixelPerfect = self.optionsArray[5]:getValue() ]] + settings.customScrollSpeed = self.optionsArray[6]:getValue() + settings.scrollUnderlayTrans = self.optionsArray[7]:getValue() self.super.leave(self) diff --git a/src/love/substates/options/graphics.lua b/src/love/substates/options/graphics.lua index a328a533..4d2732e9 100644 --- a/src/love/substates/options/graphics.lua +++ b/src/love/substates/options/graphics.lua @@ -24,7 +24,6 @@ end function m_graphics:leave() settings.fpsCap = self.optionsArray[1]:getValue() - love.setFpsCap(settings.fpsCap) settings.hardwareCompression = self.optionsArray[2]:getValue() self.super.leave(self) diff --git a/src/love/weeks/week6.lua b/src/love/weeks/week6.lua index fd589dd1..d2463aff 100644 --- a/src/love/weeks/week6.lua +++ b/src/love/weeks/week6.lua @@ -40,6 +40,10 @@ return { self:load() musicPos = 0 + if settings.pixelPerfect then + status.setNoResize(true) + canvas = love.graphics.newCanvas(256, 144) + end end, load = function(self) @@ -146,6 +150,9 @@ return { end, update = function(self, dt) + if settings.pixelPerfect then + graphics.screenBase(256, 144) + end weeks:update(dt) if song ~= 3 then stages["school"]:update(dt) @@ -172,6 +179,12 @@ return { end, draw = function(self) + local canvasScale = 1 + if settings.pixelPerfect then + graphics.screenBase(256, 144) + love.graphics.setCanvas(canvas) + love.graphics.clear() + end love.graphics.push() love.graphics.translate(graphics.getWidth()/2, graphics.getHeight()/2) love.graphics.scale(camera.zoom, camera.zoom) @@ -188,6 +201,14 @@ return { else weeks:drawUI() end + if settings.pixelPerfect then + love.graphics.setCanvas() + graphics.screenBase(love.graphics.getWidth(), love.graphics.getHeight()) + + canvasScale = math.min(math.floor(graphics.getWidth() / 256), math.floor(graphics.getHeight() / 144)) + if canvasScale < 1 then canvasScale = math.min(graphics.getWidth() / 256, graphics.getHeight() / 144) end + love.graphics.draw(canvas, graphics.getWidth() / 2, graphics.getHeight() / 2, nil, canvasScale, canvasScale, 128, 72) + end end, leave = function(self) @@ -200,6 +221,7 @@ return { weeks:leave() stages["school"]:leave() stages["evilSchool"]:leave() + status.setNoResize(false) love.graphics.setDefaultFilter("linear") end