diff --git a/game/modules/tome/data/general/npcs/xorn.lua b/game/modules/tome/data/general/npcs/xorn.lua index 06ae23fa660902d089f8ffcf1b2e0e8fcd0260e0..f8b9538ac0a91742bdc0796745dcb99f212ffbf0 100644 --- a/game/modules/tome/data/general/npcs/xorn.lua +++ b/game/modules/tome/data/general/npcs/xorn.lua @@ -100,6 +100,7 @@ newEntity{ base = "BASE_NPC_XORN", max_life = 230, life_rating = 12, combat_armor = 15, combat_def = 10, combat = { damtype=DamageType.ACID }, + timetravel_immune = 1, ai = "tactical", ai_tactic = resolvers.tactic"melee", diff --git a/game/modules/tome/data/talents/chronomancy/timetravel.lua b/game/modules/tome/data/talents/chronomancy/timetravel.lua index 059ab2844c91c30cd38321094411fb0e8b32861d..247bbe4920a1971e2b33d3160dfce3dae0b8dd8d 100644 --- a/game/modules/tome/data/talents/chronomancy/timetravel.lua +++ b/game/modules/tome/data/talents/chronomancy/timetravel.lua @@ -74,6 +74,12 @@ newTalent{ local _ _, x, y = self:canProject(tg, x, y) local target = game.level.map(x, y, Map.ACTOR) if not target then return end + + if target:attr("timetravel_immune") then + game.logSeen(target, "%s is immune!", target.name:capitalize()) + return + end + local hit = self:checkHit(self:combatSpellpower(), target:combatSpellResist() + (target:attr("continuum_destabilization") or 0)) if not hit then game.logSeen(target, "%s resists!", target.name:capitalize()) return true end diff --git a/game/modules/tome/data/talents/misc/inscriptions.lua b/game/modules/tome/data/talents/misc/inscriptions.lua index 7d5c49e44d651f93f2fd9894e1789638e8c52db8..e4b57e38e12ec4c764a1573a76f1965b38ea8ff8 100644 --- a/game/modules/tome/data/talents/misc/inscriptions.lua +++ b/game/modules/tome/data/talents/misc/inscriptions.lua @@ -767,9 +767,15 @@ newInscription{ local _ _, x, y = self:canProject(tg, x, y) local target = game.level.map(x, y, Map.ACTOR) if not target then return end + + if target:attr("timetravel_immune") then + game.logSeen(target, "%s is immune!", target.name:capitalize()) + return + end + local hit = self:checkHit(self:combatSpellpower(), target:combatSpellResist() + (target:attr("continuum_destabilization") or 0)) if not hit then game.logSeen(target, "%s resists!", target.name:capitalize()) return true end - + self:project(tg, x, y, DamageType.TEMPORAL, self:spellCrit(t.getDamage(self, t))) game.level.map:particleEmitter(x, y, 1, "temporal_thrust") game:playSoundNear(self, "talents/arcane")