rott/kf_sources/XGame/Classes/UT2K4TeamRoster.uc
2026-07-14 20:27:09 +07:00

65 lines
1.9 KiB
Ucode

//==============================================================================
// Team Roster, UT2K4 style
// Note: the first name in the RosterNames array is considered the Team Leader
//
// Written by Michiel Hendriks
// (c) 2003, Epic Games, Inc. All Rights Reserved
//==============================================================================
class UT2K4TeamRoster extends xTeamRoster abstract;
/** Description */
var localized string TeamDescription;
/** Team voiceover */
var sound VoiceOver;
/** Only the team name */
var sound TeamNameSound;
/** Difficulty level */
var int TeamLevel;
/** The team leader, if this is empty the first RosterNames is used */
var string TeamLeader;
/** If TeamBots == 1 use the team leader, else use the default behavior */
function Initialize(int TeamBots)
{
local array<string> RosterOverride;
local int i;
if (UT2K4GameProfile(Level.Game.CurrentGameProfile) != none)
{
if (UT2K4GameProfile(Level.Game.CurrentGameProfile).GetAltTeamRoster(string(class), RosterOverride))
{
RosterNames = RosterOverride;
Roster.Length = RosterNames.length;
for ( i = 0; i < RosterNames.Length; i++ )
{
Roster[i] = class'xRosterEntry'.Static.CreateRosterEntryCharacter(RosterNames[i]);
}
}
}
if (TeamBots != 1)
{
Super.Initialize(TeamBots);
return;
}
// else pick the team leader
if (TeamLeader == "") TeamLeader = RosterNames[0];
Roster.Length = 1;
Roster[0] = class'xRosterEntry'.Static.CreateRosterEntryCharacter(TeamLeader);
Roster[0].PrecacheRosterFor(self);
}
function bool AddToTeam(Controller Other)
{
local SquadAI DMSquad;
// if a team game use the default routine
if (TeamGame(Level.Game) != none) return Super.AddToTeam(Other);
// otherwise add fake squads
if ( Bot(Other) != None )
{
DMSquad = spawn(DeathMatch(Level.Game).DMSquadClass);
DMSquad.AddBot(Bot(Other));
}
Other.PlayerReplicationInfo.Team = None;
return true;
}