class ExtMenu_Perks extends KFGFxMenu_Perks; var ExtPlayerController ExtKFPC; var Ext_PerkBase ExtPrevPerk; function OnOpen() { KFPC = KFPlayerController(GetPC()); if (ExtKFPC == none) ExtKFPC = ExtPlayerController(KFPC); if (ExtKFPC.ActivePerkManager==None) { ExtKFPC.SetTimer(0.25,true,'OnOpen',Self); return; } ExtKFPC.ClearTimer('OnOpen',Self); if (ExtPrevPerk==None) ExtPrevPerk = ExtKFPC.ActivePerkManager.CurrentPerk; ExUpdateContainers(ExtPrevPerk); SetBool("locked", true); } final function ExUpdateContainers(Ext_PerkBase PerkClass) { LastPerkLevel = PerkClass.CurrentLevel; if (ExtPerksContainer_Header(HeaderContainer)!=none) ExtPerksContainer_Header(HeaderContainer).ExUpdatePerkHeader(PerkClass); if (ExtPerksContainer_Details(DetailsContainer)!=none) { ExtPerksContainer_Details(DetailsContainer).ExUpdateDetails(PerkClass); ExtPerksContainer_Details(DetailsContainer).ExUpdatePassives(PerkClass); } if (SelectionContainer != none) SelectionContainer.UpdatePerkSelection(ExtKFPC.ActivePerkManager.UserPerks.Find(PerkClass)); } function CheckTiersForPopup(); event OnClose() { ExtPrevPerk = None; if (ExtKFPC != none) ExtKFPC.ClearTimer('OnOpen',Self); super.OnClose(); } function PerkChanged(byte NewPerkIndex, bool bClickedIndex) { ExUpdateContainers(ExtPrevPerk); } function OneSecondLoop() { if (ExtPrevPerk!=None && LastPerkLevel!=ExtPrevPerk.CurrentLevel) ExUpdateContainers(ExtPrevPerk); } function UpdateLock(); function SavePerkData(); function Callback_PerkSelected(byte NewPerkIndex, bool bClickedIndex) { ExtPrevPerk = ExtKFPC.ActivePerkManager.UserPerks[NewPerkIndex]; ExUpdateContainers(ExtPrevPerk); ExtKFPC.PendingPerkClass = ExtPrevPerk.Class; ExtKFPC.SwitchToPerk(ExtPrevPerk.Class); } function Callback_SkillSelectionOpened(); defaultproperties { SubWidgetBindings(0)=(WidgetClass=Class'ExtPerksContainer_Selection') SubWidgetBindings(1)=(WidgetClass=Class'ExtPerksContainer_Header') SubWidgetBindings(3)=(WidgetClass=Class'ExtPerksContainer_Details') }