Commit 5e702c84092abcec783fc08944a169a6b4c800d2
Merge branch 'force_talent_no_break' into 'master'
forceUseTalent will not break things like movement infusion and won't be distrubed by confusion See merge request !728
Showing
2 changed files
with
10 additions
and
6 deletions
@@ -1179,6 +1179,10 @@ function _M:getCurrentTalentMode() | @@ -1179,6 +1179,10 @@ function _M:getCurrentTalentMode() | ||
1179 | return self._temp_data and self._temp_data.current_talent_mode and self._temp_data.current_talent_mode[1] or "none" | 1179 | return self._temp_data and self._temp_data.current_talent_mode and self._temp_data.current_talent_mode[1] or "none" |
1180 | end | 1180 | end |
1181 | 1181 | ||
1182 | +function _M:getCurrentTalentModeLast() | ||
1183 | + return self._temp_data and self._temp_data.current_talent_mode and self._temp_data.current_talent_mode[#self._temp_data.current_talent_mode] or "none" | ||
1184 | +end | ||
1185 | + | ||
1182 | function _M:setCurrentTalentMode(mode, tid) | 1186 | function _M:setCurrentTalentMode(mode, tid) |
1183 | if not self._temp_data then self._temp_data = {} end | 1187 | if not self._temp_data then self._temp_data = {} end |
1184 | if not self._temp_data.current_talent_mode then self._temp_data.current_talent_mode = {} end | 1188 | if not self._temp_data.current_talent_mode then self._temp_data.current_talent_mode = {} end |
@@ -5920,7 +5920,7 @@ function _M:preUseTalent(ab, silent, fake, ignore_ressources) | @@ -5920,7 +5920,7 @@ function _M:preUseTalent(ab, silent, fake, ignore_ressources) | ||
5920 | end | 5920 | end |
5921 | if self:fireTalentCheck("callbackOnTalentPre", ab, silent, fake, ignore_ressources) then return false end | 5921 | if self:fireTalentCheck("callbackOnTalentPre", ab, silent, fake, ignore_ressources) then return false end |
5922 | 5922 | ||
5923 | - if not ab.never_fail then | 5923 | + if self:getCurrentTalentModeLast() ~= "forced" and not ab.never_fail then |
5924 | -- Confused ? lose a turn! | 5924 | -- Confused ? lose a turn! |
5925 | if self:attr("confused") and (ab.mode ~= "sustained" or not self:isTalentActive(ab.id)) and util.getval(ab.no_energy, self, ab) ~= true and not fake and not self:attr("force_talent_ignore_ressources") then | 5925 | if self:attr("confused") and (ab.mode ~= "sustained" or not self:isTalentActive(ab.id)) and util.getval(ab.no_energy, self, ab) ~= true and not fake and not self:attr("force_talent_ignore_ressources") then |
5926 | if rng.percent(util.bound(self:attr("confused"), 0, 50)) then | 5926 | if rng.percent(util.bound(self:attr("confused"), 0, 50)) then |
@@ -6482,7 +6482,7 @@ function _M:postUseTalent(ab, ret, silent) | @@ -6482,7 +6482,7 @@ function _M:postUseTalent(ab, ret, silent) | ||
6482 | end | 6482 | end |
6483 | 6483 | ||
6484 | -- break stealth, channels, etc... | 6484 | -- break stealth, channels, etc... |
6485 | - if not self.turn_procs.resetting_talents then | 6485 | + if self:getCurrentTalentModeLast() ~= "forced" and not self.turn_procs.resetting_talents then |
6486 | -- Cancel stealth! | 6486 | -- Cancel stealth! |
6487 | if not util.getval(ab.no_break_stealth, self, ab) and util.getval(ab.no_energy, self, ab) ~= true then self:breakStealth() end | 6487 | if not util.getval(ab.no_break_stealth, self, ab) and util.getval(ab.no_energy, self, ab) ~= true then self:breakStealth() end |
6488 | 6488 | ||
@@ -6502,11 +6502,11 @@ function _M:postUseTalent(ab, ret, silent) | @@ -6502,11 +6502,11 @@ function _M:postUseTalent(ab, ret, silent) | ||
6502 | end) | 6502 | end) |
6503 | end | 6503 | end |
6504 | end | 6504 | end |
6505 | - end | ||
6506 | 6505 | ||
6507 | - if not ab.innate and self:hasEffect(self.EFF_RAMPAGE) and ab.id ~= self.T_RAMPAGE and ab.id ~= self.T_SLAM then | ||
6508 | - local eff = self:hasEffect(self.EFF_RAMPAGE) | ||
6509 | - value = self.tempeffect_def[self.EFF_RAMPAGE].do_postUseTalent(self, eff, value) | 6506 | + if not ab.innate and self:hasEffect(self.EFF_RAMPAGE) and ab.id ~= self.T_RAMPAGE and ab.id ~= self.T_SLAM then |
6507 | + local eff = self:hasEffect(self.EFF_RAMPAGE) | ||
6508 | + value = self.tempeffect_def[self.EFF_RAMPAGE].do_postUseTalent(self, eff, value) | ||
6509 | + end | ||
6510 | end | 6510 | end |
6511 | 6511 | ||
6512 | if ab.is_summon and ab.is_nature and self:attr("heal_on_nature_summon") then | 6512 | if ab.is_summon and ab.is_nature and self:attr("heal_on_nature_summon") then |
-
Please register or login to post a comment