diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index c577ede715aee782931cc94112e400b6a5e979f8..2e45b487620c193b94a864545702751aaf5bd1b6 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 bee3398f01c52a54b2ed2b48c9026dd4126332aa..ceb4fad87fe3cf035fd2ee9865ba2f89433f206a 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 9b5a755ce2528a0047eb23672af28f642bdef729..963931d1af5fc083b09a0e770a31746999d690d9 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 cdc3af1133751707397edcd5f77675d089c75342..e6eebeddd73fd4a5f47f8054760208eb88acfbc9 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(),