You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.3 KiB
72 lines
1.3 KiB
-- Functions to handle restarting
|
|
-- all objects
|
|
-- Used in map switching and restarting!
|
|
|
|
function ClearWalls(walls)
|
|
for i = #walls, 1, -1 do
|
|
walls[i]:destroy()
|
|
end
|
|
end
|
|
|
|
function StopAllMusic()
|
|
-- TODO: maybe find a way
|
|
-- to find all 'streaming'
|
|
-- sounds and then stop them all!
|
|
musicBattle:stop()
|
|
musicMenu:stop()
|
|
musicPause:stop()
|
|
--musicStory:stop() -- Unused
|
|
end
|
|
|
|
function ClearPlayerCollision()
|
|
UserPlayer1.collider:destroy()
|
|
UserPlayer2.collider:destroy()
|
|
end
|
|
|
|
function ClearBullets(bullets)
|
|
for i, v in ipairs(bullets) do
|
|
v.collider:destroy()
|
|
end
|
|
end
|
|
|
|
local function setNewLevelFromRandom(count)
|
|
local level = math.random(1, count)
|
|
_G.CUR_LEVEL = level
|
|
end
|
|
|
|
local function getLevelCount()
|
|
local levelcount = 0
|
|
local suf = ".lua"
|
|
local files = love.filesystem.getDirectoryItems("maps/")
|
|
|
|
for _, file in ipairs(files) do
|
|
if string.find(file, suf) then
|
|
levelcount = levelcount + 1
|
|
--print(k .. ". " .. file) --outputs something like "1. main.lua"
|
|
end
|
|
end
|
|
return levelcount
|
|
end
|
|
|
|
function RestartGame()
|
|
setNewLevelFromRandom(getLevelCount())
|
|
|
|
--reset wins
|
|
_G.P1_WIN = false
|
|
_G.P2_WIN = false
|
|
|
|
-- Stop the music
|
|
--StopAllMusic()
|
|
|
|
-- Clear the players collision
|
|
ClearPlayerCollision()
|
|
|
|
-- Work through and delete all bullets
|
|
ClearBullets(Bullets1)
|
|
ClearBullets(Bullets2)
|
|
|
|
--Clear Walls
|
|
ClearWalls(Walls)
|
|
|
|
-- Done!
|
|
end
|
|
|