Page 1 of 1

[1.0] Curing stoning poison doesn't prevent stoning

Posted: Sun Jan 06, 2013 4:04 pm
by greycat
Stoning poison turns you to stone when its duration expires. Even if you cure it with a wild infusion, apparently, you still turn to stone because the timed effect ended.

Re: [1.0] Curing stoning poison doesn't prevent stoning

Posted: Sun Jan 06, 2013 6:22 pm
by Hachem_Muche
Assuming this is not the intended behavior, it's easy to fix. Here's a patch that fixes the problem and clarifies the infos for stoning poison:

Code: Select all

Index: game/modules/tome/data/talents/cunning/poisons.lua
===================================================================
--- game/modules/tome/data/talents/cunning/poisons.lua	(revision 6327)
+++ game/modules/tome/data/talents/cunning/poisons.lua	(working copy)
@@ -384,7 +384,7 @@
 	end,
 	info = function(self, t)
 		return ([[Coat your weapons with a stoning poison, inflicting %d nature damage per turn for %d turns.
-		When the poison ends, the victim turns to stone for %d turns.
+		When the poison runs its full duration, the victim will turn to stone for %d turns.
 		The damage scales with your Cunning.]]):
 		format(damDesc(self, DamageType.NATURE, t.getDOT(self, t)), t.getDuration(self, t), t.getEffect(self, t))
 	end,
Index: game/modules/tome/data/timed_effects/physical.lua
===================================================================
--- game/modules/tome/data/timed_effects/physical.lua	(revision 6327)
+++ game/modules/tome/data/timed_effects/physical.lua	(working copy)
@@ -226,7 +226,7 @@
 newEffect{
 	name = "STONE_POISON", image = "talents/stoning_poison.png",
 	desc = "Stoning Poison",
-	long_desc = function(self, eff) return ("The target is poisoned and sick, doing %0.2f nature damage per turn. When the effect ends the target will turn to stone for %d turns."):format(eff.power, eff.stone) end,
+	long_desc = function(self, eff) return ("The target is poisoned and sick, taking %0.2f nature damage per turn. If the effect runs its full course, the target will turn to stone for %d turns."):format(eff.power, eff.stone) end,
 	type = "physical",
 	subtype = { poison=true, earth=true }, no_ct_effect = true,
 	status = "detrimental",
@@ -242,7 +242,7 @@
 	activate = function(self, eff)
 	end,
 	deactivate = function(self, eff)
-		if self:canBe("stun") and self:canBe("stone") and self:canBe("instakill") then
+		if eff.dur <= 0 and self:canBe("stun") and self:canBe("stone") and self:canBe("instakill") then
 			self:setEffect(self.EFF_STONED, eff.stone, {})
 		end
 	end,

Re: [1.0] Curing stoning poison doesn't prevent stoning

Posted: Mon Jan 07, 2013 12:29 am
by darkgod
fixed