XIIIMP
Class XIIIMPScoreBoard

source: C:\XIII\XIIIMP\Classes\XIIIMPScoreBoard.uc
Core.Object
   |
   +--Engine.Actor
      |
      +--Engine.Info
         |
         +--Engine.ScoreBoard
            |
            +--XIIIMP.XIIIMPScoreBoard
Direct Known Subclasses:XIIIMPTeamScoreBoard

class XIIIMPScoreBoard
extends Engine.ScoreBoard

//----------------------------------------------------------- // //-----------------------------------------------------------
Variables
 font BigFont
           Big system font.
 RedColor, BlackColor
 LossString, FPHString
 color HudTeamColor[2],HudBasicColor
           Small system font.
 font LargeFont
           Largest system font.
 float LastPlayerUpdateTime
           top allowed score start
 string LastUpdateValue
           Small system font.
 string MapTitleQuote
           top allowed score start
 XIIIFontInfo MyFonts
           top allowed score start
 Texture NotReadytex
           top allowed score start
 DeathsString, PingString
 int PlayerCount
           top allowed score start
 PlayerController PlayerOwner
           top allowed score start
 string PreGameEndMessage,PostGameEndMessage,TieGameMessage
           top allowed score start
 int ResultCode
           Small system font.
 float ScoreStart
           top allowed score start
 font SmallFont
           Small system font.
 FragGoal, TimeLimit
 TimeOfNextGSUpdate, TimeOfNextForcedGSUpdate
           Small system font.
 int YP
           Y position on screen to keep track of the text locations
 bool bTimeDown
           top allowed score start
 MatchMakingManager myMMManager
           Small system font.
 string sWaitingForReady
 strPressFire, strPleaseWait

States
KeepGSposted

Function Summary
 bool BuildPlayerListWithScore()
     
//____________________________________________________________________
 void Destroyed()
     
//____________________________________________________________________
 void DrawInfoLine(Canvas C, string Info1, string Info2, string Info3, color LineColor, color BgColor, bool AddBg, int ViewPortNumber, optional bool, optional bool)
     
//____________________________________________________________________
 void DrawTrailer(Canvas Canvas)
     
//____________________________________________________________________
 void DrawVictoryConditions(Canvas Canvas)
     
//____________________________________________________________________
 void GetDownMargin(Canvas C, int ViewPortId, int PlayerNumber)
     
//____________________________________________________________________
 void GetUpMargin(Canvas C, int ViewPortId, int PlayerNumber)
     
//____________________________________________________________________
 void PostBeginPlay()
     
//____________________________________________________________________
 void ShowScores(Canvas C, int ViewPortId, int PlayerNumber)
     
//____________________________________________________________________
 
simulated
SortScores(int N)
     
//____________________________________________________________________
 string TwoDigitString(int Num)
     
//____________________________________________________________________
 
simulated
UpdatePlayerList()
     
//____________________________________________________________________
 
simulated
UpdateScores()
     
//____________________________________________________________________


State KeepGSposted Function Summary



Source Code


00001	//-----------------------------------------------------------
00002	//
00003	//-----------------------------------------------------------
00004	class XIIIMPScoreBoard extends ScoreBoard;
00005	
00006	var localized string MapTitle, Author, Restart, sContinue, Ended, ElapsedTime, sRemainingTime, FragGoal, TimeLimit;
00007	var localized string PlayerString, FragsString, DeathsString, PingString;
00008	var localized string TimeString, LossString, FPHString;
00009	var localized string sWaitingForReady;
00010	var localized string strReady, strPressFire, strPleaseWait;
00011	var color GreenColor, WhiteColor, GoldColor, LightCyanColor, CyanColor, RedColor, BlackColor;
00012	var float ScoreStart;     // top allowed score start
00013	var bool bTimeDown;
00014	var XIIIFontInfo MyFonts;
00015	var localized string MapTitleQuote;
00016	var PlayerController PlayerOwner;
00017	var localized string PreGameEndMessage,PostGameEndMessage,TieGameMessage;
00018	var int PlayerCount;
00019	var float LastPlayerUpdateTime;
00020	var texture NotReadytex;
00021	var int YP;                   // Y position on screen to keep track of the text locations
00022	var font BigFont;            // Big system font.
00023	var font LargeFont;            // Largest system font.
00024	var font SmallFont;            // Small system font.
00025	var color HudTeamColor[2],HudBasicColor;
00026	
00027	const DBScores=false;
00028	
00029	var MatchMakingManager myMMManager;
00030	var int ResultCode;
00031	var float TimeOfNextGSUpdate, TimeOfNextForcedGSUpdate;
00032	var string LastUpdateValue;
00033	
00034	//____________________________________________________________________
00035	function Destroyed()
00036	{
00037	    Super.Destroyed();
00038	    if ( MyFonts != None )
00039	      MyFonts.Destroy();
00040	
00041	    // Unregister the server from GS if required
00042	    if ((Level.Game != none) && (XIIIMPGameInfo(Level.Game) != none) && XIIIMPGameInfo(Level.Game).bNeedToKeepGSPosted && (myMMManager != none))
00043	    {
00044	        myMMManager.UnregisterMyGameServer();
00045	    }
00046	
00047	}
00048	
00049	//____________________________________________________________________
00050	function PostBeginPlay()
00051	{
00052	    Super.PostBeginPlay();
00053	    MyFonts = spawn(class'XIIIFontInfo');
00054	    PlayerOwner = PlayerController(Owner);
00055	}
00056	
00057	//____________________________________________________________________
00058	function DrawVictoryConditions(Canvas Canvas)
00059	{
00060	    local float XL, YL;
00061	
00062	    Canvas.Font = MyFonts.GetMediumFont( fMin(Canvas.ClipX, Canvas.ClipY) );
00063	    Canvas.StrLen("Test", XL, YL);
00064	
00065	    Canvas.SetPos(0, YP);
00066	    Canvas.DrawText(caps(PlayerOwner.GameReplicationInfo.GameName));
00067	    YP += YL;
00068	
00069	    if ( PlayerOwner.GameReplicationInfo.GoalScore > 0 )
00070	    {
00071	      Canvas.SetPos(0, YP);
00072	      Canvas.DrawText(caps(FragGoal@PlayerOwner.GameReplicationInfo.GoalScore));
00073	      YP += YL;
00074	    }
00075	    if ( PlayerOwner.GameReplicationInfo.TimeLimit > 0 )
00076	    {
00077	      Canvas.SetPos(0, YP);
00078	      Canvas.DrawText(caps(TimeLimit@PlayerOwner.GameReplicationInfo.TimeLimit$":00"));
00079	      YP += YL;
00080	    }
00081	}
00082	
00083	//____________________________________________________________________
00084	function string TwoDigitString(int Num)
00085	{
00086	    if ( Num < 10 )
00087	      return "0"$Num;
00088	    else
00089	      return string(Num);
00090	}
00091	
00092	//____________________________________________________________________
00093	function DrawTrailer( canvas Canvas )
00094	{
00095	    local XIIIGameReplicationInfo TGRI;
00096	    local int Hours, Minutes, Seconds;
00097	    local float XL, YL;
00098	    local string TmpPleasWait;
00099	
00100	    TGRI = XIIIGameReplicationInfo(PlayerOwner.GameReplicationInfo);
00101	
00102	    Canvas.bCenter = true;
00103	    Canvas.StrLen("999", XL, YL);
00104	    Canvas.DrawColor = WhiteColor;
00105	    Canvas.SetPos(0, YP - YL);
00106	
00107	    //log("----"@TGRI.iGameState@"----");
00108	
00109	    if (TGRI.iGameState==1)
00110	    {
00111	        //PlayerOwner.PlayerReplicationInfo.bReadyToPlay = true;
00112	        if ( PlayerOwner.PlayerReplicationInfo.bReadyToPlay )
00113	            Canvas.DrawText(strReady, true);
00114	        else
00115	            Canvas.DrawText(strPressFire, true);
00116	    }
00117	    else if (TGRI.iGameState==2)
00118	    {
00119	      bTimeDown = true;
00120	
00121	        if ( TGRI.XIIIRemainingTime > 0 )
00122	        {
00123	            Minutes = TGRI.XIIIRemainingTime/60;
00124	            Seconds = TGRI.XIIIRemainingTime % 60;
00125	//            Canvas.DrawText(sRemainingTime@TwoDigitString(Minutes)$":"$TwoDigitString(Seconds), true);
00126	            Canvas.DrawText(TwoDigitString(Minutes)$":"$TwoDigitString(Seconds), true);
00127	
00128	            if( ( OwnerHUD.HelpDisplay ) && ( !PlayerOwner.bFrozen ) )
00129	            {
00130	                Canvas.SetPos(0, YP - 2*YL);
00131	                Canvas.DrawText(strPressFire, true);
00132	            }
00133	            else if( ( OwnerHUD.HelpDisplay ) && ( PlayerOwner.bFrozen ) )
00134	            {
00135	                TmpPleasWait = strPleaseWait@"..."@XIIIMPPlayerController(PlayerOwner).TimeBeforeRespawn;
00136	                Canvas.SetPos(0, YP - 2*YL);
00137	                Canvas.DrawText( TmpPleasWait, true);
00138	            }
00139	        }
00140	        else
00141	        {
00142	            if( ( OwnerHUD.HelpDisplay ) && ( !PlayerOwner.bFrozen ) )
00143	            {
00144	                Canvas.SetPos(0, YP - YL);
00145	                Canvas.DrawText(strPressFire, true);
00146	            }
00147	            else if( ( OwnerHUD.HelpDisplay ) && ( PlayerOwner.bFrozen ) )
00148	            {
00149	                TmpPleasWait = strPleaseWait@"..."@XIIIMPPlayerController(PlayerOwner).TimeBeforeRespawn;
00150	                Canvas.SetPos(0, YP - 2*YL);
00151	                Canvas.DrawText( TmpPleasWait, true);
00152	            }
00153	        }
00154	    }
00155	    else if( TGRI.iGameState != 3 )
00156	    {
00157	        Seconds = PlayerOwner.GameReplicationInfo.ElapsedTime;
00158	        Minutes = Seconds / 60;
00159	        Hours   = Minutes / 60;
00160	        Seconds = Seconds - (Minutes * 60);
00161	        Minutes = Minutes - (Hours * 60);
00162	//        Canvas.DrawText(ElapsedTime@TwoDigitString(Hours)$":"$TwoDigitString(Minutes)$":"$TwoDigitString(Seconds), true);
00163	        Canvas.DrawText(TwoDigitString(Hours)$":"$TwoDigitString(Minutes)$":"$TwoDigitString(Seconds), true);
00164	
00165	        if( ( OwnerHUD.HelpDisplay ) && ( !PlayerOwner.bFrozen ) )
00166	        {
00167	            Canvas.SetPos(0, YP - 2*YL);
00168	            Canvas.DrawText(strPressFire, true);
00169	        }
00170	    }
00171	
00172	    if (TGRI.iGameState==3)
00173	    {
00174	        Canvas.bCenter = true;
00175	        //Canvas.StrLen("Test", XL, YL);
00176	        Canvas.SetPos(0, YP - YL);
00177	        //Canvas.SetPos(0, Canvas.ClipY - Min(YL*6, Canvas.ClipY * 0.1));
00178	        //Canvas.DrawColor = GreenColor;
00179	        Canvas.DrawText(Ended, true);
00180	    }
00181	
00182	    Canvas.bCenter = false;
00183	}
00184	
00185	//____________________________________________________________________
00186	function DrawInfoLine(Canvas C, string Info1, string Info2, string Info3, color LineColor, color BgColor , bool AddBg, int ViewPortNumber, optional bool bDrawReadyToPlay, optional bool bNotReadyToPlay )
00187	{
00188	    local float W,H; //, IconSize;
00189	    local int XP;
00190	
00191	    if( ViewPortNumber == 1 )
00192	      C.Font = BigFont;
00193	    else
00194	      C.Font = SmallFont;
00195	    C.SpaceX = 1;
00196	    C.StrLen(Info1, W, H);
00197	
00198	//    IconSize = (H+4) / (ReadyTex.VSize/2.0);
00199	
00200	    XP = C.CLipX*0.15;
00201	
00202	    // BackGround Icon + Text
00203	    C.bUseBorder = false;
00204	    C.Style = ERenderStyle.STY_Alpha;
00205	    C.DrawColor = BgColor*0.3;
00206	    C.DrawColor.A = 90;
00207	    C.SetPos(XP,YP);
00208	    OwnerHud.DrawStdBackGround(C, H-4, C.CLipX*0.7 - 2*(H-4));
00209	    if( AddBg )
00210	    {
00211	      C.Style = ERenderStyle.STY_Translucent;
00212	      C.DrawColor = BgColor;
00213	      C.DrawColor.A = 200;
00214	      C.SetPos(XP,YP);
00215	      OwnerHud.DrawStdBackGround(C, H-4, C.CLipX*0.7 - 2*(H-4));
00216	    }
00217	
00218	//    Log(Info1@"Ready ?"@!bNotReadyToPlay@"GRI State="$XIIIGameReplicationInfo(PlayerOwner.GameReplicationInfo).iGameState);
00219	    // Player Ready ?
00220	    if ( (Level.NetMode != NM_StandAlone) && bDrawReadyToPlay && XIIIGameReplicationInfo(PlayerOwner.GameReplicationInfo).iGameState != 2 )
00221	    {
00222	      C.Style = ERenderStyle.STY_Alpha;
00223	      if ( bNotReadyToPlay )
00224	        C.DrawColor = WhiteColor * 0.5;
00225	      else
00226	        C.DrawColor = GoldColor;
00227	      C.SetPos(XP-H/4,YP-3);
00228	      C.DrawIcon(NotReadyTex, (H+3)/NotReadyTex.VSize);
00229	      bDrawReadyToPlay = true;
00230	    }
00231	    else
00232	      bDrawReadyToPlay = false;
00233	
00234	    // Text
00235	    C.Style = ERenderStyle.STY_Normal;
00236	
00237	    C.DrawColor = BgColor*0.3;
00238	    C.SetPos(XP+H+4+1,YP-1);
00239	    C.DrawText(Info1, false);
00240	
00241	    C.DrawColor = LineColor;
00242	    C.SetPos(XP+H+4,YP-2);
00243	    C.DrawText(Info1, false);
00244	
00245	    C.StrLen(Info2, W, H);
00246	
00247	    C.DrawColor = BgColor*0.3;
00248	    C.SetPos(C.ClipX*0.58 + 1 - W/2,YP-1);
00249	    C.DrawText(Info2, false);
00250	
00251	    C.DrawColor = LineColor;
00252	    C.SetPos(C.ClipX*0.58 - W/2,YP-2);
00253	    C.DrawText(Info2, false);
00254	
00255	    C.StrLen(Info3, W, H);
00256	
00257	    C.DrawColor = BgColor*0.3;
00258	    C.SetPos(C.ClipX*0.75 + 1 - W/2,YP-1);
00259	    C.DrawText(Info3, false);
00260	
00261	    C.DrawColor = LineColor;
00262	    C.SetPos(C.ClipX*0.75 - W/2,YP-2);
00263	    C.DrawText(Info3, false);
00264	
00265	    YP += H;
00266	
00267	    C.SpaceX = 0;
00268	}
00269	
00270	//____________________________________________________________________
00271	simulated function SortScores(int N)
00272	{
00273	    local int I, J, Max;
00274	    local PlayerReplicationInfo TempPRI;
00275	
00276	    for ( I=0; I<N-1; I++ )
00277	    {
00278	      Max = I;
00279	      for ( J=I+1; J<N; J++ )
00280	      {
00281	        if ( Ordered[J].Score > Ordered[Max].Score )
00282	          Max = J;
00283	        else if ((Ordered[J].Score == Ordered[Max].Score) && (Ordered[J].Deaths < Ordered[Max].Deaths))
00284	          Max = J;
00285	        else if ((Ordered[J].Score == Ordered[Max].Score) && (Ordered[J].Deaths == Ordered[Max].Deaths) &&
00286	          (Ordered[J].PlayerID < Ordered[Max].Score))
00287	          Max = J;
00288	      }
00289	
00290	      TempPRI = Ordered[Max];
00291	      Ordered[Max] = Ordered[I];
00292	      Ordered[I] = TempPRI;
00293	    }
00294	}
00295	
00296	//____________________________________________________________________
00297	simulated function UpdatePlayerList()
00298	{
00299	    local int i;
00300	    local PlayerReplicationInfo PRI;
00301	
00302	    // infrequent checks (every 0.5 seconds) since AllActors is expensive
00303	
00304	    if ( Level.TimeSeconds - LastPlayerUpdateTime < 0.5 )
00305	      return;
00306	    LastPlayerUpdateTime = Level.TimeSeconds;
00307	
00308	    // Wipe everything.
00309	    for ( i=0; i<ArrayCount(Ordered); i++ )
00310	      Ordered[i] = None;
00311	    PlayerCount = 0;
00312	
00313	    foreach AllActors(class'PlayerReplicationInfo', PRI)
00314	    {
00315	      if ( !PRI.bIsSpectator || PRI.bWaitingPlayer )
00316	      {
00317	        Ordered[PlayerCount] = PRI;
00318	        PlayerCount++;
00319	        if ( PlayerCount == ArrayCount(Ordered) )
00320	          break;
00321	      }
00322	    }
00323	
00324	    SortScores(PlayerCount);
00325	
00326	    if ((Level.TimeSeconds > TimeOfNextGSUpdate) && (Level.Game != none) && (XIIIMPGameInfo(Level.Game) != none) && XIIIMPGameInfo(Level.Game).bNeedToKeepGSPosted)
00327	    {
00328	      TimeOfNextGSUpdate = Level.TimeSeconds + 10.0;
00329	      GotoState('KeepGSposted');
00330	    }
00331	}
00332	
00333	//____________________________________________________________________
00334	function ShowScores( Canvas C , int ViewPortId , int PlayerNumber )
00335	{
00336	    local color BgColor;
00337	    local int Loop;
00338	    local string PName,PFrag,PDeath;
00339	    local bool IsMe;
00340	    local XIIIGameReplicationInfo TGRI;
00341	
00342	    if ( PlayerOwner.GameReplicationInfo == none )
00343	      return;
00344	
00345	    TGRI = XIIIGameReplicationInfo(PlayerOwner.GameReplicationInfo);
00346	    UpdatePlayerList();
00347	
00348	    GetUpMargin( C , ViewPortId , PlayerNumber );
00349	    if( (TGRI.iGameState==1) && ( Level.NetMode == NM_Standalone ) )
00350	    {
00351	      if( PlayerNumber == 1 )
00352	        C.Font = BigFont;
00353	      else
00354	        C.Font = SmallFont;
00355	
00356	      GetDownMargin( C , ViewPortId , PlayerNumber );
00357	      DrawTrailer(C);
00358	      return;
00359	    }
00360	
00361	    // Header
00362	    DrawInfoLine( C,PlayerString,FragsString,DeathsString,HudBasicColor,HudBasicColor,false,PlayerNumber );
00363	    YP += 8;
00364	
00365	    //Players ...
00366	    for ( Loop=0; Loop<PlayerCount; Loop++ )
00367	    {
00368	      IsMe = ( Ordered[Loop] == PlayerOwner.PlayerReplicationInfo );
00369	      PName = Ordered[Loop].PlayerName;
00370	      PFrag = string( int(Ordered[Loop].Score));
00371	      PDeath = string( int(Ordered[Loop].Deaths));
00372	      DrawInfoLine( C, PName,PFrag,PDeath,HudBasicColor,HudBasicColor,IsMe,PlayerNumber, Ordered[Loop].bWaitingPlayer, !Ordered[Loop].bReadyToPlay );
00373	    }
00374	
00375	    // Trail
00376	    GetDownMargin( C , ViewPortId , PlayerNumber );
00377	    DrawTrailer(C);
00378	}
00379	
00380	//____________________________________________________________________
00381	function GetDownMargin( Canvas C , int ViewPortId , int PlayerNumber )
00382	{
00383	    YP = C.ClipY*0.85; // default Value
00384	
00385	    if( ViewPortId != -1 )
00386	    {
00387	        if( PlayerNumber == 2 )
00388	        {
00389	            if( ViewPortId == 0 )
00390	                YP = C.ClipY*0.95;
00391	            else
00392	                YP = C.ClipY*0.85;
00393	        }
00394	        else
00395	        {
00396	            if( ( ViewPortId == 0 ) || ( ViewPortId == 1 ) )
00397	                YP = C.ClipY*0.95;
00398	            else
00399	                YP = C.ClipY*0.85;
00400	        }
00401	    }
00402	
00403	    if( ( Level.NetMode != NM_Standalone ) || ( ( ViewPortId == 0 ) && ( PlayerNumber == 1 ) ) )
00404	        YP = C.ClipY*0.90;
00405	}
00406	
00407	//____________________________________________________________________
00408	function GetUpMargin( Canvas C , int ViewPortId , int PlayerNumber )
00409	{
00410	    YP = C.ClipY*0.15; // default Value
00411	
00412	    if( ViewPortId != -1 )
00413	    {
00414	        if( PlayerNumber == 2 )
00415	        {
00416	            if( ViewPortId == 0 )
00417	                YP = C.ClipY*0.15;
00418	            else
00419	                YP = C.ClipY*0.05;
00420	        }
00421	        else
00422	        {
00423	            if( ( ViewPortId == 0 ) || ( ViewPortId == 1 ) )
00424	                YP = C.ClipY*0.15;
00425	            else
00426	                YP = C.ClipY*0.05;
00427	        }
00428	    }
00429	}
00430	
00431	//____________________________________________________________________
00432	simulated function UpdateScores()
00433	{
00434	    if ( DBScores ) Log("MP-] UpdateScores for "$self);
00435	    UpdatePlayerList();
00436	}
00437	
00438	//____________________________________________________________________
00439	function bool BuildPlayerListWithScore()
00440	{
00441	    local string Result;
00442	    local int Loop;
00443	
00444	    for ( Loop=0; Loop<PlayerCount; Loop++ )
00445	    {
00446	        if (Loop > 0)
00447	            Result = Result$"?";
00448	        Result = Result$Ordered[Loop].PlayerName$"="$int(Ordered[Loop].Score);
00449	    }
00450	
00451	    if (LastUpdateValue == Result)
00452	    {
00453	        if (Level.TimeSeconds >= TimeOfNextForcedGSUpdate)
00454	        {
00455	            TimeOfNextForcedGSUpdate = Level.TimeSeconds + 29.0;
00456	            return true;
00457	        }
00458	        else
00459	            return false;
00460	    }
00461	    else
00462	    {
00463	        LastUpdateValue = Result;
00464	        TimeOfNextForcedGSUpdate = Level.TimeSeconds + 29.0;
00465	        return true;
00466	    }
00467	}
00468	
00469	
00470	//____________________________________________________________________
00471	State KeepGSposted
00472	{
00473	begin:
00474	    if (myMMManager == none)
00475		    myMMManager = new(none) class'MatchMakingManager';
00476	
00477	    if (BuildPlayerListWithScore())
00478	    {
00479	        //log("Sending "$LastUpdateValue$" to GS");
00480	        myMMManager.UpdateMyGameServer(-1, -1, "", ""/*info*/, LastUpdateValue/*AdditionalInfo*/, -1);
00481	        while ( !myMMManager.IsMyGameServerUpdated(ResultCode) )
00482	        {
00483	            Sleep(0.1);
00484	        }
00485	        /*  Whatever the ResultCode, there is nothing we can do...
00486	        if (ResultCode == 0)
00487	        {
00488	            log("Server updated on GS");
00489	        }
00490	        else
00491	        {
00492	            log("Error while updating the server on GS");
00493	        }
00494	        */
00495	
00496	    }
00497	    GotoState('');
00498	}
00499	
00500	
00501	
00502	//____________________________________________________________________
00503	//    NotReadyTex=texture'XIIIMenu.Mul_moinsdevie'
00504	
00505	
00506	defaultproperties
00507	{
00508	     MapTitle="in"
00509	     Author="by"
00510	     Restart="You are dead.  Hit [Fire] to respawn!"
00511	     sContinue=" Hit [Fire] to continue!"
00512	     Ended="The match has ended."
00513	     ElapsedTime="Elapsed Time: "
00514	     sRemainingTime="Remaining Time: "
00515	     FragGoal="Frag Limit:"
00516	     TimeLimit="Time Limit:"
00517	     PlayerString="Player"
00518	     FragsString="Frag(s)"
00519	     DeathsString="Death(s)"
00520	     PingString="Ping"
00521	     TimeString="Time"
00522	     LossString="Loss"
00523	     FPHString="FPH"
00524	     sWaitingForReady="Waiting for players to be ready"
00525	     strReady="Ready"
00526	     strPressFire="Press Fire to begin"
00527	     strPleaseWait="Please Wait"
00528	     GreenColor=(G=255,A=255)
00529	     WhiteColor=(B=255,G=255,R=255,A=255)
00530	     GoldColor=(G=210,R=240,A=255)
00531	     LightCyanColor=(B=255,G=255,R=128,A=255)
00532	     CyanColor=(B=255,G=128,A=255)
00533	     RedColor=(R=255,A=255)
00534	     BlackColor=(A=255)
00535	     PostGameEndMessage=" wins the round!"
00536	     TieGameMessage="Round ends with no winner."
00537	     LastPlayerUpdateTime=-1.000000
00538	     NotReadytex=Texture'XIIICine.effets.impactpoing2A'
00539	     BigFont=Font'XIIIFonts.PoliceF16'
00540	     LargeFont=Font'XIIIFonts.PoliceF20'
00541	     SmallFont=Font'XIIIFonts.XIIIConsoleFont'
00542	     HudTeamColor(0)=(R=200,A=255)
00543	     HudTeamColor(1)=(B=255,G=159,R=64,A=255)
00544	     HudBasicColor=(B=210,G=252,R=255,A=230)
00545	}

End Source Code