From 26f9650ab638626ae2273b9077781f7fb1b4aeed Mon Sep 17 00:00:00 2001 From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54> Date: Tue, 30 Aug 2011 07:45:58 +0000 Subject: [PATCH] fixed global speed git-svn-id: http://svn.net-core.org/repos/t-engine4@4295 51575b47-30f0-44d4-a5cc-537603b46e54 --- game/modules/tome/class/Actor.lua | 12 +++- game/modules/tome/data/birth/races/undead.lua | 2 +- game/modules/tome/data/general/npcs/bear.lua | 2 +- game/modules/tome/data/general/npcs/bird.lua | 2 +- .../modules/tome/data/general/npcs/canine.lua | 2 +- .../tome/data/general/npcs/crystal.lua | 4 +- .../data/general/npcs/horror-corrupted.lua | 6 +- .../modules/tome/data/general/npcs/horror.lua | 16 ++--- .../tome/data/general/npcs/major-demon.lua | 10 +-- .../tome/data/general/npcs/minotaur.lua | 2 +- game/modules/tome/data/general/npcs/molds.lua | 2 +- game/modules/tome/data/general/npcs/mummy.lua | 2 +- game/modules/tome/data/general/npcs/naga.lua | 2 +- game/modules/tome/data/general/npcs/ooze.lua | 2 +- game/modules/tome/data/general/npcs/ritch.lua | 2 +- game/modules/tome/data/general/npcs/snake.lua | 4 +- .../modules/tome/data/general/npcs/spider.lua | 2 +- game/modules/tome/data/general/npcs/swarm.lua | 2 +- .../tome/data/general/npcs/telugoroth.lua | 2 +- game/modules/tome/data/general/npcs/troll.lua | 2 +- .../modules/tome/data/general/npcs/vermin.lua | 4 +- .../tome/data/general/npcs/wild-drake.lua | 4 +- .../data/general/objects/world-artifacts.lua | 2 +- .../data/talents/chronomancy/anomalies.lua | 2 +- .../data/talents/corruptions/shadowflame.lua | 4 +- .../tome/data/talents/gifts/summon-melee.lua | 4 +- game/modules/tome/data/talents/misc/races.lua | 6 +- .../tome/data/talents/spells/temporal.lua | 4 +- .../talents/techniques/unarmed-discipline.lua | 4 +- game/modules/tome/data/timed_effects.lua | 64 +++++++++---------- game/modules/tome/data/zones/arena/npcs.lua | 2 +- .../tome/data/zones/flooded-cave/npcs.lua | 2 +- game/modules/tome/data/zones/reknor/npcs.lua | 2 +- .../data/zones/temple-of-creation/npcs.lua | 2 +- 34 files changed, 99 insertions(+), 87 deletions(-) diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 35c9d883bb..154540f30e 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -69,7 +69,6 @@ _M.__is_actor = true _M.stats_per_level = 3 -- Speeds are multiplicative, not additive -_M.temporary_values_conf.global_speed = "inv1" _M.temporary_values_conf.movement_speed = "mult0" _M.temporary_values_conf.combat_physspeed = "mult0" _M.temporary_values_conf.combat_spellspeed = "mult0" @@ -85,6 +84,8 @@ function _M:init(t, no_default) self.combat_apr = 0 self.combat_dam = 0 self.global_speed = 1 + self.global_speed_base = 1 + self.global_speed_add = 0 self.movement_speed = 1 self.combat_physcrit = 0 self.combat_physspeed = 1 @@ -210,6 +211,7 @@ function _M:init(t, no_default) self.talents[self.T_ATTACK] = self.talents[self.T_ATTACK] or 1 self:resetCanSeeCache() + self:recomputeGlobalSpeed() end function _M:useEnergy(val) @@ -1700,6 +1702,12 @@ function _M:onStatChange(stat, v) end end +function _M:recomputeGlobalSpeed() + if self.global_speed_add > 0 then self.global_speed = self.global_speed_base + self.global_speed_add + else self.global_speed = self.global_speed_base * math.exp(self.global_speed_add) + end +end + --- Called when a temporary value changes (added or deleted) -- Takes care to call onStatChange when needed -- @param prop the property changing @@ -1708,6 +1716,8 @@ end function _M:onTemporaryValueChange(prop, v, base) if base == self.inc_stats then self:onStatChange(prop, v) + elseif prop == "global_speed_add" then + self:recomputeGlobalSpeed() end end diff --git a/game/modules/tome/data/birth/races/undead.lua b/game/modules/tome/data/birth/races/undead.lua index 4f4e355fa3..9c0bfc535e 100644 --- a/game/modules/tome/data/birth/races/undead.lua +++ b/game/modules/tome/data/birth/races/undead.lua @@ -114,7 +114,7 @@ newBirthDescriptor cut_immune = 1, stun_immune = 0.5, fear_immune = 1, - global_speed = 0.8, + global_speed_add = -0.2, moddable_tile = "ghoul", moddable_tile_nude = true, }, diff --git a/game/modules/tome/data/general/npcs/bear.lua b/game/modules/tome/data/general/npcs/bear.lua index f417e63d02..804dc989a1 100644 --- a/game/modules/tome/data/general/npcs/bear.lua +++ b/game/modules/tome/data/general/npcs/bear.lua @@ -31,7 +31,7 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=5, }, - global_speed = 0.9, + global_speed_base = 0.9, stats = { str=18, dex=13, mag=5, con=15 }, infravision = 10, rank = 2, diff --git a/game/modules/tome/data/general/npcs/bird.lua b/game/modules/tome/data/general/npcs/bird.lua index 2ac50f30bd..399ec225d0 100644 --- a/game/modules/tome/data/general/npcs/bird.lua +++ b/game/modules/tome/data/general/npcs/bird.lua @@ -30,7 +30,7 @@ newEntity{ ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, stats = { str=12, dex=20, mag=3, con=13 }, - global_speed = 1.2, + global_speed_base = 1.2, combat_armor = 1, combat_def = 5, combat = { dam=5, atk=15, apr=7, dammod={str=0.6} }, infravision = 10, diff --git a/game/modules/tome/data/general/npcs/canine.lua b/game/modules/tome/data/general/npcs/canine.lua index 7cf1cefee4..d93af5454e 100644 --- a/game/modules/tome/data/general/npcs/canine.lua +++ b/game/modules/tome/data/general/npcs/canine.lua @@ -34,7 +34,7 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - global_speed = 1.2, + global_speed_base = 1.2, stats = { str=10, dex=17, mag=3, con=7 }, combat = { dammod={str=0.6} }, combat_armor = 1, combat_def = 1, diff --git a/game/modules/tome/data/general/npcs/crystal.lua b/game/modules/tome/data/general/npcs/crystal.lua index e63d742ef1..b356b89756 100644 --- a/game/modules/tome/data/general/npcs/crystal.lua +++ b/game/modules/tome/data/general/npcs/crystal.lua @@ -14,7 +14,7 @@ newEntity{ max_life = resolvers.rngavg(12,34), stats = { str=1, dex=5, mag=20, con=1 }, - global_speed = 0.7, + global_speed_base = 0.7, infravision = 10, combat_def = 1, never_move = 1, @@ -53,7 +53,7 @@ newEntity{ name = "wisp", life_rating = 1, rank = 1, size_category = 1, autolevel = "caster", ai = "dumb_talented_simple", ai_state = { ai_move = "move_astar", talent_in = 1 }, - global_speed = 1, + global_speed_base = 1, stats = { str = 9, dex = 20, mag = 20 }, resolvers.talents{ [Talents.T_EXPLODE] = 3, diff --git a/game/modules/tome/data/general/npcs/horror-corrupted.lua b/game/modules/tome/data/general/npcs/horror-corrupted.lua index 9e45d6a338..ea022de532 100644 --- a/game/modules/tome/data/general/npcs/horror-corrupted.lua +++ b/game/modules/tome/data/general/npcs/horror-corrupted.lua @@ -170,7 +170,7 @@ newEntity{ base = "BASE_NPC_CORRUPTED_HORROR", autolevel = "rogue", ai = "tactical", ai_state = { talent_in=2, ai_move="move_astar", }, ai_tactic = resolvers.tactic "ranged", - global_speed = 1.2, + global_speed_base = 1.2, resists = { [DamageType.BLIGHT] = 50, [DamageType.DARKNESS] = 20, [DamageType.LIGHT] = - 20 }, @@ -197,7 +197,7 @@ newEntity{ base = "BASE_NPC_CORRUPTED_HORROR", size_category = 3, autolevel = "warrior", - global_speed = 0.8, + global_speed_base = 0.8, resists = { [DamageType.ACID] = 50, [DamageType.DARKNESS] = 20, [DamageType.LIGHT] = - 20 }, @@ -227,7 +227,7 @@ newEntity{ base = "BASE_NPC_CORRUPTED_HORROR", autolevel = "caster", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - global_speed = 0.8, + global_speed_base = 0.8, resists = { [DamageType.DARKNESS] = 50, [DamageType.LIGHT] = - 20 }, diff --git a/game/modules/tome/data/general/npcs/horror.lua b/game/modules/tome/data/general/npcs/horror.lua index 82c4e22e8f..a7d2322b0f 100644 --- a/game/modules/tome/data/general/npcs/horror.lua +++ b/game/modules/tome/data/general/npcs/horror.lua @@ -44,7 +44,7 @@ newEntity{ newEntity{ base = "BASE_NPC_HORROR", name = "worm that walks", color=colors.SANDY_BROWN, - desc = [[A bulging rotten robe seems to tear at the seams, with masses of bloated worms spilling from out and around the moving form. Two arm-like appendages, each made up of overlapping mucous-drenched maggots, grasp tightly around the handles of bile-coated waraxes. + desc = [[A bulging rotten robe seems to tear at the seams, with masses of bloated worms spilling from out and around the moving form. Two arm-like appendages, each made up of overlapping mucous-drenched maggots, grasp tightly around the handles of bile-coated waraxes. Each swing drips pestulant fluid before it, and each droplet writhes and wriggles in the air before splashing against the ground.]], level_range = {25, nil}, exp_worth = 1, rarity = 5, @@ -53,7 +53,7 @@ newEntity{ base = "BASE_NPC_HORROR", rank = 3, hate_regen = 1, vim_regen = 1, - + autolevel = "warriormage", ai = "tactical", ai_state = { ai_move="move_dmap", talent_in=1, ally_compassion=0 }, ai_tactic = resolvers.tactic "melee", @@ -65,9 +65,9 @@ newEntity{ base = "BASE_NPC_HORROR", disease_immune = 1, resists = { [DamageType.PHYSICAL] = 50, [DamageType.ACID] = 100, [DamageType.BLIGHT] = 100, [DamageType.FIRE] = -50}, - damage_affinity = { [DamageType.BLIGHT] = 50 }, + damage_affinity = { [DamageType.BLIGHT] = 50 }, no_auto_resists = true, - + body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, resolvers.drops{chance=20, nb=1, {} }, resolvers.equip{ @@ -88,7 +88,7 @@ newEntity{ base = "BASE_NPC_HORROR", [Talents.T_BLOODLUST]={base=4, every=8}, [Talents.T_RUIN]={base=4, every=8}, [Talents.T_CORRUPTED_STRENGTH]={base=3, every=15}, - + [Talents.T_BLINDSIDE]={base=3, every=12}, [Talents.T_WEAPON_COMBAT]={base=5, every=10, max=10}, @@ -157,7 +157,7 @@ newEntity{ base = "BASE_NPC_HORROR", combat_armor = 1, combat_def = 30, combat = { dam=resolvers.levelup(20, 1, 1.1), atk=20, apr=50, dammod={mag=1}, damtype=DamageType.DARKSTUN}, - ai = "tactical", + ai = "tactical", ai_tactic = resolvers.tactic"ranged", ai_state = { ai_target="target_player_radius", sense_radius=10, talent_in=1, }, dont_pass_target = true, @@ -541,7 +541,7 @@ newEntity{ base = "BASE_NPC_HORROR", autolevel = "warrior", max_life = resolvers.rngavg(120, 150), life_rating = 16, - global_speed = 0.7, + global_speed_base = 0.7, combat_armor = 1, combat_def = 0, combat = { dam=resolvers.levelup(resolvers.rngavg(25,150), 1, 1.2), atk=resolvers.rngavg(25,130), apr=1, dammod={str=1.1} }, @@ -598,7 +598,7 @@ newEntity{ base = "BASE_NPC_HORROR", size_category = 3, max_life = resolvers.rngavg(100,180), life_rating = 12, - global_speed = 1.2, + global_speed_base = 1.2, autolevel = "rogue", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, combat_armor = 10, combat_def = 10, diff --git a/game/modules/tome/data/general/npcs/major-demon.lua b/game/modules/tome/data/general/npcs/major-demon.lua index 2f7f19d7cf..1829985bc0 100644 --- a/game/modules/tome/data/general/npcs/major-demon.lua +++ b/game/modules/tome/data/general/npcs/major-demon.lua @@ -105,7 +105,7 @@ Oh, and it is twice as big, too.]], level_range = {35, nil}, exp_worth = 1, rarity = 4, rank = 3, - global_speed = 1.4, + global_speed_base = 1.4, size_category = 5, autolevel = "warriormage", life_rating = 20, @@ -137,7 +137,7 @@ newEntity{ base = "BASE_NPC_MAJOR_DEMON", level_range = {35, nil}, exp_worth = 1, rarity = 4, rank = 3, - global_speed = 1.2, + global_speed_base = 1.2, size_category = 3, autolevel = "caster", life_rating = 6, @@ -170,7 +170,7 @@ It moves swiftly toward you, casting terrible spells and swinging its weapons at level_range = {39, nil}, exp_worth = 1, rarity = 6, rank = 3, - global_speed = 1.3, + global_speed_base = 1.3, size_category = 4, autolevel = "warriormage", life_rating = 25, @@ -209,7 +209,7 @@ newEntity{ base = "BASE_NPC_MAJOR_DEMON", level_range = {43, nil}, exp_worth = 1, rarity = 7, rank = 3, - global_speed = 1.3, + global_speed_base = 1.3, size_category = 4, autolevel = "warrior", life_rating = 25, @@ -246,7 +246,7 @@ newEntity{ base = "BASE_NPC_MAJOR_DEMON", level_range = {47, nil}, exp_worth = 1, rarity = 8, rank = 3, - global_speed = 1, + global_speed_base = 1, size_category = 5, autolevel = "warriormage", life_rating = 30, diff --git a/game/modules/tome/data/general/npcs/minotaur.lua b/game/modules/tome/data/general/npcs/minotaur.lua index a1a46b31e7..47fb67585f 100644 --- a/game/modules/tome/data/general/npcs/minotaur.lua +++ b/game/modules/tome/data/general/npcs/minotaur.lua @@ -45,7 +45,7 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=5, }, - global_speed = 1.2, + global_speed_base = 1.2, stats = { str=15, dex=12, mag=6, cun=12, con=15 }, resolvers.tmasteries{ ["technique/2hweapon-offense"]=0.3, ["technique/2hweapon-cripple"]=0.3, ["technique/combat-training"]=0.3, }, diff --git a/game/modules/tome/data/general/npcs/molds.lua b/game/modules/tome/data/general/npcs/molds.lua index e00a2efa9e..bb3e3d5854 100644 --- a/game/modules/tome/data/general/npcs/molds.lua +++ b/game/modules/tome/data/general/npcs/molds.lua @@ -29,7 +29,7 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { talent_in=1, }, stats = { str=10, dex=15, mag=3, con=3 }, - global_speed = 0.6, + global_speed_base = 0.6, infravision = 10, combat_armor = 1, combat_def = 1, never_move = 1, diff --git a/game/modules/tome/data/general/npcs/mummy.lua b/game/modules/tome/data/general/npcs/mummy.lua index 58475a277c..30ea7c13e2 100644 --- a/game/modules/tome/data/general/npcs/mummy.lua +++ b/game/modules/tome/data/general/npcs/mummy.lua @@ -30,7 +30,7 @@ newEntity{ body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - global_speed = 0.8, + global_speed_base = 0.8, stats = { str=14, dex=12, mag=10, con=12 }, infravision = 10, rank = 2, diff --git a/game/modules/tome/data/general/npcs/naga.lua b/game/modules/tome/data/general/npcs/naga.lua index 6442badf32..bd271b3cdd 100644 --- a/game/modules/tome/data/general/npcs/naga.lua +++ b/game/modules/tome/data/general/npcs/naga.lua @@ -44,7 +44,7 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, - global_speed = 1.2, + global_speed_base = 1.2, stats = { str=15, dex=15, mag=15, con=10 }, on_die = function(self, who) local part = "NAGA_TONGUE" diff --git a/game/modules/tome/data/general/npcs/ooze.lua b/game/modules/tome/data/general/npcs/ooze.lua index c4aea2ea22..552ecf46f5 100644 --- a/game/modules/tome/data/general/npcs/ooze.lua +++ b/game/modules/tome/data/general/npcs/ooze.lua @@ -30,7 +30,7 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, stats = { str=10, dex=15, mag=3, con=10 }, - global_speed = 0.7, + global_speed_base = 0.7, combat_armor = 1, combat_def = 1, rank = 1, size_category = 3, diff --git a/game/modules/tome/data/general/npcs/ritch.lua b/game/modules/tome/data/general/npcs/ritch.lua index 0bc4cbeb6b..8cd2cb9047 100644 --- a/game/modules/tome/data/general/npcs/ritch.lua +++ b/game/modules/tome/data/general/npcs/ritch.lua @@ -37,7 +37,7 @@ Vicious predators, they inject corrupting diseases into their foes, and their sh autolevel = "slinger", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - global_speed = 1.2, + global_speed_base = 1.2, stats = { str=15, dex=15, mag=8, con=10 }, poison_immune = 0.5, diff --git a/game/modules/tome/data/general/npcs/snake.lua b/game/modules/tome/data/general/npcs/snake.lua index 765aa593dd..9ffbe7b9ff 100644 --- a/game/modules/tome/data/general/npcs/snake.lua +++ b/game/modules/tome/data/general/npcs/snake.lua @@ -33,7 +33,7 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { talent_in=3, ai_move="move_snake" }, - global_speed = 1.3, + global_speed_base = 1.3, stats = { str=14, dex=23, mag=5, con=5 }, combat_armor = 1, combat_def = 1, } @@ -121,7 +121,7 @@ newEntity{ base = "BASE_NPC_SNAKE", max_life = resolvers.rngavg(100,120), combat_armor = 14, combat_def = 5, combat = { dam=resolvers.levelup(12, 1, 0.7), atk=10, apr=10 }, - global_speed = 1, + global_speed_base = 1, resolvers.talents{ [Talents.T_CONSTRICT]=5 }, } diff --git a/game/modules/tome/data/general/npcs/spider.lua b/game/modules/tome/data/general/npcs/spider.lua index 6fafb79b0f..b533f01dba 100644 --- a/game/modules/tome/data/general/npcs/spider.lua +++ b/game/modules/tome/data/general/npcs/spider.lua @@ -35,7 +35,7 @@ newEntity{ autolevel = "spider", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=4, }, - global_speed = 1.2, + global_speed_base = 1.2, stats = { str=15, dex=15, mag=8, con=10 }, resolvers.inscriptions(2, "infusion"), diff --git a/game/modules/tome/data/general/npcs/swarm.lua b/game/modules/tome/data/general/npcs/swarm.lua index afc8bd6d45..64e147d110 100644 --- a/game/modules/tome/data/general/npcs/swarm.lua +++ b/game/modules/tome/data/general/npcs/swarm.lua @@ -31,7 +31,7 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, stats = { str=1, dex=20, mag=3, con=1 }, - global_speed = 2, + global_speed_base = 2, infravision = 10, combat_armor = 1, combat_def = 10, rank = 1, diff --git a/game/modules/tome/data/general/npcs/telugoroth.lua b/game/modules/tome/data/general/npcs/telugoroth.lua index 71ee215a63..43ff2e1308 100644 --- a/game/modules/tome/data/general/npcs/telugoroth.lua +++ b/game/modules/tome/data/general/npcs/telugoroth.lua @@ -38,7 +38,7 @@ newEntity{ autolevel = "dexmage", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - global_speed = 1.5, + global_speed_base = 1.5, stats = { str=8, dex=12, mag=12, wil=12, con=10 }, resists = { [DamageType.PHYSICAL] = 10, [DamageType.TEMPORAL] = 100, }, diff --git a/game/modules/tome/data/general/npcs/troll.lua b/game/modules/tome/data/general/npcs/troll.lua index 50cd47d0f6..8aca8c3c49 100644 --- a/game/modules/tome/data/general/npcs/troll.lua +++ b/game/modules/tome/data/general/npcs/troll.lua @@ -123,7 +123,7 @@ newEntity{ base = "BASE_NPC_TROLL", level_range = {38, nil}, exp_worth = 1, rarity = 6, rank = 3, - global_speed = 1.6, + global_speed_base = 1.6, life_rating = 25, max_life = resolvers.rngavg(220,240), diff --git a/game/modules/tome/data/general/npcs/vermin.lua b/game/modules/tome/data/general/npcs/vermin.lua index b01681782b..3c9c662d04 100644 --- a/game/modules/tome/data/general/npcs/vermin.lua +++ b/game/modules/tome/data/general/npcs/vermin.lua @@ -28,7 +28,7 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - global_speed = 0.9, + global_speed_base = 0.9, stats = { str=10, dex=15, mag=3, con=3 }, combat_armor = 1, combat_def = 1, infravision = 10, @@ -78,7 +78,7 @@ newEntity{ base = "BASE_NPC_WORM", autolevel = "warriormage", resolvers.talents{ [Talents.T_CRAWL_ACID]=2, [Talents.T_ROTTING_DISEASE]=4, [Talents.T_MULTIPLY]=1 }, - + on_die = function(self, src) game.level.map:addEffect(self, self.x, self.y, 5, diff --git a/game/modules/tome/data/general/npcs/wild-drake.lua b/game/modules/tome/data/general/npcs/wild-drake.lua index d112bbaa87..d61ba88cf8 100644 --- a/game/modules/tome/data/general/npcs/wild-drake.lua +++ b/game/modules/tome/data/general/npcs/wild-drake.lua @@ -50,7 +50,7 @@ newEntity{ base = "BASE_NPC_WILD_DRAKE", level_range = {35, nil}, exp_worth = 1, rarity = 6, rank = 3, - global_speed = 1.3, + global_speed_base = 1.3, size_category = 5, autolevel = "warrior", max_life = resolvers.rngavg(170,190), @@ -79,7 +79,7 @@ newEntity{ base = "BASE_NPC_WILD_DRAKE", level_range = {40, nil}, exp_worth = 1, rarity = 7, rank = 3, - global_speed = 1.4, + global_speed_base = 1.4, size_category = 4, autolevel = "caster", max_life = resolvers.rngavg(100,120), diff --git a/game/modules/tome/data/general/objects/world-artifacts.lua b/game/modules/tome/data/general/objects/world-artifacts.lua index 50e935fba8..cba467c5c1 100644 --- a/game/modules/tome/data/general/objects/world-artifacts.lua +++ b/game/modules/tome/data/general/objects/world-artifacts.lua @@ -1971,7 +1971,7 @@ newEntity{ base = "BASE_MACE", }, ureslak_bonuses = { { name = "Flaming", damtype = DamageType.FIREBURN, wielder = { - global_speed = 0.3, + global_speed_add = 0.3, resists = { [DamageType.FIRE] = 45 }, resists_pen = { [DamageType.FIRE] = 30 }, inc_damage = { [DamageType.FIRE] = 30 }, diff --git a/game/modules/tome/data/talents/chronomancy/anomalies.lua b/game/modules/tome/data/talents/chronomancy/anomalies.lua index 3dab479142..697e5e7d51 100644 --- a/game/modules/tome/data/talents/chronomancy/anomalies.lua +++ b/game/modules/tome/data/talents/chronomancy/anomalies.lua @@ -319,7 +319,7 @@ newTalent{ combat = { dam=resolvers.mbonus(40, 15), atk=15, apr=15, dammod={mag=0.8}, damtype=DamageType.TEMPORAL }, body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, autolevel = "none", - global_speed = 1.5, + global_speed_base = 1.5, stats = { str=8, dex=12, mag=12, wil= 12, con=10 }, ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=2, }, level_range = {self.level, self.level}, diff --git a/game/modules/tome/data/talents/corruptions/shadowflame.lua b/game/modules/tome/data/talents/corruptions/shadowflame.lua index 5190318b7c..c837c1e7e4 100644 --- a/game/modules/tome/data/talents/corruptions/shadowflame.lua +++ b/game/modules/tome/data/talents/corruptions/shadowflame.lua @@ -93,7 +93,7 @@ newTalent{ local power = self:getTalentLevel(t) * 0.03 return { demon = self:addTemporaryValue("demon", 1), - speed = self:addTemporaryValue("global_speed", power), + speed = self:addTemporaryValue("global_speed_add", power), res = self:addTemporaryValue("resists", {[DamageType.FIRE]=self:combatTalentSpellDamage(t, 20, 30), [DamageType.DARKNESS]=self:combatTalentSpellDamage(t, 20, 35)}), particle = self:addParticles(Particles.new("shadowfire", 1)), } @@ -102,7 +102,7 @@ newTalent{ self.type, self.subtype = unpack(self.__old_type) self.__old_type = nil self:removeTemporaryValue("resists", p.res) - self:removeTemporaryValue("global_speed", p.speed) + self:removeTemporaryValue("global_speed_add", p.speed) self:removeTemporaryValue("demon", p.demon) self:removeParticles(p.particle) return true diff --git a/game/modules/tome/data/talents/gifts/summon-melee.lua b/game/modules/tome/data/talents/gifts/summon-melee.lua index 81fdf137b4..c049fbb277 100644 --- a/game/modules/tome/data/talents/gifts/summon-melee.lua +++ b/game/modules/tome/data/talents/gifts/summon-melee.lua @@ -60,7 +60,7 @@ newTalent{ stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0}, inc_stats = { str=15 + (self:getWil(130, true) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2), dex=10 + self:getTalentLevel(t) * 2, mag=5, con=15 + self:getTalentLevelRaw(self.T_RESILIENCE)*2 }, level_range = {self.level, self.level}, exp_worth = 0, - global_speed = 1.2, + global_speed_base = 1.2, max_life = resolvers.rngavg(25,50), life_rating = 6, @@ -223,7 +223,7 @@ newTalent{ autolevel = "none", ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=2, }, - global_speed=1.2, + global_speed_base=1.2, stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0}, inc_stats = { str=25 + (self:getWil(140, true) * self:getTalentLevel(t) / 5) + (self:getTalentLevel(t) * 2), dex=18, con=10 + self:getTalentLevel(t) * 2 + self:getTalentLevelRaw(self.T_RESILIENCE)*2, }, diff --git a/game/modules/tome/data/talents/misc/races.lua b/game/modules/tome/data/talents/misc/races.lua index 21779a040e..989c7506f7 100644 --- a/game/modules/tome/data/talents/misc/races.lua +++ b/game/modules/tome/data/talents/misc/races.lua @@ -704,10 +704,12 @@ newTalent{ points = 5, mode = "passive", on_learn = function(self, t) - self.global_speed = self.global_speed + 0.03 + self.global_speed_base = self.global_speed_base + 0.03 + self:recomputeGlobalSpeed() end, on_unlearn = function(self, t) - self.global_speed = self.global_speed - 0.03 + self.global_speed_base = self.global_speed_base - 0.03 + self:recomputeGlobalSpeed() end, info = function(self, t) return ([[Yeeks live fast, think fast, and sacrifice fast for the Way. diff --git a/game/modules/tome/data/talents/spells/temporal.lua b/game/modules/tome/data/talents/spells/temporal.lua index 8f29ac439b..1ac52d8739 100644 --- a/game/modules/tome/data/talents/spells/temporal.lua +++ b/game/modules/tome/data/talents/spells/temporal.lua @@ -117,11 +117,11 @@ newTalent{ game:playSoundNear(self, "talents/spell_generic") local power = t.getHaste(self, t) return { - speed = self:addTemporaryValue("global_speed", power), + speed = self:addTemporaryValue("global_speed_add", power), } end, deactivate = function(self, t, p) - self:removeTemporaryValue("global_speed", p.speed) + self:removeTemporaryValue("global_speed_add", p.speed) return true end, info = function(self, t) diff --git a/game/modules/tome/data/talents/techniques/unarmed-discipline.lua b/game/modules/tome/data/talents/techniques/unarmed-discipline.lua index 6ea2d572e0..2bf8153d4f 100644 --- a/game/modules/tome/data/talents/techniques/unarmed-discipline.lua +++ b/game/modules/tome/data/talents/techniques/unarmed-discipline.lua @@ -133,12 +133,12 @@ newTalent{ getStamina = function(self, t) return self:getTalentLevel(t) * 1.5 end, activate = function(self, t) return { - speed = self:addTemporaryValue("global_speed", -t.getSpeed(self, t)), + speed = self:addTemporaryValue("global_speed_add", -t.getSpeed(self, t)), stamina = self:addTemporaryValue("stamina_regen", t.getStamina(self, t)), } end, deactivate = function(self, t, p) - self:removeTemporaryValue("global_speed", p.speed) + self:removeTemporaryValue("global_speed_add", p.speed) self:removeTemporaryValue("stamina_regen", p.stamina) return true end, diff --git a/game/modules/tome/data/timed_effects.lua b/game/modules/tome/data/timed_effects.lua index d6375e93d7..7ef76c13b3 100644 --- a/game/modules/tome/data/timed_effects.lua +++ b/game/modules/tome/data/timed_effects.lua @@ -690,10 +690,10 @@ newEffect{ on_gain = function(self, err) return "#Target# speeds up.", "+Fast" end, on_lose = function(self, err) return "#Target# slows down.", "-Fast" end, activate = function(self, eff) - eff.tmpid = self:addTemporaryValue("global_speed", eff.power) + eff.tmpid = self:addTemporaryValue("global_speed_add", eff.power) end, deactivate = function(self, eff) - self:removeTemporaryValue("global_speed", eff.tmpid) + self:removeTemporaryValue("global_speed_add", eff.tmpid) end, } @@ -707,11 +707,11 @@ newEffect{ on_gain = function(self, err) return "#Target# slows down.", "+Slow" end, on_lose = function(self, err) return "#Target# speeds up.", "-Slow" end, activate = function(self, eff) - eff.tmpid = self:addTemporaryValue("global_speed", -eff.power) + eff.tmpid = self:addTemporaryValue("global_speed_add", -eff.power) eff.dur = self:updateEffectDuration(eff.dur, "slow") end, deactivate = function(self, eff) - self:removeTemporaryValue("global_speed", eff.tmpid) + self:removeTemporaryValue("global_speed_add", eff.tmpid) end, } @@ -1979,11 +1979,11 @@ newEffect{ on_lose = function(self, err) return "#Target# overcomes the gloom.", "-Slow" end, activate = function(self, eff) eff.particle = self:addParticles(Particles.new("gloom_slow", 1)) - eff.tmpid = self:addTemporaryValue("global_speed", -eff.power) + eff.tmpid = self:addTemporaryValue("global_speed_add", -eff.power) eff.dur = self:updateEffectDuration(eff.dur, "slow") end, deactivate = function(self, eff) - self:removeTemporaryValue("global_speed", eff.tmpid) + self:removeTemporaryValue("global_speed_add", eff.tmpid) self:removeParticles(eff.particle) end, } @@ -2131,7 +2131,7 @@ newEffect{ if eff.hateLoss or 0 > 0 then eff.hateLossId = self:addTemporaryValue("hate_regen", -eff.hateLoss) end if eff.critical or 0 > 0 then eff.criticalId = self:addTemporaryValue("combat_physcrit", eff.critical) end if eff.damage or 0 > 0 then eff.damageId = self:addTemporaryValue("inc_damage", {[DamageType.PHYSICAL]=eff.damage}) end - if eff.speed or 0 > 0 then eff.speedId = self:addTemporaryValue("global_speed", eff.speed * 0.01) end + if eff.speed or 0 > 0 then eff.speedId = self:addTemporaryValue("global_speed_add", eff.speed * 0.01) end if eff.attack or 0 > 0 then eff.attackId = self:addTemporaryValue("combat_atk", self:combatAttack() * eff.attack * 0.01) end if eff.evasion or 0 > 0 then eff.evasionId = self:addTemporaryValue("evasion", eff.evasion) end @@ -2141,7 +2141,7 @@ newEffect{ if eff.hateLossId then self:removeTemporaryValue("hate_regen", eff.hateLossId) end if eff.criticalId then self:removeTemporaryValue("combat_physcrit", eff.criticalId) end if eff.damageId then self:removeTemporaryValue("inc_damage", eff.damageId) end - if eff.speedId then self:removeTemporaryValue("global_speed", eff.speedId) end + if eff.speedId then self:removeTemporaryValue("global_speed_add", eff.speedId) end if eff.attackId then self:removeTemporaryValue("combat_atk", eff.attackId) end if eff.evasionId then self:removeTemporaryValue("evasion", eff.evasionId) end @@ -2205,10 +2205,10 @@ newEffect{ on_gain = function(self, err) return nil, "+Invigorated" end, on_lose = function(self, err) return nil, "-Invigorated" end, activate = function(self, eff) - eff.tmpid = self:addTemporaryValue("global_speed", eff.speed * 0.01) + eff.tmpid = self:addTemporaryValue("global_speed_add", eff.speed * 0.01) end, deactivate = function(self, eff) - self:removeTemporaryValue("global_speed", eff.tmpid) + self:removeTemporaryValue("global_speed_add", eff.tmpid) end, on_merge = function(self, old_eff, new_eff) old_eff.dur = math.min(old_eff.dur + new_eff.dur, 15) @@ -2498,13 +2498,13 @@ newEffect{ on_lose = function(self, err) return "#Target# slows down.", "-Wild Speed" end, activate = function(self, eff) eff.tmpid = self:addTemporaryValue("wild_speed", 1) - eff.moveid = self:addTemporaryValue("global_speed", eff.power/100) + eff.moveid = self:addTemporaryValue("global_speed_add", eff.power/100) if self.ai_state then eff.aiid = self:addTemporaryValue("ai_state", {no_talents=1}) end -- Make AI not use talents while using it end, deactivate = function(self, eff) self:removeTemporaryValue("wild_speed", eff.tmpid) if eff.aiid then self:removeTemporaryValue("ai_state", eff.aiid) end - self:removeTemporaryValue("global_speed", eff.moveid) + self:removeTemporaryValue("global_speed_add", eff.moveid) end, } @@ -2519,13 +2519,13 @@ newEffect{ on_lose = function(self, err) return "#Target# slows down.", "-Step Up" end, activate = function(self, eff) eff.tmpid = self:addTemporaryValue("step_up", 1) - eff.moveid = self:addTemporaryValue("global_speed", eff.power/100) + eff.moveid = self:addTemporaryValue("global_speed_add", eff.power/100) if self.ai_state then eff.aiid = self:addTemporaryValue("ai_state", {no_talents=1}) end -- Make AI not use talents while using it end, deactivate = function(self, eff) self:removeTemporaryValue("step_up", eff.tmpid) if eff.aiid then self:removeTemporaryValue("ai_state", eff.aiid) end - self:removeTemporaryValue("global_speed", eff.moveid) + self:removeTemporaryValue("global_speed_add", eff.moveid) end, } @@ -2540,7 +2540,7 @@ newEffect{ on_lose = function(self, err) return "#Target# is back to normal.", "-Lightning Speed" end, activate = function(self, eff) eff.tmpid = self:addTemporaryValue("lightning_speed", 1) - eff.moveid = self:addTemporaryValue("global_speed", eff.power/100) + eff.moveid = self:addTemporaryValue("global_speed_add", eff.power/100) eff.resistsid = self:addTemporaryValue("resists", { [DamageType.PHYSICAL]=30, [DamageType.LIGHTNING]=100, @@ -2553,7 +2553,7 @@ newEffect{ self:removeTemporaryValue("lightning_speed", eff.tmpid) self:removeTemporaryValue("resists", eff.resistsid) if eff.aiid then self:removeTemporaryValue("ai_state", eff.aiid) end - self:removeTemporaryValue("global_speed", eff.moveid) + self:removeTemporaryValue("global_speed_add", eff.moveid) end, } @@ -3008,11 +3008,11 @@ newEffect{ on_lose = function(self, err) return "#Target# overcomes the madness.", "-Slow" end, activate = function(self, eff) eff.particle = self:addParticles(Particles.new("gloom_slow", 1)) - eff.tmpid = self:addTemporaryValue("global_speed", -eff.power) + eff.tmpid = self:addTemporaryValue("global_speed_add", -eff.power) eff.dur = self:updateEffectDuration(eff.dur, "slow") end, deactivate = function(self, eff) - self:removeTemporaryValue("global_speed", eff.tmpid) + self:removeTemporaryValue("global_speed_add", eff.tmpid) self:removeParticles(eff.particle) end, } @@ -3300,11 +3300,11 @@ newEffect{ on_gain = function(self, err) return "#Target# is being crushed.", "+Imploding" end, on_lose = function(self, err) return "#Target# shakes off the crushing forces.", "-Imploding" end, activate = function(self, eff) - eff.tmpid = self:addTemporaryValue("global_speed", -0.5) + eff.tmpid = self:addTemporaryValue("global_speed_add", -0.5) eff.dur = self:updateEffectDuration(eff.dur, "slow") end, deactivate = function(self, eff) - self:removeTemporaryValue("global_speed", eff.tmpid) + self:removeTemporaryValue("global_speed_add", eff.tmpid) end, on_timeout = function(self, eff) DamageType:get(DamageType.PHYSICAL).projector(eff.src, self.x, self.y, DamageType.PHYSICAL, eff.power) @@ -3407,10 +3407,10 @@ newEffect{ status = "beneficial", parameters = { power=10 }, activate = function(self, eff) - eff.tmpid = self:addTemporaryValue("global_speed", 1) + eff.tmpid = self:addTemporaryValue("global_speed_add", 1) end, deactivate = function(self, eff) - self:removeTemporaryValue("global_speed", eff.tmpid) + self:removeTemporaryValue("global_speed_add", eff.tmpid) self:setEffect(self.EFF_TEMPORAL_STUN, eff.power, {}) end, } @@ -3888,12 +3888,12 @@ newEffect{ on_lose = function(self, err) return "#Target# has recovered from the maiming.", "-Maimed" end, activate = function(self, eff) eff.damid = self:addTemporaryValue("combat_dam", -eff.dam) - eff.tmpid = self:addTemporaryValue("global_speed", -0.3) + eff.tmpid = self:addTemporaryValue("global_speed_add", -0.3) eff.dur = self:updateEffectDuration(eff.dur, "slow") end, deactivate = function(self, eff) self:removeTemporaryValue("combat_dam", eff.damid) - self:removeTemporaryValue("global_speed", eff.tmpid) + self:removeTemporaryValue("global_speed_add", eff.tmpid) end, } @@ -3987,10 +3987,10 @@ newEffect{ on_gain = function(self, err) return "#Target# speeds up.", "+Reflexive Dodging" end, on_lose = function(self, err) return "#Target# slows down.", "-Reflexive Dodging" end, activate = function(self, eff) - eff.tmpid = self:addTemporaryValue("global_speed", eff.power) + eff.tmpid = self:addTemporaryValue("global_speed_add", eff.power) end, deactivate = function(self, eff) - self:removeTemporaryValue("global_speed", eff.tmpid) + self:removeTemporaryValue("global_speed_add", eff.tmpid) end, } @@ -4092,7 +4092,7 @@ newEffect{ parameters = { }, activate = function(self, eff) if eff.type == DamageType.FIRE then - eff.tmpid = self:addTemporaryValue("global_speed", 0.1 + eff.power / 16) + eff.tmpid = self:addTemporaryValue("global_speed_add", 0.1 + eff.power / 16) elseif eff.type == DamageType.COLD then eff.tmpid = self:addTemporaryValue("combat_armor", 3 + eff.power * 2) elseif eff.type == DamageType.LIGHTNING then @@ -4113,7 +4113,7 @@ newEffect{ end, deactivate = function(self, eff) if eff.type == DamageType.FIRE then - self:removeTemporaryValue("global_speed", eff.tmpid) + self:removeTemporaryValue("global_speed_add", eff.tmpid) elseif eff.type == DamageType.COLD then self:removeTemporaryValue("combat_armor", eff.tmpid) elseif eff.type == DamageType.LIGHTNING then @@ -4281,11 +4281,11 @@ newEffect{ on_gain = function(self, err) return "#Target# speeds up.", "+Haste" end, on_lose = function(self, err) return "#Target# slows down.", "-Haste" end, activate = function(self, eff) - eff.glbid = self:addTemporaryValue("global_speed", eff.power) + eff.glbid = self:addTemporaryValue("global_speed_add", eff.power) eff.spdid = self:addTemporaryValue("combat_spellspeed", eff.power/2) end, deactivate = function(self, eff) - self:removeTemporaryValue("global_speed", eff.glbid) + self:removeTemporaryValue("global_speed_add", eff.glbid) self:removeTemporaryValue("combat_spellspeed", eff.spdid) end, } @@ -4609,7 +4609,7 @@ newEffect{ return old_eff end, activate = function(self, eff) - eff.tmpid = self:addTemporaryValue("global_speed", eff.power) + eff.tmpid = self:addTemporaryValue("global_speed_add", eff.power) eff.critid = self:addTemporaryValue("combat_physcrit", eff.crit) eff.dieatid = self:addTemporaryValue("die_at", -self.max_life * eff.dieat) end, @@ -4621,7 +4621,7 @@ newEffect{ game.logSeen(self, "%s dies when it's frenzy ends!", self.name:capitalize()) self:die(self) end - self:removeTemporaryValue("global_speed", eff.tmpid) + self:removeTemporaryValue("global_speed_add", eff.tmpid) self:removeTemporaryValue("combat_physcrit", eff.critid) self:removeTemporaryValue("die_at", eff.dieatid) end, diff --git a/game/modules/tome/data/zones/arena/npcs.lua b/game/modules/tome/data/zones/arena/npcs.lua index 9dff6b57ce..460541cfc7 100644 --- a/game/modules/tome/data/zones/arena/npcs.lua +++ b/game/modules/tome/data/zones/arena/npcs.lua @@ -52,7 +52,7 @@ newEntity{ name = "flying skull", life_rating = 1, rank = 1, size_category = 1, autolevel = "caster", ai = "dumb_talented_simple", ai_state = { ai_move = "move_astar", talent_in = 1 }, - global_speed = 1, + global_speed_base = 1, stats = { str = 9, dex = 20, mag = 20 }, resolvers.talents{ [Talents.T_EXPLODE] = 3, diff --git a/game/modules/tome/data/zones/flooded-cave/npcs.lua b/game/modules/tome/data/zones/flooded-cave/npcs.lua index 6df0eb984c..d1b1ddc486 100644 --- a/game/modules/tome/data/zones/flooded-cave/npcs.lua +++ b/game/modules/tome/data/zones/flooded-cave/npcs.lua @@ -29,7 +29,7 @@ newEntity{ define_as = "UKLLMSWWIK", faction="water-lair", display = "D", color=colors.VIOLET, desc = [[It looks like a cross between a shark and a dragon, only nastier.]], - global_speed = 1.4, + global_speed_base = 1.4, level_range = {30, nil}, exp_worth = 4, max_life = 250, life_rating = 27, fixed_rating = true, max_stamina = 85, diff --git a/game/modules/tome/data/zones/reknor/npcs.lua b/game/modules/tome/data/zones/reknor/npcs.lua index 53a499dac0..63ef088575 100644 --- a/game/modules/tome/data/zones/reknor/npcs.lua +++ b/game/modules/tome/data/zones/reknor/npcs.lua @@ -118,7 +118,7 @@ newEntity{ define_as = "HARNO", name = "Harno, Herald of Last Hope", display = "@", color=colors.LIGHT_BLUE, desc = [[This is one of the heralds of Last Hope. He seems to be looking for you.]], - global_speed = 2, + global_speed_base = 2, level_range = {40, 40}, exp_worth = 0, max_life = 150, life_rating = 12, rank = 3, diff --git a/game/modules/tome/data/zones/temple-of-creation/npcs.lua b/game/modules/tome/data/zones/temple-of-creation/npcs.lua index b875d65759..e28cfa98f3 100644 --- a/game/modules/tome/data/zones/temple-of-creation/npcs.lua +++ b/game/modules/tome/data/zones/temple-of-creation/npcs.lua @@ -32,7 +32,7 @@ newEntity{ define_as = "SLASUL", resolvers.nice_tile{image="invis.png", add_mos = {{image="npc/humanoid_naga_slasul.png", display_h=2, display_y=-1}}}, desc = [[This towering naga exudes power, and radiates a certain charismatic charm as well. His masculine face stares at you with great intensity, and you struggle to meet his gaze. His torso is bare apart from an exquisite pearl set directly in his chest, and in his muscular arms he holds ready a heavy mace and shield. You sense there is more to him also, as if the very power of the ocean were concentrated in this great creature, and that the wrath of it may come flooding out at any moment.]], killer_message = "and perverted into a monstrous aberration as a warning to the surface", - global_speed = 1.7, + global_speed_base = 1.7, level_range = {30, nil}, exp_worth = 4, max_life = 350, life_rating = 19, fixed_rating = true, max_stamina = 85, -- GitLab