This commit is contained in:
entar 2025-07-07 20:41:30 +07:00
parent df3d876cf7
commit a2605de0c8
31 changed files with 1041 additions and 882 deletions

View File

@ -183,8 +183,8 @@
"no_antialiasing": false,
"image": "sprites/characters/bfCar",
"position": [
0,
600
100,
580
],
"healthicon": "bf",
"flip_x": false,

View File

@ -115,7 +115,7 @@
"image": "sprites/characters/bfChristmas",
"position": [
0,
350
700
],
"healthicon": "bf",
"flip_x": false,

View File

@ -79,8 +79,8 @@
"no_antialiasing": false,
"image": "sprites/characters/Lookalike_Assets",
"position": [
130,
280
260,
560
],
"healthicon": "dad",
"flip_x": false,

View File

@ -0,0 +1,188 @@
{
"animations": [
{
"loop": false,
"cameraOffset": [
-30,
0
],
"offsets": [
111,
30
],
"anim": "singLEFT",
"fps": 24,
"name": "ElLeftBIG",
"indices": []
},
{
"loop": false,
"cameraOffset": [
0,
-30
],
"offsets": [
166,
275
],
"anim": "singUP",
"fps": 24,
"name": "ElUpBIG",
"indices": []
},
{
"loop": false,
"cameraOffset": [
30,
0
],
"offsets": [
-10,
27
],
"anim": "singRIGHT",
"fps": 24,
"name": "ElRightBIG",
"indices": []
},
{
"loop": false,
"cameraOffset": [
0,
0
],
"offsets": [
0,
0
],
"anim": "idle",
"fps": 24,
"name": "ElIdleBIG",
"indices": []
},
{
"offsets": [
-60,
-480
],
"cameraOffset": [
0,
0
],
"loop": false,
"fps": 24,
"anim": "idle-alt",
"indices": [],
"name": "ElIdleSMALL"
},
{
"offsets": [
-2,
-457
],
"cameraOffset": [
-30,
0
],
"loop": false,
"fps": 24,
"anim": "singLEFT-alt",
"indices": [],
"name": "ElLeftSMALL"
},
{
"offsets": [
-50,
-526
],
"cameraOffset": [
0,
30
],
"loop": false,
"fps": 24,
"anim": "singDOWN-alt",
"indices": [],
"name": "ElDownSMALL"
},
{
"offsets": [
-80,
-429
],
"cameraOffset": [
0,
-30
],
"loop": false,
"fps": 24,
"anim": "singUP-alt",
"indices": [],
"name": "ElUpSMALL"
},
{
"loop": false,
"cameraOffset": [
30,
0
],
"offsets": [
-66,
-476
],
"anim": "singRIGHT-alt",
"fps": 24,
"name": "ElRightSMALL",
"indices": []
},
{
"offsets": [
20,
-129
],
"cameraOffset": [
0,
30
],
"loop": false,
"fps": 24,
"anim": "singDOWN",
"indices": [
0,
1,
2,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"name": "ElDownBIG"
}
],
"no_antialiasing": false,
"image": "sprites/characters/Lookalike_Assets",
"position": [
100,
50
],
"healthicon": "dad",
"flip_x": false,
"healthbar_colors": [
175,
102,
206
],
"camera_position": [
-60,
-150
],
"sing_duration": 6.1,
"scale": 1
}

View File

@ -1,188 +1,188 @@
{
"animations": [
{
"loop": false,
"cameraOffset": [
-30,
0
],
"offsets": [
111,
30
],
"anim": "singLEFT",
"fps": 24,
"name": "ElLeftBIG",
"indices": []
},
{
"loop": false,
"cameraOffset": [
0,
-30
],
"offsets": [
166,
275
],
"anim": "singUP",
"fps": 24,
"name": "ElUpBIG",
"indices": []
},
{
"loop": false,
"cameraOffset": [
30,
0
],
"offsets": [
-10,
27
],
"anim": "singRIGHT",
"fps": 24,
"name": "ElRightBIG",
"indices": []
},
{
"loop": false,
"cameraOffset": [
0,
0
],
"offsets": [
0,
0
],
"anim": "idle",
"fps": 24,
"name": "ElIdleBIG",
"indices": []
},
{
"offsets": [
-60,
-480
],
"cameraOffset": [
0,
0
],
"loop": false,
"fps": 24,
"anim": "idle-alt",
"indices": [],
"name": "ElIdleSMALL"
},
{
"offsets": [
-2,
-457
],
"cameraOffset": [
-30,
0
],
"loop": false,
"fps": 24,
"anim": "singLEFT-alt",
"indices": [],
"name": "ElLeftSMALL"
},
{
"offsets": [
-50,
-526
],
"cameraOffset": [
0,
30
],
"loop": false,
"fps": 24,
"anim": "singDOWN-alt",
"indices": [],
"name": "ElDownSMALL"
},
{
"offsets": [
-80,
-429
],
"cameraOffset": [
0,
-30
],
"loop": false,
"fps": 24,
"anim": "singUP-alt",
"indices": [],
"name": "ElUpSMALL"
},
{
"loop": false,
"cameraOffset": [
30,
0
],
"offsets": [
-66,
-476
],
"anim": "singRIGHT-alt",
"fps": 24,
"name": "ElRightSMALL",
"indices": []
},
{
"offsets": [
20,
-129
],
"cameraOffset": [
0,
30
],
"loop": false,
"fps": 24,
"anim": "singDOWN",
"indices": [
0,
1,
2,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"name": "ElDownBIG"
}
],
"no_antialiasing": false,
"image": "sprites/characters/Lookalike_Assets",
"position": [
100,
50
],
"healthicon": "dad",
"flip_x": false,
"healthbar_colors": [
175,
102,
206
],
"camera_position": [
-60,
-150
],
"sing_duration": 6.1,
"scale": 1
{
"animations": [
{
"loop": false,
"cameraOffset": [
-30,
0
],
"offsets": [
111,
30
],
"anim": "singLEFT",
"fps": 24,
"name": "ElLeftBIG",
"indices": []
},
{
"loop": false,
"cameraOffset": [
0,
-30
],
"offsets": [
166,
275
],
"anim": "singUP",
"fps": 24,
"name": "ElUpBIG",
"indices": []
},
{
"loop": false,
"cameraOffset": [
30,
0
],
"offsets": [
-10,
27
],
"anim": "singRIGHT",
"fps": 24,
"name": "ElRightBIG",
"indices": []
},
{
"loop": false,
"cameraOffset": [
0,
0
],
"offsets": [
0,
0
],
"anim": "idle",
"fps": 24,
"name": "ElIdleBIG",
"indices": []
},
{
"offsets": [
-60,
-480
],
"cameraOffset": [
0,
0
],
"loop": false,
"fps": 24,
"anim": "idle-alt",
"indices": [],
"name": "ElIdleSMALL"
},
{
"offsets": [
-2,
-457
],
"cameraOffset": [
-30,
0
],
"loop": false,
"fps": 24,
"anim": "singLEFT-alt",
"indices": [],
"name": "ElLeftSMALL"
},
{
"offsets": [
-50,
-526
],
"cameraOffset": [
0,
30
],
"loop": false,
"fps": 24,
"anim": "singDOWN-alt",
"indices": [],
"name": "ElDownSMALL"
},
{
"offsets": [
-80,
-429
],
"cameraOffset": [
0,
-30
],
"loop": false,
"fps": 24,
"anim": "singUP-alt",
"indices": [],
"name": "ElUpSMALL"
},
{
"loop": false,
"cameraOffset": [
30,
0
],
"offsets": [
-66,
-476
],
"anim": "singRIGHT-alt",
"fps": 24,
"name": "ElRightSMALL",
"indices": []
},
{
"offsets": [
20,
-129
],
"cameraOffset": [
0,
30
],
"loop": false,
"fps": 24,
"anim": "singDOWN",
"indices": [
0,
1,
2,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14
],
"name": "ElDownBIG"
}
],
"no_antialiasing": false,
"image": "sprites/characters/Lookalike_Assets",
"position": [
200,
100
],
"healthicon": "dad",
"flip_x": false,
"healthbar_colors": [
175,
102,
206
],
"camera_position": [
-60,
-150
],
"sing_duration": 6.1,
"scale": 1
}

View File

@ -70,8 +70,8 @@
"no_antialiasing": false,
"image": "sprites/characters/gfCar",
"position": [
0,
160
300,
360
],
"healthicon": "gf",
"flip_x": false,

View File

@ -248,7 +248,7 @@
"image": "sprites/characters/mom_dad_christmas_assets",
"position": [
-200,
160
320
],
"healthicon": "parents",
"flip_x": false,

View File

@ -76,13 +76,13 @@
"vocals_file": "",
"no_antialiasing": false,
"image": "sprites/characters/picoChristmas",
"position": [0, 300],
"position": [0, 600],
"healthicon": "pico",
"flip_x": false,
"healthbar_colors": [183, 216, 85],
"camera_position": [
-400,
125
250
],
"sing_duration": 4,
"scale": 1,

View File

@ -149,7 +149,7 @@
"image": "sprites/characters/Pico_Playable",
"position": [
0,
300
600
],
"healthicon": "pico",
"flip_x": false,

View File

@ -247,7 +247,7 @@
"image": "sprites/characters/picoSG",
"position": [
0,
300
600
],
"healthicon": "pico",
"flip_x": true,
@ -257,8 +257,8 @@
85
],
"camera_position": [
70,
-30
140,
-60
],
"sing_duration": 4,
"scale": 1

View File

@ -149,7 +149,7 @@
"image": "sprites/characters/Pico",
"position": [
0,
300
600
],
"healthicon": "pico",
"flip_x": true,

BIN
images/credits/aman.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
images/credits/entar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

@ -96,7 +96,7 @@ function module.preload(name)
local image = parsed.image..".png"
local sheet = parsed.image..".json"
render.preload(image, sheet)
render.preLoad(image, sheet)
end
return module

View File

@ -100,7 +100,10 @@ function _G.Sprite(image, sheet)
quads[name:sub(0, name:len() - 4)] = {}
end
quads[name:sub(0, name:len() - 4)][num] = {quad = love.graphics.newQuad(x, y, width, height, newSprite.image), offset = Vector2(frameX or 0, frameY or 0), resize = Vector2(1,1)}
local offsetX = (frameX or 0)
local offsetY = (frameY or 0)
quads[name:sub(0, name:len() - 4)][num] = {quad = love.graphics.newQuad(x, y, width, height, newSprite.image), offset = Vector2(offsetX, offsetY), resize = Vector2(1,1)}
end
newSprite.quads = quads
@ -286,13 +289,6 @@ function module.drawSprites()
if sprite.animation and sprite.quads and sprite.quads[sprite.animation] then
local quad = sprite.quads[sprite.animation][sprite.frame] or sprite.quads[sprite.animation][0]
if quad then
if quad.offset and sprite.quads[sprite.animation][0] then
if quad.offset.x == 0 and quad.offset.y == 0 and sprite.quads[sprite.animation][0].offset.x ~= 0 then
quad.offset.x = sprite.quads[sprite.animation][0].offset.x
quad.offset.y = sprite.quads[sprite.animation][0].offset.y
end
end
if sprite.flipX and not quad.flipped then
quad.flipped = true
quad.offset.x = -quad.offset.x

View File

@ -1 +1,5 @@
{"Downscroll":true, "Keybinds":["a", "s", "kp5", "kp6"]}
<<<<<<< HEAD
{"Downscroll":true, "Keybinds":["a", "s", "kp5", "kp6"]}
=======
{"Keybinds":["a", "s", "up", "right"], "Downscroll":true}
>>>>>>> 8a7ee0f (Changed everything etc)

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 696 KiB

After

Width:  |  Height:  |  Size: 124 KiB

View File

@ -29,7 +29,6 @@ vec4 effect(vec4 color, Image texture, vec2 texture_coords, vec2 screen_coords)
return pixel;
}
]]
local rain = love.graphics.newShader("shaders/rain.frag")
local evilShader = love.graphics.newShader(evilShaderScript)
@ -72,7 +71,7 @@ function module.onCreate()
for index, receptor in next, sharedVars.opponentReceptors do
receptor.ui = false
receptor.position = Vector2(100 * (index - 1), 300)
receptor.position = Vector2(200 * (index - 1), 300)
receptor.layer = -5
end
@ -140,22 +139,18 @@ function module.onEvent(event)
end
function module.onUpdate(dt, el)
local mousex, mousey = love.mouse:getPosition()
rain:send("u_mouse", {mousex, mousey})
rain:send("u_resolution", {1280, 720})
rain:send("u_time", el/1000)
currentplayerReceptorPosition = currentplayerReceptorPosition:Lerp(nextplayerReceptorPosition, .05)
for index, note in next, sharedVars.notes do
if not note.mustPress then
note.sprite.ui = false
note.sprite.layer = -3
note.sprite.ui = false
end
end
for index, note in next, sharedVars.holds do
if not note.mustPress then
note.sprite.ui = false
note.sprite.layer = -4
note.sprite.ui = false
end
end
@ -166,7 +161,7 @@ function module.onUpdate(dt, el)
receptor.position = Vector2(currentplayerReceptorPosition.x - 30 + 79 * (index - 1), currentplayerReceptorPosition.y - 30)
end
for index, receptor in next, sharedVars.opponentReceptors do
receptor.position = receptor.position:Lerp(moveAway and Vector2(100 * (index - 1), -100) or Vector2(100 * (index - 1), 300), .05)
receptor.position = receptor.position:Lerp(moveAway and Vector2(200 * (index - 1), -100) or Vector2(200 * (index - 1), 600), .05)
end
if el > 0 and not introVideo:isPlaying() and not paused and not playedIntro then

View File

@ -11,26 +11,26 @@ return {
local road = Sprite("sprites/limo/limoRoad.png", "sprites/limo/limoRoad.json")
road:PlayAnimation("COOLROAD", 24, true)
road.position = Vector2(-300, 230)
road.position = Vector2(-600, 460)
road.modifier = 0.6
road.layer = -9
local limobg = Sprite("sprites/limo/bgLimo.png", "sprites/limo/bgLimo.json")
limobg:PlayAnimation("background limo pink", 24, true)
limobg.position = Vector2(-100, 350)
limobg.position = Vector2(-200, 650)
limobg.modifier = .6
limobg.layer = -8
local limoDriver = Sprite("sprites/limo/limoDrive.png", "sprites/limo/limoDrive.json")
limoDriver:PlayAnimation("Limo stage", 24, true)
limoDriver.position = Vector2(-300, 450)
limoDriver.position = Vector2(-435, 760)
limoDriver.layer = -7
for i = 1, 5 do
local dancer = Sprite("sprites/limo/limoDancer.png", "sprites/limo/limoDancer.json")
dancer.modifier = .6
dancer:PlayAnimation("bg dancer sketch PINK", 24, false)
dancer.position = Vector2(-10 + i * 150, 155)
dancer.position = Vector2(-10 + i * 300, 255)
dancer.layer = -7 + i
dancers[i] = dancer

View File

@ -25,7 +25,7 @@ return {
shootingStar = Sprite("sprites/limo/erect/shooting star.png", "sprites/limo/erect/shooting star.json")
shootingStar:PlayAnimation("shooting star idle", 24, true)
shootingStar.position = Vector2(200, 0)
shootingStar.position = Vector2(400, 0)
shootingStar.modifier = 0.12
shootingStar.layer = -11

View File

@ -13,7 +13,7 @@ return {
upperBop = Sprite("sprites/mall/upperBop.png", "sprites/mall/upperBop.json")
upperBop:PlayAnimation("Upper Crowd Bob", 24, false)
upperBop.position = Vector2(-240, -40)
upperBop.position = Vector2(-480, -80)
upperBop.modifier = 0.33
upperBop.resize = Vector2(0.85, 0.85)
upperBop.layer = -9
@ -25,13 +25,13 @@ return {
escalator.layer = -8
local christmasTree = Image("images/mall/christmasTree.png")
christmasTree.position = Vector2(370, -250)
christmasTree.position = Vector2(740, -500)
christmasTree.modifier = 0.4
christmasTree.layer = -7
for i = 1, 4 do --repeating cus fuck rectangles
local snowPart = Image("images/mall/fgSnow.png")
snowPart.position = Vector2(-1150 , 480 + i * 200)
snowPart.position = Vector2(-1000 , 960 + i * 400)
snowPart.layer = -6
snow[i] = snowPart
@ -39,13 +39,13 @@ return {
bottomBop = Sprite("sprites/mall/bottomBop.png", "sprites/mall/bottomBop.json")
bottomBop:PlayAnimation("Bottom Level Boppers", 24, false)
bottomBop.position = Vector2(-300, 120)
bottomBop.position = Vector2(-2400, 240)
bottomBop.modifier = 0.9
bottomBop.layer = -5
santa = Sprite("sprites/mall/santa.png", "sprites/mall/santa.json")
santa:PlayAnimation("santa idle in fear", 24, false)
santa.position = Vector2(-600, 140)
santa.position = Vector2(-1200, 280)
santa.layer = -4
end,
onBeat = function(beat)

View File

@ -6,14 +6,14 @@ local snow = {}
return {
onCreate = function(song)
local bg = Image("images/mall/erect/bgWalls.png")
bg.position = Vector2(-650, -440)
bg.position = Vector2(-700, -440)
bg.resize = Vector2(0.9, 0.9)
bg.modifier = 0.2
bg.layer = -10
upperBop = Sprite("sprites/mall/erect/upperBop.png", "sprites/mall/erect/upperBop.json")
upperBop:PlayAnimation("upperBop", 24, false)
upperBop.position = Vector2(-240, -40)
upperBop.position = Vector2(-480, -40)
upperBop.modifier = 0.33
upperBop.resize = Vector2(0.85, 0.85)
upperBop.layer = -9
@ -45,13 +45,13 @@ return {
bottomBop = Sprite("sprites/mall/erect/bottomBop.png", "sprites/mall/erect/bottomBop.json")
bottomBop:PlayAnimation("bottomBop", 24, false)
bottomBop.position = Vector2(-350, 120)
bottomBop.position = Vector2(-700, 120)
bottomBop.modifier = 0.9
bottomBop.layer = -3
santa = Sprite("sprites/mall/santa.png", "sprites/mall/santa.json")
santa:PlayAnimation("santa idle in fear", 24, false)
santa.position = Vector2(-600, 140)
santa.position = Vector2(-1000, 280)
santa.layer = -2
end,
onBeat = function(beat)

78
states/creditsstate.lua Normal file
View File

@ -0,0 +1,78 @@
local credits = {
{
name = "Entar (Owner)",
icon = "images/credits/entar.png"
},
{
name = "IDK (Helper)",
-- icon = "images/credits/idk.png"
},
{
name = "MarkedAman \n(Assets, DadBattle MRK Mix)",
icon = "images/credits/aman.png"
},
{
name = "Pankdoe (DadBattle MRK Mix vocals)",
-- icon = "images/credits/pankdoe.png"
}
}
local font = love.graphics.newFont("fonts/FridayNightFunkin-Regular.ttf", 60)
return function()
---@class StateClass
local state = {}
local currentOne = 1
local evilCurrentOne = 1
local icons = {}
function state.update(delta)
evilCurrentOne = Lerp(evilCurrentOne, currentOne, .05)
render.updateSprites(delta)
end
function state.draw()
render.drawSprites()
render.drawUI()
for index, credit in next, credits do
local color = index == currentOne and {0.5, 0.5, 0.5} or {0,0,0}
love.graphics.print({color, credit.name}, font, 150, love.graphics.getHeight() / 2 + (index - evilCurrentOne - 0.5) * 200)
if icons[credit.name] then
local icon = icons[credit.name]
icon.position = Vector2(0, love.graphics.getHeight() / 2 + (index - evilCurrentOne - 0.7) * 200)
end
end
end
function state.load()
local bg = Image("images/menuBG.png")
bg.layer = -5
for index, credit in next, credits do
local icon = credit.icon
if not icon then goto continue end
icon = Image(icon)
icon.position = Vector2(0, love.graphics.getHeight() / 2 + (index - evilCurrentOne - 0.7) * 200)
icons[credit.name] = icon
::continue::
end
end
function state.keypressed(key)
if key == "down" then
currentOne = currentOne + 1 > #credits and 1 or currentOne + 1
end
end
return state
end

View File

@ -82,6 +82,10 @@ return function()
local arrow
local function setup()
if not freaky:isPlaying() then
freaky:play()
end
start = false
bg = Image("images/menuBG.png", 0)
bg.ui = false

View File

@ -24,6 +24,7 @@ return function()
if not freaky then
freaky = love.audio.newSource("sounds/freakyMenu.ogg", "stream")
freaky:setVolume(0.25)
freaky:setLooping(true)
end
freaky:play()
@ -56,6 +57,14 @@ return function()
currentOption = next(options, currentOption) or 1
elseif key == "up" then
currentOption = options[currentOption - 1] and currentOption -1 or #options
elseif key == "9" then
state.changeState("resultsstate", 1000, 100, {
sick = 5,
good = 5,
bad = 5,
shit = 5,
miss = 5
}, 25)
end
end

145
states/optionsstate.lua Normal file
View File

@ -0,0 +1,145 @@
local logging = require("modules.logging")
local json = require("modules.json")
local files= require("modules.files")
local defaultSettings = { -- The way its in the JSON
Downscroll = false,
Keybinds = {
"a",
"b",
"up",
"right"
}
}
local font = love.graphics.newFont("fonts/FridayNightFunkin-Regular.ttf", 60)
local settingList = { -- Path for the positions in JSON
Left = "Keybinds.1",
Down = "Keybinds.2",
Up = "Keybinds.3",
Right = "Keybinds.4",
Downscroll = "Downscroll"
}
local categoryList = { -- The way its on the screen
{
name = "Keybinds",
settings = {
"Left",
"Down",
"Up",
"Right"
},
},
{
name = "Gameplay",
settings = {
"Downscroll"
}
}
}
local globalList = {}
local categories = {}
for index, category in next, categoryList do
globalList[#globalList+1] = category.name
categories[category.name] = true
for index, setting in next, category.settings do
globalList[#globalList+1] = setting
end
end
return function()
---@class StateClass
local state = {}
local getting
local currentSetting = 1
local evilCurrentSetting = 1
local settings = json.parse(files.read_file("settings.json")) or defaultSettings
local function getSettingPath(setting)
local pathString = settingList[setting]:split(".")
print(logging.dump(pathString))
local path = settings
local last
for index, pathPiece in next, pathString do
if tonumber(pathPiece) then
pathPiece = tonumber(pathPiece)
end
if index == #pathString then
last = pathPiece
break
else
path = path[pathPiece]
end
end
return path, last
end
function state.keypressed(key)
if getting then
local path, last = getSettingPath(getting)
path[last] = key
getting = false
return
end
if key == "down" then
currentSetting = currentSetting + 1 > #globalList and 1 or currentSetting + 1
elseif key == "up" then
currentSetting = currentSetting - 1 <= 0 and #globalList or currentSetting - 1
elseif key == "return" then
local listSetting = globalList[currentSetting]
if categories[listSetting] then return end
local settingPath, settingLast = getSettingPath(listSetting)
local setting = settingPath[settingLast]
if type(setting) == "string" then
getting = listSetting
elseif type(setting) == "boolean" then
settingPath[settingLast] = not settingPath[settingLast]
end
elseif key == "escape" then
files.write_file("settings.json", json.stringify(settings))
state.changeState("menustate")
end
end
function state.load()
local bg = Image("images/menuBG.png")
bg.layer = -5
end
function state.update(delta)
evilCurrentSetting = Lerp(evilCurrentSetting, currentSetting, .05)
render.cameraPosition = Vector2()
render.cameraTarget = Vector2()
render.updateSprites(delta)
end
function state.draw()
render.drawSprites()
render.drawUI()
local curPos = -100 + (evilCurrentSetting - 1) * -100
print(globalList[currentSetting])
for index, category in next, categoryList do
curPos = curPos + 100
local color = globalList[currentSetting] == category.name and {.5,.5,.5} or {0,0,0}
love.graphics.print({color, category.name}, font, 0, love.graphics.getHeight() / 2 + curPos - 10, 0)
for settingIndex, setting in next, category.settings do
curPos = curPos + 100
local path, last = getSettingPath(setting)
local val = path[last]
local color = globalList[currentSetting] == setting and {.5,.5,.5} or {0,0,0}
love.graphics.print({color, string.format("%s: %s", setting, val)}, font, 0, love.graphics.getHeight() / 2 + curPos - 10, 0)
end
end
end
return state
end

View File

@ -375,6 +375,9 @@ local function state(songName, songDifficulty, show)
if combo > highestCombo then
highestCombo = combo
end
-- receptors[dir]:PlayAnimation(string.format("%s confirm", string.lower(directions[dir])), 24, false)
-- else
-- receptors[dir]:PlayAnimation(string.format("%s press", string.lower(directions[dir])), 24, false)
end
end
@ -831,13 +834,19 @@ local function state(songName, songDifficulty, show)
local noteSplash = chart.splashSkin or "noteSplashes"
for i = 0, 3 do
local receptor = Rect("sprites/NOTE_assets.png", "sprites/NOTE_assets.json")
receptor:Frame("arrow"..directions[i+1], 0)
local receptor = Sprite("sprites/NOTE_assets.png", "sprites/NOTE_assets.json")
receptor:PlayAnimation("arrow"..directions[i+1], 24, true)
receptor.layer = 9
receptor.position = Vector2(600 + (79* i), settings.Downscroll and 430 or 0)
receptor.ui = true -- So it doesnt move with the camera.
-- for index, anim in next, receptor.quads do
-- for index, quad in next, anim do
-- quad.offset = quad.offset
-- end
-- end
receptors[i + 1] = receptor
local splash = Sprite("sprites/noteSplashes.png", "sprites/noteSplashes.json")
@ -894,7 +903,7 @@ local function state(songName, songDifficulty, show)
events[#events+1] = newEvent
if newEvent.name == "change character" then
chars.preloadChar(newEvent.var2)
chars.preload(newEvent.var2)
end
end
end
@ -920,7 +929,7 @@ local function state(songName, songDifficulty, show)
events[#events+1] = newEvent
if newEvent.name == "change character" then
chars.preloadChar(newEvent.var2)
chars.preload(newEvent.var2)
end
logging.log(string.lower(note[3]))
@ -942,7 +951,7 @@ local function state(songName, songDifficulty, show)
events[#events+1] = newEvent
if newEvent.name == "change character" then
chars.preloadChar(newEvent.var2)
chars.preload(newEvent.var2)
end
end
end
@ -967,7 +976,7 @@ local function state(songName, songDifficulty, show)
events[#events+1] = newEvent
if newEvent.name == "change character" then
chars.preloadChar(newEvent.var2)
chars.preload(newEvent.var2)
end
end
end
@ -1019,6 +1028,7 @@ local function state(songName, songDifficulty, show)
end
function state.keypressed(key, un, is)
print(key)
if key == "space" then
if playing then
paused = not paused

View File

@ -8,7 +8,7 @@ text.__index = text
function text:Move(position)
for index, tex in next, self.text do
tex.position = Vector2(position.x + 15 * (index - 1), position.y)
tex.position = Vector2(position.x + 30 * (index - 1), position.y)
end
self.position = position
end
@ -25,7 +25,7 @@ local function createFunkinNumbers(number, position, layer)
local newText = Rect("sprites/resultScreen/tallieNumber.png", "sprites/resultScreen/tallieNumber.json")
newText:Frame(string.format("%s small", l), 0)
newText.position = Vector2(position.x + 15 * (i - 1), position.y)
newText.position = Vector2(position.x + 30 * (i - 1), position.y)
newText.layer = layer - (i / 200)
newText.modifier = 0
@ -95,18 +95,18 @@ return function(score, accuracy, ratings, combo)
soundSystem = Sprite("sprites/resultScreen/soundSystem.png", "sprites/resultScreen/soundSystem.json")
soundSystem:PlayAnimation("sound system", 24, false)
soundSystem.position = Vector2(0, -100)
soundSystem.position = Vector2(0, -200)
soundSystem.layer = 10
soundSystem.modifier = 0
rantingPopin = Sprite("sprites/resultScreen/ratingsPopin.png", "sprites/resultScreen/ratingsPopin.json")
rantingPopin.position = Vector2(-60, 70)
rantingPopin.position = Vector2(-120, 140)
rantingPopin.layer = 11
rantingPopin:PlayAnimation("Categories", 24, false)
rantingPopin.modifier = 0
local scorePopin = Sprite("sprites/resultScreen/scorePopin.png", "sprites/resultScreen/scorePopin.json")
scorePopin.position = Vector2(-100, 255)
scorePopin.position = Vector2(-200, 500)
scorePopin.layer = 12
scorePopin:PlayAnimation("tally score", 24, false)
scorePopin.modifier = 0
@ -115,7 +115,7 @@ return function(score, accuracy, ratings, combo)
top.layer = 6
local resultsLabel = Sprite("sprites/resultScreen/results.png", "sprites/resultScreen/results.json")
resultsLabel.position = Vector2(-100)
resultsLabel.position = Vector2(-200)
resultsLabel.layer = 12
resultsLabel:PlayAnimation("results instance 1", 24, false)
resultsLabel.modifier = 0
@ -127,14 +127,14 @@ return function(score, accuracy, ratings, combo)
total = total + notes
end
local totalText = createFunkinNumbers(total, Vector2(165, 75), 30)
local comboText = createFunkinNumbers(combo, Vector2(165, 105), 30)
local totalText = createFunkinNumbers(total, Vector2(330, 150), 30)
local comboText = createFunkinNumbers(combo, Vector2(330, 210), 30)
local sick = createFunkinNumbers(ratings.sick, Vector2(105, 135), 30)
local good = createFunkinNumbers(ratings.good, Vector2(95, 165), 30)
local bad = createFunkinNumbers(ratings.bad, Vector2(80, 195), 30)
local shit = createFunkinNumbers(ratings.shit, Vector2(85, 220), 30)
local miss = createFunkinNumbers(ratings.miss, Vector2(115, 250), 30)
local sick = createFunkinNumbers(ratings.sick, Vector2(210, 270), 30)
local good = createFunkinNumbers(ratings.good, Vector2(190, 330), 30)
local bad = createFunkinNumbers(ratings.bad, Vector2(160, 390), 30)
local shit = createFunkinNumbers(ratings.shit, Vector2(170, 440), 30)
local miss = createFunkinNumbers(ratings.miss, Vector2(230, 500), 30)
local info = json.parse(files.read_file(string.format("resultScreens/%s.json", curChar)))
@ -179,11 +179,11 @@ return function(score, accuracy, ratings, combo)
local letter = i <= score:len() and tonumber(score:sub(score:len() - i, score:len() - i)) or 0
local resultsLabel = Sprite("sprites/resultScreen/score-digital-numbers.png", "sprites/resultScreen/score-digital-numbers.json")
resultsLabel.position = Vector2(-100)
resultsLabel.position = Vector2(-200)
resultsLabel.layer = 15
resultsLabel:PlayAnimation(string.format("%s DIGITAL", numbers[letter + 1]), 24, false)
resultsLabel.modifier = 0
resultsLabel.position = Vector2(300 - (30 * i), 300)
resultsLabel.position = Vector2(600 - (60 * i), 600)
resultsLabel.frame = 1
end

View File

@ -36,6 +36,10 @@ return function()
local state = {}
local function setup()
if not freaky:isPlaying() then
freaky:play()
end
local bg = Image("images/menuBG.png", 0)
bg.ui = false
bg.layer = -10