40 lines
1.1 KiB
Lua

--- @class StatsBehavior : Behavior
--- @field hp integer
--- @field mana integer
--- @field initiative integer
--- @field isInTurnOrder boolean
--- @field amIAlive boolean
local behavior = {}
behavior.__index = behavior
behavior.id = "stats"
--- план прост, если что-то не так, то мы просто убиваем бехавиор (по крайней мере так должно было быть, но пиаш мне запретил :sob:)
function behavior:checkStats()
-- if self.hp <= 0 then behavior:die() end
if self.hp <= 0 then
self.amIAlive = false
end
end
--- @param damage integer
function behavior:dealDamage(damage)
self.hp = self.hp - damage
self:checkStats()
end
--- @param hp? integer
--- @param mana? integer
--- @param initiative? integer
--- @param isInTurnOrder? boolean
function behavior.new(hp, mana, initiative, isInTurnOrder)
return setmetatable({
hp = hp or 20,
mana = mana or 10,
initiative = initiative or 10,
isInTurnOrder = isInTurnOrder or true,
amIAlive = true
}, behavior)
end
return behavior