health bar improvements

This commit is contained in:
Henrique 2011-11-14 06:21:01 -02:00
parent e74bca2c3a
commit 91572b4802
3 changed files with 37 additions and 64 deletions

View File

@ -7,19 +7,29 @@ local healthManaPanel = nil
function HealthMana.create() function HealthMana.create()
healthManaPanel = loadUI("/health_mana/health_mana.otui", Game.gameRightPanel) healthManaPanel = loadUI("/health_mana/health_mana.otui", Game.gameRightPanel)
local healthBar = UIProgressBar.create()
healthManaPanel:addChild(healthBar)
healthBar:setId('healthBar')
healthBar:setStyle('HealthBar')
local healthLabel = UILabel.create() local healthLabel = UILabel.create()
healthManaPanel:addChild(healthLabel) healthManaPanel:addChild(healthLabel)
healthLabel:setId('healthLabel') healthLabel:setId('healthLabel')
healthLabel:setStyle('HealthLabel') healthLabel:setStyle('HealthLabel')
healthLabel:setText('0 / 0') healthLabel:setText('0 / 0')
local manaBar = UIProgressBar.create()
healthManaPanel:addChild(manaBar)
manaBar:setId('manaBar')
manaBar:setStyle('ManaBar')
local manaLabel = UILabel.create() local manaLabel = UILabel.create()
healthManaPanel:addChild(manaLabel) healthManaPanel:addChild(manaLabel)
manaLabel:setId('manaLabel') manaLabel:setId('manaLabel')
manaLabel:setStyle('ManaLabel') manaLabel:setStyle('ManaLabel')
manaLabel:setText('0 / 0') manaLabel:setText('0 / 0')
healthManaPanel:setHeight(healthLabel:getHeight() + manaLabel:getHeight()) healthManaPanel:setHeight(healthBar:getHeight() + manaBar:getHeight() + 4)
end end
function HealthMana.destroy() function HealthMana.destroy()
@ -31,11 +41,17 @@ end
function Game.onHealthChange(health, maxHealth) function Game.onHealthChange(health, maxHealth)
local label = healthManaPanel:getChildById('healthLabel') local label = healthManaPanel:getChildById('healthLabel')
label:setText(health .. ' / ' .. maxHealth) label:setText(health .. ' / ' .. maxHealth)
local healthBar = healthManaPanel:getChildById('healthBar')
healthBar:setPercent(health / maxHealth * 100)
end end
function Game.onManaChange(mana, maxMana) function Game.onManaChange(mana, maxMana)
local label = healthManaPanel:getChildById('manaLabel') local label = healthManaPanel:getChildById('manaLabel')
label:setText(mana .. ' / ' .. maxMana) label:setText(mana .. ' / ' .. maxMana)
local manaBar = healthManaPanel:getChildById('manaBar')
manaBar:setPercent(mana / maxMana * 100)
end end
connect(Game, { onLogin = HealthMana.create, connect(Game, { onLogin = HealthMana.create,

View File

@ -1,22 +1,36 @@
HealthBar < UIProgressBar
color: black
height: 15
background-color: red
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
ManaBar < UIProgressBar
color: black
height: 15
background-color: blue
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
HealthLabel < Label HealthLabel < Label
color: white color: white
background-color: red
align: center align: center
font: verdana-11px-monochrome font: verdana-11px-rounded
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.top: parent.top anchors.top: parent.top
image: /core_styles/images/empty_rect.png margin.top: 2
ManaLabel < Label ManaLabel < Label
color: white color: white
background-color: blue
align: center align: center
font: verdana-11px-monochrome font: verdana-11px-rounded
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
image: /core_styles/images/empty_rect.png margin.bottom: -1
UIWindow UIWindow
id: healthManaPanel id: healthManaPanel
@ -25,5 +39,4 @@ UIWindow
margin.left: 6 margin.left: 6
margin.right: 6 margin.right: 6
move policy: free updated move policy: free updated
image: /core_styles/images/empty_rect.png

View File

@ -1,56 +0,0 @@
Skills = {}
-- private variables
local skillWindow = nil
local skills = {"Fist Fighting", "Club Fighting", "Sword Fighting", "Axe Fighting", "Distance Fighting", "Shielding", "Fishing"}
-- public functions
function Skills.create()
skillWindow = loadUI("/skills/skills.otui", Game.gameRightPanel)
local skillPanel = skillWindow:getChildById('skillPanel')
-- create first widget cause of layout
local widget = UIWidget.create()
skillPanel:addChild(widget)
widget:setStyle('SkillFirstWidget')
-- create skills
for i=1,#skills,1 do
local nameLabel = UILabel.create()
skillPanel:addChild(nameLabel)
nameLabel:setStyle('SkillNameLabel')
nameLabel:setText(skills[i])
local levelLabel = UILabel.create()
skillPanel:addChild(levelLabel)
levelLabel:setStyle('SkillLevelLabel')
levelLabel:setId('skillLevelId' .. i)
levelLabel:setText('0')
local percentBar = UIProgressBar.create()
skillPanel:addChild(percentBar)
percentBar:setStyle('SkillPercentPanel')
percentBar:setId('skillPercentId' .. i)
end
end
function Skills.destroy()
skillWindow:destroy()
skillWindow = nil
end
-- hooked events
function Game.onSkillUpdate(id, level, percent)
local skillPanel = skillWindow:getChildById('skillPanel')
local levelLabel = skillPanel:getChildById('skillLevelId' .. (id + 1))
levelLabel:setText(level)
local percentBar = skillPanel:getChildById('skillPercentId' .. (id + 1))
percentBar:setPercent(percent)
percentBar:setTooltip("lalalalal2")
end
connect(Game, { onLogin = Skills.create,
onLogout = Skills.destroy })