home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Game Level Design
/
GLDesign.bin
/
Software
/
UnrealEngine2Runtime
/
UE2Runtime-22262001_Demo.exe
/
Engine
/
Classes
/
TeamInfo.uc
< prev
next >
Wrap
Text File
|
2003-06-23
|
2KB
|
101 lines
//=============================================================================
// TeamInfo.
//=============================================================================
class TeamInfo extends ReplicationInfo
native
nativereplication;
var localized string TeamName;
var int Size; //number of players on this team in the level
var float Score;
var int TeamIndex;
var color TeamColor, AltTeamColor;
var Actor HomeBase; // key objective associated with this team
var() class<Pawn> DefaultPlayerClass;
var localized string ColorNames[4];
var Material TeamIcon;
replication
{
// Variables the server should send to the client.
reliable if( bNetDirty && (Role==ROLE_Authority) )
Score, HomeBase;
reliable if ( bNetInitial && (Role==ROLE_Authority) )
TeamName, TeamColor, AltTeamColor, TeamIndex, TeamIcon;
}
function bool BelongsOnTeam(class<Pawn> PawnClass)
{
return true;
}
simulated function UpdatePrecacheMaterials()
{
Level.AddPrecacheMaterial(TeamIcon);
}
simulated function string GetHumanReadableName()
{
if ( TeamName == Default.TeamName )
{
if ( TeamIndex < 4 )
return ColorNames[TeamIndex];
return TeamName@TeamIndex;
}
return TeamName;
}
function bool AddToTeam( Controller Other )
{
local Controller P;
local bool bSuccess;
// make sure loadout works for this team
if ( Other == None )
{
log("Added none to team!!!");
return false;
}
if (MessagingSpectator(Other) != None)
return false;
Size++;
Other.PlayerReplicationInfo.Team = self;
bSuccess = false;
if ( Other.IsA('PlayerController') )
Other.PlayerReplicationInfo.TeamID = 0;
else
Other.PlayerReplicationInfo.TeamID = 1;
while ( !bSuccess )
{
bSuccess = true;
for ( P=Level.ControllerList; P!=None; P=P.nextController )
if ( P.bIsPlayer && (P != Other)
&& (P.PlayerReplicationInfo.Team == Other.PlayerReplicationInfo.Team)
&& (P.PlayerReplicationInfo.TeamId == Other.PlayerReplicationInfo.TeamId) )
bSuccess = false;
if ( !bSuccess )
Other.PlayerReplicationInfo.TeamID = Other.PlayerReplicationInfo.TeamID + 1;
}
return true;
}
function RemoveFromTeam(Controller Other)
{
Size--;
}
defaultproperties
{
TeamName="Team"
TeamColor=(R=255,G=0,B=0,A=255)
AltTeamColor=(R=200,G=0,B=0,A=255)
ColorNames(0)="Red"
ColorNames(1)="Blue"
ColorNames(2)="Green"
ColorNames(3)="Gold"
}