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

Fixed Meditation making free sustains

git-svn-id: http://svn.net-core.org/repos/t-engine4@1758 51575b47-30f0-44d4-a5cc-537603b46e54
parent 2f0a42af
No related branches found
No related tags found
No related merge requests found
......@@ -1201,7 +1201,7 @@ function _M:preUseTalent(ab, silent, fake)
-- But it is not affected by fatigue
if (ab.equilibrium or ab.sustain_equilibrium) and not fake then
-- Fail ? lose energy and 1/10 more equilibrium
if not self:equilibriumChance(ab.equilibrium or ab.sustain_equilibrium) then
if not self:attr("no_equilibrium_fail") and not self:equilibriumChance(ab.equilibrium or ab.sustain_equilibrium) then
if not silent then game.logPlayer(self, "You fail to use %s due to your equilibrium!", ab.name) end
self:incEquilibrium((ab.equilibrium or ab.sustain_equilibrium) / 10)
self:useEnergy()
......@@ -1350,7 +1350,9 @@ function _M:forceUseTalent(t, def)
local oldenergy = self.energy.value
if def.ignore_energy then self.energy.value = 10000 end
if def.no_equilibrium_fail then self:attr("no_equilibrium_fail", 1) end
self:useTalent(t, nil, def.force_level, def.ignore_cd, def.force_target)
if def.no_equilibrium_fail then self:attr("no_equilibrium_fail", -1) end
if def.ignore_energy then
game.paused = oldpause
......
......@@ -42,14 +42,14 @@ start_fyrk = function(self)
game.zone.on_turn = nil
game.level.turn_counter = nil
local alatar, pallando
local elandar, argoniel
for uid, e in pairs(game.level.entities) do
if e.define_as == "ELANDAR" then alatar = e
elseif e.define_as == "ADRONIEL" then pallando = e end
if e.define_as == "ELANDAR" then elandar = e
elseif e.define_as == "ARGONIEL" then argoniel = e end
end
if alatar then game.level:removeEntity(alatar) alatar.dead = true end
if pallando then game.level:removeEntity(pallando) pallando.dead = true end
if elandar then game.level:removeEntity(elandar) elandar.dead = true end
if argoniel then game.level:removeEntity(argoniel) argoniel.dead = true end
local portal = game.zone:makeEntityByName(game.level, "grid", "FAR_EAST_PORTAL")
game.zone:addEntity(game.level, portal, "grid", 6, 455)
......
......@@ -36,8 +36,29 @@ newTalent{
game.logPlayer(self, "There's too much going on for you to use Meditation right now!")
return
end
-- Deactivate all sustains to get a real reduction
local reset = {}
for tid, act in pairs(self.sustain_talents) do
if act then reset[#reset+1] = tid end
end
for i, tid in ipairs(reset) do
self:forceUseTalent(tid, {ignore_energy=true, ignore_cd=true, no_equilibrium_fail=true})
end
self:setEffect(self.EFF_STUNNED, 17 - self:getTalentLevel(t), {})
self:incEquilibrium(-10 - self:getWil(50) * self:getTalentLevel(t))
-- Reactive talents
for i, tid in ipairs(reset) do
local t = self:getTalentFromId(tid)
if t.no_sustain_autoreset then
game.logPlayer(self, "#LIGHT_BLUE#Warning: Talent %s is no more sustained.", t.name)
else
self:forceUseTalent(tid, {ignore_energy=true, ignore_cd=true, no_equilibrium_fail=true})
end
end
game:playSoundNear(self, "talents/spell_generic2")
return true
end,
......
No preview for this file type
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