diff --git a/game/modules/tome/class/Actor.lua b/game/modules/tome/class/Actor.lua index 5bfad5d12c9912aa3f3708dddd45d685640b49d1..9b638718f8855f60fae4ec02fb9ce964c8443f2a 100644 --- a/game/modules/tome/class/Actor.lua +++ b/game/modules/tome/class/Actor.lua @@ -226,6 +226,11 @@ function _M:die(src) end self.inven = {} + -- Give stamina back + if src:knowTalent(src.T_UNENDING_FRENZY) then + src:incStamina(src:getTalentLevel(src.T_UNENDING_FRENZY) * 2) + end + return true end diff --git a/game/modules/tome/data/talents/techniques/combat-techniques.lua b/game/modules/tome/data/talents/techniques/combat-techniques.lua index aae4fc2f737d8960f7d1ce6e474b1265ff5e28f6..641f681d53e0f977b4c81e7cbd6ef5ef5b87c020 100644 --- a/game/modules/tome/data/talents/techniques/combat-techniques.lua +++ b/game/modules/tome/data/talents/techniques/combat-techniques.lua @@ -1,6 +1,9 @@ +---------------------------------------------------- +-- Active techniques +---------------------------------------------------- newTalent{ name = "Precise Striking", - type = {"technique/combat-techniques", 1}, + type = {"technique/combat-techniques-active", 1}, mode = "sustained", points = 5, require = techs_strdex_req1, @@ -27,7 +30,7 @@ newTalent{ newTalent{ name = "Blinding Speed", - type = {"technique/combat-techniques", 2}, + type = {"technique/combat-techniques-active", 2}, points = 5, cooldown = 55, stamina = 25, @@ -43,7 +46,7 @@ newTalent{ newTalent{ name = "Perfect Strike", - type = {"technique/combat-techniques", 3}, + type = {"technique/combat-techniques-active", 3}, points = 5, cooldown = 55, stamina = 25, @@ -59,7 +62,7 @@ newTalent{ newTalent{ name = "Rush", - type = {"technique/combat-techniques", 4}, + type = {"technique/combat-techniques-active", 4}, message = "@Source@ rushes out!", require = techs_strdex_req4, points = 5, @@ -98,3 +101,68 @@ newTalent{ return ([[Rushes toward your target with incredible speed. If the target is reached you get a free attack doing 120% weapon damage.]]) end, } + +---------------------------------------------------- +-- Passive techniques +---------------------------------------------------- +newTalent{ + name = "Quick Recovery", + type = {"technique/combat-techniques-passive", 1}, + require = techs_strdex_req1, + mode = "passive", + points = 5, + on_learn = function(self, t) + self.stamina_regen = self.stamina_regen + 0.2 + end, + on_unlearn = function(self, t) + self.stamina_regen = self.stamina_regen - 0.2 + end, + info = function(self, t) + return ([[Your focus on the combat allows you to regenerate stamina faster (+%0.2f stamina/turn).]]):format(self:getTalentLevelRaw(t) / 5) + end, +} + +newTalent{ + name = "Fast Metabolism", + type = {"technique/combat-techniques-passive", 2}, + require = techs_strdex_req2, + mode = "passive", + points = 5, + on_learn = function(self, t) + self.life_regen = self.life_regen + 0.2 + end, + on_unlearn = function(self, t) + self.life_regen = self.life_regen - 0.2 + end, + info = function(self, t) + return ([[Your focus on the combat allows you to regenerate life faster (+%0.2f life/turn).]]):format(self:getTalentLevelRaw(t) / 5) + end, +} + +newTalent{ + name = "Spell Shield", + type = {"technique/combat-techniques-passive", 3}, + require = techs_strdex_req3, + mode = "passive", + points = 5, + on_learn = function(self, t) + self.combat_spellresist = self.combat_spellresist + 4 + end, + on_unlearn = function(self, t) + self.combat_spellresist = self.combat_spellresist - 4 + end, + info = function(self, t) + return ([[Rigorous training allows you to be more resistant to some spells effects. (+%d spell resistance).]]):format(self:getTalentLevelRaw(t) * 4) + end, +} + +newTalent{ + name = "Unending Frenzy", + type = {"technique/combat-techniques-passive", 4}, + require = techs_strdex_req4, + mode = "passive", + points = 5, + info = function(self, t) + return ([[You relish in the death of your foes, regaining %d stamina wit heach death.]]):format(self:getTalentLevel(t) * 2) + end, +} diff --git a/game/modules/tome/data/talents/techniques/combat-training.lua b/game/modules/tome/data/talents/techniques/combat-training.lua index 07b745df7f529f13bc5203e237834824fdd2f1c7..b455ef1dc766a0fda3eb8de31fa8ce09fada07ae 100644 --- a/game/modules/tome/data/talents/techniques/combat-training.lua +++ b/game/modules/tome/data/talents/techniques/combat-training.lua @@ -35,7 +35,7 @@ newTalent{ self.max_life = self.max_life - 40 end, info = function(self, t) - return ([[Increases your maximun life by %d]]):format(40 * self:getTalentLevel(t)) + return ([[Increases your maximun life by %d]]):format(40 * self:getTalentLevelRaw(t)) end, } diff --git a/game/modules/tome/data/talents/techniques/techniques.lua b/game/modules/tome/data/talents/techniques/techniques.lua index 6526de580eb05b815cd70dd8904e008cb8d73345..e15e7578c6ce2a5174851483b8344e45737f3b24 100644 --- a/game/modules/tome/data/talents/techniques/techniques.lua +++ b/game/modules/tome/data/talents/techniques/techniques.lua @@ -5,7 +5,8 @@ newTalentType{ type="technique/shield-offense", name = "weapon and shields", des newTalentType{ type="technique/shield-defense", name = "weapon and shields", description = "Specialized weapon and shield techniques." } newTalentType{ type="technique/dualweapon-training", name = "dual wielding", description = "Specialized dual wielding techniques." } newTalentType{ type="technique/dualweapon-attack", name = "dual wielding", description = "Specialized dual wielding techniques." } -newTalentType{ type="technique/combat-techniques", name = "combat-techniques", description = "Generic combat oriented techniques." } +newTalentType{ type="technique/combat-techniques-active", name = "combat-techniques", description = "Generic combat oriented techniques." } +newTalentType{ type="technique/combat-techniques-passive", name = "combat-techniques", description = "Generic combat oriented techniques." } newTalentType{ type="technique/combat-training", name = "combat-training", description = "Teaches to use various armors and improves health." } -- Generic requires for techs based on talent level diff --git a/game/modules/tome/data/zones/tower-amon-sul/npcs.lua b/game/modules/tome/data/zones/tower-amon-sul/npcs.lua index 0d54782231a1101a2f04bbc01c70fe5e64746cbc..54e3da8472a2a979d9d3244c4fa6fbcb18eb43be 100644 --- a/game/modules/tome/data/zones/tower-amon-sul/npcs.lua +++ b/game/modules/tome/data/zones/tower-amon-sul/npcs.lua @@ -1,8 +1,8 @@ ---load("/data/general/npcs/rodent.lua") ---load("/data/general/npcs/vermin.lua") ---load("/data/general/npcs/molds.lua") +load("/data/general/npcs/rodent.lua") +load("/data/general/npcs/vermin.lua") +load("/data/general/npcs/molds.lua") load("/data/general/npcs/skeleton.lua") ---load("/data/general/npcs/snake.lua") +load("/data/general/npcs/snake.lua") local Talents = require("engine.interface.ActorTalents") diff --git a/ideas/technics.ods b/ideas/technics.ods index a0b62379ee1d545fb74251856061b8998420901b..64ad56a1d7ab17f2a267439d87132ff91d8a7f4a 100644 Binary files a/ideas/technics.ods and b/ideas/technics.ods differ