diff --git a/game/engines/default/engine/Target.lua b/game/engines/default/engine/Target.lua index 92da5ba70eb1615a3d8db93d27f7b1300957463b..56a5076ef33e37a5432ad06f1c64b7a6eb4b9fa3 100644 --- a/game/engines/default/engine/Target.lua +++ b/game/engines/default/engine/Target.lua @@ -152,12 +152,14 @@ function _M:freemove(dir) self.target.x = self.target.x + d[1] self.target.y = self.target.y + d[2] self.target.entity = game.level.map(self.target.x, self.target.y, engine.Map.ACTOR) + if self.on_set_target then self:on_set_target() end end function _M:setSpot(x, y) self.target.x = x self.target.y = y self.target.entity = game.level.map(self.target.x, self.target.y, engine.Map.ACTOR) + if self.on_set_target then self:on_set_target() end end function _M:scan(dir, radius, sx, sy, filter) @@ -194,6 +196,7 @@ function _M:scan(dir, radius, sx, sy, filter) self.target.entity = actors[1].a self.target.x = self.target.entity.x self.target.y = self.target.entity.y + if self.on_set_target then self:on_set_target() end end end diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index 11d3b753836188e6feba507c704d23796696a4fc..695e5635d6db098af19203f1f58767eeb1574b65 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -109,7 +109,7 @@ function _M:run() self.hotkeys_display.actor = self.player self.npcs_display.actor = self.player - engine.interface.GameTargeting.init(self) + self:initTargeting() -- Ok everything is good to go, activate the game in the engine! self:setCurrent() @@ -235,7 +235,7 @@ function _M:setupDisplayMode() end if self.level then self.level.map:recreate() - engine.interface.GameTargeting.init(self) + self:initTargeting() self.level.map:moveViewSurround(self.player.x, self.player.y, 8, 8) end self:setupMiniMap() @@ -247,6 +247,14 @@ function _M:setupDisplayMode() if self.player then self.player:updateMainShader() end end +function _M:initTargeting() + engine.interface.GameTargeting.init(self) + self.target.on_set_target = function(self) + if game.key == game.targetmode_key then game.level.map:moveViewSurround(self.target.x, self.target.y, 8, 8) end + end +end + + function _M:setupMiniMap() if self.level and self.level.map then self.level.map._map:setupMiniMapGridSize(4) end end @@ -754,6 +762,8 @@ function _M:setupCommands() "resume", "achievements", { "Show known Lore", function() game:unregisterDialog(menu) game:registerDialog(require("mod.dialogs.ShowLore").new("Tales of Middle-earth Lore", self.player)) end }, + { "Inventory", function() game:unregisterDialog(menu) self.key:triggerVirtual("SHOW_INVENTORY") end }, + { "Character Sheet", function() game:unregisterDialog(menu) self.key:triggerVirtual("SHOW_CHARACTER_SHEET") end }, "keybinds", {"Graphic Mode", function() game:unregisterDialog(menu) game:registerDialog(require("mod.dialogs.GraphicMode").new()) end}, "resolution",