aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bullets.lua2
-rw-r--r--enemies.lua19
-rw-r--r--waves.lua8
3 files changed, 14 insertions, 15 deletions
diff --git a/bullets.lua b/bullets.lua
index 6686a7e..dec0309 100644
--- a/bullets.lua
+++ b/bullets.lua
@@ -136,7 +136,7 @@ function addmissile(x, y, target) --basic small weak enemy
function enemy.update()
enemy.x -= enemy.speed
enemy.speed += 0.015
- enemy.y += (players[target].y - enemy.y)/30
+ enemy.y += (target.y - enemy.y)/30
addcircle(enemy.x+12, enemy.y+rnd(8), 0, rnd()/8, 2.1, 0.6, rnd({9,5}))
enemymisc(enemy)
if enemy.health <= 0 then -- die!!!!!
diff --git a/enemies.lua b/enemies.lua
index 95306f5..43a18b9 100644
--- a/enemies.lua
+++ b/enemies.lua
@@ -246,12 +246,11 @@ function addtargetingenemy(x, y, speed)
enemy.x -= speed
if enemy.shootcooldown < 0 and currentwavetime%1.5>1.2 then
enemy.shootcooldown = 0.1
- local player = players[targetplayer]
- if enemy.x < canshootatx and player.x < enemy.x+30 then --math involving a distance check to get the proper velocity for aiming
- local distancetarget = sqrt((player.x - enemy.x)^2+(player.y - enemy.y)^2)
- local velxtarget = (player.x - enemy.x)/distancetarget
- local velytarget = (player.y - enemy.y)/distancetarget
- addbullet(enemy.x-3, enemy.y, velxtarget, velytarget) -- shoot if on screen
+ if enemy.x < canshootatx and targetplayer.x < enemy.x+30 then --math involving a distance check to get the proper velocity for aiming
+ local distance = sqrt((targetplayer.x - enemy.x)^2+(targetplayer.y - enemy.y)^2)
+ local velx = (targetplayer.x - enemy.x)/distance
+ local vely = (targetplayer.y - enemy.y)/distance
+ addbullet(enemy.x-3, enemy.y, velx, vely) -- shoot if on screen
sfx(15,2) -- play shoot sound if on screen
end
end
@@ -536,8 +535,8 @@ function addmissileboss(x, y) --boss that shoots missiles!!!
if currentwavetime%18 > 8 and currentwavetime%20 < 12 then
enemy.targety = everysecondtimer\0.501*96
elseif currentwavetime%18 > 17.3 then --INTIMIDATION TACTICS!!!!!
- enemy.targety = players[targetplayer].y
- enemy.targetx = players[targetplayer].x+24
+ enemy.targety = targetplayer.y
+ enemy.targetx = targetplayer.x+24
enemy.shootcooldown = 0.8
end
enemy.x = lerp(enemy.x, enemy.targetx, enemy.speed)
@@ -549,13 +548,13 @@ function addmissileboss(x, y) --boss that shoots missiles!!!
end
if enemy.shootcooldown < 0 then
enemy.shootcooldown = 0.6 + rnd(0.6)
- if enemy.x < canshootatx and players[targetplayer] ~= nil then
+ if enemy.x < canshootatx then
local offsetmissleboss = 2
if currentwavetime%2 > 1 then offsetmissleboss = 30 end
addmissile(enemy.x, enemy.y+offsetmissleboss, targetplayer)
if enemy.health < 11 then
sfx(15,2)
- addbullet(enemy.x,enemy.y+16,(players[targetplayer].x-enemy.x)/70,(players[targetplayer].y-enemy.y-16)/70)
+ addbullet(enemy.x,enemy.y+16,(targetplayer.x-enemy.x)/70,(targetplayer.y-enemy.y-16)/70)
-- ERROR attempting to find a non existant player
end
enemy.speed += 0.001
diff --git a/waves.lua b/waves.lua
index ad33f7c..952bc89 100644
--- a/waves.lua
+++ b/waves.lua
@@ -2,9 +2,9 @@ wave = {} --store wave functions here
currentwave = tonum(stat(6)) or 1 --THIS IS THE CURRENT WAVE, SHOLD BE 1 UNLESS TESTING SOMETHING (the stat part is a cheat, shhh)
currentwavetime = 0
delaytimer = 0
-everysecondtimer = 0
+everysecondtimer = 1
checkpoint = 1
-targetplayer = 1
+targetplayer = nil
--NOTE - slow BG during boss waves / make bosses their own checkpoint
@@ -230,7 +230,7 @@ wave[16] = {
everysecond = function ()
if flr(currentwavetime%6) == 5 and currentwavetime < 15 then
local ylaserpos = 16
- if players[targetplayer].y > 64 then
+ if targetplayer.y > 64 then
ylaserpos = 80
end
addlasershooter(128, ylaserpos, 50, 0.1, false)
@@ -301,7 +301,7 @@ function updatewaves()
currentwavetime += ft
everysecondtimer += ft
if everysecondtimer >= 1 then
- targetplayer = rnd({1,#players}) --swaps target every second
+ targetplayer = rnd(players) --swaps target every second
everysecondtimer = 0
if wave[currentwave].everysecond then
wave[currentwave].everysecond()