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."); } } function SavePerk(int PerkID);