2011-08-29 16:14:21 +02:00
|
|
|
-- private functions
|
2012-01-15 22:19:52 +01:00
|
|
|
local function onGameKeyPress(self, keyCode, keyboardModifiers, wouldFilter)
|
|
|
|
if wouldFilter then return end
|
2011-08-29 16:14:21 +02:00
|
|
|
if keyboardModifiers == KeyboardCtrlModifier then
|
|
|
|
if keyCode == KeyG then
|
|
|
|
CharacterList.show()
|
|
|
|
return true
|
2011-08-29 21:35:58 +02:00
|
|
|
elseif keyCode == KeyQ then
|
2011-08-30 01:20:30 +02:00
|
|
|
Game.logout(false)
|
2011-08-29 21:35:58 +02:00
|
|
|
return true
|
2011-08-29 16:14:21 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
return false
|
|
|
|
end
|
|
|
|
|
2011-11-03 10:59:11 +01:00
|
|
|
-- public functions
|
2011-11-03 21:54:53 +01:00
|
|
|
function Game.createInterface()
|
|
|
|
Background.hide()
|
|
|
|
CharacterList.destroyLoadBox()
|
2012-01-03 01:42:53 +01:00
|
|
|
Game.gameUi = displayUI('game.otui')
|
2012-01-15 22:19:52 +01:00
|
|
|
|
|
|
|
--Hotkeys.bindKeyPress('Up', function() Game.walk(North) end)
|
|
|
|
--Hotkeys.bindKeyPress('Down', function() Game.walk(South) end)
|
|
|
|
--Hotkeys.bindKeyPress('Left', function() Game.walk(West) end)
|
|
|
|
--Hotkeys.bindKeyPress('Right', function() Game.walk(East) end)
|
|
|
|
|
|
|
|
Hotkeys.bindKeyPress('Ctrl+Shift+Up', function() Game.forceWalk(North) end)
|
|
|
|
Hotkeys.bindKeyPress('Ctrl+Shift+Down', function() Game.forceWalk(South) end)
|
|
|
|
Hotkeys.bindKeyPress('Ctrl+Shift+Left', function() Game.forceWalk(West) end)
|
|
|
|
Hotkeys.bindKeyPress('Ctrl+Shift+Right', function() Game.forceWalk(East) end)
|
|
|
|
|
2012-01-03 01:42:53 +01:00
|
|
|
rootWidget:moveChildToIndex(Game.gameUi, 1)
|
2012-01-13 21:37:44 +01:00
|
|
|
Game.gameMapPanel = Game.gameUi:getChildById('gameMapPanel')
|
|
|
|
Game.gameRightPanel = Game.gameUi:getChildById('gameRightPanel')
|
|
|
|
Game.gameBottomPanel = Game.gameUi:getChildById('gameBottomPanel')
|
2011-08-30 17:12:57 +02:00
|
|
|
Game.gameUi.onKeyPress = onGameKeyPress
|
2011-08-29 05:44:02 +02:00
|
|
|
end
|
|
|
|
|
2011-11-03 21:54:53 +01:00
|
|
|
function Game.destroyInterface()
|
2011-08-31 01:39:14 +02:00
|
|
|
if Game.gameUi then
|
2011-08-30 17:12:57 +02:00
|
|
|
Game.gameUi:destroy()
|
|
|
|
Game.gameUi = nil
|
2011-08-29 16:14:21 +02:00
|
|
|
end
|
2011-11-03 21:54:53 +01:00
|
|
|
Background.show()
|
|
|
|
CharacterList.show()
|
2011-08-29 16:14:21 +02:00
|
|
|
end
|
|
|
|
|
2011-11-03 10:59:11 +01:00
|
|
|
function Game.show()
|
|
|
|
Game.gameUi:show()
|
|
|
|
Game.gameUi:focus()
|
2011-11-03 13:17:10 +01:00
|
|
|
Game.gameMapPanel:focus()
|
2011-11-03 10:59:11 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
function Game.hide()
|
|
|
|
Game.gameUi:hide()
|
|
|
|
end
|
|
|
|
|
|
|
|
-- hooked events
|
2011-08-30 01:20:30 +02:00
|
|
|
function Game.onLoginError(message)
|
|
|
|
CharacterList.destroyLoadBox()
|
|
|
|
local errorBox = displayErrorBox("Login Error", "Login error: " .. message)
|
|
|
|
errorBox.onOk = CharacterList.show
|
|
|
|
end
|
|
|
|
|
2011-08-29 20:38:01 +02:00
|
|
|
function Game.onConnectionError(message)
|
|
|
|
CharacterList.destroyLoadBox()
|
|
|
|
local errorBox = displayErrorBox("Login Error", "Connection error: " .. message)
|
|
|
|
errorBox.onOk = CharacterList.show
|
|
|
|
end
|
|
|
|
|
2012-01-07 06:35:50 +01:00
|
|
|
local function onApplicationClose()
|
|
|
|
print('close app')
|
|
|
|
if Game.isOnline() then
|
2012-01-19 05:12:53 +01:00
|
|
|
Game.logout(true)
|
2012-01-07 06:35:50 +01:00
|
|
|
else
|
|
|
|
exit()
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
setonclose(onApplicationClose)
|
2011-12-05 19:27:07 +01:00
|
|
|
connect(Game, { onLogin = Game.createInterface }, true)
|
|
|
|
connect(Game, { onLogout = Game.destroyInterface })
|