From 02a348a1627edce0dc8db796c4f5bfa63ce0083a Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Tue, 23 Apr 2013 19:29:17 +0000
Subject: [PATCH] Sometimes the Old Forest is overrun by crystals

git-svn-id: http://svn.net-core.org/repos/t-engine4@6645 51575b47-30f0-44d4-a5cc-537603b46e54
---
 .../data/general/objects/boss-artifacts.lua   |  71 ++++++++++++++++++
 .../shockbolt/npc/elemental_light_wisp.png    | Bin 0 -> 5850 bytes
 .../object/artifact/crystal_shard.png         | Bin 0 -> 5376 bytes
 .../tome/data/zones/old-forest/npcs.lua       |  12 +--
 4 files changed, 78 insertions(+), 5 deletions(-)
 create mode 100644 game/modules/tome/data/gfx/shockbolt/npc/elemental_light_wisp.png
 create mode 100644 game/modules/tome/data/gfx/shockbolt/object/artifact/crystal_shard.png

diff --git a/game/modules/tome/data/general/objects/boss-artifacts.lua b/game/modules/tome/data/general/objects/boss-artifacts.lua
index 750c8680fe..fa16fda08b 100644
--- a/game/modules/tome/data/general/objects/boss-artifacts.lua
+++ b/game/modules/tome/data/general/objects/boss-artifacts.lua
@@ -424,6 +424,77 @@ newEntity{ base = "BASE_GEM",
 	},
 }
 
+newEntity{ base = "BASE_STAFF",
+	power_source = {arcane=true},
+	unique = true, define_as = "CRYSTAL_SHARD",
+	name = "Crystal Shard",
+	unided_name = "crystalline tree branch",
+	flavor_name = "magestaff",
+	level_range = {10, 22},
+	color=colors.BLUE, image = "object/artifact/crystal_shard.png",
+	rarity = 300,
+	desc = [[This crystalline tree branch is remarkably rigid, and refracts light in myriad colors. Gazing at it entrances you, and you worry where its power may have come from.]],
+	cost = 200,
+	material_level = 2,
+	require = { stat = { mag=20 }, },
+	combat = {
+		dam = 16,
+		apr = 4,
+		dammod = {mag=1.3},
+		damtype = DamageType.ARCANE,
+		convert_damage = {
+			[DamageType.BLIGHT] = 50,
+		},
+	},
+	wielder = {
+		combat_spellpower = 14,
+		combat_spellcrit = 4,
+		inc_damage={
+			[DamageType.ARCANE] = 18,
+			[DamageType.BLIGHT] = 18,
+		},
+		resists={
+			[DamageType.ARCANE] = 10,
+			[DamageType.BLIGHT] = 10,
+		},
+		damage_affinity={
+			[DamageType.ARCANE] = 20,
+		},
+	},
+	max_power = 45, power_regen = 1,
+	use_power = { name = "create living shards of crystal", power = 45, use = function(self, who)
+		if not who:canBe("summon") then game.logPlayer(who, "You cannot summon; you are suppressed!") return end
+
+		local NPC = require "mod.class.NPC"
+		local list = NPC:loadList("/data/general/npcs/crystal.lua")
+		for i = 1, 2 do
+			-- Find space
+			local x, y = util.findFreeGrid(who.x, who.y, 5, true, {[engine.Map.ACTOR]=true})
+			if not x then break end
+				local e
+			repeat e = rng.tableRemove(list)
+
+			until not e.unique and e.rarity
+			local crystal = game.zone:finishEntity(game.level, "actor", e)
+			crystal.make_escort = nil
+			crystal.silent_levelup = true
+			crystal.faction = who.faction
+			crystal.ai = "summoned"
+			crystal.ai_real = "dumb_talented_simple"
+			crystal.summoner = who
+			crystal.summon_time = 10
+
+			local setupSummon = getfenv(who:getTalentFromId(who.T_SPIDER).action).setupSummon
+			setupSummon(who, crystal, x, y)
+			if who:knowTalent(who.T_BLIGHTED_SUMMONING) then 
+				crystal:learnTalent(crystal.T_BONE_SHIELD, true, 3) 
+				crystal:forceUseTalent(crystal.T_BONE_SHIELD, {ignore_energy=true})
+			end
+			game:playSoundNear(who, "talents/ice")
+		end
+		return {id=true, used=true}
+	end },
+}
 newEntity{ base = "BASE_CLOTH_ARMOR",
 	power_source = {arcane=true},
 	define_as = "BLACK_ROBE", rarity=false,
diff --git a/game/modules/tome/data/gfx/shockbolt/npc/elemental_light_wisp.png b/game/modules/tome/data/gfx/shockbolt/npc/elemental_light_wisp.png
new file mode 100644
index 0000000000000000000000000000000000000000..27af2ac5c85b72a3c43eaa4393c2a21290bbef0b
GIT binary patch
literal 5850
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

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/gfx/shockbolt/object/artifact/crystal_shard.png b/game/modules/tome/data/gfx/shockbolt/object/artifact/crystal_shard.png
new file mode 100644
index 0000000000000000000000000000000000000000..b06d5b2f4e916adcff46c893b87827ba5bed7e28
GIT binary patch
literal 5376
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

literal 0
HcmV?d00001

diff --git a/game/modules/tome/data/zones/old-forest/npcs.lua b/game/modules/tome/data/zones/old-forest/npcs.lua
index b03a297575..9c46215959 100644
--- a/game/modules/tome/data/zones/old-forest/npcs.lua
+++ b/game/modules/tome/data/zones/old-forest/npcs.lua
@@ -52,6 +52,7 @@ newEntity{ define_as = "SHARDSKIN",
 	max_life = 200, life_rating = 17, fixed_rating = true,
 	stats = { str=15, dex=10, cun=8, mag=20, wil=20, con=20 },
 	rank = 4,
+	vim_regen = 5,
 	size_category = 5,
 	infravision = 10,
 	instakill_immune = 1,
@@ -62,15 +63,16 @@ newEntity{ define_as = "SHARDSKIN",
 	resists = { [DamageType.NATURE] = -50 },
 
 	body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 },
-	resolvers.equip{ {type="armor", subtype="shield", defined="WRATHROOT_SHIELD", random_art_replace={chance=75}, autoreq=true}, },
+	resolvers.equip{ {type="weapon", subtype="staff", defined="CRYSTAL_SHARD", random_art_replace={chance=75}, autoreq=true}, },
 	resolvers.drops{chance=100, nb=5, {tome_drops="boss"} },
 
 	resolvers.talents{
 		[Talents.T_ARMOUR_TRAINING]={base=4, every=5, max=15},
-		[Talents.T_STUN]={base=2, every=6, max=6},
-		[Talents.T_ICE_STORM]={base=1, every=6, max=6},
-		[Talents.T_TIDAL_WAVE]={base=1, every=6, max=6},
-		[Talents.T_FREEZE]={base=2, every=6, max=6},
+		[Talents.T_GRAVITY_WELL]={base=2, every=6, max=6},
+		[Talents.T_BLOOD_GRASP]={base=2, every=6, max=6},
+		[Talents.T_FIRE_STORM]={base=1, every=6, max=6},
+		[Talents.T_SOUL_ROT]={base=1, every=6, max=6},
+		[Talents.T_FLAME]={base=2, every=6, max=6},
 	},
 
 	autolevel = "caster",
-- 
GitLab