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

107 lines
3.6 KiB
Ucode

//=============================================================================
// KFMapTravelData
//=============================================================================
// Keeps persistent data between map changes. Does not need a script instance,
// all properties are managed by the default object in native.
//=============================================================================
// Killing Floor 2
// Copyright (C) 2016 Tripwire Interactive LLC
// - Matt "Squirrlz" Farber
//=============================================================================
class KFMapTravelData extends Object
native
abstract;
/** Contains persistent player data to be carried over map changes */
struct native sPersistentPlayerData
{
var UniqueNetId PlayerID;
var int TeamIndex;
var int Dosh;
var int Kills;
var int Deaths;
var int DamageDealt;
structdefaultproperties
{
TeamIndex=-1
Dosh=-1
Kills=-1
Deaths=-1
DamageDealt=-1
}
};
/** The map that was in use during the last game */
var private string LastGameMap;
/** Last time we map traveled */
var private float LastTravelTime;
/** Array of persistent player data */
var private array<sPersistentPlayerData> PlayerData;
/** Persistent team scores */
var private array<int> TeamScores;
/** Which round this match is in */
var private int RoundCount;
/** How many times the survivors died in the previous round */
var private int SurvivorDeaths;
/** How much damage was done to the boss in the previous round */
var private int BossDamageDone;
/** How much total damage survivors took in the boss round */
var private int BossSurvivorDamageTaken;
/** Last game map accessor functions */
static native final function SetLastGameMap( string MapName );
static native final function string GetLastGameMap() const;
/** Last map travel time accessors */
static native final function SetLastTravelTime( float Time );
static native final function float GetLastTravelTime() const;
/** Player data accessor functions */
static native final function AddPlayer( UniqueNetId PlayerNetID,
optional int TeamIndex,
optional int Dosh=-1,
optional int Kills=-1,
optional int Deaths=-1,
optional int DamageDealt=-1 );
static native final function RemovePlayer( UniqueNetId PlayerNetID );
static native final function sPersistentPlayerData GetPlayer( UniqueNetId PlayerNetID ) const;
static native final function ClearPlayerData();
/** Team score accessor functions */
static native final function SetTeamScore( int TeamIndex, int TeamScore );
static native final function int GetTeamScore( int TeamIndex ) const;
/** Accessors for round count */
static native final function SetRoundCount( int RoundNum );
static native final function int GetRoundCount() const;
/** Accessors for last round survivor deaths */
static native final function SetSurvivorDeaths( int Deaths );
static native final function int GetSurvivorDeaths() const;
/** Accessors for last round boss damage taken */
static native final function SetBossDamageDone( int Dmg );
static native final function int GetBossDamageDone() const;
/** Accessors for last round boss survivor damage taken */
static native final function SetBossSurvivorDamageTaken( int Dmg );
static native final function int GetBossSurvivorDamageTaken() const;
/** Clears all persistent data in the class. Can be subclassed to include new properties */
static native function ClearAllMapTravelData();
defaultproperties
{
SurvivorDeaths=-1
BossDamageDone=-1
BossSurvivorDamageTaken=-1
RoundCount=0
}