First commit
This commit is contained in:
		@@ -0,0 +1,148 @@
 | 
			
		||||
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
 | 
			
		||||
		Reference in New Issue
	
	Block a user