diff --git a/game/modules/tome/data/general/objects/world-artifacts.lua b/game/modules/tome/data/general/objects/world-artifacts.lua index 7e2fefb21001e7b9c92cc5b22a4b4fd199baf2d8..3e83c31c1737adc1f32b5536ee49f379340d83b3 100644 --- a/game/modules/tome/data/general/objects/world-artifacts.lua +++ b/game/modules/tome/data/general/objects/world-artifacts.lua @@ -3728,7 +3728,6 @@ newEntity{ base = "BASE_GREATSWORD", define_as="MORRIGOR", apr = 12, physcrit = 7, dammod = {str=0.7, mag=0.7}, - melee_project={[DamageType.DRAINLIFE] = 25}, special_on_hit = {desc="deal magical damage", fct=function(combat, who, target) local tg = {type="ball", range=0, radius=0, selffire=false} who:project(tg, target.x, target.y, engine.DamageType.ARCANE, who:getMag()*0.5) @@ -3741,7 +3740,7 @@ newEntity{ base = "BASE_GREATSWORD", define_as="MORRIGOR", local tids = {} for tid, _ in pairs(target.talents) do local t = target:getTalentFromId(tid) - if t.mode == "activated" and not t.uber and not t.on_pre_use and not t.no_npc_use and not t.hide and not t.is_nature and not t.type[1]:find("/other") and not t.type[1]:find("horror") and not t.type[1]:find("race/") then + if t.mode == "activated" and not t.uber and not t.on_pre_use and not t.no_npc_use and not t.hide and not t.is_nature and not t.type[1]:find("/other") and not t.type[1]:find("horror") and not t.type[1]:find("race/") and t.id ~= who.T_HIDE_IN_PLAIN_SIGHT then tids[#tids+1] = tid got_talent = true end @@ -3762,6 +3761,7 @@ newEntity{ base = "BASE_GREATSWORD", define_as="MORRIGOR", wielder = { combat_spellpower=24, combat_spellcrit=12, + learn_talent = { [Talents.T_SOUL_PURGE] = 1, }, }, on_takeoff = function(self, who) self.use_talent=nil @@ -5785,8 +5785,9 @@ All manner of shady gamblers have since claimed to have worn it at one point or level_range = {20, 30}, rarity = 200, cost = 350, + require = { stat = { str=16 }, }, material_level = 3, - wearer_hp=100, + wearer_hp = 100, wielder = { combat_def=12, combat_armor=10, @@ -5807,11 +5808,10 @@ All manner of shady gamblers have since claimed to have worn it at one point or if self.worn_by:attr("dead") then return end local hp_diff = (self.wearer_hp - self.worn_by.life/self.worn_by.max_life) - if hp_diff >= 0.2 then - self.worn_by:setEffect(self.worn_by.EFF_DAMAGE_SHIELD, 3, {power = (hp_diff * self.worn_by.max_life)/2}) - end - - game.logPlayer(self.worn_by, "#LIGHT_BLUE#A barrier bursts from the leather jacket!") + if hp_diff >= 0.2 and not self.worn_by:hasEffect(self.worn_by.EFF_DAMAGE_SHIELD) then + self.worn_by:setEffect(self.worn_by.EFF_DAMAGE_SHIELD, 3, {power = (hp_diff * self.worn_by.life)*2}) + game.logPlayer(self.worn_by, "#LIGHT_BLUE#A barrier bursts from the leather jacket!") + end self.wearer_hp = self.worn_by.life/self.worn_by.max_life end, diff --git a/game/modules/tome/data/talents/misc/objects.lua b/game/modules/tome/data/talents/misc/objects.lua index 2d4c8afb64d19d0724ffba7d203a6041ea1d1784..679f0ca907ef8c315c7b0bd5d495403168f53366 100644 --- a/game/modules/tome/data/talents/misc/objects.lua +++ b/game/modules/tome/data/talents/misc/objects.lua @@ -383,4 +383,22 @@ newTalent{ info = function(self, t) return ([[You enter into a fighting trance, gaining 15%% resist all, losing 15 mindpower, but gaining 20 mental save. However, each turn after the fifth that this talent is active, there is a chance that you will be overcome and become confused.]]) end, +} + +newTalent{ + name = "Soul Purge", image = "talents/stoic.png", + type = {"misc/objects", 1}, + cooldown = 3, + points = 1, + hard_cap = 1, + no_npc_use = true, + action = function(self, t) + local o = self:findInAllInventoriesBy("define_as", "MORRIGOR") + self:onTakeoff(o, true) + self:onWear(o, true) + return true + end, + info = function(self, t) + return ([[Remove any talent Morrigor has absorbed.]]) + end, } \ No newline at end of file