70 lines
1.6 KiB
Lua
70 lines
1.6 KiB
Lua
|
PlayerDeath = {}
|
||
|
|
||
|
-- private variables
|
||
|
local deathWindow
|
||
|
|
||
|
-- private functions
|
||
|
|
||
|
-- public functions
|
||
|
function PlayerDeath.init()
|
||
|
g_ui.importStyle('deathwindow.otui')
|
||
|
|
||
|
connect(g_game, { onDeath = PlayerDeath.display,
|
||
|
onGameEnd = PlayerDeath.reset })
|
||
|
end
|
||
|
|
||
|
function PlayerDeath.terminate()
|
||
|
disconnect(g_game, { onDeath = PlayerDeath.display,
|
||
|
onGameEnd = PlayerDeath.reset })
|
||
|
|
||
|
PlayerDeath.reset()
|
||
|
PlayerDeath = nil
|
||
|
end
|
||
|
|
||
|
function PlayerDeath.reset()
|
||
|
GameInterface.getMapPanel():recursiveGetChildById('centerAdvance'):hide()
|
||
|
if(deathWindow) then
|
||
|
deathWindow:destroy()
|
||
|
deathWindow = nil
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function PlayerDeath.display()
|
||
|
PlayerDeath.displayDeadMessage()
|
||
|
PlayerDeath.openWindow()
|
||
|
end
|
||
|
|
||
|
function PlayerDeath.displayDeadMessage()
|
||
|
local advanceLabel = GameInterface.getMapPanel():recursiveGetChildById('centerAdvance')
|
||
|
if advanceLabel:isVisible() then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
TextMessage.displayEventAdvance(tr('You are dead.'))
|
||
|
end
|
||
|
|
||
|
function PlayerDeath.openWindow()
|
||
|
if(deathWindow) then
|
||
|
return
|
||
|
end
|
||
|
deathWindow = g_ui.createWidget('DeathWindow', rootWidget)
|
||
|
local okButton = deathWindow:getChildById('buttonOk')
|
||
|
local cancelButton = deathWindow:getChildById('buttonCancel')
|
||
|
|
||
|
local okFunc = function()
|
||
|
CharacterList.doLogin()
|
||
|
okButton:getParent():destroy()
|
||
|
deathWindow = nil
|
||
|
end
|
||
|
local cancelFunc = function()
|
||
|
GameInterface.logout()
|
||
|
cancelButton:getParent():destroy()
|
||
|
deathWindow = nil
|
||
|
end
|
||
|
|
||
|
deathWindow.onEnter = okFunc
|
||
|
deathWindow.onEscape = cancelFunc
|
||
|
|
||
|
okButton.onClick = okFunc
|
||
|
cancelButton.onClick = cancelFunc
|
||
|
end
|