function UpdateMultiboard takes nothing returns nothing
local integer i = 0
local multiboarditem it
local integer cnt = 0
local boolean hhu = false
local boolean hva = false
local boolean minimized = true
loop
exitwhen i > 15
set PlayerRow[i] = 0
set i = i + 1
endloop
if not allowmb then
return
endif
if mb != null then
set minimized = IsMultiboardMinimized(mb)
call DestroyMultiboard(mb)
call DisplayTextToPlayer( Player(0),0,0, "Multiboard has been destroyed" )
endif
set mb = CreateMultiboard()
call DisplayTextToPlayer( Player(0), 0,0,"Multiboard has been created" )
set i = 0
loop
exitwhen i > 11
if players[i].state != 0 then
if players[i].side == SIDE_HUMAN then
set cnt = cnt + 1
set hhu = true
elseif players[i].side == SIDE_VAMPIRE or players[i].side == SIDE_MINION then
set cnt = cnt + 1
set hva = true
endif
endif
set i = i + 1
endloop
if hhu then
set cnt = cnt + 1
endif
if hva then
set cnt = cnt + 1
endif
call MultiboardSetRowCount(mb, cnt)
call MultiboardSetColumnCount(mb, 4)
set i = 0
loop
exitwhen i >= cnt
set it = MultiboardGetItem(mb, i, 0)
call MultiboardSetItemStyle(it, true, false)
call MultiboardSetItemWidth(it, 0.12)
call MultiboardReleaseItem(it)
set it = MultiboardGetItem(mb, i, 1)
call MultiboardSetItemStyle(it, true, false)
call MultiboardSetItemWidth(it, 0.04)
call MultiboardReleaseItem(it)
set it = MultiboardGetItem(mb, i, 2)
call MultiboardSetItemStyle(it, true, false)
call MultiboardSetItemWidth(it, 0.04)
call MultiboardReleaseItem(it)
set it = MultiboardGetItem(mb, i, 3)
call MultiboardSetItemStyle(it, true, false)
call MultiboardSetItemWidth(it, 0.06)
call MultiboardReleaseItem(it)
set i = i + 1
endloop
set cnt = 0
if hhu then
call MultiboardSetItem(0, 0, "Humans")
call MultiboardSetItem(0, 1, "Gold")
call MultiboardSetItem(0, 2, "Lumber")
call MultiboardSetItem(0, 3, "Fed")
set cnt = 1
set i = 0
loop
exitwhen i > 11
if players[i].state != 0 and players[i].side == SIDE_HUMAN then
set PlayerRow[i] = cnt
set cnt = cnt + 1
endif
set i = i + 1
endloop
endif
if hva then
call MultiboardSetItem(cnt, 0, "Vampires")
call MultiboardSetItem(cnt, 1, "Gold")
call MultiboardSetItem(cnt, 2, "Lumber")
call MultiboardSetItem(cnt, 3, "Leaked")
set cnt = cnt + 1
set i = 0
loop
exitwhen i > 11
if players[i].state != 0 and (players[i].side == SIDE_VAMPIRE or players[i].side == SIDE_MINION) then
set PlayerRow[i] = cnt
set cnt = cnt + 1
endif
set i = i + 1
endloop
endif
call UpdateTime()
call MultiboardDisplay(mb, true)
call MultiboardMinimize(mb, minimized)
set it = null
endfunction