diff options
| -rw-r--r-- | logic/controller.lua | 16 | ||||
| -rw-r--r-- | objects/Player.lua | 9 | ||||
| -rw-r--r-- | render/draws/objects.lua | 1 | ||||
| -rw-r--r-- | render/draws/ui.lua | 5 |
4 files changed, 18 insertions, 13 deletions
diff --git a/logic/controller.lua b/logic/controller.lua index 0159ebd..44867bf 100644 --- a/logic/controller.lua +++ b/logic/controller.lua @@ -7,15 +7,11 @@ function controller.ctrlKeyPressed() return keydown("lgui") or keydown("rgui") or keydown("lctrl") or keydown("rctrl") end -local function playerPressKeysToArrangeHearts(key) - -- rearrange heart sequence with number keys - local i = tonumber(key) - local hearts = G.player.hearts - local length = #hearts - if i ~= nil and hearts[i] then - -- move selected heart to the end - local temp = table.remove(hearts, i) - table.insert(hearts, temp) +local function playerChangeNextBullet(key) + if key == "q" then + G.player.nextBullet = G.player.nextBullet -1 + elseif key == "e" then + G.player.nextBullet = G.player.nextBullet +1 end end @@ -77,7 +73,7 @@ end -- controller that requires one key press function controller.keypressed(key) - playerPressKeysToArrangeHearts(key) + playerChangeNextBullet(key) switchLanguageSetting(key) end diff --git a/objects/Player.lua b/objects/Player.lua index aabc9e2..89b1b54 100644 --- a/objects/Player.lua +++ b/objects/Player.lua @@ -19,11 +19,13 @@ function Player.new() hearts = { "purpleheart", "redheart", "redheart", "redheart", "shinyheart", "shinyheart", "stickyheart" }, facing = Direction.DOWN, moving = false, - frameTimer = FrameTimer:new(config.frameRate, 2) + frameTimer = FrameTimer:new(config.frameRate, 2), }, Player) physics.bodifyObject(G.world, player) + player.nextBullet = #player.hearts + return player end @@ -68,7 +70,7 @@ end function Player:shoot(target) local hearts = self.hearts - local currentBullet = hearts[#hearts] + local currentBullet = hearts[self.nextBullet] -- red hearts and the last heart will take some more time to shoot if currentBullet == "redheart" or #hearts == 1 then @@ -89,7 +91,8 @@ function Player:shoot(target) -- shoot the bullet bullets.fire(currentBullet, target, self) - table.remove(self.hearts) + table.remove(self.hearts, self.nextBullet) + self.nextBullet = self.nextBullet - 1 self.shootCooldown = G.time + config.player.shoot.cooldown end diff --git a/render/draws/objects.lua b/render/draws/objects.lua index 11192ad..a4b9ba4 100644 --- a/render/draws/objects.lua +++ b/render/draws/objects.lua @@ -1,6 +1,7 @@ local enemyData = require "data.enemyData" local graphics = require "utils.graphics" require "data.directions" +require "render.sprite" local draws = {} diff --git a/render/draws/ui.lua b/render/draws/ui.lua index c75e9cd..8ec4acb 100644 --- a/render/draws/ui.lua +++ b/render/draws/ui.lua @@ -24,6 +24,11 @@ function ui.ammoBar() utils.resetGraphics() end + if i == G.player.nextBullet then + heartR = heartR * 1.2 + utils.resetGraphics() + end + -- draw heart sprite.drawSquare(v, position, heartR) end |
