Compare commits
2 Commits
1d465021c2
...
bb04425fb8
Author | SHA1 | Date | |
---|---|---|---|
|
bb04425fb8 | ||
|
71ad1840a3 |
@ -4169,7 +4169,7 @@
|
||||
"mustHitSection": true
|
||||
}
|
||||
],
|
||||
"gfVersion": "gf",
|
||||
"gfVersion": "gf-car",
|
||||
"song": "High Erect",
|
||||
"needsVoices": true,
|
||||
"stage": "limo",
|
||||
|
@ -8681,7 +8681,7 @@
|
||||
"player3": "none",
|
||||
"song": "Obituary",
|
||||
"needsVoices": true,
|
||||
"stage": "stages",
|
||||
"stage": "stage",
|
||||
"validScore": true,
|
||||
"bpm": 101,
|
||||
"speed": 2.3
|
||||
|
@ -5788,7 +5788,7 @@
|
||||
"player2": "tankman",
|
||||
"player3": null,
|
||||
"song": "Stress",
|
||||
"stage": "tank",
|
||||
"stage": "stage",
|
||||
"needsVoices": true,
|
||||
"validScore": true,
|
||||
"bpm": 178,
|
||||
|
@ -11281,7 +11281,7 @@
|
||||
"sections": 0,
|
||||
"needsVoices": true,
|
||||
"validScore": true,
|
||||
"stage": "arenanew",
|
||||
"stage": "stage",
|
||||
"bpm": 245,
|
||||
"speed": 3.1
|
||||
}
|
||||
|
@ -44,6 +44,9 @@ local function state(songName, songDifficulty)
|
||||
local unspawnedNotes = {}
|
||||
local notes = {}
|
||||
|
||||
local unspawnedHoldNotes = {}
|
||||
local holdNotes = {}
|
||||
|
||||
local characters = {}
|
||||
|
||||
local settings = {}
|
||||
@ -142,7 +145,6 @@ local function state(songName, songDifficulty)
|
||||
ratings[rating] = ratings[rating] + 1
|
||||
characters.bf:PlayAnimation("sing"..directions[closestNote.direction])
|
||||
closestNote.pressed = true
|
||||
receptors[dir]:PlayAnimation(string.lower(directions[dir]).." confirm", 5, false)
|
||||
notes[closestIndex] = nil
|
||||
closestNote:destroy()
|
||||
end
|
||||
@ -211,17 +213,21 @@ local function state(songName, songDifficulty)
|
||||
end
|
||||
|
||||
for index, note in next, unspawnedNotes do
|
||||
if note.position - elapsed < 600 and note.mustPress then
|
||||
note:spawn()
|
||||
unspawnedNotes[index] = nil
|
||||
notes[#notes+1] = note
|
||||
elseif note.position - elapsed < 600 and not note.mustPress then
|
||||
if note.position - elapsed < 600 then
|
||||
note:spawn()
|
||||
unspawnedNotes[index] = nil
|
||||
notes[#notes+1] = note
|
||||
end
|
||||
end
|
||||
|
||||
for index, holdNote in next, unspawnedHoldNotes do
|
||||
if holdNote.position - elapsed < 600 then
|
||||
holdNote:spawn()
|
||||
unspawnedHoldNotes[index] = nil
|
||||
holdNotes[#notes+1] = holdNote
|
||||
end
|
||||
end
|
||||
|
||||
for index, note in next, notes do
|
||||
if note.mustPress then
|
||||
note.sprite.position = myTypes.Vector2(600 + (79 * (note.direction - 1)), settings.Downscroll and 430 - (note.position-elapsed) or note.position - elapsed)
|
||||
@ -234,7 +240,7 @@ local function state(songName, songDifficulty)
|
||||
ratings.miss = ratings.miss + 1
|
||||
end
|
||||
else
|
||||
note.sprite.position = myTypes.Vector2(20 + 79 * (note.direction - 1), settings.Downscroll and 430 - (note.position-elapsed) or note.position - elapsed)
|
||||
note.sprite.position = myTypes.Vector2(50 + 79 * (note.direction - 1), settings.Downscroll and 430 - (note.position-elapsed) or note.position - elapsed)
|
||||
if note.position - elapsed < 10 then
|
||||
notes[index] = nil
|
||||
if section.altAnim or note.altAnim then
|
||||
@ -248,13 +254,30 @@ local function state(songName, songDifficulty)
|
||||
end
|
||||
end
|
||||
|
||||
for index, receptor in next, receptors do
|
||||
if receptor.ended and receptor.animation ~= "arrow"..directions[index] and receptor.animation ~= "" then
|
||||
receptor:PlayAnimation("arrow"..directions[index], 25, false)
|
||||
for index, hold in next, holdNotes do
|
||||
if hold.mustPress then
|
||||
hold.sprite.position = myTypes.Vector2(600 + (79 * (hold.direction - 1)), settings.Downscroll and 430 - (hold.position-elapsed) or hold.position - elapsed)
|
||||
if hold.position - elapsed < 50 then
|
||||
if love.keyboard.isDown(keyBinds[hold.direction]) then
|
||||
if section.altAnim or hold.altAnim then
|
||||
characters.dad:PlayAnimation("sing"..directions[hold.direction].."-alt")
|
||||
else
|
||||
characters.dad:PlayAnimation("sing"..directions[hold.direction])
|
||||
end
|
||||
hold:destroy()
|
||||
holdNotes[index] = nil
|
||||
elseif hold.position - elapsed < -150 then
|
||||
hold:destroy()
|
||||
miss:stop()
|
||||
miss:play()
|
||||
characters.bf:PlayAnimation("sing"..directions[hold.direction].."miss")
|
||||
holdNotes[index] = nil
|
||||
ratings.miss = ratings.miss + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
zoom = myMath.lerp(zoom, 1, .05)
|
||||
|
||||
fps = 1000 / dt
|
||||
@ -324,16 +347,30 @@ local function state(songName, songDifficulty)
|
||||
characters.dad.stagePosition = myTypes.Vector2(stage.opponent[1], stage.opponent[2])
|
||||
|
||||
|
||||
conductor.stepCrochet = conductor:calculateCrochet(chart.bpm)/4
|
||||
|
||||
for index, section in next, chart.notes do
|
||||
for index, note in next, section.sectionNotes do
|
||||
local newNote = myTypes.note(note, section.mustHitSection)
|
||||
unspawnedNotes[#unspawnedNotes+1] = newNote
|
||||
|
||||
-- if note[3] > 0 then
|
||||
-- local length = note[3] / conductor.stepCrochet
|
||||
|
||||
-- for i = 0, length - 1, .1 do
|
||||
-- local newHold = myTypes.note({note[1] + i * conductor.stepCrochet, note[2], note[3], note[4]}, section.mustHitSection, true)
|
||||
-- unspawnedHoldNotes[#unspawnedHoldNotes+1] = newHold
|
||||
-- end
|
||||
-- local newHold = myTypes.note({note[1] + length * conductor.stepCrochet, note[2], note[3], note[4]}, section.mustHitSection, true, true)
|
||||
-- unspawnedHoldNotes[#unspawnedHoldNotes+1] = newHold
|
||||
-- end
|
||||
-- not yet
|
||||
end
|
||||
end
|
||||
|
||||
for i = 0, 3 do
|
||||
local receptor = myTypes.Sprite("sprites/NOTE_assets.png", "sprites/NOTE_assets.json")
|
||||
receptor:PlayAnimation("arrow"..directions[i+1], 25, false)
|
||||
local receptor = myTypes.Rect("sprites/NOTE_assets.png", "sprites/NOTE_assets.json")
|
||||
receptor:Frame("arrow"..directions[i+1], 0)
|
||||
|
||||
receptor.position = myTypes.Vector2(600 + (79* i), settings.Downscroll and 0 or 430)
|
||||
|
||||
@ -346,7 +383,7 @@ local function state(songName, songDifficulty)
|
||||
local receptor = myTypes.Rect("sprites/NOTE_assets.png", "sprites/NOTE_assets.json")
|
||||
receptor:Frame("arrow"..directions[i+1], 0)
|
||||
|
||||
receptor.position = myTypes.Vector2(20 + 79 * i, settings.Downscroll and 0 or 430)
|
||||
receptor.position = myTypes.Vector2(50 + 79 * i, settings.Downscroll and 0 or 430)
|
||||
|
||||
receptor.ui = true -- So it doesnt move with the camera.
|
||||
end
|
||||
|
@ -10,7 +10,7 @@ local sprites = {
|
||||
"red"
|
||||
}
|
||||
|
||||
function module.note(raw, mustHitSection)
|
||||
function module.note(raw, mustHitSection, hold, holdEnd)
|
||||
|
||||
local newNote = setmetatable({
|
||||
position = raw[1],
|
||||
@ -19,7 +19,9 @@ function module.note(raw, mustHitSection)
|
||||
direction = raw[2] <= 3 and raw[2] + 1 or raw[2] - 3,
|
||||
spawned = false,
|
||||
sprite = nil, -- For unspawned notes
|
||||
altAnim = raw[4] == "Alt"
|
||||
altAnim = raw[4] == "Alt",
|
||||
hold = hold,
|
||||
last = holdEnd
|
||||
}, NoteClass)
|
||||
|
||||
return newNote
|
||||
@ -30,7 +32,9 @@ function NoteClass:spawn()
|
||||
|
||||
self.sprite = sprite
|
||||
|
||||
sprite:Frame(sprites[self.direction], 0)
|
||||
local spriteFrame = self.hold and (self.holdEnd and sprites[self.direction].." hold end" or sprites[self.direction].." hold piece") or sprites[self.direction]
|
||||
|
||||
sprite:Frame(spriteFrame, 0)
|
||||
|
||||
sprite.ui = true -- so it doesnt move with the camera
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Before Width: | Height: | Size: 766 KiB After Width: | Height: | Size: 696 KiB |
@ -3,12 +3,13 @@ local myTypes = require("modules.types")
|
||||
return {
|
||||
onCreate = function(song)
|
||||
local back = myTypes.Image("images/stage/stageback.png")
|
||||
back.position = myTypes.Vector2(-1000, 50)
|
||||
back.position = myTypes.Vector2(-800, 50)
|
||||
|
||||
local front = myTypes.Image("images/stage/stagefront.png")
|
||||
front.position = myTypes.Vector2(-900, 1000)
|
||||
|
||||
local curtains = myTypes.Image("images/stage/stagecurtains.png")
|
||||
curtains.position = myTypes.Vector2(-1000, 50)
|
||||
curtains.position = myTypes.Vector2(-1150, 50)
|
||||
curtains.modifier = 1.3
|
||||
end
|
||||
}
|
Reference in New Issue
Block a user