diff options
| -rw-r--r-- | bullets.lua | 2 | ||||
| -rw-r--r-- | enemies.lua | 19 | ||||
| -rw-r--r-- | waves.lua | 8 |
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 @@ -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() |
