class ExtMenu_Trader extends KFGFxMenu_Trader;

var ExtPlayerController ExtKFPC;
var Ext_PerkBase ExLastPerkClass;

function InitializeMenu(KFGFxMoviePlayer_Manager InManager)
{
	Super.InitializeMenu(InManager);
	ExtKFPC = ExtPlayerController (GetPC());
}

function int GetPerkIndex()
{
	return (ExtKFPC.ActivePerkManager!=None ? Max(ExtKFPC.ActivePerkManager.UserPerks.Find(ExtKFPC.ActivePerkManager.CurrentPerk),0) : 0);
}

function UpdatePlayerInfo()
{
	if (ExtKFPC != none && PlayerInfoContainer != none)
	{
		PlayerInfoContainer.SetPerkInfo();
		PlayerInfoContainer.SetPerkList();
		if (ExtKFPC.ActivePerkManager!=None && ExtKFPC.ActivePerkManager.CurrentPerk!=ExLastPerkClass)
		{
			ExLastPerkClass = ExtKFPC.ActivePerkManager.CurrentPerk;
			OnPerkChanged(GetPerkIndex());
		}

		RefreshItemComponents();
	}
}

function Callback_PerkChanged(int PerkIndex)
{
	ExtKFPC.PendingPerkClass = ExtKFPC.ActivePerkManager.UserPerks[PerkIndex].Class;
	ExtKFPC.SwitchToPerk(ExtKFPC.PendingPerkClass);
		
	if (PlayerInventoryContainer != none)
	{
		PlayerInventoryContainer.UpdateLock();
	}
	UpdatePlayerInfo();

	// Refresht he UI
	RefreshItemComponents();
}

defaultproperties
{
	SubWidgetBindings.Remove((WidgetName="filterContainer",WidgetClass=class'KFGFxTraderContainer_Filter'))
	SubWidgetBindings.Add((WidgetName="filterContainer",WidgetClass=class'ExtTraderContainer_Filter'))
	SubWidgetBindings.Remove((WidgetName="shopContainer",WidgetClass=class'KFGFxTraderContainer_Store'))
	SubWidgetBindings.Add((WidgetName="shopContainer",WidgetClass=class'ExtTraderContainer_Store'))
	SubWidgetBindings.Remove((WidgetName="playerInfoContainer",WidgetClass=class'KFGFxTraderContainer_PlayerInfo'))
	SubWidgetBindings.Add((WidgetName="playerInfoContainer",WidgetClass=class'ExtTraderContainer_PlayerInfo'))
}