113 lines
3.0 KiB
Ucode
113 lines
3.0 KiB
Ucode
class KFGameReplicationInfo extends InvasionGameReplicationInfo;
|
|
|
|
var int MaxMonsters;
|
|
var bool MaxMonstersOn;
|
|
var string ClassListHeaders;
|
|
var int ClassListClassCount;
|
|
var string ClassListClassNames;
|
|
var int numMonsters ;
|
|
const CLASSLIST_CLASSES=3;
|
|
var int NumPlayersClassSelected;
|
|
var int TimeToNextWave;
|
|
var bool bWaveInProgress;
|
|
|
|
var string LastBotName[6];
|
|
var int bBotPlayerReady[6];
|
|
var int PendingBots;
|
|
var string TempBotName; // Changes with the Selections in the ComboBox (but before we click addbot) Used to satisfy the SetGRI stuffs in PlayerController
|
|
var bool bNoBots;
|
|
|
|
var int LobbyTimeout;
|
|
var float GameDiff; // Since Level.Game doesnt seem to replicate...let's store the difficulty value here
|
|
var bool bEnemyHealthBars;
|
|
var byte EndGameType;
|
|
var bool bHUDShowCash;
|
|
|
|
var ShopVolume CurrentShop;
|
|
|
|
var bool bObjectiveAchievementFailed; // used in objective mode
|
|
|
|
replication
|
|
{
|
|
reliable if(Role == ROLE_Authority)
|
|
MaxMonstersOn, bWaveInProgress, TimeToNextWave, LobbyTimeout,
|
|
MaxMonsters, PendingBots, LastBotName, TempBotName, EndGameType, CurrentShop,
|
|
bObjectiveAchievementFailed;
|
|
|
|
reliable if ( bNetInitial && (Role == ROLE_Authority) )
|
|
GameDiff, bEnemyHealthBars, bNoBots, bHUDShowCash;
|
|
}
|
|
|
|
simulated function PostNetBeginPlay()
|
|
{
|
|
local PlayerReplicationInfo PRI;
|
|
|
|
Level.GRI = self;
|
|
|
|
if ( VoiceReplicationInfo == None )
|
|
foreach DynamicActors(class'VoiceChatReplicationInfo', VoiceReplicationInfo)
|
|
break;
|
|
|
|
SetTimer(1.0, true);
|
|
|
|
foreach DynamicActors(class'PlayerReplicationInfo',PRI)
|
|
AddPRI(PRI);
|
|
|
|
if ( Level.NetMode == NM_Client )
|
|
TeamSymbolNotify();
|
|
}
|
|
|
|
simulated function Timer()
|
|
{
|
|
if ( Level.NetMode == NM_Client && bMatchHasBegun )
|
|
{
|
|
ElapsedTime++;
|
|
if ( RemainingMinute != 0 )
|
|
{
|
|
RemainingTime = RemainingMinute;
|
|
RemainingMinute = 0;
|
|
}
|
|
if ( (RemainingTime > 0) && !bStopCountDown )
|
|
RemainingTime--;
|
|
if ( !bTeamSymbolsUpdated )
|
|
TeamSymbolNotify();
|
|
SetTimer(Level.TimeDilation, true);
|
|
}
|
|
}
|
|
|
|
simulated function AddKFPRI(PlayerReplicationInfo PRI)
|
|
{
|
|
local byte NewVoiceID;
|
|
local int i;
|
|
local bool bIgnoreMe;
|
|
|
|
if ( Level.NetMode == NM_ListenServer || Level.NetMode == NM_DedicatedServer )
|
|
{
|
|
for (i = 0; i < PRIArray.Length; i++)
|
|
{
|
|
if ( PRIArray[i]==None || PRIArray[i]==PRI )
|
|
{
|
|
PRIArray[i] = PRI;
|
|
bIgnoreMe = True;
|
|
}
|
|
if ( PRIArray[i].VoiceID == NewVoiceID )
|
|
{
|
|
i = -1;
|
|
NewVoiceID++;
|
|
continue;
|
|
}
|
|
}
|
|
if ( NewVoiceID >= 32 )
|
|
NewVoiceID = 0;
|
|
PRI.VoiceID = NewVoiceID;
|
|
}
|
|
if(!bIgnoreMe)
|
|
PRIArray[PRIArray.Length] = PRI;
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
LobbyTimeout=-1
|
|
bHUDShowCash=true
|
|
}
|