summaryrefslogtreecommitdiff
path: root/objects/Player.lua
blob: e80da94795f14a9668e17b31970369a984098883 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
local Body = require "objects.Body"
require "data.directions"

local Player = {}
Player.__index = Player

local FrameTimer = require "utils.frameTimer"

function Player.new()
    local player = setmetatable({
        x = love.graphics.getWidth() / 2,
        y = love.graphics.getHeight() / 2,
        body = Body:new("circle", config.playerSize, nil, 1/16),
        speed = config.defaultPlayerSpeed,
        shieldedTill = 0,
        hearts = { "redheart", "redheart", "redheart", "shinyheart", "shinyheart", "bigheart" },
        facing = Direction.DOWN,
        moving = false,
        frameTimer = FrameTimer:new(config.frameRate, 2)
    }, Player)

    return player
end

function Player:isShielded()
    return self.shieldedTill >= G.time
end

function Player:isAlive()
    return #self.hearts ~= 0
end

return Player