diff --git a/game/engines/default/engine/GameEnergyBased.lua b/game/engines/default/engine/GameEnergyBased.lua index e29eda7535aa492c17f8649b0b50ec026e23a869..2956d7e7c1d12b229219a7e8b820dcae283b7237 100644 --- a/game/engines/default/engine/GameEnergyBased.lua +++ b/game/engines/default/engine/GameEnergyBased.lua @@ -66,7 +66,7 @@ function _M:tick() if e and e.act and e.energy then -- print("<ENERGY", e.name, e.uid, "::", e.energy.value, self.paused, "::", e.player) if e.energy.value < self.energy_to_act then - e.energy.value = (e.energy.value or 0) + self.energy_per_tick * (e.energy.mod or 1) + e.energy.value = (e.energy.value or 0) + self.energy_per_tick * (e.energy.mod or 1) * (e.global_speed or 1) end if e.energy.value >= self.energy_to_act then e.energy.used = false @@ -82,7 +82,7 @@ function _M:tick() e = arr[i] if e and e.act and e.energy then if e.energy.value < self.energy_to_act then - e.energy.value = (e.energy.value or 0) + self.energy_per_tick * (e.energy.mod or 1) + e.energy.value = (e.energy.value or 0) + self.energy_per_tick * (e.energy.mod or 1) * (e.global_speed or 1) end if e.energy.value >= self.energy_to_act then e.energy.used = false diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 01ae2c2ad2c9f3c3d830495f2fb2fa677ac64e53..01e0644ea1a3859c2d465025087add44796a7024 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -74,9 +74,11 @@ function _M:init(t, no_default) self.combat_atk = 0 self.combat_apr = 0 self.combat_dam = 0 + self.global_speed = 1 + self.movement_speed = 1 self.combat_physcrit = 0 - self.combat_physspeed = 0 - self.combat_spellspeed = 0 + self.combat_physspeed = 1 + self.combat_spellspeed = 1 self.combat_spellcrit = 0 self.combat_spellpower = 0 self.combat_mindpower = 0 diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua index a1de528c0521d25e97389b074e1d99c0f295a537..7b101bb0b86b1314620d6da61704cf93437044b3 100644 --- a/game/modules/tome/class/Object.lua +++ b/game/modules/tome/class/Object.lua @@ -440,6 +440,8 @@ function _M:getTextualDesc() if w.invisible then desc:add(("Invisibility: %d"):format(w.invisible), true) end if w.movement_speed then desc:add(("Movement speed: %d%%"):format(w.movement_speed * 100), true) end + if w.combat_physspeed then desc:add(("Combat speed: %d%%"):format(w.combat_physspeed * 100), true) end + if w.combat_spellspeed then desc:add(("Casting speed: %d%%"):format(w.combat_spellspeed * 100), true) end if w.healing_factor then desc:add(("Increases all healing by %d%%"):format(w.healing_factor * 100), true) end diff --git a/game/modules/tome/class/interface/Combat.lua b/game/modules/tome/class/interface/Combat.lua index 5aaf124eba35e77b488d3e5d45a026feb5587e00..59dd2338e9b856d9ae9ca71ff3a83b6a0ab21b30 100644 --- a/game/modules/tome/class/interface/Combat.lua +++ b/game/modules/tome/class/interface/Combat.lua @@ -552,7 +552,7 @@ end --- Gets the weapon speed function _M:combatSpeed(weapon) weapon = weapon or self.combat or {} - return self.combat_physspeed + (weapon.physspeed or 1) + return (weapon.physspeed or 1) / self.combat_physspeed end --- Gets the crit rate @@ -679,7 +679,7 @@ end --- Gets spellspeed function _M:combatSpellSpeed() - return self.combat_spellspeed + 1 + return 1 / self.combat_spellspeed end --- Computes physical crit for a damage @@ -832,10 +832,7 @@ end --- Computes movement speed function _M:combatMovementSpeed() - local v = util.bound(1 + (self.movement_speed or 0), 0.2, 10) - if v >= 1 then return v - else return math.pow(0.4, 1 - v) - end + return (self.base_movement_speed or 1) / self.movement_speed end --- Check if the actor has a gem bomb in quiver diff --git a/game/modules/tome/data/birth/races/undead.lua b/game/modules/tome/data/birth/races/undead.lua index dc809e8d261cebb796f2f19d6b39cbd826a1b2cf..5f0ed99a24cc88b24295b4296304a61b28fb533f 100644 --- a/game/modules/tome/data/birth/races/undead.lua +++ b/game/modules/tome/data/birth/races/undead.lua @@ -104,7 +104,7 @@ newBirthDescriptor cut_immune = 1, stun_immune = 0.5, fear_immune = 1, - energy = {mod=0.8}, + global_speed = 0.8, }, experience = 1.4, } diff --git a/game/modules/tome/data/general/npcs/aquatic_critter.lua b/game/modules/tome/data/general/npcs/aquatic_critter.lua index f9ba2b65408cb3b8a1f39882eabc6ea7ce89b258..c04fed8ebbdc99eab9c195d32bb8424ba0eb4820 100644 --- a/game/modules/tome/data/general/npcs/aquatic_critter.lua +++ b/game/modules/tome/data/general/npcs/aquatic_critter.lua @@ -29,7 +29,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, stats = { str=12, dex=10, mag=3, con=13 }, - energy = { mod=1 }, combat_armor = 1, combat_def = 1, combat = { dam=resolvers.levelup(resolvers.mbonus(36, 10), 1, 1), atk=15, apr=7, dammod={str=0.6} }, max_life = resolvers.rngavg(10,20), life_rating = 6, @@ -58,7 +57,7 @@ newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", resolvers.talents{ [Talents.T_CHAIN_LIGHTNING]=3, [Talents.T_LIGHTNING]=3 }, on_die = function(self, who) local part = "ELECTRIC_EEL_TAIL" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, @@ -95,7 +94,7 @@ newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", resolvers.talents{ [Talents.T_GRAB]=3, }, on_die = function(self, who) local part = "SQUID_INK" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, @@ -110,7 +109,7 @@ newEntity{ base = "BASE_NPC_AQUATIC_CRITTER", resolvers.talents{ [Talents.T_GRAB]=3, [Talents.T_BLINDING_INK]=3, }, on_die = function(self, who) local part = "SQUID_INK" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/aquatic_demon.lua b/game/modules/tome/data/general/npcs/aquatic_demon.lua index 17128a795cc75d14148b22ac1146a585309c42c4..e20176dc6314d01ed7d789c5645930bfb9ea6a2f 100644 --- a/game/modules/tome/data/general/npcs/aquatic_demon.lua +++ b/game/modules/tome/data/general/npcs/aquatic_demon.lua @@ -30,7 +30,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, stats = { str=12, dex=10, mag=3, con=13 }, - energy = { mod=1 }, combat_armor = 1, combat_def = 1, combat = { dam=resolvers.levelup(resolvers.mbonus(46, 20), 1, 1), atk=15, apr=7, dammod={str=0.7} }, max_life = resolvers.rngavg(100,120), diff --git a/game/modules/tome/data/general/npcs/bear.lua b/game/modules/tome/data/general/npcs/bear.lua index 3a82db712da0e7d1d6fc775ec586b1ad3b1ee773..dc6e8dbc57e1c238e357e095c39b15dca356b265 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, }, - energy = { mod=0.9 }, + global_speed = 0.9, stats = { str=18, dex=13, mag=5, con=15 }, infravision = 20, rank = 2, @@ -45,7 +45,7 @@ newEntity{ resists = { [DamageType.FIRE] = 20, [DamageType.COLD] = 20, [DamageType.POISON] = 20 }, on_die = function(self, who) local part = "BEAR_PAW" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/bird.lua b/game/modules/tome/data/general/npcs/bird.lua index 858248d1ecb2bde0aa3daeb10c3dca5820725b74..2a315d0dc35dcc5415c771827154347db21ffc42 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 }, - energy = { mod=1.2 }, + global_speed = 1.2, combat_armor = 1, combat_def = 5, combat = { dam=5, atk=15, apr=7, dammod={str=0.6} }, infravision = 20, diff --git a/game/modules/tome/data/general/npcs/bone-giant.lua b/game/modules/tome/data/general/npcs/bone-giant.lua index 85908f21dc1ebf6cbe242782d650604215a5918b..95264ba3172bd0755b430609181eed7585b1a0f5 100644 --- a/game/modules/tome/data/general/npcs/bone-giant.lua +++ b/game/modules/tome/data/general/npcs/bone-giant.lua @@ -37,7 +37,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - energy = { mod=1 }, stats = { str=20, dex=52, mag=16, con=16 }, resists = { [DamageType.PHYSICAL] = 20, [DamageType.BLIGHT] = 20, [DamageType.COLD] = 50, }, @@ -53,7 +52,7 @@ newEntity{ undead = 1, on_die = function(self, who) local part = "BONE_GOLEM_DUST" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/canine.lua b/game/modules/tome/data/general/npcs/canine.lua index 09180d15ddde082991adcf4a09ff876c3ec4b530..488a6c2732c5b2f9bbed05d12c009e930f306d18 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, }, - energy = { mod=1.1 }, + global_speed = 1.2, stats = { str=10, dex=17, mag=3, con=7 }, combat = { dammod={str=0.6} }, combat_armor = 1, combat_def = 1, @@ -96,7 +96,7 @@ newEntity{ base = "BASE_NPC_CANINE", resolvers.talents{ [Talents.T_HOWL]=3, }, on_die = function(self, who) local part = "WARG_CLAW" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/cold-drake.lua b/game/modules/tome/data/general/npcs/cold-drake.lua index 03ecc5d2cde6014aa92a08fad34f8dff3df0761d..4cae85ce0414bfcbf3d9dc6f8523f3392770fc4d 100644 --- a/game/modules/tome/data/general/npcs/cold-drake.lua +++ b/game/modules/tome/data/general/npcs/cold-drake.lua @@ -34,7 +34,6 @@ newEntity{ autolevel = "drake", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - energy = { mod=1 }, stats = { str=20, dex=20, mag=30, con=16 }, resists = { [DamageType.COLD] = 100, }, @@ -106,7 +105,7 @@ newEntity{ base = "BASE_NPC_COLD_DRAKE", }, on_die = function(self, who) local part = "ICE_WYRM_TOOTH" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/construct.lua b/game/modules/tome/data/general/npcs/construct.lua index f40ca5ee8981e8024a1e42fd20e0326a5e406822..4a8c95b405f7f4393bc6ef1491e8d060bb1ee6ea 100644 --- a/game/modules/tome/data/general/npcs/construct.lua +++ b/game/modules/tome/data/general/npcs/construct.lua @@ -46,7 +46,6 @@ newEntity{ autolevel = "warriormage", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - energy = { mod=1 }, stats = { str=20, mag=16, con=22 }, resolvers.talents{ [Talents.T_STAMINA_POOL]=1, [Talents.T_MANA_POOL]=1, diff --git a/game/modules/tome/data/general/npcs/crystal.lua b/game/modules/tome/data/general/npcs/crystal.lua index cf9cc981ab22e7e827c6fd1d5ec4a7e9463c2136..0597706023b7c49fa7ca9b669e4ac592df72d8b6 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 }, - energy = { mod=0.5 }, + global_speed = 0.7, infravision = 20, 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 }, - energy = { mod = 1 }, + global_speed = 1, stats = { str = 9, dex = 20, mag = 20 }, resolvers.talents{ [Talents.T_EXPLODE] = 3, diff --git a/game/modules/tome/data/general/npcs/elven-caster.lua b/game/modules/tome/data/general/npcs/elven-caster.lua index ea885895cb2305d793468768577c5439307151d6..d8873c3c18941cf305ad5037345f362a932693d6 100644 --- a/game/modules/tome/data/general/npcs/elven-caster.lua +++ b/game/modules/tome/data/general/npcs/elven-caster.lua @@ -47,7 +47,6 @@ newEntity{ autolevel = "caster", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, - energy = { mod=1 }, stats = { str=20, dex=8, mag=6, con=16 }, } diff --git a/game/modules/tome/data/general/npcs/elven-warrior.lua b/game/modules/tome/data/general/npcs/elven-warrior.lua index 8b34ded8e7aeeccc5f8f9dcb2e371d65ebc6b494..0ab8bbefb5e893e2c49410c470495122ac331217 100644 --- a/game/modules/tome/data/general/npcs/elven-warrior.lua +++ b/game/modules/tome/data/general/npcs/elven-warrior.lua @@ -46,7 +46,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=20, dex=8, mag=6, con=16 }, } diff --git a/game/modules/tome/data/general/npcs/faeros.lua b/game/modules/tome/data/general/npcs/faeros.lua index 1f7c54dc5d5cbb63981267ee020e2c1d0b97c217..f8809cfa3aa22277ed6ea4a7f3b9651920094494 100644 --- a/game/modules/tome/data/general/npcs/faeros.lua +++ b/game/modules/tome/data/general/npcs/faeros.lua @@ -37,7 +37,6 @@ newEntity{ autolevel = "dexmage", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - energy = { mod=1 }, stats = { str=10, dex=8, mag=6, con=16 }, resists = { [DamageType.PHYSICAL] = 10, [DamageType.FIRE] = 100, [DamageType.COLD] = -30, }, @@ -47,7 +46,7 @@ newEntity{ disease_immune = 1, on_die = function(self, who) local part = "FAEROS_ASH" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/fire-drake.lua b/game/modules/tome/data/general/npcs/fire-drake.lua index 80fe529b3a991f6d025130dcdf0ebdf8ebc400c7..f51649411e3f3936d54c6f6933bed4d6a6de1414 100644 --- a/game/modules/tome/data/general/npcs/fire-drake.lua +++ b/game/modules/tome/data/general/npcs/fire-drake.lua @@ -34,7 +34,6 @@ newEntity{ autolevel = "drake", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - energy = { mod=1 }, stats = { str=20, dex=20, mag=30, con=16 }, resists = { [DamageType.FIRE] = 100, }, @@ -110,7 +109,7 @@ newEntity{ base = "BASE_NPC_FIRE_DRAKE", }, on_die = function(self, who) local part = "FIRE_WYRM_SALIVA" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/ghost.lua b/game/modules/tome/data/general/npcs/ghost.lua index 150bef39a9d8aacc8e1229f2428152008153ce2c..93abcad5f3369b024c0b5a9cdcefb91745abc29b 100644 --- a/game/modules/tome/data/general/npcs/ghost.lua +++ b/game/modules/tome/data/general/npcs/ghost.lua @@ -30,7 +30,6 @@ newEntity{ body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1 }, autolevel = "warriormage", ai = "dumb_talented_simple", ai_state = { ai_target="target_player_radius", sense_radius=40, talent_in=2, }, - energy = { mod=1 }, stats = { str=14, dex=18, mag=20, con=12 }, rank = 2, size_category = 3, diff --git a/game/modules/tome/data/general/npcs/ghoul.lua b/game/modules/tome/data/general/npcs/ghoul.lua index 09739301925571fdf153ed446f6722221ea8541c..2e988905e66e685a8515f8c82a761f8a1c828a6b 100644 --- a/game/modules/tome/data/general/npcs/ghoul.lua +++ b/game/modules/tome/data/general/npcs/ghoul.lua @@ -30,7 +30,6 @@ newEntity{ drops = resolvers.drops{chance=70, nb=1, {type="money"}, {} }, autolevel = "ghoul", ai = "dumb_talented_simple", ai_state = { talent_in=2, ai_move="move_ghoul", }, - energy = { mod=1 }, stats = { str=14, dex=12, mag=10, con=12 }, rank = 2, size_category = 3, @@ -46,7 +45,7 @@ newEntity{ undead = 1, on_die = function(self, who) local part = "GHOUL_FLESH" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/gwelgoroth.lua b/game/modules/tome/data/general/npcs/gwelgoroth.lua index c9bc1fa2036b38a10e3e212c09088cdf2457f70c..45e2689f637ed7e277a8fc2c1f7e464d75afad5e 100644 --- a/game/modules/tome/data/general/npcs/gwelgoroth.lua +++ b/game/modules/tome/data/general/npcs/gwelgoroth.lua @@ -36,7 +36,6 @@ newEntity{ autolevel = "dexmage", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - energy = { mod=1 }, stats = { str=10, dex=8, mag=6, con=16 }, resists = { [DamageType.PHYSICAL] = 10, [DamageType.LIGHTNING] = 100, [DamageType.FIRE] = -30, }, diff --git a/game/modules/tome/data/general/npcs/horror-corrupted.lua b/game/modules/tome/data/general/npcs/horror-corrupted.lua index 357e48d75b192d71c8ccf9539b9cf919990ac908..cc9c17b73366a83d9e32463f7b9abdfe7fc3ea77 100644 --- a/game/modules/tome/data/general/npcs/horror-corrupted.lua +++ b/game/modules/tome/data/general/npcs/horror-corrupted.lua @@ -32,7 +32,6 @@ newEntity{ combat = { atk=2, dammod={str=0.6} }, -- max_life = resolvers.rngavg(30, 50), stats = { str=16, con=16 }, - energy = { mod=1 }, infravision = 20, rank = 2, size_category = 3, @@ -160,8 +159,6 @@ newEntity{ base = "BASE_NPC_CORRUPTED_HORROR", desc = "A giant hairless bat with the face of a dwarven man twisted into a constant scream. Pestulant sores cover it's malformed body and your heart weakens as it nears.", level_range = {1, nil}, exp_worth = 1, - energy = { mod=0.7 }, - combat = { atk=10, dammod={dex=0.6} }, combat_armor = 0, combat_def = 6, max_life = resolvers.rngavg(10, 20), @@ -172,7 +169,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", - energy = { mod=1.2 }, + global_speed = 1.2, resists = { [DamageType.BLIGHT] = 50, [DamageType.DARKNESS] = 20, [DamageType.LIGHT] = - 20 }, @@ -199,7 +196,7 @@ newEntity{ base = "BASE_NPC_CORRUPTED_HORROR", size_category = 3, autolevel = "warrior", - energy = { mod=0.8 }, + global_speed = 0.8, resists = { [DamageType.ACID] = 50, [DamageType.DARKNESS] = 20, [DamageType.LIGHT] = - 20 }, @@ -229,7 +226,7 @@ newEntity{ base = "BASE_NPC_CORRUPTED_HORROR", autolevel = "caster", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - energy = { mod=0.8 }, + global_speed = 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 9c52456b2e00f527f98842e29db16a3c3c4e5644..145a0726993e6da0eaef044b3409ed647355d83e 100644 --- a/game/modules/tome/data/general/npcs/horror.lua +++ b/game/modules/tome/data/general/npcs/horror.lua @@ -31,7 +31,6 @@ newEntity{ ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, stats = { str=22, dex=20, wil=15, con=15 }, - energy = { mod=1 }, combat_armor = 0, combat_def = 0, combat = { dam=5, atk=15, apr=7, dammod={str=0.6} }, infravision = 20, @@ -118,7 +117,7 @@ newEntity{ base = "BASE_NPC_HORROR", resolvers.sustains_at_birth(), on_die = function(self, who) local part = "BLOATED_HORROR_HEART" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, @@ -397,7 +396,7 @@ newEntity{ base = "BASE_NPC_HORROR", }, on_die = function(self, who) local part = "LUMINOUS_HORROR_DUST" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, @@ -492,7 +491,7 @@ newEntity{ base = "BASE_NPC_HORROR", size_category = 4, autolevel = "warrior", max_life = resolvers.rngavg(120, 150), - energy = { mod=0.7 }, + global_speed = 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} }, @@ -542,7 +541,7 @@ newEntity{ base = "BASE_NPC_HORROR", rarity = 6, size_category = 3, max_life = resolvers.rngavg(50,70), - energy = { mod=1.2 }, + global_speed = 1.2, autolevel = "rogue", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, combat_armor = 10, combat_def = 10, @@ -610,7 +609,7 @@ You can discern a huge round mouth covered in razor-sharp teeth.]], rank = 3.5, no_breath = 1, size_category = 4, - movement_speed = 1.2, + movement_speed = 0.8, stun_immune = 1, knockback_immune = 1, diff --git a/game/modules/tome/data/general/npcs/jelly.lua b/game/modules/tome/data/general/npcs/jelly.lua index 64bcbd9f8e1c0a9384697b3a57582b0436d0611e..934b652b96c4a9528ff73b1e7d7ffd81f8111ece 100644 --- a/game/modules/tome/data/general/npcs/jelly.lua +++ b/game/modules/tome/data/general/npcs/jelly.lua @@ -30,7 +30,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { talent_in=1, }, stats = { str=10, dex=15, mag=3, con=10 }, - energy = { mod=1 }, combat_armor = 1, combat_def = 1, never_move = 1, rank = 2, diff --git a/game/modules/tome/data/general/npcs/lich.lua b/game/modules/tome/data/general/npcs/lich.lua index a7ed46fc88f8f87fdc2c0cd1579c21f8140b8a88..8ccf704cbf2423f847da4550b88496ea817bcf45 100644 --- a/game/modules/tome/data/general/npcs/lich.lua +++ b/game/modules/tome/data/general/npcs/lich.lua @@ -42,7 +42,6 @@ newEntity{ autolevel = "caster", ai = "tactical", ai_state = { talent_in=1, }, ai_tactic = resolvers.tactic"ranged", - energy = { mod=1 }, stats = { str=8, dex=15, mag=20, wil=18, con=10, cun=18 }, resists = { [DamageType.NATURE] = 90, [DamageType.FIRE] = 20, [DamageType.MIND] = 100, [DamageType.LIGHT] = -60, [DamageType.DARKNESS] = 95, [DamageType.BLIGHT] = 90 }, diff --git a/game/modules/tome/data/general/npcs/major-demon.lua b/game/modules/tome/data/general/npcs/major-demon.lua index 9ae8eaebb38497af03ccd94a2a30d36b96b6fa55..8c03cd515416fc289d0916692cce713859b2bca2 100644 --- a/game/modules/tome/data/general/npcs/major-demon.lua +++ b/game/modules/tome/data/general/npcs/major-demon.lua @@ -30,7 +30,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, stats = { str=22, dex=10, mag=20, con=13 }, - energy = { mod=1 }, combat_armor = 1, combat_def = 1, body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, QUIVER=1 }, combat = { dam=resolvers.mbonus(46, 20), atk=15, apr=7, dammod={str=0.7} }, @@ -45,7 +44,7 @@ newEntity{ resolvers.inscriptions(1, "rune"), on_die = function(self, who) local part = "GREATER_DEMON_BILE" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, @@ -101,7 +100,7 @@ Oh, and it is twice as big, too.]], level_range = {35, nil}, exp_worth = 1, rarity = 4, rank = 3, - energy = {mod=1.4}, + global_speed = 1.4, size_category = 5, autolevel = "warriormage", life_rating = 20, @@ -132,7 +131,7 @@ newEntity{ base = "BASE_NPC_MAJOR_DEMON", level_range = {35, nil}, exp_worth = 1, rarity = 4, rank = 3, - energy = {mod=1.2}, + global_speed = 1.2, size_category = 3, autolevel = "caster", life_rating = 6, @@ -164,7 +163,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, - energy = {mod=1.3}, + global_speed = 1.3, size_category = 4, autolevel = "warriormage", life_rating = 25, diff --git a/game/modules/tome/data/general/npcs/minor-demon.lua b/game/modules/tome/data/general/npcs/minor-demon.lua index 2f6d867e3c82041d524d34429ef07cf1f63d3cf3..80d9ad72fdd3c9686d7f71112d56fd01739d676f 100644 --- a/game/modules/tome/data/general/npcs/minor-demon.lua +++ b/game/modules/tome/data/general/npcs/minor-demon.lua @@ -30,7 +30,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, stats = { str=12, dex=10, mag=3, con=13 }, - energy = { mod=1 }, life_rating = 7, combat_armor = 1, combat_def = 1, combat = { dam=resolvers.mbonus(46, 20), atk=15, apr=7, dammod={str=0.7} }, @@ -86,7 +85,7 @@ newEntity{ base = "BASE_NPC_DEMON", }, on_die = function(self, who) local part = "WRETCHLING_EYE" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/minotaur.lua b/game/modules/tome/data/general/npcs/minotaur.lua index c62c8ec7dbc3d986acbb45956d2c469487a0c3d2..20ba76d310930c2c4f551a53934c11c9cb4b079f 100644 --- a/game/modules/tome/data/general/npcs/minotaur.lua +++ b/game/modules/tome/data/general/npcs/minotaur.lua @@ -45,13 +45,13 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=5, }, - energy = { mod=1.2 }, + global_speed = 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, }, on_die = function(self, who) local part = "MINOTAUR_NOSE" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/molds.lua b/game/modules/tome/data/general/npcs/molds.lua index fcdd979075cfe8771dadc9fb3dc061690a40716a..a39a1efb5774522461b7e7f2a36b327f3a27b4ed 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 }, - energy = { mod=0.5 }, + global_speed = 0.6, infravision = 20, combat_armor = 1, combat_def = 1, never_move = 1, diff --git a/game/modules/tome/data/general/npcs/multihued-drake.lua b/game/modules/tome/data/general/npcs/multihued-drake.lua index 96072d8726ee5b0657a568a947c51456958da9af..845ce7041cc85305b71f2223f616157b0e78d9ec 100644 --- a/game/modules/tome/data/general/npcs/multihued-drake.lua +++ b/game/modules/tome/data/general/npcs/multihued-drake.lua @@ -35,7 +35,6 @@ newEntity{ autolevel = "drake", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, - energy = { mod=1 }, stats = { str=20, dex=20, mag=30, con=16 }, knockback_immune = 1, @@ -132,7 +131,7 @@ newEntity{ base = "BASE_NPC_MULTIHUED_DRAKE", }, on_die = function(self, who) local part = "MULTIHUED_WYRM_SCALE" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/mummy.lua b/game/modules/tome/data/general/npcs/mummy.lua index b1c123784738bca2544b87547c7093dd6e090b2c..4b4221e1e38fadedebda70644d4961a61a523a4f 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, }, - energy = { mod=0.8 }, + global_speed = 0.8, stats = { str=14, dex=12, mag=10, con=12 }, infravision = 20, rank = 2, @@ -48,7 +48,7 @@ newEntity{ undead = 1, on_die = function(self, who) local part = "MUMMY_BONE" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/naga.lua b/game/modules/tome/data/general/npcs/naga.lua index 347dd396fbe9b2334400081e3c6748bb7c4b9d98..5e1bd6b003566e0be32c3a0a1460bee7d59ae75a 100644 --- a/game/modules/tome/data/general/npcs/naga.lua +++ b/game/modules/tome/data/general/npcs/naga.lua @@ -44,11 +44,11 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, - energy = { mod=1.2 }, + global_speed = 1.2, stats = { str=15, dex=15, mag=15, con=10 }, on_die = function(self, who) local part = "NAGA_TONGUE" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/ooze.lua b/game/modules/tome/data/general/npcs/ooze.lua index 83df04a465ec6962cb96f2cbf3765c7ee70d152e..c11b4f652a096053ae3364df698a380321465456 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 }, - energy = { mod=0.7 }, + global_speed = 0.7, combat_armor = 1, combat_def = 1, rank = 1, size_category = 3, diff --git a/game/modules/tome/data/general/npcs/orc-gorbat.lua b/game/modules/tome/data/general/npcs/orc-gorbat.lua index cddcbf768e5837e9272b91d702f48d0d5e79905b..805440c3bb33cb066198d25a69558ddeb124dab7 100644 --- a/game/modules/tome/data/general/npcs/orc-gorbat.lua +++ b/game/modules/tome/data/general/npcs/orc-gorbat.lua @@ -46,11 +46,10 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=20, dex=8, mag=6, con=16 }, on_die = function(self, who) local part = "ORC_HEART" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/orc-grushnak.lua b/game/modules/tome/data/general/npcs/orc-grushnak.lua index f31cf46b86e6dbfe8263426e3fe3134454613449..3b342a45513029fae55ff6820d5ee5a8ab0d405a 100644 --- a/game/modules/tome/data/general/npcs/orc-grushnak.lua +++ b/game/modules/tome/data/general/npcs/orc-grushnak.lua @@ -45,11 +45,10 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=20, dex=8, mag=6, con=16 }, on_die = function(self, who) local part = "ORC_HEART" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/orc-rak-shor.lua b/game/modules/tome/data/general/npcs/orc-rak-shor.lua index cb3c2dc241c78bff24143bdddf7cd1bdb4dc786c..7c484cdef117423d9008bb921b35c55e4aa9fb48 100644 --- a/game/modules/tome/data/general/npcs/orc-rak-shor.lua +++ b/game/modules/tome/data/general/npcs/orc-rak-shor.lua @@ -44,11 +44,10 @@ newEntity{ autolevel = "caster", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, - energy = { mod=1 }, stats = { str=20, dex=8, mag=6, con=16 }, on_die = function(self, who) local part = "ORC_HEART" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/orc-vor.lua b/game/modules/tome/data/general/npcs/orc-vor.lua index 496677b8c524435ce173bcd46b0afe75e5f99fea..2cfb87e28cd9f6cdec6eb639843d85207348f3aa 100644 --- a/game/modules/tome/data/general/npcs/orc-vor.lua +++ b/game/modules/tome/data/general/npcs/orc-vor.lua @@ -46,11 +46,10 @@ newEntity{ autolevel = "caster", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, - energy = { mod=1 }, stats = { str=10, dex=8, mag=20, con=16 }, on_die = function(self, who) local part = "ORC_HEART" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/orc.lua b/game/modules/tome/data/general/npcs/orc.lua index 7ca14cf8133e4d053f509c3c334f7daf3a5ebfe1..e5316c374a7149fb49e1eedaf64c7f92d8cb9ad6 100644 --- a/game/modules/tome/data/general/npcs/orc.lua +++ b/game/modules/tome/data/general/npcs/orc.lua @@ -41,12 +41,11 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=20, dex=8, mag=6, con=16 }, resolvers.talents{ [Talents.T_WEAPON_COMBAT]={base=1, every=5, max=10}, }, on_die = function(self, who) local part = "ORC_HEART" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/plant.lua b/game/modules/tome/data/general/npcs/plant.lua index 371817c48179792442407745d4965e36c7426967..d592bf24f36b159b88caa79102303e8f5c56d781 100644 --- a/game/modules/tome/data/general/npcs/plant.lua +++ b/game/modules/tome/data/general/npcs/plant.lua @@ -31,7 +31,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { talent_in=3, }, stats = { str=10, dex=10, mag=3, con=10 }, - energy = { mod=1 }, infravision = 20, combat_armor = 1, combat_def = 1, rank = 1, @@ -97,7 +96,7 @@ newEntity{ base = "BASE_NPC_PLANT", resolvers.talents{ [Talents.T_SUMMON]=1 }, on_die = function(self, who) local part = "HONEY_TREE_ROOT" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/ritch.lua b/game/modules/tome/data/general/npcs/ritch.lua index cad9be7aaaff650326e42f912dfe94a1302dd26b..b4dde66522855dd5135c7e9688d3a9ab5a43b33e 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, }, - energy = { mod=1.2 }, + global_speed = 1.2, stats = { str=15, dex=15, mag=8, con=10 }, poison_immune = 0.5, @@ -45,7 +45,7 @@ Vicious predators, they inject corrupting diseases into their foes, and their sh resists = { [DamageType.BLIGHT] = 20, [DamageType.FIRE] = 100 }, on_die = function(self, who) local part = "RITCH_STINGER" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/rodent.lua b/game/modules/tome/data/general/npcs/rodent.lua index b45d8eb66753c0519afde2cf200acea0e06caeb4..f4a00a4b6e6cbd584dd870e643e7d08098fa0137 100644 --- a/game/modules/tome/data/general/npcs/rodent.lua +++ b/game/modules/tome/data/general/npcs/rodent.lua @@ -29,7 +29,6 @@ newEntity{ --rodent base autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=8, dex=15, mag=3, con=5 }, combat_armor = 1, combat_def = 1, rank = 1, diff --git a/game/modules/tome/data/general/npcs/skeleton.lua b/game/modules/tome/data/general/npcs/skeleton.lua index 10a66b7db4b279833d4179c9e99e7bd139e6f454..04cdaae0c9ca6b29b976e348df4963fddf59e0b9 100644 --- a/game/modules/tome/data/general/npcs/skeleton.lua +++ b/game/modules/tome/data/general/npcs/skeleton.lua @@ -36,7 +36,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=4, }, - energy = { mod=1 }, stats = { str=14, dex=12, mag=10, con=12 }, resolvers.racial(), @@ -87,7 +86,7 @@ newEntity{ base = "BASE_NPC_SKELETON", ai = "dumb_talented_simple", ai_state = { talent_in=3, }, on_die = function(self, who) local part = "SKELETON_MAGE_SKULL" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/snake.lua b/game/modules/tome/data/general/npcs/snake.lua index cdc43f787b4d0459af5448552d4a173bb4b98b8a..5379221d3a75d7e80ce080db176aee605e8d9c2d 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" }, - energy = { mod=1.3 }, + global_speed = 1.3, stats = { str=14, dex=23, mag=5, con=5 }, combat_armor = 1, combat_def = 1, } @@ -106,7 +106,7 @@ newEntity{ base = "BASE_NPC_SNAKE", resolvers.talents{ [Talents.T_BITE_POISON]=3 }, on_die = function(self, who) local part = "BLACK_MAMBA_HEAD" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, @@ -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 }, - energy = { mod=0.8 }, + global_speed = 1, resolvers.talents{ [Talents.T_CONSTRICT]=5 }, } diff --git a/game/modules/tome/data/general/npcs/snow-giant.lua b/game/modules/tome/data/general/npcs/snow-giant.lua index 9eba23ea8cd510ca56bcf280a98dde01b7f75373..5c177bac71669e09baef5097acac7ede6c6b688b 100644 --- a/game/modules/tome/data/general/npcs/snow-giant.lua +++ b/game/modules/tome/data/general/npcs/snow-giant.lua @@ -37,7 +37,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - energy = { mod=1 }, stats = { str=20, dex=8, mag=6, con=16 }, resolvers.inscriptions(1, "infusion"), @@ -49,7 +48,7 @@ newEntity{ poison_immune = 1, on_die = function(self, who) local part = "SNOW_GIANT_KIDNEY" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/spider.lua b/game/modules/tome/data/general/npcs/spider.lua index e680e5797e54cc940742165de60a7fd7e2767e8b..a271c81a4ba10682a5d7c1701182ebbc5fe6fe8d 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, }, - energy = { mod=1.2 }, + global_speed = 1.2, stats = { str=15, dex=15, mag=8, con=10 }, resolvers.inscriptions(2, "infusion"), @@ -63,7 +63,7 @@ newEntity{ base = "BASE_NPC_SPIDER", }, on_die = function(self, who) local part = "SPIDER_SPINNERET" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, @@ -183,7 +183,7 @@ newEntity{ base = "BASE_NPC_SPIDER", }, on_die = function(self, who) local part = "FAERLHING_FANG" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/storm-drake.lua b/game/modules/tome/data/general/npcs/storm-drake.lua index d77dab8f9e16010adaa56d87a2ff94c28fc47a57..aa5a201beab8f537485ef93d170372438e7160c0 100644 --- a/game/modules/tome/data/general/npcs/storm-drake.lua +++ b/game/modules/tome/data/general/npcs/storm-drake.lua @@ -34,7 +34,6 @@ newEntity{ autolevel = "drake", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - energy = { mod=1 }, stats = { str=20, dex=20, mag=30, con=16 }, resists = { [DamageType.LIGHTNING] = 100, }, @@ -110,7 +109,7 @@ newEntity{ base = "BASE_NPC_STORM_DRAKE", }, on_die = function(self, who) local part = "STORM_WYRM_CLAW" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/sunwall-town.lua b/game/modules/tome/data/general/npcs/sunwall-town.lua index c88a9f98cfb0e65acdb6047e929130c346be149b..3c5d828ac48c5e19d37026b3222a5bcd7f5257b8 100644 --- a/game/modules/tome/data/general/npcs/sunwall-town.lua +++ b/game/modules/tome/data/general/npcs/sunwall-town.lua @@ -39,7 +39,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=12, dex=8, mag=6, con=10 }, } diff --git a/game/modules/tome/data/general/npcs/swarm.lua b/game/modules/tome/data/general/npcs/swarm.lua index 5dd91b3ff93fa1e1a84dea63f96f9b5ffe7f9ebe..6efcd9491eca0754c4a923eed6bf19d1d18655a0 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 }, - energy = { mod=2 }, + global_speed = 2, infravision = 20, combat_armor = 1, combat_def = 10, rank = 1, @@ -81,7 +81,7 @@ newEntity{ base = "BASE_NPC_INSECT", resolvers.talents{ [Talents.T_BITE_POISON]={base=3, every=10, max=8} }, on_die = function(self, who) local part = "HUMMERHORN_WING" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/telugoroth.lua b/game/modules/tome/data/general/npcs/telugoroth.lua index 96ab6645209fae9522bf1958b4b52b3baa20f3fd..450fe49f98a29bf16a63ee6b1d96147e7914e96f 100644 --- a/game/modules/tome/data/general/npcs/telugoroth.lua +++ b/game/modules/tome/data/general/npcs/telugoroth.lua @@ -36,7 +36,7 @@ newEntity{ autolevel = "dexmage", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=2, }, - energy = { mod=1.5 }, + global_speed = 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/thieve.lua b/game/modules/tome/data/general/npcs/thieve.lua index 89d57246168516684d94fa980d80e95f4b0e1138..6f6c8a4250fbea8a657bbb24dc63a75966e25e44 100644 --- a/game/modules/tome/data/general/npcs/thieve.lua +++ b/game/modules/tome/data/general/npcs/thieve.lua @@ -49,7 +49,6 @@ newEntity{ autolevel = "rogue", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=5, }, - energy = { mod=1 }, stats = { str=8, dex=15, mag=6, cun=15, con=7 }, resolvers.tmasteries{ ["technique/other"]=0.3, ["cunning/stealth"]=1, ["cunning/dirty"]=0.3, ["technique/dualweapon-training"]=0.3 }, diff --git a/game/modules/tome/data/general/npcs/troll.lua b/game/modules/tome/data/general/npcs/troll.lua index 857306189ddd17d9bb00ccc992e6306f423da0cc..3f2f541632b26622ce1d42e8e53ec3e93b286112 100644 --- a/game/modules/tome/data/general/npcs/troll.lua +++ b/game/modules/tome/data/general/npcs/troll.lua @@ -39,7 +39,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=20, dex=8, mag=6, con=16 }, open_door = true, @@ -50,7 +49,7 @@ newEntity{ fear_immune = 1, on_die = function(self, who) local part = "TROLL_INTESTINE" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/vampire.lua b/game/modules/tome/data/general/npcs/vampire.lua index 6b43b6f3b8e9c3f920fce99fa3bf0ecb9ae5011d..96431c5d93aa4fc862c6d3e60baaab56d931f192 100644 --- a/game/modules/tome/data/general/npcs/vampire.lua +++ b/game/modules/tome/data/general/npcs/vampire.lua @@ -49,7 +49,6 @@ newEntity{ autolevel = "warriormage", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=9, }, - energy = { mod=1 }, stats = { str=12, dex=12, mag=12, con=12 }, infravision = 20, life_regen = 3, @@ -120,7 +119,7 @@ It can summon the very shades of its victims from beyond the grave to come ensla resolvers.talents{ [Talents.T_STUN]={base=2, every=7, max=6}, [Talents.T_SUMMON]=1, [Talents.T_BLUR_SIGHT]={base=3, every=7, max=7}, [Talents.T_PHANTASMAL_SHIELD]={base=2, every=7, max=6}, [Talents.T_ROTTING_DISEASE]={base=3, every=7, max=7}, }, on_die = function(self, who) local part = "ELDER_VAMPIRE_BLOOD" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, @@ -143,7 +142,7 @@ newEntity{ base = "BASE_NPC_VAMPIRE", }, on_die = function(self, who) local part = "VAMPIRE_LORD_FANG" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/vermin.lua b/game/modules/tome/data/general/npcs/vermin.lua index 8fbcce22d9ad7dde5e6c9368e18d7221160d5a42..ba05299ca7001f97377ffb864ff535ea8107d056 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, }, - energy = { mod=0.9 }, + global_speed = 0.9, stats = { str=10, dex=15, mag=3, con=3 }, combat_armor = 1, combat_def = 1, infravision = 20, @@ -58,7 +58,7 @@ newEntity{ base = "BASE_NPC_WORM", resolvers.talents{ [Talents.T_CRAWL_ACID]=2, [Talents.T_MULTIPLY]=1 }, on_die = function(self, who) local part = "GREEN_WORM" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/wight.lua b/game/modules/tome/data/general/npcs/wight.lua index cbfa2dc7706da50df629b7ed11124bdd9edddb8e..eda71ccc0a72426f242e4805db6b6dedbfbe7fba 100644 --- a/game/modules/tome/data/general/npcs/wight.lua +++ b/game/modules/tome/data/general/npcs/wight.lua @@ -40,7 +40,6 @@ newEntity{ autolevel = "caster", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=4, }, - energy = { mod=1 }, stats = { str=11, dex=11, mag=15, con=12 }, infravision = 20, rank = 2, @@ -60,7 +59,7 @@ newEntity{ -- sleep_immune = 1, on_die = function(self, who) local part = "WIGHT_ECTOPLASM" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/xorn.lua b/game/modules/tome/data/general/npcs/xorn.lua index 3436ea3d4ed3ca370fdb12f21caa947bc9514134..8f7820e8c219b68939d1653c5dcccfc0ba342af9 100644 --- a/game/modules/tome/data/general/npcs/xorn.lua +++ b/game/modules/tome/data/general/npcs/xorn.lua @@ -42,7 +42,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_target="target_player_radius", sense_radius=6, talent_in=3, }, - energy = { mod=1 }, stats = { str=20, dex=8, mag=6, con=16 }, resists = { [DamageType.PHYSICAL] = 20, [DamageType.FIRE] = 50, }, @@ -53,7 +52,7 @@ newEntity{ stone_immune = 1, on_die = function(self, who) local part = "XORN_FRAGMENT" - if game.player:hasQuest("brotherhood-of-alchemists") then + if game.player:hasQuest("brotherhood-of-alchemists") then game.player:hasQuest("brotherhood-of-alchemists"):need_part(who, part, self) end end, diff --git a/game/modules/tome/data/general/npcs/ziguranth.lua b/game/modules/tome/data/general/npcs/ziguranth.lua index 3b4c3d3cfb24484058a394ff8b5136fab7288b6d..a1e8642a39e2b100c6c1172cd4740e092ba936a4 100644 --- a/game/modules/tome/data/general/npcs/ziguranth.lua +++ b/game/modules/tome/data/general/npcs/ziguranth.lua @@ -47,7 +47,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=20, dex=15, mag=1, con=16, wil=19 }, } diff --git a/game/modules/tome/data/general/objects/boss-artifacts.lua b/game/modules/tome/data/general/objects/boss-artifacts.lua index 82c05768af2654811196b4d0e3fd3b3cd8b72b12..3273026f7c54e1d5d36de71343c576420385bce0 100644 --- a/game/modules/tome/data/general/objects/boss-artifacts.lua +++ b/game/modules/tome/data/general/objects/boss-artifacts.lua @@ -548,7 +548,6 @@ newEntity{ base = "BASE_AMULET", autolevel = "warriormage", ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=3, }, - energy = { mod=1 }, stats = { str=12, dex=12, mag=12, con=12 }, life_regen = 3, size_category = 3, diff --git a/game/modules/tome/data/general/objects/egos/amulets.lua b/game/modules/tome/data/general/objects/egos/amulets.lua index 54482e723b00b86d08491dcd7e9ef22adb378680..6d4238c6b0a13ea98f5d8e62e2394d40c20492d5 100644 --- a/game/modules/tome/data/general/objects/egos/amulets.lua +++ b/game/modules/tome/data/general/objects/egos/amulets.lua @@ -294,7 +294,7 @@ newEntity{ wielder = { combat_dam = resolvers.mbonus_material(5, 5, function(e, v) return v * 3 end), inc_damage = { [DamageType.PHYSICAL] = resolvers.mbonus_material(5, 5, function(e, v) return v * 0.8 end) }, - combat_physspeed = -0.1, + combat_physspeed = 0.1, }, } diff --git a/game/modules/tome/data/general/objects/egos/boots.lua b/game/modules/tome/data/general/objects/egos/boots.lua index c4f45c5bcc91685afbcd055739f5a6a96a264478..a99563ac59a5bcff0ccb92b8b4c27d418ba66f98 100644 --- a/game/modules/tome/data/general/objects/egos/boots.lua +++ b/game/modules/tome/data/general/objects/egos/boots.lua @@ -63,7 +63,7 @@ newEntity{ rarity = 20, cost = 60, wielder = { - movement_speed = -0.2, + movement_speed = 0.2, }, } @@ -197,7 +197,7 @@ newEntity{ wielder = { fatigue = resolvers.mbonus_material(6, 4, function(e, v) return v * 1, -v end), max_life=resolvers.mbonus_material(30, 30, function(e, v) return v * 0.1 end), - movement_speed = -0.1, + movement_speed = 0.1, }, } diff --git a/game/modules/tome/data/general/objects/egos/light-armor.lua b/game/modules/tome/data/general/objects/egos/light-armor.lua index 7ae68a49379766d9e9ebdb39da0aaf6ecffacf65..618d2d8857d986e024cb044f4516b9d931109998 100644 --- a/game/modules/tome/data/general/objects/egos/light-armor.lua +++ b/game/modules/tome/data/general/objects/egos/light-armor.lua @@ -43,7 +43,7 @@ newEntity{ cost = 35, wielder = { combat_def_ranged = resolvers.mbonus_material(8, 2, function(e, v) return v * 1 end), - movement_speed = -0.1, + movement_speed = 0.1, inc_stats = { [Stats.STAT_DEX] = resolvers.mbonus_material(3, 2, function(e, v) return v * 3 end), }, }, } diff --git a/game/modules/tome/data/general/objects/egos/staves.lua b/game/modules/tome/data/general/objects/egos/staves.lua index 4033d654a0edc98092c41793bbd1e504db4203a3..de55714f6504f7e40559d28503c7ff536d0dcd53 100644 --- a/game/modules/tome/data/general/objects/egos/staves.lua +++ b/game/modules/tome/data/general/objects/egos/staves.lua @@ -315,7 +315,7 @@ newEntity{ cost = 35, wielder = { combat_spellpower = resolvers.mbonus_material(7, 3, function(e, v) return v * 0.6 end), - movement_speed = -0.1, + movement_speed = 0.1, inc_damage = { [DamageType.TEMPORAL] = resolvers.mbonus_material(20, 5, function(e, v) return v * 0.25 end), }, diff --git a/game/modules/tome/data/maps/quests/lost-merchant.lua b/game/modules/tome/data/maps/quests/lost-merchant.lua index d7e9a4902901f7873e548b8b926016dbf53bfa4f..a083219f06cb2ced189108399dfad7cd536d6bec 100644 --- a/game/modules/tome/data/maps/quests/lost-merchant.lua +++ b/game/modules/tome/data/maps/quests/lost-merchant.lua @@ -46,7 +46,6 @@ defineTile('P', "FLOOR", nil, mod.class.NPC.new{ autolevel = "rogue", ai = "dumb_talented_simple", ai_state = { talent_in=5, }, - energy = { mod=1 }, stats = { str=8, dex=15, mag=6, cun=15, con=7 }, resolvers.tmasteries{ ["technique/other"]=0.3, ["cunning/stealth"]=1.3, ["cunning/dirty"]=0.3, ["technique/dualweapon-training"]=0.3 }, diff --git a/game/modules/tome/data/talents/chronomancy/anomalies.lua b/game/modules/tome/data/talents/chronomancy/anomalies.lua index 835f455b54a1fa9579c80a926dc8627213a7e2ac..4f8b7f6dcbbd3bc9cf7df455adb09e50c295c08e 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", - energy = { mod=1.5 }, + global_speed = 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}, @@ -446,7 +446,7 @@ newTalent{ if #tgts <= 0 then break end local a, id = rng.table(tgts) table.remove(tgts, id) - + local px, py = self.x, self.y local gx, gy = a.x, a.y @@ -456,7 +456,7 @@ newTalent{ a:move(px, py, true) game.level.map:particleEmitter(px, py, 1, "teleport") game.level.map:particleEmitter(gx, gy, 1, "teleport") - + end return true end, @@ -502,11 +502,11 @@ newTalent{ game.logSeen(target, "%s is drawn in by the gravity spike!", target.name:capitalize()) end end) - + self:project (tg, a.x, a.y, DamageType.PHYSICAL, self:spellCrit(t.getDamage(self, t))) game.level.map:particleEmitter(a.x, a.y, tg.radius, "gravity_spike", {radius=tg.radius, grids=grids, tx=a.x, ty=a.y}) game:playSoundNear(self, "talents/earth") - + end return true end, @@ -597,7 +597,7 @@ newTalent{ table.remove(tgts, id) -- Randomly pick a race local race = rng.range(1, 4) - + -- Find space for i = 1, 4 do local x, y = util.findFreeGrid(a.x, a.y, 5, true, {[Map.ACTOR]=true}) @@ -605,12 +605,12 @@ newTalent{ game.logPlayer(self, "Not enough space to summon!") return end - + local NPC = require "mod.class.NPC" local m = NPC.new{ - type = "humanoid", display = "p", + type = "humanoid", display = "p", color=colors.WHITE, - + combat = { dam=resolvers.rngavg(1,2), atk=2, apr=0, dammod={str=0.4} }, body = { INVEN = 10, MAINHAND=1, OFFHAND=1, BODY=1, QUIVER=1 }, @@ -623,21 +623,20 @@ newTalent{ open_door = true, autolevel = "warrior", - energy = { mod=1 }, stats = { str=12, dex=8, mag=6, con=10 }, ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=2, }, level_range = {1, 3}, - + max_life = resolvers.rngavg(30,40), combat_armor = 2, combat_def = 0, - + -- summoner = self, summoner_gain_exp=false, summon_time = t.getSummonTime(self, t), } - + m.level = 1 - + if race == 1 then m.name = "human farmer" m.subtype = "human" @@ -704,16 +703,16 @@ newTalent{ if #tgts <= 0 then break end local a, id = rng.table(tgts) table.remove(tgts, id) - + local x, y = util.findFreeGrid(self.x, self.y, 5, true, {[Map.ACTOR]=true}) if not x then game.logPlayer(self, "Not enough space to summon!") return end - + a:move(x, y, true) game.level.map:particleEmitter(x, y, 1, "teleport") - + end return true end, diff --git a/game/modules/tome/data/talents/chronomancy/speed-control.lua b/game/modules/tome/data/talents/chronomancy/speed-control.lua index 30172b1c4a23c566fb2fa51578ce09ced1b0024c..0e2feb7642715e9faaa74a50561be9f3d7a77cda 100644 --- a/game/modules/tome/data/talents/chronomancy/speed-control.lua +++ b/game/modules/tome/data/talents/chronomancy/speed-control.lua @@ -26,12 +26,12 @@ newTalent{ sustain_paradox = 75, cooldown = 10, tactical = { BUFF = 1, CLOSEIN = 1, ESCAPE = 1 }, - no_energy = true, - getPower = function(self, t) return 1 - 1 / (1 + ((10 + self:combatTalentSpellDamage(t, 10, 30))/ 100)) end, + no_energy = true, + getPower = function(self, t) return self:combatTalentSpellDamage(t, 10, 40) / 100 end, activate = function(self, t) local power = t.getPower(self, t) return { - move = self:addTemporaryValue("movement_speed", -power) + move = self:addTemporaryValue("movement_speed", power) } end, deactivate = function(self, t, p) @@ -71,7 +71,7 @@ newTalent{ local _ _, _, _, x, y = self:canProject(tg, x, y) x, y = checkBackfire(self, x, y) local grids = self:project(tg, x, y, DamageType.STOP, t.getDuration(self, t)) - + game.level.map:particleEmitter(x, y, tg.radius, "temporal_flash", {radius=tg.radius, tx=x, ty=y}) game:playSoundNear(self, "talents/tidalwave") return true diff --git a/game/modules/tome/data/talents/corruptions/shadowflame.lua b/game/modules/tome/data/talents/corruptions/shadowflame.lua index f44a4d6efe06fb35b5dc552f4166445ad88cd374..4559076e039d437c4b3959d0be9f79139c9bfb19 100644 --- a/game/modules/tome/data/talents/corruptions/shadowflame.lua +++ b/game/modules/tome/data/talents/corruptions/shadowflame.lua @@ -90,10 +90,10 @@ newTalent{ game:playSoundNear(self, "talents/flame") self.__old_type = {self.type, self.subtype} self.type, self.subtype = "demon", "major" - local power = 1 - 1 / (1 + self:getTalentLevel(t) * 0.03) + local power = self:getTalentLevel(t) * 0.03 return { demon = self:addTemporaryValue("demon", 1), - speed = self:addTemporaryValue("energy", {mod=power}), + speed = self:addTemporaryValue("global_speed", 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("energy", p.speed) + self:removeTemporaryValue("global_speed", p.speed) self:removeTemporaryValue("demon", p.demon) self:removeParticles(p.particle) return true diff --git a/game/modules/tome/data/talents/cursed/shadows.lua b/game/modules/tome/data/talents/cursed/shadows.lua index ef356636ff372020bf12fd74fed7743010a75175..a52b3ffb1877164936b5a5f27f79ae87353088d6 100644 --- a/game/modules/tome/data/talents/cursed/shadows.lua +++ b/game/modules/tome/data/talents/cursed/shadows.lua @@ -177,7 +177,6 @@ local function createShadow(self, level, duration, target) exp_worth=0, max_life = resolvers.rngavg(15,20), life_rating = 4, - energy = { mod=1 }, stats = { str=10 + math.floor(level * 0.2), dex=15 + math.floor(level * 0.8), diff --git a/game/modules/tome/data/talents/divine/glyphs.lua b/game/modules/tome/data/talents/divine/glyphs.lua index c13dd562de1cfd3153120daa91f6016d37ff389a..591098092bf7f42508f96c42dcbd4395bbd34abf 100644 --- a/game/modules/tome/data/talents/divine/glyphs.lua +++ b/game/modules/tome/data/talents/divine/glyphs.lua @@ -246,7 +246,7 @@ newTalent{ local trap = game.level.map(tx, ty, Map.TRAP) if trap then return end - local dam = -1 + 1 / (1 + (t.getSlow(self, t))) + local dam = t.getSlow(self, t) local trap = Trap.new{ name = "glyph of fatigue", type = "elemental", id_by_type=true, unided_name = "trap", @@ -257,7 +257,7 @@ newTalent{ return false end, triggered = function(self, x, y, who) - who:setEffect(who.EFF_SLOW, 5, {power=-self.dam}) + who:setEffect(who.EFF_SLOW, 5, {power=self.dam}) return true end, temporary = t.getDuration(self, t), diff --git a/game/modules/tome/data/talents/gifts/summon-melee.lua b/game/modules/tome/data/talents/gifts/summon-melee.lua index d77a4035cc7aaa35a820ca9d3b8ee63300db8b12..02ec8cc0631799c6f4377b1bdce1a19ff5880ab7 100644 --- a/game/modules/tome/data/talents/gifts/summon-melee.lua +++ b/game/modules/tome/data/talents/gifts/summon-melee.lua @@ -59,7 +59,7 @@ newTalent{ stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0}, inc_stats = { str=10 + self:getWil() * self:getTalentLevel(t) / 5, 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, - energy = { mod=1.2 }, + global_speed = 1.2, max_life = resolvers.rngavg(25,50), life_rating = 6, @@ -220,7 +220,7 @@ newTalent{ autolevel = "none", ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=2, }, - energy = { mod=1.2 }, + global_speed=1.2, stats = {str=0, dex=0, con=0, cun=0, wil=0, mag=0}, inc_stats = { str=25 + self:getWil() * self:getTalentLevel(t) / 5, 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 b43c848913e07c2d454560cf53e06e96c92d169a..08be9d6cbcd8f7a7242970cf4b286bc7480dd510 100644 --- a/game/modules/tome/data/talents/misc/races.lua +++ b/game/modules/tome/data/talents/misc/races.lua @@ -146,7 +146,7 @@ newTalent{ tactical = { DEFEND = 1 }, action = function(self, t) local power = 0.1 + self:getDex() / 210 - self:setEffect(self.EFF_SPEED, 8, {power=1 - 1 / (1 + power)}) + self:setEffect(self.EFF_SPEED, 8, {power=power}) return true end, info = function(self, t) @@ -688,10 +688,10 @@ newTalent{ points = 5, mode = "passive", on_learn = function(self, t) - self.energy.mod = self.energy.mod + 0.03 + self.global_speed = self.global_speed + 0.03 end, on_unlearn = function(self, t) - self.energy.mod = self.energy.mod - 0.03 + self.global_speed = self.global_speed - 0.03 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/golemancy.lua b/game/modules/tome/data/talents/spells/golemancy.lua index 5d85ff38891c7f63de88de74bfcfba08af42ea23..202e0b2ea3f40b2d4adab56ea8a2af2d5eabcc1a 100644 --- a/game/modules/tome/data/talents/spells/golemancy.lua +++ b/game/modules/tome/data/talents/spells/golemancy.lua @@ -68,7 +68,6 @@ local function makeGolem() ai = "tactical", ai_state = { talent_in=1, ai_move="move_astar", ally_compassion=10 }, ai_tactic = resolvers.tactic"tank", - energy = { mod=1 }, stats = { str=14, dex=12, mag=12, con=12 }, -- No natural exp gain diff --git a/game/modules/tome/data/talents/spells/nature.lua b/game/modules/tome/data/talents/spells/nature.lua index 4be47b75b459b2b14106a33e5dc1be0a11e54a77..bde3c06f5e0cd9cfbffe54d647e443de5a8fc160 100644 --- a/game/modules/tome/data/talents/spells/nature.lua +++ b/game/modules/tome/data/talents/spells/nature.lua @@ -135,7 +135,6 @@ newTalent{ desc = [[A bear summoned by the powers of nature to help you.]], autolevel = "warrior", ai = "summoned", ai_real = "dumb_talented_simple", ai_state = { talent_in=3, }, - energy = { mod=1 }, stats = { str=18, dex=13, mag=5, con=15 }, resolvers.tmasteries{ ["technique/other"]=0.25 }, diff --git a/game/modules/tome/data/talents/spells/temporal.lua b/game/modules/tome/data/talents/spells/temporal.lua index b11c6f9210717a1a249f0e63f53d09ac02e81d2a..b4b187ef0e6c320f640a23b8de590b6801897d4d 100644 --- a/game/modules/tome/data/talents/spells/temporal.lua +++ b/game/modules/tome/data/talents/spells/temporal.lua @@ -112,16 +112,16 @@ newTalent{ sustain_mana = 250, cooldown = 30, tactical = { BUFF = 2 }, - getHaste = function(self, t) return self:getTalentLevel(t) * 0.07 end, + getHaste = function(self, t) return self:getTalentLevel(t) * 0.9 end, activate = function(self, t) game:playSoundNear(self, "talents/spell_generic") - local power = 1 - 1 / (1 + t.getHaste(self, t)) + local power = t.getHaste(self, t) return { - speed = self:addTemporaryValue("energy", {mod=power}), + speed = self:addTemporaryValue("global_speed", power), } end, deactivate = function(self, t, p) - self:removeTemporaryValue("energy", p.speed) + self:removeTemporaryValue("global_speed", p.speed) return true end, info = function(self, t) diff --git a/game/modules/tome/data/talents/techniques/archery.lua b/game/modules/tome/data/talents/techniques/archery.lua index e4e150879831d9b94d50dc868cc97657ca30d1c3..4ddf04058858df32ae16843817f89083ea1d5603 100644 --- a/game/modules/tome/data/talents/techniques/archery.lua +++ b/game/modules/tome/data/talents/techniques/archery.lua @@ -71,8 +71,9 @@ newTalent{ mode = "sustained", points = 5, require = techs_dex_req2, - cooldown = 30, + cooldown = 8, sustain_stamina = 20, + no_energy = true, tactical = { BUFF = 2 }, on_pre_use = function(self, t, silent) if not self:hasArcheryWeapon() then if not silent then game.logPlayer(self, "You require a bow or sling for this talent.") end return false end return true end, activate = function(self, t) @@ -82,9 +83,11 @@ newTalent{ return nil end + 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), - speed = self:addTemporaryValue("combat_physspeed", self:combatSpeed(weapon.combat) - 1 / (1 + self:getTalentLevel(t) * 0.1)), + speed = self:addTemporaryValue("combat_physspeed", -self:getTalentLevel(t) * 0.05), crit = self:addTemporaryValue("combat_physcrit", 7 + self:getTalentLevel(t) * self:getDex(10)), atk = self:addTemporaryValue("combat_dam", 4 + self:getTalentLevel(t) * self:getDex(10)), dam = self:addTemporaryValue("combat_atk", 4 + self:getTalentLevel(t) * self:getDex(10)), @@ -105,7 +108,7 @@ newTalent{ The effects will increase with your Dexterity stat.]]): format(4 + self:getTalentLevel(t) * self:getDex(10), 4 + self:getTalentLevel(t) * self:getDex(10), 3 + self:getTalentLevel(t) * self:getDex(10), 7 + self:getTalentLevel(t) * self:getDex(10), - self:getTalentLevelRaw(t) * 10) + self:getTalentLevelRaw(t) * 5) end, } @@ -115,8 +118,9 @@ newTalent{ mode = "sustained", points = 5, require = techs_dex_req3, - cooldown = 30, + cooldown = 8, sustain_stamina = 20, + no_energy = true, tactical = { BUFF = 2 }, on_pre_use = function(self, t, silent) if not self:hasArcheryWeapon() then if not silent then game.logPlayer(self, "You require a bow or sling for this talent.") end return false end return true end, activate = function(self, t) @@ -126,8 +130,10 @@ newTalent{ return nil end + if self:isTalentActive(self.T_AIM) then self:forceUseTalent(self.T_AIM, {ignore_energy=true}) end + return { - speed = self:addTemporaryValue("combat_physspeed", -self:combatSpeed(weapon.combat) + 1 / (1 + self:getTalentLevel(t) * 0.09)), + speed = self:addTemporaryValue("combat_physspeed", self:getTalentLevel(t) * 0.1), atk = self:addTemporaryValue("combat_dam", -8 - self:getTalentLevelRaw(t) * 2.4), dam = self:addTemporaryValue("combat_atk", -8 - self:getTalentLevelRaw(t) * 2.4), crit = self:addTemporaryValue("combat_physcrit", -8 - self:getTalentLevelRaw(t) * 2.4), @@ -142,7 +148,7 @@ newTalent{ end, info = function(self, t) return ([[You switch to a fluid and fast battle stance, increasing your firing speed by %d%% at the cost of your accuracy(%d), damage(%d), and critical chance(%d).]]): - format(self:getTalentLevel(t) * 9, -8 - self:getTalentLevelRaw(t) * 2.4, -8 - self:getTalentLevelRaw(t) * 2.4, -8 - self:getTalentLevelRaw(t) * 2.4) + format(self:getTalentLevel(t) * 10, -8 - self:getTalentLevelRaw(t) * 2.4, -8 - self:getTalentLevelRaw(t) * 2.4, -8 - self:getTalentLevelRaw(t) * 2.4) end, } diff --git a/game/modules/tome/data/talents/techniques/combat-techniques.lua b/game/modules/tome/data/talents/techniques/combat-techniques.lua index a43a64dfc3c681843d9876bb35b587c409b17ed6..905bbcbd7f55fdd3aa2b91df0aecf5558e150b02 100644 --- a/game/modules/tome/data/talents/techniques/combat-techniques.lua +++ b/game/modules/tome/data/talents/techniques/combat-techniques.lua @@ -31,7 +31,7 @@ newTalent{ tactical = { BUFF = 1 }, activate = function(self, t) return { - speed = self:addTemporaryValue("combat_physspeed", self:combatSpeed() + 1 / (1 + 0.08 * 1.3)), + speed = self:addTemporaryValue("combat_physspeed", -0.10), atk = self:addTemporaryValue("combat_atk", 4 + (self:getTalentLevel(t) * self:getDex()) / 15), crit = self:addTemporaryValue("combat_physcrit", 4 + (self:getTalentLevel(t) * self:getDex()) / 25), } @@ -45,7 +45,7 @@ newTalent{ info = function(self, t) return ([[You focus your strikes, reducing your attack speed by %d%% and increasing your accuracy by %d and critical chance by %d%%. The effects will increase with your Dexterity stat.]]): - format((1.3 * 8), 4 + (self:getTalentLevel(t) * self:getDex()) / 15, 4 + (self:getTalentLevel(t) * self:getDex()) / 25) + format(10, 4 + (self:getTalentLevel(t) * self:getDex()) / 15, 4 + (self:getTalentLevel(t) * self:getDex()) / 25) end, } @@ -137,11 +137,11 @@ newTalent{ require = techs_strdex_req4, tactical = { BUFF = 2, CLOSEIN = 2, ESCAPE = 2 }, action = function(self, t) - self:setEffect(self.EFF_SPEED, 5, {power=1 - (1 / (1 + self:getTalentLevel(t) * 0.06))}) + self:setEffect(self.EFF_SPEED, 5, {power=self:getTalentLevel(t) * 0.09}) return true end, info = function(self, t) - return ([[Through rigorous training you have learned to focus your actions for a short while, increasing your speed by %d%% for 5 turns.]]):format(self:getTalentLevel(t) * 6) + return ([[Through rigorous training you have learned to focus your actions for a short while, increasing your speed by %d%% for 5 turns.]]):format(self:getTalentLevel(t) * 9) end, } diff --git a/game/modules/tome/data/talents/techniques/dualweapon.lua b/game/modules/tome/data/talents/techniques/dualweapon.lua index 3d792ba614f84fb3928eef3c769d8509fd07fb4e..4f2e78f082f2cb5a507126b27756a554901d4a1f 100644 --- a/game/modules/tome/data/talents/techniques/dualweapon.lua +++ b/game/modules/tome/data/talents/techniques/dualweapon.lua @@ -88,7 +88,7 @@ newTalent{ end return { - combat_physspeed = self:addTemporaryValue("combat_physspeed", -self:combatSpeed(weapon.combat) + 1 / (1 + self:getTalentLevel(t) * 0.09)), + combat_physspeed = self:addTemporaryValue("combat_physspeed", self:getTalentLevel(t) * 0.14), stamina_regen = self:addTemporaryValue("stamina_regen", -6), } end, @@ -100,7 +100,7 @@ newTalent{ info = function(self, t) local weapon, offweapon = self:hasDualWeapon() weapon = weapon or {} - return ([[Increases attack speed by %d%%, but drains stamina quickly(-6 stamina/turn).]]):format(self:combatSpeed(weapon.combat) * (self:getTalentLevel(t) * 9)) + return ([[Increases attack speed by %d%%, but drains stamina quickly(-6 stamina/turn).]]):format(self:getTalentLevel(t) * 14) end, } diff --git a/game/modules/tome/data/talents/techniques/unarmed-discipline.lua b/game/modules/tome/data/talents/techniques/unarmed-discipline.lua index db933f0ab4af8041f307674e8c47f2f15da9aa90..7dfe7c09d7a25ff4b5cfc406f5fd0228c52d1373 100644 --- a/game/modules/tome/data/talents/techniques/unarmed-discipline.lua +++ b/game/modules/tome/data/talents/techniques/unarmed-discipline.lua @@ -40,10 +40,10 @@ newTalent{ local x, y, target = self:getTarget(tg) if not x or not y or not target then return nil end if math.floor(core.fov.distance(self.x, self.y, x, y)) > 1 then return nil end - + local hit = target:checkHit(self:combatAttack(), target:combatDefense(), 0, 95, 5 - self:getTalentLevel(t) / 2) -- local hit = self:attackTarget(target, nil, nil, true) - + -- Try to knockback ! if hit then local can = function(target) @@ -54,20 +54,20 @@ newTalent{ self:project(target, target.x, target.y, DamageType.PHYSICAL, t.getDamage(self, t)) game.logSeen(target, "%s resists the knockback!", target.name:capitalize()) end - + end - + if can(target) then target:knockback(self.x, self.y, t.getPush(self, t), can) end - + -- move the attacker back self:knockback(target.x, target.y, 1) self:breakGrapples() self:buildCombo() - + else game.logSeen(target, "%s misses %s.", self.name:capitalize(), target.name:capitalize()) end - + return true end, info = function(self, t) @@ -89,16 +89,16 @@ newTalent{ getDamage = function(self, t) return getTriStat(self, t, 10, 100) * (1 + getGrapplingStyle(self, dam)) end, getDamageTwo = function(self, t) return getTriStat(self, t, 10, 100) * (1.5 + getGrapplingStyle(self, dam)) end, do_throw = function(self, target, t) - + local hit = self:checkHit(self:combatAttack(), target:combatPhysicalResist(), 0, 95, 5 - self:getTalentLevel(t) / 2) - + -- if grappled stun if hit and target:canBe("knockback") and target:isGrappled(self) then self:project(target, target.x, target.y, DamageType.PHYSICAL, self:physicalCrit(t.getDamageTwo(self, t), nil, target)) game.logSeen(target, "%s has been slammed into the ground!", target.name:capitalize()) -- see if the throw stuns the enemy if hit and target:canBe("stun")then - target:setEffect(target.EFF_STUNNED, 2, {}) + target:setEffect(target.EFF_STUNNED, 2, {}) end -- if not grappled daze elseif hit and target:canBe("knockback") then @@ -106,10 +106,10 @@ newTalent{ game.logSeen(target, "%s has been thrown to the ground!", target.name:capitalize()) -- see if the throw dazes the enemy if hit and target:canBe("stun")then - target:setEffect(target.EFF_DAZED, 2, {}) + target:setEffect(target.EFF_DAZED, 2, {}) end end - + end, info = function(self, t) local damage = t.getDamage(self, t) @@ -130,15 +130,15 @@ newTalent{ sustain_stamina = 30, tactical = { BUFF = 1, STAMINA = 2 }, getSpeed = function(self, t) return 0.1 end, - getStamina = function(self, t) return self:getTalentLevel(t) * 1.5 end, + getStamina = function(self, t) return self:getTalentLevel(t) * 0.015 end, activate = function(self, t) return { - speed = self:addTemporaryValue("energy", {mod = -t.getSpeed(self, t)}), + speed = self:addTemporaryValue("global_speed", -t.getSpeed(self, t)), stamina = self:addTemporaryValue("stamina_regen", t.getStamina(self, t)), } end, deactivate = function(self, t, p) - self:removeTemporaryValue("energy", p.speed) + self:removeTemporaryValue("global_speed", p.speed) self:removeTemporaryValue("stamina_regen", p.stamina) return true end, @@ -170,13 +170,13 @@ newTalent{ local tg = self:getTalentTarget(t) local x, y, target = self:getTarget(tg) if not x or not y then return nil end - + self:breakGrapples() - + self:project(tg, x, y, DamageType.PHYSKNOCKBACK, {dam=self:physicalCrit(t.getDamage(self, t), nil, target), dist=4}) - + self:buildCombo() - + return true end, info = function(self, t) diff --git a/game/modules/tome/data/timed_effects.lua b/game/modules/tome/data/timed_effects.lua index 698b0e932f4d8129902dcbf2ce9ef5e2f1c5f35d..0d089f1f37b3917fc706e5768e1025dff711497a 100644 --- a/game/modules/tome/data/timed_effects.lua +++ b/game/modules/tome/data/timed_effects.lua @@ -599,10 +599,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("energy", {mod=eff.power}) + eff.tmpid = self:addTemporaryValue("global_speed", eff.power) end, deactivate = function(self, eff) - self:removeTemporaryValue("energy", eff.tmpid) + self:removeTemporaryValue("global_speed", eff.tmpid) end, } @@ -616,11 +616,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("energy", {mod=-eff.power}) + eff.tmpid = self:addTemporaryValue("global_speed", -eff.power) eff.dur = self:updateEffectDuration(eff.dur, "slow") end, deactivate = function(self, eff) - self:removeTemporaryValue("energy", eff.tmpid) + self:removeTemporaryValue("global_speed", eff.tmpid) end, } @@ -1783,11 +1783,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("energy", {mod=-eff.power}) + eff.tmpid = self:addTemporaryValue("global_speed", -eff.power) eff.dur = self:updateEffectDuration(eff.dur, "slow") end, deactivate = function(self, eff) - self:removeTemporaryValue("energy", eff.tmpid) + self:removeTemporaryValue("global_speed", eff.tmpid) self:removeParticles(eff.particle) end, } @@ -1934,7 +1934,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("energy", {mod=eff.speed * 0.01}) end + if eff.speed or 0 > 0 then eff.speedId = self:addTemporaryValue("global_speed", 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 @@ -1944,7 +1944,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("energy", eff.speedId) end + if eff.speedId then self:removeTemporaryValue("global_speed", eff.speedId) end if eff.attackId then self:removeTemporaryValue("combat_atk", eff.attackId) end if eff.evasionId then self:removeTemporaryValue("evasion", eff.evasionId) end @@ -2008,10 +2008,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("energy", {mod=eff.speed * 0.01}) + eff.tmpid = self:addTemporaryValue("global_speed", eff.speed * 0.01) end, deactivate = function(self, eff) - self:removeTemporaryValue("energy", eff.tmpid) + self:removeTemporaryValue("global_speed", eff.tmpid) end, on_merge = function(self, old_eff, new_eff) old_eff.dur = math.min(old_eff.dur + new_eff.dur, 15) @@ -2294,13 +2294,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("energy", {mod=self.energy.mod*eff.power/100}) + eff.moveid = self:addTemporaryValue("global_speed", 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("energy", eff.moveid) + self:removeTemporaryValue("global_speed", eff.moveid) end, } @@ -2315,13 +2315,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("energy", {mod=self.energy.mod*eff.power/100}) + eff.moveid = self:addTemporaryValue("global_speed", 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("energy", eff.moveid) + self:removeTemporaryValue("global_speed", eff.moveid) end, } @@ -2336,7 +2336,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("energy", {mod=self.energy.mod*eff.power/100}) + eff.moveid = self:addTemporaryValue("global_speed", eff.power/100) eff.resistsid = self:addTemporaryValue("resists", { [DamageType.PHYSICAL]=30, [DamageType.LIGHTNING]=100, @@ -2349,7 +2349,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("energy", eff.moveid) + self:removeTemporaryValue("global_speed", eff.moveid) end, } @@ -2811,7 +2811,7 @@ newEffect{ newEffect{ name = "MADNESS_SLOW", desc = "Slowed by madness", - long_desc = function(self, eff) return ("Madness reduces the target's global speed by %d%%."):format((1 / (1 - eff.power) - 1) * 100) end, + long_desc = function(self, eff) return ("Madness reduces the target's global speed by %d%%."):format(eff.power * 100) end, type = "mental", status = "detrimental", parameters = { power=0.1 }, @@ -2819,11 +2819,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("energy", {mod=-eff.power}) + eff.tmpid = self:addTemporaryValue("global_speed", -eff.power) eff.dur = self:updateEffectDuration(eff.dur, "slow") end, deactivate = function(self, eff) - self:removeTemporaryValue("energy", eff.tmpid) + self:removeTemporaryValue("global_speed", eff.tmpid) self:removeParticles(eff.particle) end, } @@ -2954,19 +2954,17 @@ newEffect{ newEffect{ name = "QUICKNESS", desc = "Quick", - long_desc = function(self, eff) return ("Increases run speed by %d%%."):format((1 / (1 - eff.power) - 1) * 100) end, + long_desc = function(self, eff) return ("Increases run speed by %d%%."):format(eff.power * 100) end, type = "mental", status = "beneficial", parameters = { power=0.1 }, on_gain = function(self, err) return "#Target# speeds up.", "+Quick" end, on_lose = function(self, err) return "#Target# slows down.", "-Quick" end, activate = function(self, eff) - --eff.tmpid = self:addTemporaryValue("movement_speed", {mod=-eff.power}) - self.movement_speed = (self.movement_speed or 0) - eff.power + eff.tmpid = self:addTemporaryValue("movement_speed", {mod=eff.power}) end, deactivate = function(self, eff) - --self:removeTemporaryValue("movement_speed", eff.tmpid) - self.movement_speed = self.movement_speed + eff.power + self:removeTemporaryValue("movement_speed", eff.tmpid) end, } newEffect{ @@ -3166,10 +3164,10 @@ newEffect{ status = "beneficial", parameters = { power=10 }, activate = function(self, eff) - eff.tmpid = self:addTemporaryValue("energy", {mod=1}) + eff.tmpid = self:addTemporaryValue("global_speed", 1) end, deactivate = function(self, eff) - self:removeTemporaryValue("energy", eff.tmpid) + self:removeTemporaryValue("global_speed", eff.tmpid) self:setEffect(self.EFF_TEMPORAL_STUN, eff.power, {}) end, } @@ -3675,13 +3673,13 @@ newEffect{ activate = function(self, eff) eff.atkid = self:addTemporaryValue("combat_atk", -eff.atk) eff.damid = self:addTemporaryValue("combat_dam", -eff.dam) - eff.tmpid = self:addTemporaryValue("energy", {mod=-0.3}) + eff.tmpid = self:addTemporaryValue("global_speed", -0.3) eff.dur = self:updateEffectDuration(eff.dur, "slow") end, deactivate = function(self, eff) self:removeTemporaryValue("combat_atk", eff.atkid) self:removeTemporaryValue("combat_dam", eff.damid) - self:removeTemporaryValue("energy", eff.tmpid) + self:removeTemporaryValue("global_speed", eff.tmpid) end, } @@ -3792,10 +3790,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("energy", {mod=eff.power}) + eff.tmpid = self:addTemporaryValue("global_speed", eff.power) end, deactivate = function(self, eff) - self:removeTemporaryValue("energy", eff.tmpid) + self:removeTemporaryValue("global_speed", eff.tmpid) end, } @@ -3835,7 +3833,7 @@ newEffect{ on_gain = function(self, err) return "#Target# speeds up.", "+Sprint" end, on_lose = function(self, err) return "#Target# slows down.", "-Sprint" end, activate = function(self, eff) - eff.tmpid = self:addTemporaryValue("movement_speed", -eff.power) + eff.tmpid = self:addTemporaryValue("movement_speed", eff.power) end, deactivate = function(self, eff) self:removeTemporaryValue("movement_speed", eff.tmpid) diff --git a/game/modules/tome/data/zones/arena-unlock/npcs.lua b/game/modules/tome/data/zones/arena-unlock/npcs.lua index 2495798faf8b639e8959ef51f038aa738329fbcb..54ad3f95fc7100c24edeb00cc620b76286ffc9fb 100644 --- a/game/modules/tome/data/zones/arena-unlock/npcs.lua +++ b/game/modules/tome/data/zones/arena-unlock/npcs.lua @@ -37,7 +37,6 @@ newEntity{ name = "gladiator", stun_immune = 0.4, autolevel = "warrior", ai = "tactical", ai_state = { ai_move = "move_dmap", talent_in = 1 }, - energy = { mod = 1 }, stats = { str=15, dex=15, mag=1, con=15 }, desc = [[A menacing man in heavy armor, wielding a mace. He looks battle-hardened.]], @@ -85,7 +84,6 @@ newEntity{ name = "slinger", open_door = true, autolevel = "slinger", ai = "tactical", ai_state = { ai_move = "move_dmap", talent_in = 1 }, - energy = { mod = 1 }, stats = { str=10, dex=15, cun=15, con=8 }, desc = [[A halfling slinger. He seems adept at combat.]], @@ -138,7 +136,6 @@ newEntity{ name = "arcane blade", open_door = true, autolevel = "warrior", ai = "tactical", ai_state = { ai_move = "move_dmap", talent_in = 1 }, - energy = { mod = 1 }, stats = { str=20, dex=20, mag=8, con=16 }, desc = [[A human Arcane Blade. His body shows multiple scars from battle.]], diff --git a/game/modules/tome/data/zones/arena/npcs.lua b/game/modules/tome/data/zones/arena/npcs.lua index 1a080a9cf9201d925eef83f6351782b94c5e1bd0..3dad93dc842332f371a61a09f6b02fc03a43836d 100644 --- a/game/modules/tome/data/zones/arena/npcs.lua +++ b/game/modules/tome/data/zones/arena/npcs.lua @@ -47,7 +47,6 @@ newEntity{ define_as = "BASE_NPC_ARENA1", confusion_immune = 0.1, fear_immune = 0.1, ai = "tactical", ai_state = { ai_move = "move_dmap", talent_in = 1 }, - energy = { mod = 1 }, stats = { str = 10, dex = 10, mag = 10, con = 10 }, resolvers.talents{ [Talents.T_HEAVY_ARMOUR_TRAINING] = 2, }, resolvers.equip{ diff --git a/game/modules/tome/data/zones/blighted-ruins/npcs.lua b/game/modules/tome/data/zones/blighted-ruins/npcs.lua index 6696ef9966894903745cecc4599dbaf2fd586b4b..796e559521e8e02eb5e0b3f5443072802f7468f5 100644 --- a/game/modules/tome/data/zones/blighted-ruins/npcs.lua +++ b/game/modules/tome/data/zones/blighted-ruins/npcs.lua @@ -48,7 +48,6 @@ newEntity{ autolevel = "caster", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, - energy = { mod=1 }, stats = { str=10, dex=8, mag=16, con=6 }, max_life = resolvers.rngavg(70,80), life_rating = 7, diff --git a/game/modules/tome/data/zones/charred-scar/npcs.lua b/game/modules/tome/data/zones/charred-scar/npcs.lua index 64f33b90efdeb81470af4844d191f3e3073447d5..cbff4a4bf8bb14ae235022907c4b45ad4a399c13 100644 --- a/game/modules/tome/data/zones/charred-scar/npcs.lua +++ b/game/modules/tome/data/zones/charred-scar/npcs.lua @@ -43,7 +43,6 @@ newEntity{ autolevel = "warriormage", ai = "dumb_talented_simple", ai_state = { talent_in=3, }, - energy = { mod=1 }, stats = { str=12, dex=8, mag=6, con=10 }, } @@ -128,7 +127,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_target="charred_scar_target", talent_in=2, }, - energy = { mod=1 }, stats = { str=20, dex=8, mag=6, con=16 }, resolvers.inscriptions(2, {}), } diff --git a/game/modules/tome/data/zones/deep-bellow/npcs.lua b/game/modules/tome/data/zones/deep-bellow/npcs.lua index 2e5671ef0dba108905bde3351aa8a3df82fbddb5..45ae10c002ec4019aa7e795155b03663271b5709 100644 --- a/game/modules/tome/data/zones/deep-bellow/npcs.lua +++ b/game/modules/tome/data/zones/deep-bellow/npcs.lua @@ -86,7 +86,7 @@ newEntity{ base="BASE_NPC_CORRUPTED_HORROR", define_as = "SLIMY_CRAWLER", It seems to come from the digestive system of the mouth.]], level_range = {4, nil}, exp_worth = 0, max_life = 80, life_rating = 10, fixed_rating = true, - movement_speed = 0.2, + movement_speed = 3, size_category = 1, combat = { dam=resolvers.mbonus(25, 15), damtype=DamageType.SLIME, dammod={str=1} }, diff --git a/game/modules/tome/data/zones/flooded-cave/npcs.lua b/game/modules/tome/data/zones/flooded-cave/npcs.lua index 371f64dfbfe80030a03c7973054b638acac79ab4..f07250e9c67d8a388fd93e9faaaca847f7016094 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.]], - energy = {mod = 1.4}, + global_speed = 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/orc-breeding-pit/npcs.lua b/game/modules/tome/data/zones/orc-breeding-pit/npcs.lua index 7b519f912af04ee6e9f7cdd5c06f1b82bc235449..89b8a196f2434d4cd6c0ce8e78ced620c42fffc0 100644 --- a/game/modules/tome/data/zones/orc-breeding-pit/npcs.lua +++ b/game/modules/tome/data/zones/orc-breeding-pit/npcs.lua @@ -28,7 +28,7 @@ newEntity{ base = "BASE_NPC_ORC", rarity = 3, max_life = resolvers.rngavg(30,50), life_rating = 4, rank = 2, - movement_speed = 1.3, + movement_speed = 0.7, melee_project = {[DamageType.SLIME] = resolvers.rngrange(10, 20)}, on_melee_hit = {[DamageType.SLIME] = resolvers.rngrange(10, 20)}, combat = { dam=resolvers.levelup(resolvers.rngavg(15,50), 1, 0.5), atk=resolvers.rngavg(15,50), dammod={str=1} }, @@ -40,7 +40,7 @@ newEntity{ base = "BASE_NPC_ORC", level_range = {25, nil}, exp_worth = 0, rarity = 3, max_life = resolvers.rngavg(30,50), life_rating = 9, life_regen = 7, - movement_speed = 0.7, + movement_speed = 1.3, melee_project = {[DamageType.SLIME] = resolvers.rngrange(10, 20)}, on_melee_hit = {[DamageType.SLIME] = resolvers.rngrange(10, 20)}, combat = { dam=resolvers.levelup(resolvers.rngavg(15,50), 1, 0.5), atk=resolvers.rngavg(15,50), dammod={str=1} }, diff --git a/game/modules/tome/data/zones/reknor/npcs.lua b/game/modules/tome/data/zones/reknor/npcs.lua index 1aad7d21fb1396a75a15b439172f116d0487f461..74d2c3ff588a131903078ab90bc6db3aa93856e3 100644 --- a/game/modules/tome/data/zones/reknor/npcs.lua +++ b/game/modules/tome/data/zones/reknor/npcs.lua @@ -116,7 +116,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.]], - energy = {mod=2}, + global_speed = 2, level_range = {40, 40}, exp_worth = 0, max_life = 150, life_rating = 12, rank = 3, diff --git a/game/modules/tome/data/zones/ring-of-blood/npcs.lua b/game/modules/tome/data/zones/ring-of-blood/npcs.lua index e45fa872fa593ae5181789c22e29e58786caeda1..2d10eedbf40e21266a3fb781b2258ed076b6d9f6 100644 --- a/game/modules/tome/data/zones/ring-of-blood/npcs.lua +++ b/game/modules/tome/data/zones/ring-of-blood/npcs.lua @@ -158,7 +158,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=20, dex=8, mag=6, con=16 }, } diff --git a/game/modules/tome/data/zones/sandworm-lair/npcs.lua b/game/modules/tome/data/zones/sandworm-lair/npcs.lua index beaf441ad2cf451e10029f529bc030fb1b6b474a..dab659f36f44040d81080f30abb8f6e83e2e6911 100644 --- a/game/modules/tome/data/zones/sandworm-lair/npcs.lua +++ b/game/modules/tome/data/zones/sandworm-lair/npcs.lua @@ -38,7 +38,6 @@ newEntity{ define_as = "SANDWORM_TUNNELER", level_range = {12, 50}, exp_worth = 0, max_life = 10000, faction = "sandworm-burrowers", - energy = {mod=1}, never_anger = true, invulnerable = 1, diff --git a/game/modules/tome/data/zones/tannen-tower/npcs.lua b/game/modules/tome/data/zones/tannen-tower/npcs.lua index 1ec194d82e30152daf279f3d78b7ad5b1039a996..b63a4b35abc29a0a2f96399826f88167ac5515bc 100644 --- a/game/modules/tome/data/zones/tannen-tower/npcs.lua +++ b/game/modules/tome/data/zones/tannen-tower/npcs.lua @@ -43,7 +43,6 @@ newEntity{ define_as = "TANNEN", size_category = 2, infravision = 20, stats = { str=10, dex=12, cun=14, mag=25, con=16 }, - movement_speed = 1.4, instakill_immune = 1, blind_immune = 1, @@ -139,7 +138,6 @@ It is so huge that it blocks sight beyond it.]], ai_tactic = resolvers.tactic"melee", resolvers.inscriptions(6, "rune"), - energy = { mod=1 }, stats = { str=14, dex=12, mag=10, wil=67, con=12 }, open_door = true, 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 7a7706f729f9ba9e307a0a9ffa0b48ab40f9fbe3..8eaf4ccce52222d34382025fedd09872626fef08 100644 --- a/game/modules/tome/data/zones/temple-of-creation/npcs.lua +++ b/game/modules/tome/data/zones/temple-of-creation/npcs.lua @@ -30,7 +30,7 @@ newEntity{ define_as = "SLASUL", faction="temple-of-creation", display = "@", color=colors.VIOLET, desc = [[This powerful naga is at home in the Temple of Creation, and unlike his followers he uses a mace and a shield.]], - energy = {mod = 1.7}, + global_speed = 1.7, level_range = {30, nil}, exp_worth = 4, max_life = 350, life_rating = 19, fixed_rating = true, max_stamina = 85, diff --git a/game/modules/tome/data/zones/town-angolwen/npcs.lua b/game/modules/tome/data/zones/town-angolwen/npcs.lua index f5331c21c95f561507aa076022e45d1714efafba..6e5752f190b03a9fc803b2ed258fbddc17dd88b5 100644 --- a/game/modules/tome/data/zones/town-angolwen/npcs.lua +++ b/game/modules/tome/data/zones/town-angolwen/npcs.lua @@ -105,7 +105,6 @@ newEntity{ autolevel = "caster", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=8, dex=8, mag=16, wil=18, con=10 }, emote_random = resolvers.emote_random{allow_backup_guardian=true}, diff --git a/game/modules/tome/data/zones/town-derth/npcs.lua b/game/modules/tome/data/zones/town-derth/npcs.lua index c509357e942445be4b8bbb9e3f65ef7f591289cf..f10e177d5f48d4d6e4110202cf63c4a97d1a8624 100644 --- a/game/modules/tome/data/zones/town-derth/npcs.lua +++ b/game/modules/tome/data/zones/town-derth/npcs.lua @@ -44,7 +44,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=12, dex=8, mag=6, con=10 }, emote_random = resolvers.emote_random{allow_backup_guardian=true}, diff --git a/game/modules/tome/data/zones/town-elvala/npcs.lua b/game/modules/tome/data/zones/town-elvala/npcs.lua index 52695d6ee1a6db0fe22dca8f526a81b546fb6b79..f6e892ce91849c112718f4470e10b3e442f718aa 100644 --- a/game/modules/tome/data/zones/town-elvala/npcs.lua +++ b/game/modules/tome/data/zones/town-elvala/npcs.lua @@ -44,7 +44,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=12, dex=8, mag=6, con=10 }, emote_random = resolvers.emote_random{allow_backup_guardian=true}, diff --git a/game/modules/tome/data/zones/town-iron-council/npcs.lua b/game/modules/tome/data/zones/town-iron-council/npcs.lua index 8c04a82f97c36da170d281a8aad345f57ea66ad8..1192b271ba836a7b7093276a42b4dfef18903029 100644 --- a/game/modules/tome/data/zones/town-iron-council/npcs.lua +++ b/game/modules/tome/data/zones/town-iron-council/npcs.lua @@ -45,7 +45,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=3, }, - energy = { mod=1 }, stats = { str=12, dex=8, mag=6, con=10 }, emote_random = resolvers.emote_random{allow_backup_guardian=true}, diff --git a/game/modules/tome/data/zones/town-last-hope/npcs.lua b/game/modules/tome/data/zones/town-last-hope/npcs.lua index 5a75a3db6950d98d15adb40e4349c27b729c2c59..514062e7e2f2de2be7ea40880a51975be2c17f31 100644 --- a/game/modules/tome/data/zones/town-last-hope/npcs.lua +++ b/game/modules/tome/data/zones/town-last-hope/npcs.lua @@ -44,7 +44,6 @@ newEntity{ autolevel = "warrior", ai = "dumb_talented_simple", ai_state = { ai_move="move_dmap", talent_in=1, }, - energy = { mod=1 }, stats = { str=12, dex=8, mag=6, con=10 }, emote_random = resolvers.emote_random{allow_backup_guardian=true},