diff options
| author | 1029chris <1029chris@gmail.com> | 2022-02-04 17:50:20 -0800 |
|---|---|---|
| committer | 1029chris <1029chris@gmail.com> | 2022-02-04 17:50:20 -0800 |
| commit | c3adabae861162b66c1b4499754848d1ffdc0833 (patch) | |
| tree | 750b9a5d0564c5bae66a3538b0779ec266db8f23 | |
| parent | 72801b4200dca4fd47c38a488c8812dc1284a5da (diff) | |
WAVES!!!!!!!! and other stuff
| -rw-r--r-- | enemies.lua | 17 | ||||
| -rw-r--r-- | pickups.lua | 2 | ||||
| -rw-r--r-- | players.lua | 2 | ||||
| -rw-r--r-- | update.lua | 1 | ||||
| -rw-r--r-- | waves.lua | 80 |
5 files changed, 92 insertions, 10 deletions
diff --git a/enemies.lua b/enemies.lua index 6721a2a..ff8606f 100644 --- a/enemies.lua +++ b/enemies.lua @@ -11,12 +11,12 @@ function addbasicenemy(x, y, sprite, health, speed) enemy.inv = -1 enemy.sprite = sprite enemy.health = health - enemy.shootcooldown = 3 + enemy.shootcooldown = rnd(1)+2 enemy.speed = speed function enemy.draw(enemy) local sprite = enemy.sprite - if flr(sin(time()/5)) ~= 0 then + if flr(sin(time()*speed)) ~= 0 then --if the ships heading up, change sprite sprite += 1 end spr(sprite, enemy.x, enemy.y, 1,1) @@ -27,6 +27,7 @@ function addbasicenemy(x, y, sprite, health, speed) explosion(enemy.x, enemy.y) --and reduce health enemy.health -= 1 + sfx(4) end function enemy.collide(object) @@ -39,12 +40,13 @@ function addbasicenemy(x, y, sprite, health, speed) function enemy.update() enemy.x -= speed - enemy.y += sin(time()/5)*speed + enemy.y += sin(time()*speed)*speed enemy.shootcooldown -= 1/60 foreach(players, enemy.collide) if enemy.shootcooldown < 0 then - enemy.shootcooldown = 0.5 + rnd(2) + enemy.shootcooldown = 0.5 + rnd(1.5) addbullet(enemy.x-3, enemy.y, -1, 0, true, 3) + sfx(3) end if enemy.x < -8 then del(enemies, enemy) @@ -59,13 +61,10 @@ function addbasicenemy(x, y, sprite, health, speed) if shake < 3 then shake = 2.5 end + sfx(2) del(enemies, enemy) end end add(enemies, enemy) -end - -addbasicenemy(128, 60, rnd(basicenemysprites), 1, 0.2) -addbasicenemy(128, 90, rnd(basicenemysprites), 1, 0.1) -addbasicenemy(128, 20, rnd(basicenemysprites), 1, 0.1) +end
\ No newline at end of file diff --git a/pickups.lua b/pickups.lua index ce09e91..853ddeb 100644 --- a/pickups.lua +++ b/pickups.lua @@ -34,7 +34,7 @@ function addpickup(x, y, type) if (pickup.type == "fastshoot") then color = 12 elseif (pickup.type == "3shoot") then - color = 11 + color = 9 end addcircle(pickup.x, pickup.y, sin(i/8), cos(i/8), 2, 0.6, color, 0) end diff --git a/players.lua b/players.lua index a4792ec..bb73345 100644 --- a/players.lua +++ b/players.lua @@ -41,6 +41,7 @@ function addplayer(sprite, bulletsprite) player.shootspeed = 0.25 player.shoot3 = false shake = 9 + sfx(1) explosion(player.x, player.y) end @@ -88,6 +89,7 @@ function addplayer(sprite, bulletsprite) --addcircle(player.x+3, player.y+4, rnd(1)+0.5, rnd(1)-0.5, 1.5, rnd(0.4), 12) --end addbullet(player.x+3, player.y, 2, 0, false, player.bulletsprite) + sfx(0) if player.shoot3 then addbullet(player.x+3, player.y+3, 2, 0.25, false, player.bulletsprite) addbullet(player.x+3, player.y-3, 2, -0.25, false, player.bulletsprite) @@ -1,3 +1,4 @@ +updatewaves() updateobjs() --screenshake math shake = shake + 0.11 * (0 - shake); diff --git a/waves.lua b/waves.lua new file mode 100644 index 0000000..7be4735 --- /dev/null +++ b/waves.lua @@ -0,0 +1,80 @@ +wave = {} --store wave functions here +currentwave = 1 --THIS IS THE CURRENT WAVE +currentwavetime = 0 +delaytimer = 0 + +wave[1] = { + delay = 2, + start = function() + addbasicenemy(130, 60, rnd(basicenemysprites), 1, 0.15) + end, + ending = function() + end, + everysecond = function() + end, + conditions = function() + if #enemies < 1 then + return true + else + return false + end + end +} + +wave[2] = { + delay = 2, + start = function() + addbasicenemy(128, 30, rnd(basicenemysprites), 1, 0.4) + addbasicenemy(128, 60, rnd(basicenemysprites), 1, 0.8) + addbasicenemy(128, 90, rnd(basicenemysprites), 1, 0.4) + end, + ending = function() + end, + everysecond = function() + end, + conditions = function() + if #enemies < 1 then + return true + else + return false + end + end +} + +wave[3] = { + delay = 2, + start = function() + for i = 1, 7, 1 do + addbasicenemy(128, i*16, rnd(basicenemysprites), 1, 0.5 + 0.075*i) + addbasicenemy(170, i*16, rnd(basicenemysprites), 1, 1.05 - 0.075*i) + end + end, + ending = function() + end, + everysecond = function() + end, + conditions = function() + if #enemies < 1 then + return true + else + return false + end + end +} + +wave[currentwave].start() + +function updatewaves() + currentwavetime += 1/60 + if wave[currentwave].conditions() then + delaytimer += 1/60 + if delaytimer > wave[currentwave].delay then + wave[currentwave].ending() + currentwave += 1 + currentwavetime = 0 + delaytimer = 0 + currentwave = (currentwave - 1) % #wave+1 --temporarily looping the waves + wave[currentwave].start() + end + end +end
\ No newline at end of file |
