Krill
This commit is contained in:
parent
df3d876cf7
commit
a2605de0c8
@ -183,8 +183,8 @@
|
||||
"no_antialiasing": false,
|
||||
"image": "sprites/characters/bfCar",
|
||||
"position": [
|
||||
0,
|
||||
600
|
||||
100,
|
||||
580
|
||||
],
|
||||
"healthicon": "bf",
|
||||
"flip_x": false,
|
||||
|
@ -115,7 +115,7 @@
|
||||
"image": "sprites/characters/bfChristmas",
|
||||
"position": [
|
||||
0,
|
||||
350
|
||||
700
|
||||
],
|
||||
"healthicon": "bf",
|
||||
"flip_x": false,
|
||||
|
@ -79,8 +79,8 @@
|
||||
"no_antialiasing": false,
|
||||
"image": "sprites/characters/Lookalike_Assets",
|
||||
"position": [
|
||||
130,
|
||||
280
|
||||
260,
|
||||
560
|
||||
],
|
||||
"healthicon": "dad",
|
||||
"flip_x": false,
|
||||
|
188
characters/evilLookaLike.json
Normal file
188
characters/evilLookaLike.json
Normal 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
|
||||
}
|
@ -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
|
||||
}
|
@ -70,8 +70,8 @@
|
||||
"no_antialiasing": false,
|
||||
"image": "sprites/characters/gfCar",
|
||||
"position": [
|
||||
0,
|
||||
160
|
||||
300,
|
||||
360
|
||||
],
|
||||
"healthicon": "gf",
|
||||
"flip_x": false,
|
||||
|
@ -248,7 +248,7 @@
|
||||
"image": "sprites/characters/mom_dad_christmas_assets",
|
||||
"position": [
|
||||
-200,
|
||||
160
|
||||
320
|
||||
],
|
||||
"healthicon": "parents",
|
||||
"flip_x": false,
|
||||
|
@ -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,
|
||||
|
@ -149,7 +149,7 @@
|
||||
"image": "sprites/characters/Pico_Playable",
|
||||
"position": [
|
||||
0,
|
||||
300
|
||||
600
|
||||
],
|
||||
"healthicon": "pico",
|
||||
"flip_x": false,
|
||||
|
@ -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
|
||||
|
@ -149,7 +149,7 @@
|
||||
"image": "sprites/characters/Pico",
|
||||
"position": [
|
||||
0,
|
||||
300
|
||||
600
|
||||
],
|
||||
"healthicon": "pico",
|
||||
"flip_x": true,
|
||||
|
BIN
images/credits/aman.png
Normal file
BIN
images/credits/aman.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
BIN
images/credits/entar.png
Normal file
BIN
images/credits/entar.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.8 KiB |
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
BIN
songs/Dad Battle MRK/Inst.ogg
Normal file
BIN
songs/Dad Battle MRK/Inst.ogg
Normal file
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 |
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
78
states/creditsstate.lua
Normal 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
|
@ -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
|
||||
|
@ -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
145
states/optionsstate.lua
Normal 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
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user