1
0
KF2-Dev-Scripts/KFGame/Classes/KFGFxPerksContainer_Prestige.uc
2020-12-13 18:01:13 +03:00

107 lines
3.9 KiB
Ucode

//=============================================================================
// KFGFxPerksContainer_Prestige
//=============================================================================
//
//=============================================================================
// Killing Floor 2
// Copyright (C) 2018 Tripwire Interactive LLC
// - Zane Gholson 3/7/2018
//=============================================================================
class KFGFxPerksContainer_Prestige extends KFGFxPerksContainer;
var localized string CurrentRankString;
var localized string NextRankString;
var localized string RewardString;
var localized string PrestigeDescriptionString;
var localized string PrestigeWarningString1;
var localized string PrestigeWarningString2;
var localized string PrestigeWarningString3;
var localized string AtMaxPrestigeLevelString;
var localized string NotHightenoughLevelString;
var GFxObject ConfirmPrestigeButton;
var KFPlayerController KFPC;
function Initialize(KFGFxObject_Menu NewParentMenu)
{
super.Initialize(NewParentMenu);
KFPC = KFPlayerController(GetPC());
LocalizeText();
ConfirmPrestigeButton = GetObject("confirmButton");
SendPerkData();
}
function LocalizeText()
{
local GFxObject LocalizedObject;
local String UpdatedDescriptionString;
local KFPerk CurrentPerk;
local int XpModifier;
CurrentPerk = KFPC.CurrentPerk;
XpModifier = KFPC.GetPerkPrestigeNextXPMultiplier(CurrentPerk.Class) * 100;
UpdatedDescriptionString = Repl(PrestigeDescriptionString, "%x%", string(XpModifier), true);
LocalizedObject = CreateObject("Object");
LocalizedObject.SetString("prestige", class'KFGFxMenu_Perks'.default.PrestigeString);
LocalizedObject.SetString("currentRank", CurrentRankString);
LocalizedObject.SetString("nextRank", NextRankString);
LocalizedObject.SetString("rewards", RewardString);
LocalizedObject.SetString("description", UpdatedDescriptionString);
LocalizedObject.SetString("cancel", class'KFCommon_LocalizedStrings'.default.CancelString);
LocalizedObject.SetString("confirm", class'KFCommon_LocalizedStrings'.default.ConfirmString);
LocalizedObject.SetString("warning1", PrestigeWarningString1);
LocalizedObject.SetString("warning2", PrestigeWarningString2);
LocalizedObject.SetString("warning3", PrestigeWarningString3);
LocalizedObject.SetString("atMaxRank", AtMaxPrestigeLevelString);
SetObject("localizedText", LocalizedObject);
}
function SendPerkData()
{
local KFPerk CurrentPerk;
local GFxObject DataObject, CurrentPerkDataObject, NextPerkDataObject;
local byte CurrentPrestigeLevel;
CurrentPerk = KFPC.CurrentPerk;
CurrentPrestigeLevel = KFPC.GetPerkPrestigeLevelFromPerkList(CurrentPerk.Class);
DataObject = CreateObject("Object");
CurrentPerkDataObject = CreateObject("Object");
NextPerkDataObject = CreateObject("Object");
//current perk
CurrentPerkDataObject.SetString("perkIcon", "img://"$CurrentPerk.GetPerkIconPath());
CurrentPerkDataObject.SetString("prestigeIcon", CurrentPerk.GetPrestigeIconPath(CurrentPrestigeLevel));
DataObject.SetObject("currentRank", CurrentPerkDataObject);
ConfirmPrestigeButton.SetBool("enabled", CurrentPrestigeLevel < `MAX_PRESTIGE_LEVEL);
//next rank
if (CurrentPrestigeLevel < `MAX_PRESTIGE_LEVEL)
{
NextPerkDataObject.SetString("perkIcon", "img://"$CurrentPerk.GetPerkIconPath());
NextPerkDataObject.SetString("prestigeIcon", CurrentPerk.GetPrestigeIconPath(CurrentPrestigeLevel + 1));
DataObject.SetObject("nextRank", NextPerkDataObject);
//reward for prestige
DataObject.SetString("rewardIcon", "img://"$CurrentPerk.default.PrestigeRewardItemIconPaths[CurrentPrestigeLevel]);
}
DataObject.SetInt("doshVaultValue", KFPC.GetPreStigeValueDoshRewardValue());
DataObject.SetBool("bAtPrestigeMaxLevel", CurrentPrestigeLevel >= `MAX_PRESTIGE_LEVEL);
SetObject("perkData", DataObject);
}