diff --git a/game/modules/tome/data/general/objects/scrolls.lua b/game/modules/tome/data/general/objects/scrolls.lua index 46fe0aecfa2082b94b623df5401e1f8acd5ae07c..b41b96e52a1d273478bcdc9b22efc4f732edcd54 100644 --- a/game/modules/tome/data/general/objects/scrolls.lua +++ b/game/modules/tome/data/general/objects/scrolls.lua @@ -85,9 +85,30 @@ newEntity{ base = "BASE_SCROLL", end} } +newEntity{ base = "BASE_SCROLL", + name = "scroll of controlled phase door", + level_range = {30, 50}, + rarity = 7, + cost = 3, + + use_simple = { name="teleport you randomly over a short distance into a targeted area", use = function(self, who) + local tg = {type="ball", nolock=true, no_restrict=true, nowarning=true, range=10 + who:getMag(10), radius=3} + x, y = who:getTarget(tg) + if not x then return nil end + -- Target code doesnot restrict the target coordinates to the range, it lets the poject function do it + -- but we cant ... + local _ _, x, y = who:canProject(tg, x, y) + game.level.map:particleEmitter(who.x, who.y, 1, "teleport") + who:teleportRandom(x, y, 3) + game.level.map:particleEmitter(who.x, who.y, 1, "teleport") + game.logSeen(who, "%s reads a %s!", who.name:capitalize(), self:getName{no_count=true}) + return "destroy", true + end} +} + newEntity{ base = "BASE_SCROLL", name = "scroll of teleportation", - level_range = {10, 40}, + level_range = {10, 50}, rarity = 8, cost = 4, diff --git a/game/modules/tome/data/talents/corruptions/scourge.lua b/game/modules/tome/data/talents/corruptions/scourge.lua index a400c50f50ae7aff5532b37572be0fa86d4196b3..d1165791155f4fafc03400a80164ba9614dd0ba4 100644 --- a/game/modules/tome/data/talents/corruptions/scourge.lua +++ b/game/modules/tome/data/talents/corruptions/scourge.lua @@ -71,17 +71,17 @@ newTalent{ mode = "sustained", require = corrs_req2, points = 5, - vim = 40, + sustain_vim = 40, cooldown = 30, activate = function(self, t) game:playSoundNear(self, "talents/slime") local ret = { - per = self:addTemporaryValue("inc_damage", {[DamageType.BLIGHT] = self:combatTalentSpellDamage(t, 15, 40)}), + per = self:addTemporaryValue("melee_project", {[DamageType.BLIGHT] = self:combatTalentSpellDamage(t, 15, 40)}), } return ret end, deactivate = function(self, t, p) - self:removeTemporaryValue("inc_damage", p.per) + self:removeTemporaryValue("melee_project", p.per) return true end, info = function(self, t) diff --git a/game/modules/tome/data/zones/valley-moon/npcs.lua b/game/modules/tome/data/zones/valley-moon/npcs.lua index efd5525673d038478302e26e358557dfb9e01e86..13757563fd6ef3f72efa92b65ec38b2555e45333 100644 --- a/game/modules/tome/data/zones/valley-moon/npcs.lua +++ b/game/modules/tome/data/zones/valley-moon/npcs.lua @@ -80,6 +80,7 @@ newEntity{ define_as = "LIMMIR", stats = { str=15, dex=10, cun=12, mag=16, con=14 }, move_others=true, knockback_immune = 1, + teleport_immune = 1, open_door = true,