tibia-client/modules/game_healthbar/healthbar.lua

68 lines
1.8 KiB
Lua

HealthBar = {}
-- private variables
local healthManaPanel = nil
-- public functions
function HealthBar.create()
healthManaPanel = UI.display('healthbar.otui', { parent = Game.gameRightPanel })
local healthBar = UIProgressBar.create()
healthManaPanel:addChild(healthBar)
healthBar:setId('healthBar')
healthBar:setStyle('HealthBar')
local healthLabel = UILabel.create()
healthManaPanel:addChild(healthLabel)
healthLabel:setId('healthLabel')
healthLabel:setStyle('HealthLabel')
healthLabel:setText('0 / 0')
local manaBar = UIProgressBar.create()
healthManaPanel:addChild(manaBar)
manaBar:setId('manaBar')
manaBar:setStyle('ManaBar')
local manaLabel = UILabel.create()
healthManaPanel:addChild(manaLabel)
manaLabel:setId('manaLabel')
manaLabel:setStyle('ManaLabel')
manaLabel:setText('0 / 0')
healthManaPanel:setHeight(healthBar:getHeight() + manaBar:getHeight() + 4)
end
function HealthBar.destroy()
healthManaPanel:destroy()
healthManaPanel = nil
end
-- hooked events
function HealthBar.onHealthChange(health, maxHealth)
local label = healthManaPanel:getChildById('healthLabel')
label:setText(health .. ' / ' .. maxHealth)
local healthBar = healthManaPanel:getChildById('healthBar')
healthBar:setPercent(health / maxHealth * 100)
end
function HealthBar.onManaChange(mana, maxMana)
local label = healthManaPanel:getChildById('manaLabel')
label:setText(mana .. ' / ' .. maxMana)
local manaBar = healthManaPanel:getChildById('manaBar')
local percent
if maxMana == 0 then
percent = 100
else
percent = mana / maxMana * 100
end
manaBar:setPercent(percent)
end
connect(Game, { onLogin = HealthBar.create,
onLogout = HealthBar.destroy,
onHealthChange = HealthBar.onHealthChange,
onManaChange = HealthBar.onManaChange })