From 5d8cefa5f79a92c65c7cc4d1d229a391a80f143b Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Mon, 4 Apr 2011 10:33:48 +0000 Subject: [PATCH] Various fixes git-svn-id: http://svn.net-core.org/repos/t-engine4@3151 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/modules/tome/class/Actor.lua | 2 ++ game/modules/tome/class/generator/actor/Arena.lua | 4 ++-- game/modules/tome/data/birth/classes/psionic.lua | 6 ++++-- game/modules/tome/data/talents/psionic/other.lua | 2 ++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 5ecd3264e9..a0fc6fc5e5 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 7f9ba71ac8..d3887a073e 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 36d554ae5a..4974f9db8e 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 820a8a57fe..a9f1d0ece9 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 -- GitLab