From b6bc3273554345edd509411f77eda9d561b42979 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Wed, 20 Oct 2010 01:30:56 +0000
Subject: [PATCH] Moooooarr artifacts

git-svn-id: http://svn.net-core.org/repos/t-engine4@1561 51575b47-30f0-44d4-a5cc-537603b46e54
---
 .../default/engine/dialogs/UseTalents.lua     |   6 +-
 game/modules/tome/class/Actor.lua             |   3 +-
 game/modules/tome/class/Object.lua            |   2 +
 .../data/general/objects/world-artifacts.lua  | 108 +++++++++++++++++-
 4 files changed, 114 insertions(+), 5 deletions(-)

diff --git a/game/engines/default/engine/dialogs/UseTalents.lua b/game/engines/default/engine/dialogs/UseTalents.lua
index aed5d6a4f1..9b1087ced2 100644
--- a/game/engines/default/engine/dialogs/UseTalents.lua
+++ b/game/engines/default/engine/dialogs/UseTalents.lua
@@ -139,8 +139,8 @@ function _M:generateList()
 		for j, t in ipairs(tt.talents) do
 			if self.actor:knowTalent(t.id) and t.mode ~= "passive" then
 				local typename = "talent"
-				local status = "#LIGHT_GREEN#Active#WHITE#"
-				if t.mode == "sustained" then status = self.actor:isTalentActive(t.id) and "#YELLOW#Sustaining#WHITE#" or "#LIGHT_GREEN#Sustain#WHITE#" end
+				local status = tstring{{"color", "LIGHT_GREEN"}, "Active"}
+				if t.mode == "sustained" then status = self.actor:isTalentActive(t.id) and tstring{{"color", "YELLOW"}, "Sustaining"} or tstring{{"color", "LIGHT_GREEN"}, "Sustain"} end
 				list[#list+1] = { char=self:makeKeyChar(letter), name=t.name.." ("..typename..")", status=status, talent=t.id, desc=self.actor:getTalentFullDescription(t) }
 				list.chars[self:makeKeyChar(letter)] = list[#list]
 				if not self.sel then self.sel = #list + 1 end
@@ -150,7 +150,7 @@ function _M:generateList()
 		end
 
 		if added then
-			table.insert(list, where+1, { char="", name="#{bold}#"..cat:capitalize().." / "..tt.name:capitalize().."#{normal}#", type=tt.type, color={0x80, 0x80, 0x80}, status="", desc=tt.description })
+			table.insert(list, where+1, { char="", name=tstring{{"font","bold"}, cat:capitalize().." / "..tt.name:capitalize(), {"font","normal"}}, type=tt.type, color={0x80, 0x80, 0x80}, status="", desc=tt.description })
 		end
 	end
 	for i = 1, #list do list[i].id = i end
diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 0fb1001ed0..f6aa71583b 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -80,6 +80,7 @@ function _M:init(t, no_default)
 	self.combat_mentalresist = 0
 
 	self.fatigue = 0
+	self.healing_factor = 1
 
 	self.spell_cooldown_reduction = 0
 
@@ -523,7 +524,7 @@ function _M:onHeal(value, src)
 	if self:hasEffect(self.EFF_UNSTOPPABLE) then
 		return 0
 	end
-	return value
+	return value * self.healing_factor
 end
 
 --- Called before taking a hit, it's the chance to check for shields
diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua
index 49edc07b62..f83f0b98f9 100644
--- a/game/modules/tome/class/Object.lua
+++ b/game/modules/tome/class/Object.lua
@@ -370,6 +370,8 @@ function _M:getTextualDesc()
 
 	if w.movement_speed then desc:add(("Movement speed: %d%%"):format(w.movement_speed * 100), true) end
 
+	if w.healing_factor then desc:add(("Increases all healing by %d%%"):format(w.healing_factor * 100), true) end
+
 	end
 
 	if self.wielder then
diff --git a/game/modules/tome/data/general/objects/world-artifacts.lua b/game/modules/tome/data/general/objects/world-artifacts.lua
index d1238807b3..c6ba451a2e 100644
--- a/game/modules/tome/data/general/objects/world-artifacts.lua
+++ b/game/modules/tome/data/general/objects/world-artifacts.lua
@@ -1017,7 +1017,6 @@ newEntity{ base = "BASE_LEATHER_BELT",
 	},
 }
 
-
 newEntity{ base = "BASE_LEATHER_BELT",
 	unique = true,
 	name = "Girdle of Preservation",
@@ -1048,6 +1047,113 @@ newEntity{ base = "BASE_LEATHER_BELT",
 	},
 }
 
+newEntity{ base = "BASE_LEATHER_BELT",
+	unique = true,
+	name = "Goldberry's Girdle of the Calm Waters",
+	unided_name = "golden belt",
+	desc = [[A belt rumoured to have been worn by Goldenberry.]],
+	color = colors.GOLD,
+	level_range = {5, 14},
+	rarity = 120,
+	cost = 75,
+	material_level = 2,
+	wielder = {
+		inc_stats = { [Stats.STAT_WIL] = 3,  },
+		resists = {
+			[DamageType.COLD] = 20,
+			[DamageType.BLIGHT] = 20,
+			[DamageType.NATURE] = 20,
+		},
+		healing_factor = 0.3,
+	},
+}
+
+newEntity{ base = "BASE_HEAVY_ARMOR",
+	unique = true,
+	name = "Iron Mail of Bloodletting",
+	unided_name = "gore-encrusted suit of iron mail",
+	desc = [[Blood drips continuously from this fell suit of iron, and dark magics churn almost visibly around it. Bloody ruin comes to those who stand against its wearer.]],
+	color = colors.RED,
+	level_range = {15, 25},
+	rarity = 190,
+	require = { stat = { str=14 }, },
+	cost = 200,
+	material_level = 1,
+	wielder = {
+		inc_stats = { [Stats.STAT_CON] = 2, [Stats.STAT_STR] = 2 },
+		resists = {
+			[DamageType.ACID] = 10,
+			[DamageType.DARKNESS] = 10,
+			[DamageType.FIRE] = 10,
+			[DamageType.BLIGHT] = 10,
+		},
+		talents_types_mastery = { ["technique/bloodthirst"] = 0.1 },
+		life_regen = 0.5,
+		combat_def = 2,
+		combat_armor = 4,
+		fatigue = 12,
+	},
+}
+
+
+newEntity{ base = "BASE_HEAVY_ARMOR",
+	unique = true,
+	name = "Scale Mail of Smaug the Golden",
+	unided_name = "perfectly-wrought suit of dragon scales",
+	desc = [[A heavy shirt of scale mail constructed from the remains of Smaug the Golden, whose armor was like tenfold shields. Unlike the original Smaug scale armor, this one isn't missing any scales.]],
+	color = colors.LIGHT_RED,
+	metallic = false,
+	level_range = {38, 45},
+	rarity = 300,
+	require = { stat = { str=38 }, },
+	cost = 500,
+	material_level = 5,
+	wielder = {
+		inc_stats = { [Stats.STAT_CON] = 4, [Stats.STAT_STR] = 5, [Stats.STAT_DEX] = 3 },
+		resists = {
+			[DamageType.ACID] = 20,
+			[DamageType.LIGHTNING] = 20,
+			[DamageType.FIRE] = 20,
+			[DamageType.BLIGHT] = 20,
+			[DamageType.NATURE] = 20,
+		},
+		max_life=120,
+		combat_def = 10,
+		combat_armor = 14,
+	},
+	max_power = 80, power_regen = 1,
+	use_talent = { id = Talents.T_INFERNO, level = 3, power = 50 },
+}
+
+newEntity{ base = "BASE_MASSIVE_ARMOR",
+	unique = true,
+	name = "Plate Armor of the Returned King",
+	unided_name = "suit of gleaming mithril plate",
+	desc = [[Beautifully detailed with images of King Aragorn's siege of the Black Gate, this armor was presented to the Returned King at his coronation ceremony. Despair fills the hearts of even the blackest villains at the sight of it.]],
+	color = colors.WHITE,
+	level_range = {45, 50},
+	rarity = 350,
+	require = { stat = { str=48 }, },
+	cost = 800,
+	material_level = 5,
+	wielder = {
+		inc_stats = { [Stats.STAT_WIL] = 9, },
+		resists = {
+			[DamageType.ACID] = 25,
+			[DamageType.ARCANE] = 10,
+			[DamageType.FIRE] = 25,
+			[DamageType.BLIGHT] = 25,
+			[DamageType.DARKNESS] = 25,
+		},
+		max_stamina = 60,
+		combat_def = 15,
+		combat_armor = 20,
+		stun_immune = 0.5,
+		knockback_immune = 0.5,
+		lite = 1,
+	},
+}
+
 --[=[
 newEntity{
 	unique = true,
-- 
GitLab