Skip to content
Snippets Groups Projects
Commit c7cad4c9 authored by dg's avatar dg
Browse files

Damage shields show up as a bar on the left pane

git-svn-id: http://svn.net-core.org/repos/t-engine4@3911 51575b47-30f0-44d4-a5cc-537603b46e54
parent faf6462a
No related branches found
No related tags found
No related merge requests found
...@@ -226,6 +226,16 @@ function _M:display() ...@@ -226,6 +226,16 @@ function _M:display()
self:mouseTooltip(self.TOOLTIP_LIFE, self:makeTextureBar("#c00000#Life:", nil, player.life, player.max_life, player.life_regen * util.bound((player.healing_factor or 1), 0, 2.5), x, h, 255, 255, 255, colors.DARK_RED, colors.VERY_DARK_RED)) h = h + self.font_h self:mouseTooltip(self.TOOLTIP_LIFE, self:makeTextureBar("#c00000#Life:", nil, player.life, player.max_life, player.life_regen * util.bound((player.healing_factor or 1), 0, 2.5), x, h, 255, 255, 255, colors.DARK_RED, colors.VERY_DARK_RED)) h = h + self.font_h
local shield, max_shield = 0, 0
if player:attr("time_shield") then shield = shield + player.time_shield_absorb max_shield = max_shield + player.time_shield_absorb_max end
if player:attr("damage_shield") then shield = shield + player.damage_shield_absorb max_shield = max_shield + player.damage_shield_absorb_max end
if player:attr("displacement_shield") then shield = shield + player.displacement_shield max_shield = max_shield + player.displacement_shield_max end
if player:attr("repulsion_shield") then shield = shield + player.repulsion_shield_absorb max_shield = max_shield + player.repulsion_shield_absorb_max end
if player:attr("damage_shunt") then shield = shield + player.damage_shunt_absorb max_shield = max_shield + player.damage_shunt_absorb_max end
if max_shield then
self:mouseTooltip(self.TOOLTIP_DAMAGE_SHIELD, self:makeTextureBar("#WHITE#Shield:", nil, shield, max_shield, nil, x, h, 255, 255, 255, {r=colors.GREY.r / 3, g=colors.GREY.g / 3, b=colors.GREY.b / 3}, {r=colors.GREY.r / 6, g=colors.GREY.g / 6, b=colors.GREY.b / 6})) h = h + self.font_h
end
if player:knowTalent(player.T_STAMINA_POOL) then if player:knowTalent(player.T_STAMINA_POOL) then
self:mouseTooltip(self.TOOLTIP_STAMINA, self:makeTextureBar("#ffcc80#Stamina:", nil, player:getStamina(), player.max_stamina, player.stamina_regen, x, h, 255, 255, 255, {r=0xff / 3, g=0xcc / 3, b=0x80 / 3}, {r=0xff / 6, g=0xcc / 6, b=0x80 / 6})) h = h + self.font_h self:mouseTooltip(self.TOOLTIP_STAMINA, self:makeTextureBar("#ffcc80#Stamina:", nil, player:getStamina(), player.max_stamina, player.stamina_regen, x, h, 255, 255, 255, {r=0xff / 3, g=0xcc / 3, b=0x80 / 3}, {r=0xff / 6, g=0xcc / 6, b=0x80 / 6})) h = h + self.font_h
end end
......
...@@ -42,6 +42,11 @@ If it reaches below zero you die. ...@@ -42,6 +42,11 @@ If it reaches below zero you die.
Death is usually permanent so beware! Death is usually permanent so beware!
It is increased by Constitution.]] It is increased by Constitution.]]
TOOLTIP_DAMAGE_SHIELD = [[#GOLD#Damage shields#LAST#
Various talents, items and powers can grant you a temporary damage shield.
They all work in slightly different maners, but usualy will absorb some damage before crumbling down.
]]
TOOLTIP_UNNATURAL_BODY = [[#GOLD#Unnatrual Body Regeneration#LAST# TOOLTIP_UNNATURAL_BODY = [[#GOLD#Unnatrual Body Regeneration#LAST#
Your Unnatural Body talent allows you to feed of the life of your fallen foes. Your Unnatural Body talent allows you to feed of the life of your fallen foes.
Each time you kill a creature your maximum regeneration pool increases and each turn some of it transfers into your own life.]] Each time you kill a creature your maximum regeneration pool increases and each turn some of it transfers into your own life.]]
......
...@@ -1132,6 +1132,7 @@ newEffect{ ...@@ -1132,6 +1132,7 @@ newEffect{
if self:attr("shield_factor") then eff.power = eff.power * (100 + self:attr("shield_factor")) / 100 end if self:attr("shield_factor") then eff.power = eff.power * (100 + self:attr("shield_factor")) / 100 end
if self:attr("shield_dur") then eff.dur = eff.dur + self:attr("shield_dur") end if self:attr("shield_dur") then eff.dur = eff.dur + self:attr("shield_dur") end
self.displacement_shield = eff.power self.displacement_shield = eff.power
self.displacement_shield_max = eff.power
self.displacement_shield_chance = eff.chance self.displacement_shield_chance = eff.chance
--- Warning there can be only one time shield active at once for an actor --- Warning there can be only one time shield active at once for an actor
self.displacement_shield_target = eff.target self.displacement_shield_target = eff.target
...@@ -1149,6 +1150,7 @@ newEffect{ ...@@ -1149,6 +1150,7 @@ newEffect{
deactivate = function(self, eff) deactivate = function(self, eff)
self:removeParticles(eff.particle) self:removeParticles(eff.particle)
self.displacement_shield = nil self.displacement_shield = nil
self.displacement_shield_max = nil
self.displacement_shield_chance = nil self.displacement_shield_chance = nil
self.displacement_shield_target = nil self.displacement_shield_target = nil
end, end,
...@@ -1172,12 +1174,14 @@ newEffect{ ...@@ -1172,12 +1174,14 @@ newEffect{
eff.tmpid = self:addTemporaryValue("damage_shield", eff.power) eff.tmpid = self:addTemporaryValue("damage_shield", eff.power)
--- Warning there can be only one time shield active at once for an actor --- Warning there can be only one time shield active at once for an actor
self.damage_shield_absorb = eff.power self.damage_shield_absorb = eff.power
self.damage_shield_absorb_max = eff.power
eff.particle = self:addParticles(Particles.new("damage_shield", 1)) eff.particle = self:addParticles(Particles.new("damage_shield", 1))
end, end,
deactivate = function(self, eff) deactivate = function(self, eff)
self:removeParticles(eff.particle) self:removeParticles(eff.particle)
self:removeTemporaryValue("damage_shield", eff.tmpid) self:removeTemporaryValue("damage_shield", eff.tmpid)
self.damage_shield_absorb = nil self.damage_shield_absorb = nil
self.damage_shield_absorb_max = nil
end, end,
} }
...@@ -1199,6 +1203,7 @@ newEffect{ ...@@ -1199,6 +1203,7 @@ newEffect{
eff.tmpid = self:addTemporaryValue("time_shield", eff.power) eff.tmpid = self:addTemporaryValue("time_shield", eff.power)
--- Warning there can be only one time shield active at once for an actor --- Warning there can be only one time shield active at once for an actor
self.time_shield_absorb = eff.power self.time_shield_absorb = eff.power
self.time_shield_absorb_max = eff.power
eff.particle = self:addParticles(Particles.new("time_shield", 1)) eff.particle = self:addParticles(Particles.new("time_shield", 1))
end, end,
deactivate = function(self, eff) deactivate = function(self, eff)
...@@ -1211,6 +1216,7 @@ newEffect{ ...@@ -1211,6 +1216,7 @@ newEffect{
self:removeTemporaryValue("time_shield", eff.tmpid) self:removeTemporaryValue("time_shield", eff.tmpid)
self.time_shield_absorb = nil self.time_shield_absorb = nil
self.time_shield_absorb_max = 0
end, end,
} }
...@@ -3428,11 +3434,14 @@ newEffect{ ...@@ -3428,11 +3434,14 @@ newEffect{
eff.kbid = self:addTemporaryValue("on_melee_hit", {[DamageType.REPULSION]= eff.power}) eff.kbid = self:addTemporaryValue("on_melee_hit", {[DamageType.REPULSION]= eff.power})
eff.particle = self:addParticles(Particles.new("gravity_focus", 1)) eff.particle = self:addParticles(Particles.new("gravity_focus", 1))
self.repulsion_shield_absorb = eff.power self.repulsion_shield_absorb = eff.power
self.repulsion_shield_absorb_max = eff.power
end, end,
deactivate = function(self, eff) deactivate = function(self, eff)
self:removeTemporaryValue("repulsion_shield", eff.tmpid) self:removeTemporaryValue("repulsion_shield", eff.tmpid)
self:removeTemporaryValue("on_melee_hit", eff.kbid) self:removeTemporaryValue("on_melee_hit", eff.kbid)
self:removeParticles(eff.particle) self:removeParticles(eff.particle)
self.repulsion_shield_absorb = nil
self.repulsion_shield_absorb_max = nil
end, end,
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment