From 28b2a8c10ae278bac818866514059290614042c4 Mon Sep 17 00:00:00 2001
From: DarkGod <darkgod@net-core.org>
Date: Thu, 18 Jul 2013 01:54:19 +0200
Subject: [PATCH] Argoniel learnt how to use Irresistible Sun

---
 game/modules/tome/class/Game.lua              |  2 +-
 game/modules/tome/data/talents/uber/str.lua   |  2 +-
 .../tome/data/timed_effects/magical.lua       | 24 ++++++++++---------
 .../tome/data/zones/high-peak/npcs.lua        |  2 ++
 4 files changed, 17 insertions(+), 13 deletions(-)

diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index c577ede715..2e45b48762 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -1718,8 +1718,8 @@ function _M:setupMouse(reset)
 	self.mouse:registerZone(Map.display_x, Map.display_y, Map.viewport.width, Map.viewport.height, function(button, mx, my, xrel, yrel, bx, by, event, extra)
 		if not self.uiset:isLocked() then return end
 
+		local tmx, tmy = game.level.map:getMouseTile(mx, my)
 		if core.shader.allow("adv") and outline then
-			local tmx, tmy = game.level.map:getMouseTile(mx, my)
 			local o = self.level.map(tmx, tmy, Map.OBJECT)
 			if cur_obj and cur_obj._mo then cur_obj._mo:shader(nil) end
 			if o and o._mo and not o.shader then
diff --git a/game/modules/tome/data/talents/uber/str.lua b/game/modules/tome/data/talents/uber/str.lua
index bee3398f01..ceb4fad87f 100644
--- a/game/modules/tome/data/talents/uber/str.lua
+++ b/game/modules/tome/data/talents/uber/str.lua
@@ -125,7 +125,7 @@ uberTalent{
 	cooldown = 25,
 	requires_target = true,
 	range = 5,
-	tactical = { ATTACK = 4, CLOSEIN = 2 },
+	tactical = { ATTACK = 50, CLOSEIN = 30 },
 	require = { special={desc="Have dealt over 50000 light or fire damage", fct=function(self) return
 		self.damage_log and (
 			(self.damage_log[DamageType.FIRE] and self.damage_log[DamageType.FIRE] >= 50000) or
diff --git a/game/modules/tome/data/timed_effects/magical.lua b/game/modules/tome/data/timed_effects/magical.lua
index 9b5a755ce2..963931d1af 100644
--- a/game/modules/tome/data/timed_effects/magical.lua
+++ b/game/modules/tome/data/timed_effects/magical.lua
@@ -2068,17 +2068,19 @@ newEffect{
 			if not target then return end
 			if not tgts[target] then
 				tgts[target] = true
-				local ox, oy = target.x, target.y
-				target:pull(self.x, self.y, 1)
-				if target.x ~= ox or target.y ~= oy then 
-					game.logSeen(target, "%s is pulled in!", target.name:capitalize()) 
-				end
-
-				if self:reactionToward(target) < 0 then
-					local dam = eff.dam * (1 + (5 - core.fov.distance(self.x, self.y, target.x, target.y)) / 8)
-					DamageType:get(DamageType.FIRE).projector(self, target.x, target.y, DamageType.FIRE, dam/3)
-					DamageType:get(DamageType.LIGHT).projector(self, target.x, target.y, DamageType.LIGHT, dam/3)
-					DamageType:get(DamageType.PHYSICAL).projector(self, target.x, target.y, DamageType.PHYSICAL, dam/3)
+				if not target:attr("ignore_irresistible_sun") then
+					local ox, oy = target.x, target.y
+					target:pull(self.x, self.y, 1)
+					if target.x ~= ox or target.y ~= oy then 
+						game.logSeen(target, "%s is pulled in!", target.name:capitalize()) 
+					end
+
+					if self:reactionToward(target) < 0 then
+						local dam = eff.dam * (1 + (5 - core.fov.distance(self.x, self.y, target.x, target.y)) / 8)
+						DamageType:get(DamageType.FIRE).projector(self, target.x, target.y, DamageType.FIRE, dam/3)
+						DamageType:get(DamageType.LIGHT).projector(self, target.x, target.y, DamageType.LIGHT, dam/3)
+						DamageType:get(DamageType.PHYSICAL).projector(self, target.x, target.y, DamageType.PHYSICAL, dam/3)
+					end
 				end
 			end
 		end)
diff --git a/game/modules/tome/data/zones/high-peak/npcs.lua b/game/modules/tome/data/zones/high-peak/npcs.lua
index cdc3af1133..e6eebeddd7 100644
--- a/game/modules/tome/data/zones/high-peak/npcs.lua
+++ b/game/modules/tome/data/zones/high-peak/npcs.lua
@@ -73,6 +73,7 @@ newEntity{
 	stun_immune = 0.5,
 	confusion_immune = 0.5,
 	blind_immune = 1,
+	ignore_irresistible_sun = 1, -- Do not let Argoniel annoy Elandar
 
 	combat_armor = 20,
 	combat_def = 20,
@@ -196,6 +197,7 @@ newEntity{
 
 		[Talents.T_LUCKY_DAY]=1,
 		[Talents.T_EYE_OF_THE_TIGER]=1,
+		[Talents.T_IRRESISTIBLE_SUN]=1,
 	},
 	resolvers.sustains_at_birth(),
 
-- 
GitLab