1
0
KF2-Dev-Scripts/KFGame/Classes/KFTeamInfo_Human.uc
2020-12-13 18:01:13 +03:00

131 lines
2.7 KiB
Ucode

//=============================================================================
// KFTeamInfo_Human
//=============================================================================
// KFTeamInfo_Human
//
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
// - Christian "schneidzekk" Schneider
//=============================================================================
class KFTeamInfo_Human extends TeamInfo;
struct sTeamScoreData
{
/** Total score for this team */
var int RoundScore;
/** Stat tracking for end-of-match scoring */
var int WaveBonus;
var int Deaths;
var int BossDamageDone;
var int BossDamageTaken;
StructDefaultProperties
{
WaveBonus=-1
}
};
/**
* Since this is only changed once and we are bOnlyDirtyReplication,
* it's fine to include this in the replication block
*/
var sTeamScoreData TeamScoreDataPacket;
replication
{
if( bNetDirty )
TeamScoreDataPacket;
}
simulated function PostBeginPlay()
{
super.PostBeginPlay();
if( Role == ROLE_Authority )
{
//force a replication since we are putting team index in default properties.
bForceNetUpdate = true;
bNetDirty = true;
}
else if( TeamIndex >= 0 )
{
if (WorldInfo.GRI != None)
{
// register this TeamInfo instance now
WorldInfo.GRI.SetTeam(TeamIndex, self);
}
else
{
// Spawned before GRI, wait a short time before trying again
SetTimer( 0.1, true, nameOf(Timer_WaitingForGRI) );
}
}
}
simulated function Timer_WaitingForGRI()
{
if( WorldInfo.GRI != none )
{
WorldInfo.GRI.SetTeam( TeamIndex, self );
ClearTimer( nameOf(Timer_WaitingForGRI) );
}
}
function bool AddToTeam( Controller Other )
{
// Update immediately on network for UI snappyness
bNetDirty = true;
bForceNetUpdate = true;
return super.AddToTeam( Other );
}
function RemoveFromTeam(Controller Other)
{
// Update immediately on network for UI snappyness
bNetDirty = true;
bForceNetUpdate = true;
super.RemoveFromTeam( Other );
}
simulated function string GetHumanReadableName()
{
// Temp team name hax - Ramm
return class'KFCommon_LocalizedStrings'.default.HumanString @TeamName;
}
function AddScore( int ScoreToAdd, optional bool bSetScore )
{
if( bSetScore )
{
Score = ScoreToAdd;
}
else
{
Score += ScoreToAdd;
}
}
function AddRoundScore( int ScoreToAdd, optional bool bSetScore )
{
if( bSetScore )
{
TeamScoreDataPacket.RoundScore = ScoreToAdd;
}
else
{
TeamScoreDataPacket.RoundScore += ScoreToAdd;
}
}
function Reset()
{
Score = 0;
}
DefaultProperties
{
TeamIndex=0
NetUpdateFrequency=1
}