KF2-Server-Extension/ServerExt/Classes/ExtPerksContainer_Selection.uc
2021-01-15 12:02:32 +03:00

49 lines
1.4 KiB
Ucode

class ExtPerksContainer_Selection extends KFGFxPerksContainer_Selection;
function UpdatePerkSelection(byte SelectedPerkIndex)
{
local int i;
local GFxObject DataProvider;
local GFxObject TempObj;
local ExtPlayerController KFPC;
local Ext_PerkBase PerkClass;
KFPC = ExtPlayerController(GetPC());
if (KFPC!=none && KFPC.ActivePerkManager!=None)
{
DataProvider = CreateArray();
for (i = 0; i < KFPC.ActivePerkManager.UserPerks.Length; i++)
{
PerkClass = KFPC.ActivePerkManager.UserPerks[i];
TempObj = CreateObject("Object");
TempObj.SetInt("PerkLevel", PerkClass.CurrentLevel);
TempObj.SetString("Title", PerkClass.PerkName);
TempObj.SetString("iconSource", PerkClass.GetPerkIconPath(PerkClass.CurrentLevel));
TempObj.SetBool("bTierUnlocked", true);
DataProvider.SetElementObject(i, TempObj);
}
SetObject("perkData", DataProvider);
SetInt("SelectedIndex", SelectedPerkIndex);
UpdatePendingPerkInfo(SelectedPerkIndex);
}
}
function UpdatePendingPerkInfo(byte SelectedPerkIndex)
{
local ExtPlayerController KFPC;
local Ext_PerkBase PerkClass;
KFPC = ExtPlayerController(GetPC());
if (KFPC != none)
{
PerkClass = KFPC.ActivePerkManager.UserPerks[SelectedPerkIndex];
SetPendingPerkChanges(PerkClass.PerkName, PerkClass.GetPerkIconPath(PerkClass.CurrentLevel), "Perk changes will be applied when you die."); // TODO: Localization
}
}
function SavePerk(int PerkID);