diff --git a/game/engines/default/engine/interface/ActorTemporaryEffects.lua b/game/engines/default/engine/interface/ActorTemporaryEffects.lua index 59741e447ba85f5f1f8918641ea67b9e7622b9ce..e9871e211efbb974050878ed73192e3adeb737bc 100644 --- a/game/engines/default/engine/interface/ActorTemporaryEffects.lua +++ b/game/engines/default/engine/interface/ActorTemporaryEffects.lua @@ -133,9 +133,10 @@ function _M:setEffect(eff_id, dur, p, silent) local ret, fly = ed.on_gain(self, p) if not silent and not had then if ret then - game.logSeen(self, ret:gsub("#Target#", self.name:capitalize()):gsub("#target#", self.name)) + game.logSeen(self, ret:gsub("#Target#", self.name:capitalize()):gsub("#target#", self.name):gsub("#himher#", self.female and "her" or "him")) end if fly and game.flyers and self.x and self.y and game.level.map.seens(self.x, self.y) then + if fly == true then fly = "+"..ed.desc end local sx, sy = game.level.map:getTileToScreen(self.x, self.y) if game.level.map.seens(self.x, self.y) then game.flyers:add(sx, sy, 20, (rng.range(0,2)-1) * 0.5, -3, fly, {255,100,80}) end end @@ -175,13 +176,15 @@ function _M:removeEffect(eff, silent, force) if _M.tempeffect_def[eff].no_remove and not force then return end self.tmp[eff] = nil self.changed = true - if _M.tempeffect_def[eff].on_lose then - local ret, fly = _M.tempeffect_def[eff].on_lose(self, p) + local ed = _M.tempeffect_def[eff] + if ed.on_lose then + local ret, fly = ed.on_lose(self, p) if not silent then if ret then - game.logSeen(self, ret:gsub("#Target#", self.name:capitalize()):gsub("#target#", self.name)) + game.logSeen(self, ret:gsub("#Target#", self.name:capitalize()):gsub("#target#", self.name):gsub("#himher#", self.female and "her" or "him")) end if fly and game.flyers and self.x and self.y then + if fly == true then fly = "-"..ed.desc end local sx, sy = game.level.map:getTileToScreen(self.x, self.y) if game.level.map.seens(self.x, self.y) then game.flyers:add(sx, sy, 20, (rng.range(0,2)-1) * 0.5, -3, fly, {255,100,80}) end end @@ -197,7 +200,6 @@ function _M:removeEffect(eff, silent, force) self:removeParticles(p.__tmpparticles[i]) end end - local ed = _M.tempeffect_def[eff] if ed.deactivate then ed.deactivate(self, p, ed) end if ed.lists then local lists = ed.lists diff --git a/game/engines/default/engine/resolvers.lua b/game/engines/default/engine/resolvers.lua index 8f17f5ad8edcfc9b0345ae9669e8bd5aed367fd8..6df70b11de37d61a16f5541bd42edd25faa5a42b 100644 --- a/game/engines/default/engine/resolvers.lua +++ b/game/engines/default/engine/resolvers.lua @@ -88,7 +88,7 @@ function resolvers.calc.talents(t, e) level = level.base lvls = true end --- print("Talent resolver for", e.name, ":", tid, "=>", level) + -- print("Talent resolver for", e.name, ":", tid, "=>", level) e:learnTalent(tid, true, level) end if lvls then e._levelup_talents = levelup_talents end diff --git a/game/modules/tome/class/interface/Combat.lua b/game/modules/tome/class/interface/Combat.lua index 006f1e98a3a09ee7423d45031c7dc3202410f10d..cec55dc5bb2b7b365aa48586e439ea5460c5385b 100644 --- a/game/modules/tome/class/interface/Combat.lua +++ b/game/modules/tome/class/interface/Combat.lua @@ -1565,6 +1565,10 @@ end function _M:combatPhysicalpower(mod, weapon, add) mod = mod or 1 add = add or 0 + + if self.combat_generic_power then + add = add + self.combat_generic_power + end if self:knowTalent(Talents.T_ARCANE_DESTRUCTION) then add = add + self:combatSpellpower() * self:callTalent(Talents.T_ARCANE_DESTRUCTION, "getSPMult") end @@ -1612,6 +1616,10 @@ end function _M:combatSpellpower(mod, add) mod = mod or 1 add = add or 0 + + if self.combat_generic_power then + add = add + self.combat_generic_power + end if self:knowTalent(self.T_ARCANE_CUNNING) then add = add + self:callTalent(self.T_ARCANE_CUNNING,"getSpellpower") * self:getCun() / 100 end @@ -1922,6 +1930,10 @@ function _M:combatMindpower(mod, add) mod = mod or 1 add = add or 0 + if self.combat_generic_power then + add = add + self.combat_generic_power + end + if self:knowTalent(self.T_SUPERPOWER) then add = add + 50 * self:getStr() / 100 end diff --git a/game/modules/tome/data/timed_effects/mental.lua b/game/modules/tome/data/timed_effects/mental.lua index 1b7938911e495382fb9f7078cf791f7750b79073..4b1e4c971438d485bfbcf1c90460db1acf6ed055 100644 --- a/game/modules/tome/data/timed_effects/mental.lua +++ b/game/modules/tome/data/timed_effects/mental.lua @@ -3175,7 +3175,7 @@ newEffect{ self.damage_shield_absorb = eff.power self.damage_shield_absorb_max = eff.power if core.shader.active(4) then - eff.particle = self:addParticles(Particles.new("shader_shield", 1, {size_factor=1.4, img="shield3"}, {type="runicshield", ellipsoidalFactor=1, time_factor=-10000, llpow=1, aadjust=7, bubbleColor=colors.hex1alpha"9fe836a0", auraColor=colors.hex1alpha"36bce8da"})) + eff.particle = self:addParticles(Particles.new("shader_shield", 1, {a=eff.shield_transparency or 1, size_factor=1.4, img="shield3"}, {type="runicshield", ellipsoidalFactor=1, time_factor=-10000, llpow=1, aadjust=7, bubbleColor=colors.hex1alpha"9fe836a0", auraColor=colors.hex1alpha"36bce8da"})) else eff.particle = self:addParticles(Particles.new("damage_shield", 1)) end