diff options
Diffstat (limited to 'gamemode/vgui/vgui_endgame.lua')
| -rw-r--r-- | gamemode/vgui/vgui_endgame.lua | 186 |
1 files changed, 93 insertions, 93 deletions
diff --git a/gamemode/vgui/vgui_endgame.lua b/gamemode/vgui/vgui_endgame.lua index 9ea2974..82be456 100644 --- a/gamemode/vgui/vgui_endgame.lua +++ b/gamemode/vgui/vgui_endgame.lua @@ -3,22 +3,22 @@ local PANEL = {} function PANEL:Init() self:PerformLayout() - + self.Wait = CurTime() + 5 self.Pos = 1 self.YPos = 220 self.ListMode = true - self.DrawTbl = {} + self.DrawTbl = {} self.Awards = {} - + self.Lists = {} - self.Lists[1] = { 5, ScrW() * 0.30, "Survivors", function() return self:GetSurvivors() end, "bot/whoo2.wav" } - self.Lists[2] = { ScrW() * 0.50 - ScrW() * 0.15, ScrW() * 0.30, "Top Killers", function() return self:GetTopKillers() end, "weapons/357_fire2.wav" } - self.Lists[3] = { ScrW() - ( ScrW() * 0.30 ) - 5, ScrW() * 0.30, "Big Spenders", function() return self:GetTopSpenders() end, "physics/metal/chain_impact_soft1.wav" } - + self.Lists[1] = { 5, ScrW() * 0.30, "Survivors", function() return self:GetSurvivors() end, "bot/whoo2.wav" } + self.Lists[2] = { ScrW() * 0.50 - ScrW() * 0.15, ScrW() * 0.30, "Top Killers", function() return self:GetTopKillers() end, "weapons/357_fire2.wav" } + self.Lists[3] = { ScrW() - ( ScrW() * 0.30 ) - 5, ScrW() * 0.30, "Big Spenders", function() return self:GetTopSpenders() end, "physics/metal/chain_impact_soft1.wav" } + local x, w = ScrW() * 0.50 - ScrW() * 0.15, ScrW() * 0.65 - 5 - - self:ListNewAward( { x, w, "Grey Matter:", "got the most headshots.", function() return self:GetStatMax( "Headshot" ) end, "zombie craniums", "player/headshot1.wav" } ) + + self:ListNewAward( { x, w, "Grey Matter:", "got the most headshots.", function() return self:GetStatMax( "Headshot" ) end, "zombie craniums", "player/headshot1.wav" } ) self:ListNewAward( { x, w, "Silent Partner:", "got the most kill assists.", function() return self:GetStatMax( "Assist" ) end, "assists", "weapons/357/357_spin1.wav" } ) self:ListNewAward( { x, w, "Longshot:", "got the longest distance kill.", function() return self:GetStatMax( "Longshot" ) end, "feet", "weapons/fx/nearmiss/bulletLtoR05.wav" } ) self:ListNewAward( { x, w, "Big Game Hunter:", "dismembered the most zombies with a shotgun.", function() return self:GetStatMax( "Meat" ) end, "zombies poached", "nuke/gore/blood01.wav", true } ) @@ -37,7 +37,7 @@ function PANEL:Init() self:ListNewAward( { x, w, "Accident Prone:", "took the most damage from zombies.", function() return self:GetStatMax( "Damage" ) end, "damage", "bot/pain2.wav" } ) self:ListNewAward( { x, w, "Roleplayer:", "did jack shit.", function() return self:GetWorstPlayer() end, "kills", "ambient/sheep.wav" } ) //self:ListNewAward( { x, w, "Piss Poor:", "spent the least " .. GAMEMODE.CurrencyName .. "s.", function() return self:GetStatMin( "Spent" ) end, GAMEMODE.CurrencyName .. "s spent", "bot/i_got_nothing.wav" } ) - + end function PANEL:ListNewAward( tbl ) @@ -52,16 +52,16 @@ function PANEL:GetWorstPlayer() local ply = NULL for k,v in pairs( player.GetAll() ) do - + if v:Frags() < min then - + min = v:Frags() ply = v - + end - + end - + return ply, min end @@ -72,16 +72,16 @@ function PANEL:GetStatMin( name ) local ply = NULL for k,v in pairs( PlayerStats ) do - + if v.Stats and ( v.Stats[ name ] or 0 ) < min then - + min = ( v.Stats[ name ] or 0 ) ply = v.Player - + end - + end - + return ply, min end @@ -92,16 +92,16 @@ function PANEL:GetStatMax( name ) local ply = NULL for k,v in pairs( PlayerStats ) do - + if v.Stats and ( v.Stats[ name ] or 0 ) > max then - + max = ( v.Stats[ name ] or 0 ) ply = v.Player - + end - + end - + return ply, max end @@ -109,11 +109,11 @@ end function PANEL:GetSurvivors() local tbl = {} - + for k,v in pairs( team.GetPlayers( TEAM_ARMY ) ) do - + table.insert( tbl, { v } ) - + end return tbl @@ -125,32 +125,32 @@ function PANEL:GetTopSpenders() local num = math.min( #player.GetAll(), 5 ) local tbl = {} local ignore = {} - + for i=1, num do - + local count = -1 local ply = NULL - + for k,v in pairs( PlayerStats ) do - + if v.Stats and ( v.Stats[ "Spent" ] or 0 ) > count and not table.HasValue( ignore, v.Player ) then - + ply = v.Player count = ( v.Stats[ "Spent" ] or 0 ) - + end - + end - + if ply != NULL then - + table.insert( tbl, { ply, count } ) table.insert( ignore, ply ) - + end - + end - + return tbl end @@ -160,42 +160,42 @@ function PANEL:GetTopKillers() local num = math.min( #player.GetAll(), 5 ) local plys = player.GetAll() local tbl = {} - + for i=1, num do - + local count = -1 local ply = NULL local pos = 0 - + for k,v in pairs( plys ) do - + if v:Frags() > count then - + ply = v pos = k count = v:Frags() - + end - + end - + if ply != NULL then - + table.remove( plys, pos ) table.insert( tbl, { ply, ply:Frags() } ) - + end - + end - + return tbl end function PANEL:PerformLayout() - + self:SetSize( ScrW(), ScrH() ) - + end function PANEL:AddList( pos, width, title, players, sound ) @@ -203,11 +203,11 @@ function PANEL:AddList( pos, width, title, players, sound ) surface.PlaySound( sound ) table.insert( self.DrawTbl, { X = pos + width * 0.5, Y = 35, Text = title, Style = TEXT_ALIGN_CENTER, Font = "EndGameBig" } ) - + if not players[1] then return end - + local ypos = 60 - + for k,v in pairs( players ) do local list = vgui.Create( "PlayerPanel" ) @@ -215,9 +215,9 @@ function PANEL:AddList( pos, width, title, players, sound ) list:SetCount( v[2] ) list:SetTall( 26 ) list:SetWide( width ) - list:SetPos( pos, ypos ) - - ypos = ypos + 31 + list:SetPos( pos, ypos ) + + ypos = ypos + 31 end @@ -225,34 +225,34 @@ end function PANEL:AddAward( ypos, pos, width, title, desc, ply, amt, append, sound, condition ) - if condition and amt < 1 then - + if condition and amt < 1 then + self.Wait = 0 - - return - + + return + end - + surface.PlaySound( sound ) self.YPos = self.YPos + 31 self.Wait = CurTime() + 1.5 table.insert( self.DrawTbl, { X = pos + 2, Y = ypos + 5, Text = title, Style = TEXT_ALIGN_LEFT, Font = "EndGame" } ) - + local offset = 150 - + local list = vgui.Create( "PlayerPanel" ) list:SetPlayerEnt( ply ) list:SetDescription( desc ) list:SetTall( 26 ) list:SetWide( width - offset ) - list:SetPos( pos + offset, ypos ) - + list:SetPos( pos + offset, ypos ) + if append then - + list:SetCount( amt .. " " .. append ) - + end end @@ -260,43 +260,43 @@ end function PANEL:Think() if self.Wait and self.Wait < CurTime() then - + self.Wait = CurTime() + 0.5 - + if self.ListMode then - + local alist = self.Lists[ self.Pos ] - + self:AddList( alist[1], alist[2], alist[3], alist[4](), alist[5] ) - + self.Pos = self.Pos + 1 - + if self.Pos > #self.Lists then - + self.ListMode = false self.Wait = CurTime() + 1.5 self.Pos = 1 - + end - + else - - local alist = self.Awards[ self.Pos ] - + + local alist = self.Awards[ self.Pos ] + local ply, amt = alist[5]() - + self:AddAward( self.YPos, alist[1], alist[2], alist[3], alist[4], ply, amt, alist[6], alist[7], alist[8] ) - + self.Pos = self.Pos + 1 - + if self.Pos > #self.Awards then - + self.Wait = nil - + end - + end - + end end @@ -304,9 +304,9 @@ end function PANEL:Paint() for k,v in pairs( self.DrawTbl ) do - + draw.SimpleText( v.Text, v.Font, v.X, v.Y, Color( 255, 255, 255 ), v.Style, v.Style ) - + end end |
