diff --git a/game/modules/tome/data/birth/classes/rogue.lua b/game/modules/tome/data/birth/classes/rogue.lua index fe623f4ec1526f45f08d36d579dca62219b8a6bf..eb624a1375708288d33979695a0410c946c7074e 100644 --- a/game/modules/tome/data/birth/classes/rogue.lua +++ b/game/modules/tome/data/birth/classes/rogue.lua @@ -151,6 +151,7 @@ newBirthDescriptor{ ["technique/battle-tactics"]={false, 0.2}, ["technique/mobility"]={true, 0.3}, ["technique/thuggery"]={true, 0.3}, + ["technique/conditioning"]={true, 0.3}, ["cunning/dirty"]={true, 0.3}, ["cunning/tactical"]={false, 0.2}, ["cunning/survival"]={true, 0.3}, diff --git a/game/modules/tome/data/birth/classes/warrior.lua b/game/modules/tome/data/birth/classes/warrior.lua index 4f46f1f03541a2ba7bafc3236bbb86aa430172f5..84d9168738d0cf49c4a77c12531bd7633e09099d 100644 --- a/game/modules/tome/data/birth/classes/warrior.lua +++ b/game/modules/tome/data/birth/classes/warrior.lua @@ -60,6 +60,7 @@ newBirthDescriptor{ ["technique/combat-techniques-active"]={true, 0.3}, ["technique/combat-techniques-passive"]={true, 0.3}, ["technique/combat-training"]={true, 0.3}, + ["technique/conditioning"]={true, 0.3}, ["technique/superiority"]={false, 0.3}, ["technique/warcries"]={false, 0.3}, ["technique/field-control"]={false, 0}, @@ -104,6 +105,7 @@ newBirthDescriptor{ ["technique/combat-techniques-active"]={true, 0.3}, ["technique/combat-techniques-passive"]={true, 0.3}, ["technique/combat-training"]={true, 0.3}, + ["technique/conditioning"]={true, 0.3}, ["technique/superiority"]={false, 0.3}, ["technique/warcries"]={false, 0.3}, ["technique/battle-tactics"]={false, 0.3}, diff --git a/game/modules/tome/data/chats/escort-quest.lua b/game/modules/tome/data/chats/escort-quest.lua index 2a9fe0d0ff9a8d448a611642b7c8d0e5641bad08..bcaa431978bd74b81d2fa9293f3c343a061993e7 100644 --- a/game/modules/tome/data/chats/escort-quest.lua +++ b/game/modules/tome/data/chats/escort-quest.lua @@ -23,11 +23,11 @@ local Stats = require("engine.interface.ActorStats") local reward_types = { warrior = { types = { - ["technique/combat-training"] = 0.7, + ["technique/conditioning"] = 0.7, }, talents = { - [Talents.T_WEAPON_COMBAT] = 1, - [Talents.T_WEAPONS_MASTERY] = 1, + [Talents.T_VITALITY] = 1, + [Talents.T_UNFLINCHING_RESOLVE] = 1, [Talents.T_EXOTIC_WEAPONS_MASTERY] = 1, }, stats = { diff --git a/game/modules/tome/data/talents/techniques/bloodthirst.lua b/game/modules/tome/data/talents/techniques/bloodthirst.lua index e5e3668a1bff569fbe98ec7642ed706c92f566bb..8e4ecc7991cccf7aad03f41e8879a1438540f0c3 100644 --- a/game/modules/tome/data/talents/techniques/bloodthirst.lua +++ b/game/modules/tome/data/talents/techniques/bloodthirst.lua @@ -24,12 +24,17 @@ newTalent{ require = techs_req_high1, points = 5, mode = "passive", + getRegen = function (self, t) return self:getTalentLevel(t) end, + getMax = function(self, t) return self:getTalentLevel(t)*5 end, do_bloodbath = function(self, t) - self:setEffect(self.EFF_BLOODBATH, 5 + self:getTalentLevelRaw(t), {regen=math.floor(self:getTalentLevel(t) * 40), hp=math.floor(self:getTalentLevel(t) * 2)}) + self:setEffect(self.EFF_BLOODBATH, 5 + self:getTalentLevelRaw(t), {regen=t.getRegen(self, t), max=t.getMax(self, t), hp=math.floor(self:getTalentLevel(t) * 2)}) end, info = function(self, t) - return ([[Delight in spilling the blood of your foes. After scoring a critical hit your life and stamina regeneration is increased by %d%% and your maximum life is increased by %d%%.]]): - format(math.floor(self:getTalentLevel(t) * 40), math.floor(self:getTalentLevel(t) * 2)) + local regen = t.getRegen(self, t) + local max_regen = t.getMax(self, t) + return ([[Delight in spilling the blood of your foes. After scoring a critical hit your maximum hit points will be increased by %d%%, your life regeneration by %0.2f per turn, and your stamina regeneration by %0.2f per turn. + The life and stamina regeneration will stack up to five times for a maximum of %0.2f and %0.2f each turn, respectfully.]]): + format(math.floor(self:getTalentLevel(t) * 2), regen, regen/5, max_regen, max_regen/5) end, } diff --git a/game/modules/tome/data/timed_effects/mental.lua b/game/modules/tome/data/timed_effects/mental.lua index 7f83b06ab10d5ae0566362ea5906d9451880e736..3a6976223ee93ed94f964904c75487e6bfe703b7 100644 --- a/game/modules/tome/data/timed_effects/mental.lua +++ b/game/modules/tome/data/timed_effects/mental.lua @@ -1303,11 +1303,11 @@ newEffect{ newEffect{ name = "BLOODBATH", image = "talents/bloodbath.png", desc = "Bloodbath", - long_desc = function(self, eff) return ("The thrill of combat improves the target's maximum life by %d, life regeneration by %d%% and stamina regeneration by %d%%."):format(eff.hp, eff.regen, eff.regen) end, + long_desc = function(self, eff) return ("The thrill of combat improves the target's maximum life by %d%%, life regeneration by %0.2f, and stamina regeneration by %0.2f."):format(eff.hp, eff.cur_regen or eff.regen, eff.cur_regen/5 or eff.regen/5) end, type = "mental", subtype = { frenzy=true, heal=true }, status = "beneficial", - parameters = { hp=10, regen=10 }, + parameters = { hp=10, regen=10, max=50 }, on_gain = function(self, err) return nil, "+Bloodbath" end, on_lose = function(self, err) return nil, "-Bloodbath" end, on_merge = function(self, old_eff, new_eff) @@ -1318,16 +1318,18 @@ newEffect{ -- Take the new values, dont heal, otherwise you get a free heal each crit .. which is totaly broken local v = new_eff.hp * self.max_life / 100 new_eff.life_id = self:addTemporaryValue("max_life", v) - new_eff.life_regen_id = self:addTemporaryValue("life_regen", new_eff.regen * math.max(0, self.life_regen) / 100) - new_eff.stamina_regen_id = self:addTemporaryValue("stamina_regen", new_eff.regen * math.max(0, self.stamina_regen) / 100) + new_eff.cur_regen = math.min(old_eff.cur_regen + new_eff.regen, new_eff.max) + new_eff.life_regen_id = self:addTemporaryValue("life_regen", new_eff.cur_regen) + new_eff.stamina_regen_id = self:addTemporaryValue("stamina_regen", new_eff.cur_regen/5) return new_eff end, activate = function(self, eff) local v = eff.hp * self.max_life / 100 eff.life_id = self:addTemporaryValue("max_life", v) self:heal(v) - eff.life_regen_id = self:addTemporaryValue("life_regen", eff.regen * math.max(0, self.life_regen) / 100) - eff.stamina_regen_id = self:addTemporaryValue("stamina_regen", eff.regen * math.max(0, self.stamina_regen) / 100) + eff.cur_regen = eff.regen + eff.life_regen_id = self:addTemporaryValue("life_regen", eff.regen) + eff.stamina_regen_id = self:addTemporaryValue("stamina_regen", eff.regen /5) end, deactivate = function(self, eff) self:removeTemporaryValue("max_life", eff.life_id)