From 503bdf09c18516d0da835e5b6179d7246196e1e7 Mon Sep 17 00:00:00 2001 From: Shibari <ShibariTOME@Gmail.com> Date: Sun, 29 Dec 2019 19:15:06 -0500 Subject: [PATCH] Reveal Map in dev mode now grants omnivision for 100 turns revealing everything --- game/modules/tome/class/Player.lua | 19 +++++++++++++++++++ .../modules/tome/data/timed_effects/other.lua | 19 ++++++++++++++++++- game/modules/tome/dialogs/debug/DebugMain.lua | 3 +++ 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/game/modules/tome/class/Player.lua b/game/modules/tome/class/Player.lua index 65ea22ea60..d0d94e9741 100644 --- a/game/modules/tome/class/Player.lua +++ b/game/modules/tome/class/Player.lua @@ -574,6 +574,25 @@ function _M:playerFOV() end, true, true, true) end + -- See everything and ignore all forms of blocking, dev mode feature + if self:attr("omnivision") then + self:computeFOV(self:attr("omnivision"), "we_need_useless_string_not_nil", function(x, y) + local ok = false + if game.level.map(x, y, game.level.map.ACTOR) then ok = true end + if game.level.map(x, y, game.level.map.OBJECT) then ok = true end + if game.level.map(x, y, game.level.map.TRAP) then + game.level.map(x, y, game.level.map.TRAP):setKnown(self, true, x, y) + game.level.map.remembers(x, y, true) + game.level.map:updateMap(x, y) + ok = true + end + + if ok then + game.level.map.seens(x, y, 0.6) + end + end, true, true, true) + end + -- Handle arcane eye if self:hasEffect(self.EFF_ARCANE_EYE) then local eff = self:hasEffect(self.EFF_ARCANE_EYE) diff --git a/game/modules/tome/data/timed_effects/other.lua b/game/modules/tome/data/timed_effects/other.lua index 2f94a4d6b8..aeef9bf466 100644 --- a/game/modules/tome/data/timed_effects/other.lua +++ b/game/modules/tome/data/timed_effects/other.lua @@ -3975,6 +3975,23 @@ newEffect{ end, } +newEffect{ + name = "OMNIVISION", image = "talents/track.png", + desc = "Sensing Everything", + long_desc = function(self, eff) return "Improves senses, allowing the detection of everything." end, + type = "other", + subtype = { sense=true }, + status = "beneficial", + parameters = { range=10,}, + activate = function(self, eff) + self:effectTemporaryValue(eff, "omnivision", eff.range) + game.level.map.changed = true + end, + deactivate = function(self, eff) + + end, +} + newEffect{ name = "DOZING", image = "talents/sleep.png", desc = "Dozing", @@ -3988,4 +4005,4 @@ newEffect{ end, deactivate = function(self, eff) end, -} \ No newline at end of file +} diff --git a/game/modules/tome/dialogs/debug/DebugMain.lua b/game/modules/tome/dialogs/debug/DebugMain.lua index a4388b959b..f4c6116e17 100644 --- a/game/modules/tome/dialogs/debug/DebugMain.lua +++ b/game/modules/tome/dialogs/debug/DebugMain.lua @@ -93,6 +93,9 @@ function _M:use(item) end end end + game.player:setEffect(game.player.EFF_OMNIVISION, 100, { + range = 200, + }) elseif act == "change_level" then game:registerDialog(GetQuantity.new("Zone: "..game.zone.name, "Level 1-"..game.zone.max_level, game.level.level, game.zone.max_level, function(qty) game:changeLevel(qty) -- GitLab