diff --git a/game/modules/tome/data/general/objects/egos/amulets.lua b/game/modules/tome/data/general/objects/egos/amulets.lua index 2565855acc4137c7c4a4baeec9fc41eee0d9b5fd..599cb5466eef4a0c4f1975e10689931cd926a4b5 100644 --- a/game/modules/tome/data/general/objects/egos/amulets.lua +++ b/game/modules/tome/data/general/objects/egos/amulets.lua @@ -100,12 +100,16 @@ newEntity{ rarity = 6, cost = 2, wielder = {}, - resolvers.generic(function(e) + resolvers.genericlast(function(e) local tts = {} local p = game:getPlayer(true) for i, def in ipairs(engine.interface.ActorTalents.talents_types_def) do - if p and def.allow_random and p:knowTalentType(def.type) or p:knowTalentType(def.type) == false then tts[#tts+1] = def.type end - end + if p and def.allow_random and p:knowTalentType(def.type) or p:knowTalentType(def.type) == false then + if not (e.power_source.antimagic and def.is_spell) or (e.power_source.arcane and def.is_antimagic) then + tts[#tts+1] = def.type + end + end + end local tt = tts[rng.range(1, #tts)] e.wielder.talents_types_mastery = {} @@ -533,12 +537,16 @@ newEntity{ greater_ego = 1, cost = 2, wielder = {}, - resolvers.generic(function(e) + resolvers.genericlast(function(e) local tts = {} local p = game:getPlayer(true) for i, def in ipairs(engine.interface.ActorTalents.talents_types_def) do - if p and def.allow_random and p:knowTalentType(def.type) or p:knowTalentType(def.type) == false then tts[#tts+1] = def.type end - end + if p and def.allow_random and p:knowTalentType(def.type) or p:knowTalentType(def.type) == false then + if not (e.power_source.antimagic and def.is_spell) or (e.power_source.arcane and def.is_antimagic) then + tts[#tts+1] = def.type + end + end + end --local tt = tts[rng.range(1, #tts)] local tt = rng.tableRemove(tts) local tt2 = rng.tableRemove(tts)