---@class HatBullet : Bullet
local HatBullet, super = Class(Bullet)

---@param x number # The X position of the bullet
---@param y number # The Y position of the bullet
---@param dir number # The dir (in radians) of the bullet
---@param speed number # The speed the bullet will move at in the specified direction
function HatBullet:init(x, y, dir, speed)
    -- Last argument = sprite path
    super.init(self, x, y, "bullets/hatbullet")

    -- Move the bullet in dir radians (0 = right, pi = left, clockwise rotation)
    self.physics.direction = dir
    -- Speed the bullet moves (pixels per frame at 30FPS)
    self.physics.speed = speed
    self.collider = Hitbox(self, self.width*0.225, self.height*0.25, self.width*0.55, self.height*0.6)
    self.destroy_on_hit = false
end

function HatBullet:update()
    -- For more complicated bullet behaviours, code here gets called every update

    super.update(self)
end

function HatBullet:getDebugInfo()
    local info = super.getDebugInfo(self)
    table.insert(info, "Collider: " .. self.collider.x, self.collider.y)
end

return HatBullet
