aboutsummaryrefslogtreecommitdiff
path: root/waves.lua
diff options
context:
space:
mode:
authorChris Bradley <1029chris@gmail.com>2022-02-18 19:07:27 -0800
committerChris Bradley <1029chris@gmail.com>2022-02-18 19:07:27 -0800
commit0f74449ed091ed8a93bfbe75ede12f86e869bc62 (patch)
tree98aad24d2ec8321d0a66ea032f4f1ee99e4c1c65 /waves.lua
parent4399396b397ce36c2c35eae5eb870627a36cf555 (diff)
More final boss stuff, token hunting
Diffstat (limited to 'waves.lua')
-rw-r--r--waves.lua141
1 files changed, 81 insertions, 60 deletions
diff --git a/waves.lua b/waves.lua
index 3a8e3da..7a4ddcd 100644
--- a/waves.lua
+++ b/waves.lua
@@ -4,7 +4,7 @@ currentwavetime = 0
delaytimer = 0
everysecondtimer = 0
checkpoint = 1
-changedmusic = false
+bossmusic = false
--NOTE - slow BG during boss waves / make bosses their own checkpoint
@@ -82,7 +82,30 @@ wave[5] = {
}
wave[6] = {
- delay = 0,
+ delay = 2,
+ start = function()
+ addbasicenemy(240, 58, 1.1)
+ addbasicenemy(240, 68, 0.9)
+ addbasicenemy(240, 63, 1)
+ addlasershooter(128, 64, 100, 0.4, true, true)
+
+ end,
+ everysecond = function()
+ if rnd(100) < 10 and #enemies > 1 then
+ for i = 1, rnd(2), 1 do
+ addbasicenemy(128+rnd(20), rnd(20)+54, 0.6)
+ end
+ end
+ end,
+ conditions = function()
+ if #enemies < 1 then checkpoint = currentwave+1 return true
+ end
+ end,
+ boss = true
+}
+
+wave[7] = {
+ delay = 5,
start = function()
addballshooter(128, 56, 0.1)
addballshooter(160, 14, 0.1)
@@ -90,7 +113,7 @@ wave[6] = {
end,
}
-wave[7] = {
+wave[8] = {
delay = 1,
start = function()
addballshooter(140, 56, 0.2)
@@ -103,33 +126,8 @@ wave[7] = {
end,
}
---music doesnt transition yet
-wave[8] = {
- delay = 1,
- start = function()
- music(9, 0, 3)
- changedmusic = true
- addbasicenemy(240, 58, 1.1)
- addbasicenemy(240, 68, 0.9)
- addbasicenemy(240, 63, 1)
- addlasershooter(128, 64, 100, 0.4, true, true)
-
- end,
- everysecond = function()
- if flr(currentwavetime%3) == 2 and rnd(100) < 40 then
- for i = 1, rnd(2), 1 do
- addbasicenemy(128+rnd(20), rnd(20)+54, 0.6)
- end
- end
- end,
- conditions = function()
- if #enemies < 1 then checkpoint = currentwave+1 return true
- end
- end
-}
-
wave[9] = {
- delay = 5,
+ delay = 1,
start = function()
addtargetingenemy(128,1,0.1)
addtargetingenemy(262,60,0.2)
@@ -149,7 +147,8 @@ wave[10] = {
delay = 3,
start = function()
for i = 1, 7, 1 do
- addtargetingenemy(128, i*16-4, 0.1)
+ addtargetingenemy(128, i*16-4, 0.085)
+ addtargetingenemy(144, i*16-4, 0.085)
end
end,
conditions = function()
@@ -169,16 +168,14 @@ wave[11] = {
end,
}
---music doesnt transition yet
wave[12] = {
- delay = 1,
+ delay = 2,
start = function()
- music(9, 0, 3)
- changedmusic = true
addwallboss(128,4,15,225,0.05,true,false,true)
end,
- everysecond = wave[8].everysecond,
- conditions = wave[8].conditions
+ everysecond = wave[6].everysecond,
+ conditions = wave[6].conditions,
+ boss = true
}
wave[13] = {
@@ -191,7 +188,7 @@ wave[13] = {
addbomb(128,46, 0)
addlasershooter(128, 90, 50, 0.1, false)
end,
- everysecond = wave[8].everysecond,
+ everysecond = wave[6].everysecond,
}
wave[14] = {
@@ -207,14 +204,41 @@ wave[14] = {
wave[15] = {
delay = 0,
+ start = function()
+ for i = 1, 6, 1 do
+ addtargetingenemy(128, i*16-14+flr(i/4)*36, 0.05)
+ end
+ addbomb(140,46, 1)
+ end
+}
+
+wave[16] = {
+ delay = 0,
+ start = function()
+ addwallboss(128, 2, 7, 30, 0.05, false, 3, false)
+ addwallboss(128, 70, 7, 30, 0.05, false, 3, false)
+ end,
+ everysecond = function ()
+ if flr(currentwavetime%6) == 5 and currentwavetime < 20 then
+ local y = 16
+ if players[1].y > 64 then
+ y = 80
+ end
+ addlasershooter(128, y, 50, 0.1, false)
+ end
+ end
+}
+
+wave[17] = {
+ delay = 0,
start = wave[5].start,
everysecond = function()
if currentwavetime%5 > 4 and currentwavetime < 20 then
addbomb(128,20+currentwavetime*2,0)
end
- if currentwavetime > 18 and not changedmusic then
+ if currentwavetime > 18 and not bossmusic then
music(8, 0, 3)
- changedmusic = true
+ bossmusic = true
end
addbasicenemy(128,rnd(100)+14,0.4+rnd(0.4))
end,
@@ -224,7 +248,7 @@ wave[15] = {
end
}
-wave[16] = {
+wave[18] = {
delay = 0,
start = function()
for i = 1, #enemies, 1 do
@@ -232,23 +256,21 @@ wave[16] = {
end
addmissileboss(128, 0)
end,
- everysecond = wave[8].everysecond,
+ everysecond = wave[6].everysecond,
+ conditions = wave[6].conditions,
+ boss = true
}
-wave[17] = {
- delay = 0,
+wave[19] = {
+ delay = 7,
start = function()
addfinalboss()
- addballshooter(128, 56, 0.1)
end,
- everysecond = function()
- local y = rnd(30)+50
- addbasicenemy(115,y,0.4+rnd(0.4))
- end
+ boss = true
}
--ending score screen
-wave[18] = {
+wave[20] = {
delay = 3,
start = function()
if #players == 1 then
@@ -258,12 +280,9 @@ wave[18] = {
end
end,
conditions = function()
- end
+ end
}
---wave[currentwave].start()
---music(0, 0, 3)
-
foreach(wave, function(wave) if not wave.conditions then wave.conditions = function() if #enemies < 1 then return true end end end end) --if there are no conditons for a wave, give them one. look at all those ends!!!!
function updatewaves()
@@ -276,14 +295,18 @@ function updatewaves()
end
end
if wave[currentwave].conditions() then
+ if wave[currentwave+1].boss and not bossmusic then
+ bossmusic = true
+ music(8,0,3)
+ end
delaytimer += ft
if delaytimer > wave[min(currentwave+1, #wave)].delay then
- if changedmusic and currentwave ~= 15 then
- music(0, 0, 3)
- changedmusic = false
- end
everysecondtimer = 0
currentwave += 1
+ if not wave[currentwave].boss and bossmusic then
+ music(2,0,3)
+ bossmusic = false
+ end
currentwavetime = 0
delaytimer = 0
-- currentwave = (currentwave - 1) % #wave+1 --temporarily looping the waves
@@ -301,7 +324,5 @@ function setwave(num)
currentwavetime = 0
delaytimer = 0
wave[currentwave].start()
- if changedmusic then
- music(0, 0, 3)
- end
+ music(2, 0, 3)
end \ No newline at end of file