123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- unjustifiedPointsWindow = nil
- unjustifiedPointsButton = nil
- contentsPanel = nil
-
- openPvpSituationsLabel = nil
- currentSkullWidget = nil
- skullTimeLabel = nil
-
- dayProgressBar = nil
- weekProgressBar = nil
- monthProgressBar = nil
-
- daySkullWidget = nil
- weekSkullWidget = nil
- monthSkullWidget = nil
-
- function init()
- connect(g_game, { onGameStart = online,
- onUnjustifiedPointsChange = onUnjustifiedPointsChange,
- onOpenPvpSituationsChange = onOpenPvpSituationsChange })
- connect(LocalPlayer, { onSkullChange = onSkullChange } )
-
- unjustifiedPointsButton = modules.client_topmenu.addRightGameToggleButton('unjustifiedPointsButton',
- tr('Unjustified Points'), '/images/topbuttons/unjustifiedpoints', toggle)
- unjustifiedPointsButton:setOn(true)
- unjustifiedPointsButton:hide()
-
- unjustifiedPointsWindow = g_ui.loadUI('unjustifiedpoints', modules.game_interface.getRightPanel())
- unjustifiedPointsWindow:disableResize()
- unjustifiedPointsWindow:setup()
-
- contentsPanel = unjustifiedPointsWindow:getChildById('contentsPanel')
-
- openPvpSituationsLabel = contentsPanel:getChildById('openPvpSituationsLabel')
- currentSkullWidget = contentsPanel:getChildById('currentSkullWidget')
- skullTimeLabel = contentsPanel:getChildById('skullTimeLabel')
-
- dayProgressBar = contentsPanel:getChildById('dayProgressBar')
- weekProgressBar = contentsPanel:getChildById('weekProgressBar')
- monthProgressBar = contentsPanel:getChildById('monthProgressBar')
- daySkullWidget = contentsPanel:getChildById('daySkullWidget')
- weekSkullWidget = contentsPanel:getChildById('weekSkullWidget')
- monthSkullWidget = contentsPanel:getChildById('monthSkullWidget')
-
- if g_game.isOnline() then
- online()
- end
- end
-
- function terminate()
- disconnect(g_game, { onGameStart = online,
- onUnjustifiedPointsChange = onUnjustifiedPointsChange,
- onOpenPvpSituationsChange = onOpenPvpSituationsChange })
- disconnect(LocalPlayer, { onSkullChange = onSkullChange } )
-
- unjustifiedPointsWindow:destroy()
- unjustifiedPointsButton:destroy()
- end
-
- function onMiniWindowClose()
- unjustifiedPointsButton:setOn(false)
- end
-
- function toggle()
- if unjustifiedPointsButton:isOn() then
- unjustifiedPointsWindow:close()
- unjustifiedPointsButton:setOn(false)
- else
- unjustifiedPointsWindow:open()
- unjustifiedPointsButton:setOn(true)
- end
- end
-
- function online()
- if g_game.getFeature(GameUnjustifiedPoints) then
- unjustifiedPointsButton:show()
- else
- unjustifiedPointsButton:hide()
- unjustifiedPointsWindow:close()
- end
-
- refresh()
- end
-
- function refresh()
- local localPlayer = g_game.getLocalPlayer()
-
- local unjustifiedPoints = g_game.getUnjustifiedPoints()
- onUnjustifiedPointsChange(unjustifiedPoints)
-
- onSkullChange(localPlayer, localPlayer:getSkull())
- onOpenPvpSituationsChange(g_game.getOpenPvpSituations())
- end
-
- function onSkullChange(localPlayer, skull)
- if not localPlayer:isLocalPlayer() then return end
-
- if skull == SkullRed or skull == SkullBlack then
- currentSkullWidget:setIcon(getSkullImagePath(skull))
- currentSkullWidget:setTooltip('Remaining skull time')
- else
- currentSkullWidget:setIcon('')
- currentSkullWidget:setTooltip('You have no skull')
- end
-
- daySkullWidget:setIcon(getSkullImagePath(getNextSkullId(skull)))
- weekSkullWidget:setIcon(getSkullImagePath(getNextSkullId(skull)))
- monthSkullWidget:setIcon(getSkullImagePath(getNextSkullId(skull)))
- end
-
- function onOpenPvpSituationsChange(amount)
- openPvpSituationsLabel:setText(amount)
- end
-
- local function getColorByKills(kills)
- if kills < 2 then
- return 'red'
- elseif kills < 3 then
- return 'yellow'
- end
-
- return 'green'
- end
-
- function onUnjustifiedPointsChange(unjustifiedPoints)
- if unjustifiedPoints.skullTime == 0 then
- skullTimeLabel:setText('No skull')
- skullTimeLabel:setTooltip('You have no skull')
- else
- skullTimeLabel:setText(unjustifiedPoints.skullTime .. ' days')
- skullTimeLabel:setTooltip('Remaining skull time')
- end
-
- dayProgressBar:setValue(unjustifiedPoints.killsDay, 0, 100)
- dayProgressBar:setBackgroundColor(getColorByKills(unjustifiedPoints.killsDayRemaining))
- dayProgressBar:setTooltip(string.format('Unjustified points gained during the last 24 hours.\n%i kill%s left.', unjustifiedPoints.killsDayRemaining, (unjustifiedPoints.killsDayRemaining == 1 and '' or 's')))
- dayProgressBar:setText(string.format('%i kill%s left', unjustifiedPoints.killsDayRemaining, (unjustifiedPoints.killsDayRemaining == 1 and '' or 's')))
-
- weekProgressBar:setValue(unjustifiedPoints.killsWeek, 0, 100)
- weekProgressBar:setBackgroundColor(getColorByKills(unjustifiedPoints.killsWeekRemaining))
- weekProgressBar:setTooltip(string.format('Unjustified points gained during the last 7 days.\n%i kill%s left.', unjustifiedPoints.killsWeekRemaining, (unjustifiedPoints.killsWeekRemaining == 1 and '' or 's')))
- weekProgressBar:setText(string.format('%i kill%s left', unjustifiedPoints.killsWeekRemaining, (unjustifiedPoints.killsWeekRemaining == 1 and '' or 's')))
-
- monthProgressBar:setValue(unjustifiedPoints.killsMonth, 0, 100)
- monthProgressBar:setBackgroundColor(getColorByKills(unjustifiedPoints.killsMonthRemaining))
- monthProgressBar:setTooltip(string.format('Unjustified points gained during the last 30 days.\n%i kill%s left.', unjustifiedPoints.killsMonthRemaining, (unjustifiedPoints.killsMonthRemaining == 1 and '' or 's')))
- monthProgressBar:setText(string.format('%i kill%s left', unjustifiedPoints.killsMonthRemaining, (unjustifiedPoints.killsMonthRemaining == 1 and '' or 's')))
- end
|