ToME: the Tales of Maj'Eyal

[1.6 & 1.7] Disruption Shield granting invulnerability
Page 1 of 1

Author:  Tradewind_Rider [ Sat Oct 17, 2020 3:57 pm ]
Post subject:  [1.6 & 1.7] Disruption Shield granting invulnerability

Hey, hi!

I played some Archmage and I made an interesting madness build,
but I decided to call for a mechanism change on what I used.

My main "problem" is with the new 1.6 Disruption Shield, what can offer
almost total invulnerability for the player even on Madness, if the player
finds and uses the talents & items that is required to reach demi-God mode.

The main issue is with:

function _M:getTalentCooldown(t, base)
   if not t.cooldown then return end
   local cd = t.cooldown
   if type(cd) == "function" then cd = cd(self, t) end
   if not cd then return end

   -- Can not touch this cooldown
   if t.fixed_cooldown or base then return cd end

   if t.type[1] == "inscriptions/infusions" then
      local eff = self:hasEffect(self.EFF_INFUSION_COOLDOWN)
      if eff and eff.power then cd = cd + eff.power end
   elseif t.type[1] == "inscriptions/runes" then
      local eff = self:hasEffect(self.EFF_RUNE_COOLDOWN)
      if eff and eff.power then cd = cd + eff.power end
   elseif t.type[1] == "inscriptions/taints" then
      local eff = self:hasEffect(self.EFF_TAINT_COOLDOWN)
      if eff and eff.power then cd = cd + eff.power end
   elseif self:attr("arcane_cooldown_divide") and (t.type[1] == "spell/arcane" or t.type[1] == "spell/aether") then
      cd = math.ceil(cd / self.arcane_cooldown_divide)

   if self.talent_cd_reduction[] then cd = cd - self.talent_cd_reduction[] end
   if self.talent_cd_reduction.all then cd = cd - self.talent_cd_reduction.all end
   if self.talent_cd_reduction.allpct then cd = cd - math.ceil(self.talent_cd_reduction.allpct * cd) end

This means, in cooldown reduction, the apply order is:

1, Arcane Cooldown Divide
2, Cooldown reduction from items
3, Spell cooldown reduction

So, i activate Aether Avatar, what makes Disruption Shield's coldown from 30 to 10

And i wear Hat of the Arcane Understanding, that makes the cooldown of Disruption Shield to 0

I played as a ghoul (for flat damage cap)
And i played as a Technomancer with Occult Technomancy (for ~350 mana regen per turn
and for the nice dmg + utility that offers ofc)

I could maintain Aether Avatar continously so I had a 0 turn cooldown instant shield all the time.
This shield is strong enough (paired with ghoul resilience), but it also stronger because 50% of my
mana is also functioning as a damage reductor.

But i had ~350 mana regen per turn, and any time, my damage shield was weakened, i could just
switch off and on instantly to regain it's full power.
Any time, my shield crumbled, I just reactivate it again, and next turn i will have more than 50% mana
due to my 350 mana regen.

So, this combo is really nice, really strong, but i think, the order in the code,
how cooldown reductors are applied should be changed to prevent this to happen.

Author:  darkgod [ Thu Nov 05, 2020 5:09 pm ]
Post subject:  Re: [1.6 & 1.7] Disruption Shield granting invulnerability

"fixed" :)

Page 1 of 1 All times are UTC
Powered by phpBB® Forum Software © phpBB Group