class ExtPerksContainer_Details extends KFGFxPerksContainer_Details; `define AddWeaponsInfo(InClassDef) if( `InClassDef!=None ) AddWeaponInfo(WeaponNames, WeaponSources, `InClassDef.static.GetItemName(), `InClassDef.static.GetImagePath()) final function ExUpdateDetails( Ext_PerkBase PerkClass ) { local GFxObject DetailsProvider; local KFPlayerController KFPC; local KFGameReplicationInfo KFGRI; local array WeaponNames; local array WeaponSources; local int i; DetailsProvider = CreateObject( "Object" ); KFPC = KFPlayerController( GetPC() ); if ( KFPC != none) { KFGRI = KFGameReplicationInfo(KFPC.WorldInfo.GRI); DetailsProvider.SetString( "ExperienceMessage", ExperienceString @ PerkClass.CurrentEXP ); if(KFGRI != none) { `AddWeaponsInfo(PerkClass.PrimaryWeaponDef); `AddWeaponsInfo(PerkClass.SecondaryWeaponDef); `AddWeaponsInfo(PerkClass.KnifeWeaponDef); `AddWeaponsInfo(PerkClass.GrenadeWeaponDef); } for (i = 0; i < WeaponNames.length; i++) { DetailsProvider.SetString( "WeaponName" $ i, WeaponNames[i] ); DetailsProvider.SetString( "WeaponImage" $ i, "img://"$WeaponSources[i] ); } DetailsProvider.SetString( "EXPAction1", "Kill zombies" ); //DetailsProvider.SetString( "EXPAction2", PerkClass.default.EXPAction2 ); SetObject( "detailsData", DetailsProvider ); } } final function ExUpdatePassives( Ext_PerkBase PerkClass ) { local GFxObject PassivesProvider; local GFxObject PassiveObject; local int i; PassivesProvider = CreateArray(); for( i=0; i