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