new post | browse code | authors | help | about

LuaBin 2.0

Viewing file root / lua / menu / achievements.lua

  1. //=============================================================================//
  2. //  ___  ___   _   _   _    __   _   ___ ___ __ __
  3. // |_ _|| __| / \ | \_/ |  / _| / \ | o \ o \\ V /
  4. //  | | | _| | o || \_/ | ( |_n| o ||   /   / \ /
  5. //  |_| |___||_n_||_| |_|  \__/|_n_||_|\\_|\\ |_|  2009
  6. //                                                                               
  7. //=============================================================================//
  8.  
  9. include( "achievement_panel.lua" )
  10.  
  11. language.Add( "AchievementsTitle", "Achievements" )
  12.  
  13. local PANEL = {}
  14.  
  15. /*---------------------------------------------------------
  16.         Init
  17. ---------------------------------------------------------*/
  18. function PANEL:Init()
  19.  
  20.         self:SetMouseInputEnabled( true )
  21.         self:SetKeyboardInputEnabled( true )
  22.         self:SetDeleteOnClose( true )
  23.         self:SetSizable( true )
  24.        
  25.         self:SetTitle( "#Achievements" )
  26.        
  27.         self:CreateControls()
  28.        
  29. end
  30.  
  31.  
  32. /*---------------------------------------------------------
  33.         CreateControls
  34. ---------------------------------------------------------*/
  35. function PANEL:CreateControls()
  36.  
  37.         self.PanelList = vgui.Create( "DPanelList", self )
  38.         self.PanelList:SetSpacing( 5 )
  39.         self.PanelList:SetPadding( 5 )
  40.         self.PanelList:EnableVerticalScrollbar()
  41.        
  42.         local fTotal = 0
  43.         local fAttained = 0
  44.        
  45.         //for x=0, 1 do
  46.        
  47.                 local iCount = achievements.Count();
  48.                
  49.                 for i=1, iCount do
  50.                
  51.                         fTotal = fTotal + 1
  52.                        
  53.                         local iCount = achievements.GetCount( i )
  54.                         local iGoal = achievements.GetGoal( i )
  55.                         local bAchieved = achievements.IsAchieved( i )
  56.                
  57.                         if ( bAchieved || iCount > 0 ) then
  58.                
  59.                                 local ach = vgui.Create( "AchievementPanel" )
  60.                                         ach:SetNumber( i )
  61.                                 self.PanelList:AddItem( ach )
  62.                                
  63.                                 if ( iGoal == 1 || bAchieved ) then
  64.                                         fAttained = fAttained + 1;
  65.                                 else
  66.                                         fAttained = fAttained + (iCount / iGoal);
  67.                                         ach:SetContentsAlpha( 100 )
  68.                                 end
  69.                                
  70.                         end
  71.                
  72.                 end
  73.  
  74.         //end
  75.        
  76.         self.ProgressPanel = vgui.Create( "DPanel", self )
  77.        
  78.        
  79.         self.TotalProgress = vgui.Create( "DProgressBar", self.ProgressPanel )
  80.         self.TotalProgress:SetSize( 200, 100 )
  81.         self.TotalProgress:LabelAsPecentage()
  82.         self.TotalProgress:SetMin( 0 )
  83.         self.TotalProgress:SetMax( fTotal )
  84.         self.TotalProgress:SetValue( fAttained )
  85.        
  86.         self.ProgressLabel = vgui.Create( "DLabel", self.ProgressPanel )
  87.         self.ProgressLabel:SetFont( "Trebuchet18" )
  88.         self.ProgressLabel:SetColor( Color( 255, 255, 255, 255 ) )
  89.         self.ProgressLabel:SetText( Format( "You have unlocked %i out of %i achievements!", fAttained, fTotal ) )
  90.        
  91. end
  92.  
  93. /*---------------------------------------------------------
  94.         PerformLayout
  95. ---------------------------------------------------------*/
  96. function PANEL:PerformLayout()
  97.  
  98.         self.BaseClass.PerformLayout( self )
  99.        
  100.         self.ProgressPanel:SetTall( 55 )
  101.         self.ProgressPanel:StretchToParent( 10, 30, 10, nil )
  102.         self.ProgressPanel:SetBackgroundColor( Color( 70, 70, 70, 230 ) )
  103.  
  104.         self.ProgressLabel:SizeToContents()    
  105.         self.ProgressLabel:SetPos( 5, 5 )
  106.         self.ProgressLabel:CenterHorizontal()
  107.        
  108.         self.TotalProgress:SetTall( 22 )
  109.         self.TotalProgress:StretchToParent( 6, nil, 6, nil )
  110.         self.TotalProgress:AlignBottom( 6 )
  111.        
  112.         self.PanelList:MoveBelow( self.ProgressPanel, 5 )
  113.         self.PanelList:StretchToParent( 10, nil, 10, 10 )
  114.  
  115. end
  116.  
  117.  
  118. vgui.Register( "Achievements", PANEL, "DFrame" )
  119.  
  120.  
  121. local function menu_achievements()
  122.  
  123.         if ( AchievementsWindow ) then
  124.                 AchievementsWindow:Remove()
  125.                 AchievementsWindow = nil
  126.         end
  127.        
  128.         AchievementsWindow = vgui.Create( "Achievements" )
  129.         AchievementsWindow:SetVisible( true )
  130.         AchievementsWindow:SetSize( 500, 600 )
  131.         AchievementsWindow:Center()
  132.         AchievementsWindow:MakePopup()
  133.        
  134. end
  135.  
  136. concommand.Add( "menu_achievements", menu_achievements )