diff --git a/game/modules/tome/data/talents/misc/inscriptions.lua b/game/modules/tome/data/talents/misc/inscriptions.lua index 4340e55301a0aa942f7215606fd703508aa7e430..a1b5ac78faf9df626c9375a35e5b19adaa058e67 100644 --- a/game/modules/tome/data/talents/misc/inscriptions.lua +++ b/game/modules/tome/data/talents/misc/inscriptions.lua @@ -639,7 +639,7 @@ newInscription{ is_spell = true, tactical = { MANA = 1 }, on_pre_use = function(self, t) - return self:knowTalent(self.T_MANA_POOL) + return self:knowTalent(self.T_MANA_POOL) and not self:hasEffect(self.EFF_MANASURGE) end, action = function(self, t) local data = self:getInscriptionData(t.short_name) diff --git a/game/modules/tome/data/talents/spells/arcane.lua b/game/modules/tome/data/talents/spells/arcane.lua index e38fa97b36cd391428600f079039f880775f50e3..4eaec45237ef07f68c8e8d842feaff8efc6bc0ca 100644 --- a/game/modules/tome/data/talents/spells/arcane.lua +++ b/game/modules/tome/data/talents/spells/arcane.lua @@ -97,16 +97,14 @@ newTalent{ type = {"spell/arcane", 3}, require = spells_req3, points = 5, - random_ego = "utility", mana = 0, - cooldown = 40, + cooldown = 25, tactical = { MANA = 3 }, - getManaRestoration = function(self, t) return self:combatTalentSpellDamage(t, 10, 20) end, + getManaRestoration = function(self, t) return 5 + self:combatTalentSpellDamage(t, 10, 20) end, + on_pre_use = function(self, t) return not self:hasEffect(self.EFF_MANASURGE) end, action = function(self, t) - if not self:hasEffect(self.EFF_MANAFLOW) then - self:setEffect(self.EFF_MANAFLOW, 10, {power=t.getManaRestoration(self, t)}) - game:playSoundNear(self, "talents/arcane") - end + self:setEffect(self.EFF_MANASURGE, 10, {power=t.getManaRestoration(self, t)}) + game:playSoundNear(self, "talents/arcane") return true end, info = function(self, t) diff --git a/game/modules/tome/data/timed_effects.lua b/game/modules/tome/data/timed_effects.lua index 19ea614da40975360a7fc13fbae7c9fa4036fafa..c2718cea6f6d5d895c9052f2e7658283e8a9c682 100644 --- a/game/modules/tome/data/timed_effects.lua +++ b/game/modules/tome/data/timed_effects.lua @@ -109,35 +109,6 @@ newEffect{ end, } -newEffect{ - name = "MANAFLOW", - desc = "Manaflow", - long_desc = function(self, eff) return ("The mana surge engulfs the target, regenerating %0.2f mana per turn."):format(eff.power) end, - type = "magical", - status = "beneficial", - parameters = { power=10 }, - on_gain = function(self, err) return "#Target# starts to surge mana.", "+Manaflow" end, - on_lose = function(self, err) return "#Target# stops surging mana.", "-Manaflow" end, - on_merge = function(self, old_eff, new_eff) - -- Merge the mana - local olddam = old_eff.power * old_eff.dur - local newdam = new_eff.power * new_eff.dur - local dur = math.ceil((old_eff.dur + new_eff.dur) / 2) - old_eff.dur = dur - old_eff.power = (olddam + newdam) / dur - - self:removeTemporaryValue("mana_regen", old_eff.tmpid) - old_eff.tmpid = self:addTemporaryValue("mana_regen", old_eff.power) - return old_eff - end, - activate = function(self, eff) - eff.tmpid = self:addTemporaryValue("mana_regen", eff.power) - end, - deactivate = function(self, eff) - self:removeTemporaryValue("mana_regen", eff.tmpid) - end, -} - newEffect{ name = "MANASURGE", desc = "Surging mana", @@ -4111,4 +4082,3 @@ newEffect{ DamageType:get(DamageType.ARCANE).projector(eff.src, self.x, self.y, DamageType.ARCANE, dam) end, } -