Less tedious no movement sustains

All new ideas for the upcoming releases of ToME 4.x.x should be discussed here

Moderator: Moderator

Post Reply
Message
Author
edge2054
Retired Ninja
Posts: 3756
Joined: Fri May 28, 2010 4:38 pm

Less tedious no movement sustains

#1 Post by edge2054 »

The basic idea with this patch is to reduce movement speed instead of preventing all movement so the player doesn't have to toggle sustains so often.

It reduces movement speed by 50% for Body of Stone, Aim, and Last Stand.

Code: Select all

From e0a1d7150c010433bb81d57ac770351ae46566e6 Mon Sep 17 00:00:00 2001
From: Eric Wykoff <ericwykoff@yahoo.com>
Date: Wed, 4 Apr 2012 13:24:52 -0500
Subject: [PATCH] less tedious sustains

Last Stand, Body of Stone, and Aim no longer prevent movement but instead reduce movement speed by 50%
---
 game/modules/tome/class/Actor.lua                  |    4 ----
 game/modules/tome/data/talents/spells/stone.lua    |    6 +++---
 .../tome/data/talents/techniques/archery.lua       |    6 +++---
 .../tome/data/talents/techniques/weaponshield.lua  |    6 +++---
 4 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua
index 55ff248..6c9592c 100644
--- a/game/modules/tome/class/Actor.lua
+++ b/game/modules/tome/class/Actor.lua
@@ -704,10 +704,6 @@ function _M:move(x, y, force)
 		t.curseFloor(self, t, x, y)
 	end
 
-	if moved and self:isTalentActive(self.T_BODY_OF_STONE) then
-		self:forceUseTalent(self.T_BODY_OF_STONE, {ignore_energy=true})
-	end
-
 	if not forced and moved and ox and oy and (ox ~= self.x or oy ~= self.y) and self:knowTalent(self.T_LIGHT_OF_FOOT) then
 		self:incStamina(self:getTalentLevelRaw(self.T_LIGHT_OF_FOOT) * 0.2)
 	end
diff --git a/game/modules/tome/data/talents/spells/stone.lua b/game/modules/tome/data/talents/spells/stone.lua
index a827229..3a680db 100644
--- a/game/modules/tome/data/talents/spells/stone.lua
+++ b/game/modules/tome/data/talents/spells/stone.lua
@@ -89,7 +89,7 @@ newTalent{
 		game:playSoundNear(self, "talents/earth")
 		return {
 			particle = self:addParticles(Particles.new("stone_skin", 1)),
-			move = self:addTemporaryValue("never_move", 1),
+			move = self:addTemporaryValue("movement_speed", -0.5),
 			stun = self:addTemporaryValue("stun_immune", t.getStunRes(self, t)),
 			cdred = self:addTemporaryValue("talent_cd_reduction", {
 				[self.T_EARTHEN_MISSILES] = cdr,
@@ -105,7 +105,7 @@ newTalent{
 	end,
 	deactivate = function(self, t, p)
 		self:removeParticles(p.particle)
-		self:removeTemporaryValue("never_move", p.move)
+		self:removeTemporaryValue("movement_speed", p.move)
 		self:removeTemporaryValue("stun_immune", p.stun)
 		self:removeTemporaryValue("talent_cd_reduction", p.cdred)
 		self:removeTemporaryValue("resists", p.res)
@@ -117,7 +117,7 @@ newTalent{
 		local acidres = t.getAcidRes(self, t)
 		local cooldownred = t.getCooldownReduction(self, t)
 		local stunres = t.getStunRes(self, t)
-		return ([[You root yourself into the earth and transform your flesh into stone.  While this spell is sustained you may not move and any forced movement will end the effect.
+		return ([[You root yourself into the earth and transform your flesh into stone.  While this spell is sustained your movement speed is reduced by 50%%.
 		Your stoned form and your affinity with the earth while the spell is active has the following effects:
 		* Reduces the cooldown of Earthen Missiles, Earthquake, and Mudslide by %d
 		* Grants %d%% Fire Resistance, %d%% Lightning Resistance, %d%% Acid Resistance, and %d%% Stun Resistance
diff --git a/game/modules/tome/data/talents/techniques/archery.lua b/game/modules/tome/data/talents/techniques/archery.lua
index c2a06c8..32993d5 100644
--- a/game/modules/tome/data/talents/techniques/archery.lua
+++ b/game/modules/tome/data/talents/techniques/archery.lua
@@ -132,7 +132,7 @@ newTalent{
 		if self:isTalentActive(self.T_RAPID_SHOT) then self:forceUseTalent(self.T_RAPID_SHOT, {ignore_energy=true}) end
 
 		return {
-			move = self:addTemporaryValue("never_move", 1),
+			move = self:addTemporaryValue("movement_speed", -0.5),
 			speed = self:addTemporaryValue("combat_physspeed", -self:getTalentLevelRaw(t) * 0.05),
 			crit = self:addTemporaryValue("combat_physcrit", 7 + self:getTalentLevel(t) * self:getDex(10, true)),
 			atk = self:addTemporaryValue("combat_dam", 4 + self:getTalentLevel(t) * self:getDex(10, true)),
@@ -141,7 +141,7 @@ newTalent{
 		}
 	end,
 	deactivate = function(self, t, p)
-		self:removeTemporaryValue("never_move", p.move)
+		self:removeTemporaryValue("movement_speed", p.move)
 		self:removeTemporaryValue("combat_physspeed", p.speed)
 		self:removeTemporaryValue("combat_physcrit", p.crit)
 		self:removeTemporaryValue("combat_apr", p.apr)
@@ -150,7 +150,7 @@ newTalent{
 		return true
 	end,
 	info = function(self, t)
-		return ([[You enter a calm, focused stance, increasing your damage(+%d), accuracy(+%d), armor penetration(+%d), and critical chance(+%d%%) but reducing your firing speed by %d%% and making you unable to move.
+		return ([[You enter a calm, focused stance, increasing your damage(+%d), accuracy(+%d), armor penetration(+%d), and critical chance(+%d%%) but reducing your firing speed by %d%% and movement speed by 50%%.
 		The effects will increase with your Dexterity stat.]]):
 		format(4 + self:getTalentLevel(t) * self:getDex(10, true), 4 + self:getTalentLevel(t) * self:getDex(10, true),
 		3 + self:getTalentLevel(t) * self:getDex(10, true), 7 + self:getTalentLevel(t) * self:getDex(10, true),
diff --git a/game/modules/tome/data/talents/techniques/weaponshield.lua b/game/modules/tome/data/talents/techniques/weaponshield.lua
index 42148fe..da5ab02 100644
--- a/game/modules/tome/data/talents/techniques/weaponshield.lua
+++ b/game/modules/tome/data/talents/techniques/weaponshield.lua
@@ -298,17 +298,17 @@ newTalent{
 		return {
 			max_life = self:addTemporaryValue("max_life", (10 + self:getCon() * 0.25) * self:getTalentLevel(t)),
 			def = self:addTemporaryValue("combat_def", 5 + self:getDex(4, true) * self:getTalentLevel(t)),
-			nomove = self:addTemporaryValue("never_move", 1),
+			move = self:addTemporaryValue("movement_speed", -0.5),
 		}
 	end,
 	deactivate = function(self, t, p)
 		self:removeTemporaryValue("combat_def", p.def)
 		self:removeTemporaryValue("max_life", p.max_life)
-		self:removeTemporaryValue("never_move", p.nomove)
+		self:removeTemporaryValue("movement_speed", p.move)
 		return true
 	end,
 	info = function(self, t)
-		return ([[You brace yourself for the final stand, increasing defense by %d and maximum life by %d, but making you unable to move.
+		return ([[You brace yourself for the final stand, increasing defense by %d and maximum life by %d, but reducing your movement speed by 50%%.
 		The increase in defense is based on Dexterity and life on Constitution.]]):
 		format(5 + self:getDex(4, true) * self:getTalentLevel(t),
 		(10 + self:getCon() * 0.25) * self:getTalentLevel(t))
-- 
1.7.9.msysgit.0

Attachments
0001-less-tedious-sustains.txt
(6.35 KiB) Downloaded 108 times

Post Reply