93 lines
3.2 KiB
Ucode
93 lines
3.2 KiB
Ucode
|
//=============================================================================
|
||
|
// KFGFxPostGameContainer_PlayerXP
|
||
|
//=============================================================================
|
||
|
// Class Description
|
||
|
//=============================================================================
|
||
|
// Killing Floor 2
|
||
|
// Copyright (C) 2015 Tripwire Interactive LLC
|
||
|
// - Zane Gholson 07/10/2015
|
||
|
//=============================================================================
|
||
|
|
||
|
class KFGFxPostGameContainer_PlayerXP extends KFGFxObject_Container;
|
||
|
|
||
|
var int ItemCount;
|
||
|
|
||
|
//==============================================================
|
||
|
// Initialization
|
||
|
//==============================================================
|
||
|
function Initialize( KFGFxObject_Menu NewParentMenu )
|
||
|
{
|
||
|
super.Initialize( NewParentMenu );
|
||
|
SetXPList();
|
||
|
}
|
||
|
|
||
|
function SetXPList()
|
||
|
{
|
||
|
local GFxObject ObjectArray;
|
||
|
local KFPlayerReplicationInfo KFPRI;
|
||
|
local KFPlayerController KFPC;
|
||
|
local int i;
|
||
|
local EphemeralMatchStats StatCollector;
|
||
|
|
||
|
ItemCount = 0;
|
||
|
|
||
|
KFPRI = KFPlayerReplicationInfo(GetPC().PlayerReplicationInfo);
|
||
|
|
||
|
KFPC = KFPlayerController(GetPC());
|
||
|
|
||
|
if(KFPRI != none && KFPC != none)
|
||
|
{
|
||
|
StatCollector = KFPC.MatchStats;
|
||
|
|
||
|
ObjectArray = CreateArray();
|
||
|
|
||
|
StatCollector.PerkXPList.Sort(StatCollector.SortXP);
|
||
|
//Temp XP Print out on AAR player stats
|
||
|
for (i = 0; i < StatCollector.PerkXPList.length; i++)
|
||
|
{
|
||
|
// Only show perks with progress this match
|
||
|
if ( StatCollector.PerkXPList[i].XPDelta > 0 )
|
||
|
{
|
||
|
ObjectArray.SetElementObject(ItemCount, MakePerkXPObject(StatCollector.PerkXPList[i]));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
SetObject("xpList", ObjectArray);
|
||
|
}
|
||
|
|
||
|
function GFxObject MakePerkXPObject(PerkXPGain PerkXPObject)
|
||
|
{
|
||
|
local GFxObject TempGFxObject;
|
||
|
local KFPlayerController KFPC;
|
||
|
local float BonusXPMultiplier;
|
||
|
|
||
|
|
||
|
KFPC = KFPlayerController(GetPC());
|
||
|
TempGFxObject = CreateObject("Object");
|
||
|
|
||
|
BonusXPMultiplier = KFPC.GetPerkPrestigeXPMultiplier(PerkXPObject.PerkClass);
|
||
|
|
||
|
TempGFxObject.SetInt("bonusXP", PerkXPObject.BonusXP);
|
||
|
TempGFxObject.SetString("bonusXPMultiplier", int(BonusXPMultiplier * 100) $"%" @class'KFCommon_LocalizedStrings'.default.PrestigeBonusString );
|
||
|
TempGFxObject.SetFloat("startXP", PerkXPObject.StartXPPercentage);
|
||
|
TempGFxObject.SetFloat("finishXP", Min(KFPC.GetPerkLevelProgressPercentage(PerkXPObject.PerkClass), 100 ));
|
||
|
TempGFxObject.SetFloat("xpDelta", PerkXPObject.XPDelta);
|
||
|
TempGFxObject.SetInt("perkLevel", PerkXPObject.StartLevel);
|
||
|
TempGFxObject.SetInt("finishLevel", KFPC.GetPerkLevelFromPerkList(PerkXPObject.PerkClass));
|
||
|
TempGFxObject.SetString("perkName", PerkXPObject.PerkClass.default.PerkName);
|
||
|
TempGFxObject.SetString("perkIcon", "img://" $PerkXPObject.PerkClass.static.GetPerkIconPath());
|
||
|
TempGFxObject.SetString("objective1", PerkXPObject.PerkClass.default.EXPAction1);
|
||
|
TempGFxObject.SetInt("objective1Value", PerkXPObject.XPDelta - PerkXPObject.SecondaryXPGain - PerkXPObject.BonusXP);
|
||
|
TempGFxObject.SetString("objective2", PerkXPObject.PerkClass.default.EXPAction2);
|
||
|
TempGFxObject.SetInt("objective2Value", PerkXPObject.SecondaryXPGain );
|
||
|
|
||
|
ItemCount++;
|
||
|
|
||
|
return TempGFxObject;
|
||
|
}
|
||
|
|
||
|
DefaultProperties
|
||
|
{
|
||
|
ItemCount=-1
|
||
|
}
|