From 90427a025e2e665888754068eae746385928a933 Mon Sep 17 00:00:00 2001 From: DarkGod <darkgod@net-core.org> Date: Sat, 2 Nov 2013 00:27:21 +0100 Subject: [PATCH] When using a hotkey to trigger a talent/item that requires a target, pressing the hotkey again will validate the target just like enter and space --- .../engine/interface/GameTargeting.lua | 26 ++++++++++++------- game/modules/tome/class/Game.lua | 7 ++--- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/game/engines/default/engine/interface/GameTargeting.lua b/game/engines/default/engine/interface/GameTargeting.lua index 3dfc80db03..17c65e9806 100644 --- a/game/engines/default/engine/interface/GameTargeting.lua +++ b/game/engines/default/engine/interface/GameTargeting.lua @@ -95,6 +95,7 @@ function _M:targetMode(v, msg, co, typ) Map:setViewerFaction(self.always_target == true and self.player.faction or nil) if msg then self.log(type(msg) == "string" and msg or "Tactical display disabled. Press shift+'t' to enable.") end self.level.map.changed = true + self.targetmode_trigger_hotkey = nil self.target:setActive(false) if tostring(old) == "exclusive" then @@ -171,20 +172,27 @@ function _M:targetMode(v, msg, co, typ) end end +function _M:targetTriggerHotkey(i) + self.targetmode_trigger_hotkey = i +end + --- This setups the default keybindings for targeting function _M:targetSetupKey() + local accept = function() self:targetMode(false, false) self.tooltip_x, self.tooltip_y = nil, nil end + self.targetmode_key = engine.KeyBind.new() - self.targetmode_key:addCommands{ _SPACE=function() self:targetMode(false, false) self.tooltip_x, self.tooltip_y = nil, nil end, } + self.targetmode_key:addCommands{ _SPACE=accept, } + + if engine.interface and engine.interface.PlayerHotkeys then + engine.interface.PlayerHotkeys:bindAllHotkeys(self.targetmode_key, function(i) + if self.targetmode_trigger_hotkey == i then accept() end + end) + end + self.targetmode_key:addBinds { - TACTICAL_DISPLAY = function() - self:targetMode(false, false) - self.tooltip_x, self.tooltip_y = nil, nil - end, - ACCEPT = function() - self:targetMode(false, false) - self.tooltip_x, self.tooltip_y = nil, nil - end, + TACTICAL_DISPLAY = accept, + ACCEPT = accept, EXIT = function() self.target.target.entity = nil self.target.target.x = nil diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua index 73fb116c59..3cda80e48f 100644 --- a/game/modules/tome/class/Game.lua +++ b/game/modules/tome/class/Game.lua @@ -1488,8 +1488,6 @@ function _M:setupCommands() print("===============") end end, [{"_g","ctrl"}] = function() if config.settings.cheat then - self.player:addParticles(engine.Particles.new("meleestorm", 1, {})) - do return end local f, err = loadfile("/data/general/events/fearscape-portal.lua") print(f, err) @@ -1871,7 +1869,10 @@ do return end end end } - engine.interface.PlayerHotkeys:bindAllHotkeys(self.key, not_wild(function(i) self.player:activateHotkey(i) end, function() return self.player.allow_talents_worldmap end)) + engine.interface.PlayerHotkeys:bindAllHotkeys(self.key, not_wild(function(i) + self:targetTriggerHotkey(i) + self.player:activateHotkey(i) + end, function() return self.player.allow_talents_worldmap end)) self.key:setCurrent() end -- GitLab