From 0286a864606564dfe98885cbabd04c0ed0d0b669 Mon Sep 17 00:00:00 2001
From: DarkGod <darkgod@net-core.org>
Date: Tue, 3 Jun 2014 10:00:08 +0200
Subject: [PATCH] various fixes

---
 game/modules/tome/class/Object.lua              | 17 ++++++++++++-----
 .../tome/data/general/objects/egos/ammo.lua     |  2 +-
 .../tome/data/general/objects/egos/amulets.lua  |  4 ++--
 3 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua
index b18dd687cb..ac5b104d11 100644
--- a/game/modules/tome/class/Object.lua
+++ b/game/modules/tome/class/Object.lua
@@ -221,7 +221,12 @@ function _M:descAttribute(attr)
 	elseif attr == "INSCRIPTION" then
 		game.player.__inscription_data_fake = self.inscription_data
 		local t = self:getTalentFromId("T_"..self.inscription_talent.."_1")
-		local desc = t.short_info(game.player, t)
+		local desc = "--"
+		if t then
+			local ok
+			ok, desc = pcall(t.short_info, game.player, t)
+			if not ok then desc = "--" end
+		end
 		game.player.__inscription_data_fake = nil
 		return ("%s"):format(desc)
 	end
@@ -1460,10 +1465,12 @@ function _M:getTextualDesc(compare_with, use_actor)
 		use_actor.__inscription_data_fake = self.inscription_data
 		local t = self:getTalentFromId("T_"..self.inscription_talent.."_1")
 		if t then
-			local tdesc = use_actor:getTalentFullDescription(t)
-			desc:add({"color","YELLOW"}, "When inscribed on your body:", {"color", "LAST"}, true)
-			desc:merge(tdesc)
-			desc:add(true)
+			local ok, tdesc = pcall(use_actor.getTalentFullDescription, use_actor, t)
+			if ok and tdesc then
+				desc:add({"color","YELLOW"}, "When inscribed on your body:", {"color", "LAST"}, true)
+				desc:merge(tdesc)
+				desc:add(true)
+			end
 		end
 		use_actor.__inscription_data_fake = nil
 	end
diff --git a/game/modules/tome/data/general/objects/egos/ammo.lua b/game/modules/tome/data/general/objects/egos/ammo.lua
index 063fcc3cda..7b3c8d1915 100644
--- a/game/modules/tome/data/general/objects/egos/ammo.lua
+++ b/game/modules/tome/data/general/objects/egos/ammo.lua
@@ -586,7 +586,7 @@ newEntity{
 			target.talents_cd[t.id] = turns
 			
 			local tg = {type="hit", range=1}
-			who:project(tg, target.x, target.y, engine.DamageType.ARCANE, damage)
+			who:project(tg, target.x, target.y, engine.DamageType.ARCANE, tonumber(util.getval(damage, who, t)) or 0)
 			
 			game.logSeen(target, "%s's %s has been #ORCHID#burned#LAST#!", target.name:capitalize(), t.name)
 		end},
diff --git a/game/modules/tome/data/general/objects/egos/amulets.lua b/game/modules/tome/data/general/objects/egos/amulets.lua
index b049cd6af2..bab1a1a312 100644
--- a/game/modules/tome/data/general/objects/egos/amulets.lua
+++ b/game/modules/tome/data/general/objects/egos/amulets.lua
@@ -582,8 +582,8 @@ newEntity{
 
 		e.wielder.talents_types_mastery = {}
 		local v = (10 + rng.mbonus(math.ceil(30 * e.material_level / 5), resolvers.current_level, 50)) / 100
-		e.wielder.talents_types_mastery[tt] = v
-		e.wielder.talents_types_mastery[tt2] = v
+		if tt then e.wielder.talents_types_mastery[tt] = v end
+		if tt2 then e.wielder.talents_types_mastery[tt2] = v end
 		e.cost = e.cost + v * 60
 	end),
 }
\ No newline at end of file
-- 
GitLab