diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 5ecd3264e935e7018b18ba82f3d6d2769865bce6..a0fc6fc5e57f933a1c8c393804c6f6aebd4e6251 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -851,6 +851,7 @@ function _M:onTakeHit(value, src) if self:attr("time_shield") then -- Absorb damage into the time shield + self.time_shield_absorb = self.time_shield_absorb or 0 if value <= self.time_shield_absorb then self.time_shield_absorb = self.time_shield_absorb - value value = 0 @@ -868,6 +869,7 @@ function _M:onTakeHit(value, src) if self:attr("damage_shield") then -- Absorb damage into the shield + self.damage_shield_absorb = self.damage_shield_absorb or 0 if value <= self.damage_shield_absorb then self.damage_shield_absorb = self.damage_shield_absorb - value value = 0 diff --git a/game/modules/tome/class/generator/actor/Arena.lua b/game/modules/tome/class/generator/actor/Arena.lua index 7f9ba71ac8d818658455693912d1c57b73771748..d3887a073e5b443b09487a1a57d14376e8f1c66b 100644 --- a/game/modules/tome/class/generator/actor/Arena.lua +++ b/game/modules/tome/class/generator/actor/Arena.lua @@ -114,14 +114,14 @@ function _M:generateMiniboss(e) m:setTarget(game.player) if m.on_added then m.on_added_orig = m.on_added end m.on_added = function (self) - if m.on_added_orig then m.on_added_orig(self) end + if self.on_added_orig then self.on_added_orig(self) end game.level.arena.danger = game.level.arena.danger + self.arenaPower game.level.map:particleEmitter(self.x, self.y, 1, "teleport") game.level.arena.pinchValue = game.level.arena.pinchValue + self.arenaPower end if m.on_die then m.on_die_orig = m.on_die end m.on_die = function (self) - if m.on_die_orig then m.on_die_orig(self) end + if self.on_die_orig then self.on_die_orig(self) end game.level.arena.danger = game.level.arena.danger - self.arenaPower game.level.arena.bonus = game.level.arena.bonus + self.arenaScore game.level.arena.raiseRank(self.arenaRank) diff --git a/game/modules/tome/data/birth/classes/psionic.lua b/game/modules/tome/data/birth/classes/psionic.lua index 36d554ae5ac4ccdca29631feeb01c22e12a0339c..4974f9db8e15fd625b67d1518d929b45493391ca 100644 --- a/game/modules/tome/data/birth/classes/psionic.lua +++ b/game/modules/tome/data/birth/classes/psionic.lua @@ -81,8 +81,10 @@ newBirthDescriptor{ local gs = game.zone:makeEntity(game.level, "object", {type="weapon", subtype="greatsword", name="iron greatsword", ego_chance=-1000}, nil, true) if gs then local pf = self:getInven("PSIONIC_FOCUS") - self:addObject(pf, gs) - gs:identify(true) + if pf then + self:addObject(pf, gs) + gs:identify(true) + end end end), }, diff --git a/game/modules/tome/data/talents/psionic/other.lua b/game/modules/tome/data/talents/psionic/other.lua index 820a8a57fee38076c427c2293296c48b8ffddca1..a9f1d0ece9a768ad6aa0e68c2508ff3002dcb78c 100644 --- a/game/modules/tome/data/talents/psionic/other.lua +++ b/game/modules/tome/data/talents/psionic/other.lua @@ -31,6 +31,7 @@ newTalent{ return (o.type == "weapon" or o.type == "gem") and o.subtype ~= "longbow" and o.subtype ~= "sling" end, function(o, item) local pf = self:getInven("PSIONIC_FOCUS") + if not pf then return end -- Put back the old one in inventory local old = self:removeObject(pf, 1, true) if old then @@ -133,6 +134,7 @@ newTalent{ return hit end, activate = function (self, t) + if not self:getInven("PSIONIC_FOCUS") then return end local tkweapon = self:getInven("PSIONIC_FOCUS")[1] if type(tkweapon) == "boolean" then tkweapon = nil end if not tkweapon or tkweapon.type == "gem" then