diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index b2f31e52e6f2400d124d2cc864133065cc919758..9f6dcc5a9524d789a361dd081455d9abbf5f0800 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -3634,9 +3634,8 @@ function _M:preUseTalent(ab, silent, fake) if ab.on_pre_use and not (ab.mode == "sustained" and self:isTalentActive(ab.id)) and not ab.on_pre_use(self, ab, silent, fake) then return false end if self:attr("use_only_arcane") then - if self:attr("use_only_arcane") >= 2 then if ab.type[1] ~= "spell/arcane" and ab.type[1] ~= "spell/aether" and ab.type[1] ~= "spell/aegis" then return false end - elseif self:attr("use_only_arcane") >= 1 then if ab.type[1] ~= "spell/arcane" and ab.type[1] ~= "spell/aether" then return false end - end + if not ab.use_only_arcane then return false end + if self:attr("use_only_arcane") < ab.use_only_arcane then return false end end -- Cant heal diff --git a/game/modules/tome/data/talents/spells/aegis.lua b/game/modules/tome/data/talents/spells/aegis.lua index 0cbddf6c265d9cfcb5b5182b5365c65b23d67d3b..a58acd4ff4b49ca6d4a8d3cc7fee3a8424dbc740 100644 --- a/game/modules/tome/data/talents/spells/aegis.lua +++ b/game/modules/tome/data/talents/spells/aegis.lua @@ -24,6 +24,7 @@ newTalent{ points = 5, mana = 25, cooldown = 16, + use_only_arcane = 2, tactical = { HEAL = 2 }, getHeal = function(self, t) return 40 + self:combatTalentSpellDamage(t, 10, 520) end, is_heal = true, @@ -49,6 +50,7 @@ newTalent{ points = 5, mode = "sustained", sustain_mana = 40, + use_only_arcane = 2, cooldown = 14, tactical = { BUFF = 2 }, getDur = function(self, t) return self:getTalentLevel(t) >= 5 and 1 or 0 end, @@ -87,6 +89,7 @@ newTalent{ points = 5, mode = "sustained", sustain_mana = 50, + use_only_arcane = 2, cooldown = 30, tactical = { BUFF = 2 }, getShield = function(self, t) return 20 + self:combatTalentSpellDamage(t, 5, 500) / 10 end, @@ -119,6 +122,7 @@ newTalent{ points = 5, mana = 50, cooldown = 25, + use_only_arcane = 2, no_energy = true, tactical = { HEAL = 2 }, getShield = function(self, t) return 40 + self:combatTalentSpellDamage(t, 5, 500) / 10 end, diff --git a/game/modules/tome/data/talents/spells/aether.lua b/game/modules/tome/data/talents/spells/aether.lua index 7ed4ecd4d752c6574baf9a0461a9aa5a79390809..68164c1e4181b9d91a4f840e8f703bd712265d75 100644 --- a/game/modules/tome/data/talents/spells/aether.lua +++ b/game/modules/tome/data/talents/spells/aether.lua @@ -49,6 +49,7 @@ newTalent{ mana = 20, points = 5, cooldown = 12, + use_only_arcane = 1, direct_hit = true, range = 6, requires_target = true, @@ -130,6 +131,7 @@ newTalent{ random_ego = "attack", mana = 50, cooldown = 8, + use_only_arcane = 1, tactical = { ATTACK = { ARCANE = 2 } }, range = 7, radius = 2, @@ -172,6 +174,7 @@ newTalent{ cooldown = function(self, t) local rcd = math.floor(40 - self:getTalentLevel(t) * 3) return self:attr("arcane_cooldown_divide") and rcd * self.arcane_cooldown_divide or rcd end, range = 10, direct_hit = true, + use_only_arcane = 1, requires_target = true, no_energy = true, tactical = { BUFF = 2 }, @@ -196,6 +199,7 @@ newTalent{ mode = "sustained", sustain_mana = 50, cooldown = 30, + use_only_arcane = 1, tactical = { BUFF = 2 }, getDamageIncrease = function(self, t) return self:getTalentLevelRaw(t) * 2 end, getResistPenalty = function(self, t) return self:getTalentLevelRaw(t) * 10 end, diff --git a/game/modules/tome/data/talents/spells/arcane.lua b/game/modules/tome/data/talents/spells/arcane.lua index 855dc24ddaebb31534160eb5a4fae80cc566240c..a3c76718dff9d6d6cc0349f8d8f9c367f6a9a6a3 100644 --- a/game/modules/tome/data/talents/spells/arcane.lua +++ b/game/modules/tome/data/talents/spells/arcane.lua @@ -27,6 +27,7 @@ newTalent{ cooldown = 30, tactical = { BUFF = 2 }, spellpower_increase = { 5, 9, 14, 17, 20 }, + use_only_arcane = 1, getSpellpowerIncrease = function(self, t) local v = t.spellpower_increase[self:getTalentLevelRaw(t)] if v then return v else return 20 + (self:getTalentLevelRaw(t) - 5) * 2 end @@ -58,6 +59,7 @@ newTalent{ random_ego = "attack", mana = 10, cooldown = 3, + use_only_arcane = 1, tactical = { ATTACK = { ARCANE = 2 } }, range = 10, direct_hit = function(self, t) if self:getTalentLevel(t) >= 3 then return true else return false end end, @@ -99,6 +101,7 @@ newTalent{ points = 5, mana = 35, cooldown = 12, + use_only_arcane = 1, range = 10, direct_hit = true, reflectable = true, @@ -135,6 +138,7 @@ newTalent{ mode = "sustained", cooldown = 30, sustain_mana = 10, + use_only_arcane = 1, no_energy = true, tactical = { MANA = 3, DEFEND = 2, }, getManaRatio = function(self, t) return math.max(3 - self:combatTalentSpellDamage(t, 10, 200) / 100, 0.5) * (100 - util.bound(self:attr("shield_factor") or 0, 0, 70)) / 100 end,