update localization

- more text supports localization;
- move hardcode to english localization file;
- update the Russian localization file.
This commit is contained in:
GenZmeY 2021-01-18 00:55:45 +03:00
parent fc02d0d0b3
commit 1d7c441b4c
29 changed files with 170 additions and 99 deletions

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,7 @@
class ExtPerksContainer_Selection extends KFGFxPerksContainer_Selection;
var localized string PerkChangeWarning;
function UpdatePerkSelection(byte SelectedPerkIndex)
{
local int i;
@ -41,7 +43,7 @@ function UpdatePendingPerkInfo(byte SelectedPerkIndex)
if (KFPC != none)
{
PerkClass = KFPC.ActivePerkManager.UserPerks[SelectedPerkIndex];
SetPendingPerkChanges(PerkClass.PerkName, PerkClass.GetPerkIconPath(PerkClass.CurrentLevel), "Perk changes will be applied when you die."); // TODO: Localization
SetPendingPerkChanges(PerkClass.PerkName, PerkClass.GetPerkIconPath(PerkClass.CurrentLevel), PerkChangeWarning);
}
}

View File

@ -1,5 +1,18 @@
Class ExtPlayerController extends KFPlayerController;
var localized string GotItemText;
var localized string KilledHimselfWith;
var localized string WasBurnedToDeath;
var localized string WasBlownIntoPeaces;
var localized string HadSuddenHeartAttack;
var localized string WasKilledBy;
var localized string WasIncineratedBy;
var localized string WasBlownUpBy;
var localized string ConnectionError;
var localized string Disconnecting;
var localized string NowViewingFrom;
var localized string ViewingFromOwnCamera;
struct FAdminCmdType
{
var string Cmd,Info;
@ -280,7 +293,7 @@ reliable server function ServerItemDropGet(string Item)
if (DropCount>5 || Len(Item)>100)
return;
++DropCount;
WorldInfo.Game.Broadcast(Self,PlayerReplicationInfo.GetHumanReadableName()$" got item: "$Item); // TODO: Localization
WorldInfo.Game.Broadcast(Self,PlayerReplicationInfo.GetHumanReadableName()@GotItemText@Item);
}
reliable client function ReceiveLevelUp(Ext_PerkBase Perk, int NewLevel)
@ -497,13 +510,13 @@ simulated final function string ParseSuicideMsg(string Victim, class<DamageType>
if (Left(S,15)~="KFDT_Ballistic_")
{
S = Mid(S,15); // Weapon name.
return Victim$Chr(6)$"M killed himself with "$S; // TODO: Localization
return Victim$Chr(6)$"M"@KilledHimselfWith@S;
}
else if (class<KFDT_Fire>(DamType)!=None)
return Victim$Chr(6)$"M was burned to death";
return Victim$Chr(6)$"M"@WasBurnedToDeath;
else if (class<KFDT_Explosive>(DamType)!=None)
return Victim$Chr(6)$"M was blown into pieces";
return Victim$Chr(6)$"M had a sudden heart attack";
return Victim$Chr(6)$"M"@WasBlownIntoPeaces;
return Victim$Chr(6)$"M"@HadSuddenHeartAttack;
}
simulated final function string ParseKillMsg(string Victim, string Killer, bool bFF, class<DamageType> DamType)
@ -515,13 +528,13 @@ simulated final function string ParseKillMsg(string Victim, string Killer, bool
if (Left(S,15)~="KFDT_Ballistic_")
{
S = Mid(S,15); // Weapon name.
return Chr(6)$"O"$Victim$Chr(6)$"M was killed by "$Chr(6)$T$Killer$Chr(6)$"M's "$S; // TODO: Localization
return Chr(6)$"O"$Victim$Chr(6)$"M"@WasKilledBy@Chr(6)$T$Killer$Chr(6)$"M's "$S;
}
else if (class<KFDT_Fire>(DamType)!=None)
return Chr(6)$"O"$Victim$Chr(6)$"M was incinerated by "$Chr(6)$T$Killer;
return Chr(6)$"O"$Victim$Chr(6)$"M"@WasIncineratedBy@Chr(6)$T$Killer;
else if (class<KFDT_Explosive>(DamType)!=None)
return Chr(6)$"O"$Victim$Chr(6)$"M was blown up by "$Chr(6)$T$Killer;
return Chr(6)$"O"$Victim$Chr(6)$"M was killed by "$Chr(6)$T$Killer;
return Chr(6)$"O"$Victim$Chr(6)$"M"@WasBlownUpBy@Chr(6)$T$Killer;
return Chr(6)$"O"$Victim$Chr(6)$"M"@WasKilledBy@Chr(6)$T$Killer;
}
reliable server function ServerCamera(name NewMode)
@ -607,7 +620,7 @@ simulated reliable client event bool ShowConnectionProgressPopup(EProgressMessag
case PMT_ConnectionFailure :
case PMT_PeerConnectionFailure :
KFExtendedHUD(myHUD).NotifyLevelChange();
KFExtendedHUD(myHUD).ShowProgressMsg("Connection Error: "$ProgressTitle$"|"$ProgressDescription$"|Disconnecting...",true); // TODO: Localization
KFExtendedHUD(myHUD).ShowProgressMsg(ConnectionError@ProgressTitle$"|"$ProgressDescription$"|"$Disconnecting,true);
return true;
case PMT_DownloadProgress :
KFExtendedHUD(myHUD).NotifyLevelChange();
@ -719,7 +732,7 @@ function ViewAPlayer(int dir)
if (PRI!=None)
{
SetViewTarget(PRI);
ClientMessage("Now viewing from "$PRI.GetHumanReadableName()); // TODO: Localization
ClientMessage(NowViewingFrom@PRI.GetHumanReadableName());
}
}
@ -745,7 +758,7 @@ reliable server function ServerViewPlayerID(int ID)
return;
SetViewTarget(PRI);
ClientMessage("Now viewing from "$PRI.GetHumanReadableName()); // TODO: Localization
ClientMessage(NowViewingFrom@PRI.GetHumanReadableName());
if (CurrentSpectateMode==SMODE_Roaming)
SpectatePlayer(SMODE_PawnFreeCam);
}
@ -755,7 +768,7 @@ reliable server function SpectateRoaming()
local Pawn P;
P = Pawn(ViewTarget);
ClientMessage("Viewing from own camera."); // TODO: Localization
ClientMessage(ViewingFromOwnCamera);
Super.SpectateRoaming();
if (P!=None)
{

View File

@ -1527,7 +1527,6 @@ defaultproperties
WebConfigs.Add((PropType=0,PropName="PrestigeXPReduce",UIName="Prestige XP Reduce",UIDesc="Percent amount of XP cost is reduced for each prestige (1.0 = 1/2, or 50 % of XP)"))
// WebConfigs.Add((PropType=0,PropName="MinimalDataLevel",UIName="Minimal Real Level",UIDesc="Minimal level for new players or who loads from saves"))
// TODO: localize
DefPerkStats(0)=(MaxValue=50,CostPerValue=1,StatType="Speed",Progress=0.4)
DefPerkStats(1)=(MaxValue=1000,CostPerValue=1,StatType="Damage",Progress=0.5)
DefPerkStats(2)=(MaxValue=90,CostPerValue=1,StatType="Recoil",Progress=1)

View File

@ -1,18 +1,19 @@
// Trait group info.
Class Ext_TGroupBase extends Object
abstract;
Class Ext_TGroupBase extends Object;
var() localized string GroupInfo;
var() bool bLimitToOne; // Limit to only one trait for this group.
var localized string TraitGroupText;
var localized string MaxText;
static function string GetUIInfo(Ext_PerkBase Perk)
function string GetUIInfo(Ext_PerkBase Perk)
{
return (Default.bLimitToOne ? Default.GroupInfo$" (MAX 1)" : Default.GroupInfo);
return (Default.bLimitToOne ? Default.GroupInfo$" ("$MaxText$" 1)" : Default.GroupInfo);
}
static function string GetUIDesc()
function string GetUIDesc()
{
return Default.GroupInfo$" trait group"; // TODO: Localization
return Default.GroupInfo@TraitGroupText;
}
// See if group is already using up limitation.

View File

@ -1,13 +1,15 @@
class Ext_TGroupRegen extends Ext_TGroupBase;
static function string GetUIInfo(Ext_PerkBase Perk)
var localized string GroupDescription;
function string GetUIInfo(Ext_PerkBase Perk)
{
return Default.GroupInfo$" (MAX "$GetMaxLimit(Perk)$")";
return Default.GroupInfo@"("$MaxText@GetMaxLimit(Perk)$")";
}
static function string GetUIDesc()
function string GetUIDesc()
{
return Super.GetUIDesc()$"|To buy additional regen abilities:|-Prestige level 1 + Perk level 100 = MAX 2 traits|-Prestige level 5 + Perk level 150 = MAX 3 traits"; // TODO: Localization
return Super.GetUIDesc()$"|"$GroupDescription;
}
static function bool GroupLimited(Ext_PerkBase Perk, class<Ext_TraitBase> Trait)

View File

@ -1,11 +1,13 @@
Class Ext_TraitAirborneAgent extends Ext_TraitBase;
static function string GetPerkDescription()
var localized string GroupDescription;
function string GetPerkDescription()
{
local string S;
S = Super.GetPerkDescription();
S $= "|Trait requires prestige level: #{FF4000}1"; // TODO: Localization
S $= "|"$GroupDescription;
return S;
}

View File

@ -3,6 +3,10 @@ Class Ext_TraitBase extends Object
config(ServerExt)
DependsOn(ExtWebAdmin_UI);
var localized string MaxLevelText;
var localized string LevelCostText;
var localized string MinPerkLevelText;
var array<FWebAdminConfigInfo> WebConfigs;
var() class<Ext_TGroupBase> TraitGroup; // With groups you can prevent player from buying multiple traits of same group.
@ -46,7 +50,7 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk)
}
// Return UI description player will see before bying this trait.
static function string GetPerkDescription()
function string GetPerkDescription()
{
local string S;
local byte i;
@ -57,9 +61,9 @@ static function string GetPerkDescription()
S = string(GetTraitCost(i));
else S $= ", "$GetTraitCost(i);
}
S = "Max level: #{9FF781}"$Default.NumLevels$"#{DEF}|Level costs: #{F3F781}"$S$"#{DEF}"; // TODO: Localization
S = MaxLevelText@"#{9FF781}"$Default.NumLevels$"#{DEF}|"$LevelCostText@"#{F3F781}"$S$"#{DEF}";
if (Default.MinLevel>0)
S = "Min perk level: #{FF4000}"$Default.MinLevel$"#{DEF}|"$S; // TODO: Localization
S = MinPerkLevelText@"#{FF4000}"$Default.MinLevel$"#{DEF}|"$S;
return Default.Description$"||"$S;
}

View File

@ -1,5 +1,4 @@
Class Ext_TraitBoomWeld extends Ext_TraitBase
abstract;
Class Ext_TraitBoomWeld extends Ext_TraitBase;
static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
{

View File

@ -1,11 +1,13 @@
Class Ext_TraitDemoNuke extends Ext_TraitBase;
static function string GetPerkDescription()
var localized string GroupDescription;
function string GetPerkDescription()
{
local string S;
S = Super.GetPerkDescription();
S $= "|Trait requires prestige level: #{FF4000}3"; // TODO: Localization
S $= "|"$GroupDescription;
return S;
}

View File

@ -1,11 +1,13 @@
Class Ext_TraitDemoProfessional extends Ext_TraitBase;
static function string GetPerkDescription()
var localized string GroupDescription;
function string GetPerkDescription()
{
local string S;
S = Super.GetPerkDescription();
S $= "|Trait requires prestige level: #{FF4000}1"; // TODO: Localization
S $= "|"$GroupDescription;
return S;
}

View File

@ -1,11 +1,13 @@
Class Ext_TraitMachineGunner extends Ext_TraitBase;
static function string GetPerkDescription()
var localized string GroupDescription;
function string GetPerkDescription()
{
local string S;
S = Super.GetPerkDescription();
S $= "|Trait requires prestige level: #{FF4000}2"; // TODO: Localization
S $= "|"$GroupDescription;
return S;
}

View File

@ -1,11 +1,13 @@
Class Ext_TraitPenetrator extends Ext_TraitBase;
static function string GetPerkDescription()
var localized string GroupDescription;
function string GetPerkDescription()
{
local string S;
S = Super.GetPerkDescription();
S $= "|Trait requires prestige level: #{FF4000}2"; // TODO: Localization
S $= "|"$GroupDescription;
return S;
}

View File

@ -1,11 +1,13 @@
Class Ext_TraitTactician extends Ext_TraitBase;
static function string GetPerkDescription()
var localized string GroupDescription;
function string GetPerkDescription()
{
local string S;
S = Super.GetPerkDescription();
S $= "|Trait requires prestige level: #{FF4000}1"; // TODO: Localization
S $= "|"$GroupDescription;
return S;
}

View File

@ -1,5 +1,6 @@
Class Ext_TraitWeapons extends Ext_TraitBase
abstract;
Class Ext_TraitWeapons extends Ext_TraitBase;
var localized string GroupDescription;
struct FLevelFX
{
@ -22,9 +23,9 @@ static final function bool HasMaxCarry(Ext_PerkBase Perk)
return (i==-1 || Perk.PerkTraits[i].CurrentLevel>=3);
}
static function string GetPerkDescription()
function string GetPerkDescription()
{
return Super.GetPerkDescription()$"|- Level 4 requires perk level 50 and level 3 carry capacity trait!"; // TODO: Localization
return Super.GetPerkDescription()$"|"$GroupDescription;
}
static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)

View File

@ -1,5 +1,4 @@
Class Ext_TraitZEDBase extends Ext_TraitBase
abstract;
Class Ext_TraitZEDBase extends Ext_TraitBase;
var class<Ext_TraitZEDBase> BaseTrait;
var bool bIsSummoner;

View File

@ -1,5 +1,4 @@
Class Ext_TraitZED_Damage extends Ext_TraitZEDBase
abstract;
Class Ext_TraitZED_Damage extends Ext_TraitZEDBase;
var array<float> DamList;

View File

@ -1,5 +1,4 @@
Class Ext_TraitZED_Health extends Ext_TraitZEDBase
abstract;
Class Ext_TraitZED_Health extends Ext_TraitZEDBase;
var array<float> HPList;

View File

@ -1,5 +1,6 @@
Class Ext_TraitZED_Summon extends Ext_TraitZEDBase
abstract;
Class Ext_TraitZED_Summon extends Ext_TraitZEDBase;
var localized string GroupDescription;
struct FZEDTypes
{
@ -10,13 +11,13 @@ var config array<string> ZedTypes;
var config float ZedRespawnTime;
var config int FinalLevelPrestige;
static function string GetPerkDescription()
function string GetPerkDescription()
{
local string S;
S = Super.GetPerkDescription();
if (Default.FinalLevelPrestige>0)
S $= "|Level 6 requires prestige level: #{FF4000}"$Default.FinalLevelPrestige; // TODO: Localization
S $= "|"$GroupDescription@"#{FF4000}"$Default.FinalLevelPrestige;
return S;
}

View File

@ -1,5 +1,4 @@
Class Ext_TraitZED_SummonExt extends Ext_TraitZEDBase
abstract;
Class Ext_TraitZED_SummonExt extends Ext_TraitZEDBase;
static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data)
{

View File

@ -1,11 +1,13 @@
Class Ext_TraitZedative extends Ext_TraitBase;
static function string GetPerkDescription()
var localized string GroupDescription;
function string GetPerkDescription()
{
local string S;
S = Super.GetPerkDescription();
S $= "|Trait requires prestige level: #{FF4000}2"; // TODO: Localization
S $= "|"$GroupDescription;
return S;
}

View File

@ -2,6 +2,23 @@
//class KFExtendedHUD extends KFHUDBase;
class KFExtendedHUD extends KFGFxHudWrapper;
var localized string PleaseWaitForDownload;
var localized string PressEscToCancel;
var localized string AreYouSureToCancel;
var localized string PressEscToConfirm;
var localized string YouRespawnIn;
var localized string ITR_CommonText;
var localized string ITR_UncommonText;
var localized string ITR_RareText;
var localized string ITR_LegendaryText;
var localized string ITR_ExceedinglyRareText;
var localized string ITR_MythicalText;
var localized string ITR_DefaultText;
var localized string NewItemText;
var localized string SomeoneText;
var localized string KillText;
var localized string KillsText;
var array<Ext_T_MonsterPRI> MyCurrentPet;
struct FDeathMessageType
@ -296,7 +313,7 @@ event PostRender()
bShowProgress = false;
if (PlayerOwner.Player==None)
{
ShowProgressMsg("Downloading contents for next map, please wait...|Press [Escape] key to cancel connection!"); // TODO: Localization
ShowProgressMsg(PleaseWaitForDownload$"|"$PressEscToCancel);
RenderProgress();
}
else if (bProgressDC)
@ -312,7 +329,7 @@ simulated function CancelConnection()
{
if (!bConfirmDisconnect)
{
ShowProgressMsg("Are you sure you want to cancel connection?|Press [Escape] again to confirm..."); // TODO: Localization
ShowProgressMsg(AreYouSureToCancel$"|"$PressEscToConfirm);
bConfirmDisconnect = true;
}
else class'Engine'.Static.GetEngine().GameViewport.ConsoleCommand("Disconnect");
@ -324,7 +341,7 @@ final function DrawRespawnCounter()
local string S;
Canvas.Font = GUIStyle.PickFont(GUIStyle.DefaultFontSize+1,Sc);
S = "You are about to respawn in "$class'UI_Scoreboard'.Static.FormatTimeSM(EPRI.RespawnCounter);
S = YouRespawnIn@class'UI_Scoreboard'.Static.FormatTimeSM(EPRI.RespawnCounter);
Canvas.SetDrawColor(250,150,150,255);
Canvas.TextSize(S,XL,YL,Sc,Sc);
Canvas.SetPos((Canvas.ClipX-XL)*0.5,Canvas.ClipY*0.075);
@ -366,8 +383,8 @@ final function RenderKillMsg()
if (KillMessages[i].bDamage)
S = "-"$KillMessages[i].Counter$" HP "$KillMessages[i].Name;
else if (KillMessages[i].bLocal)
S = "+"$KillMessages[i].Counter@KillMessages[i].Name$(KillMessages[i].Counter>1 ? " kills" : " kill");
else S = (KillMessages[i].OwnerPRI!=None ? KillMessages[i].OwnerPRI.GetHumanReadableName() : "Someone")$" +"$KillMessages[i].Counter@KillMessages[i].Name$(KillMessages[i].Counter>1 ? " kills" : " kill");
S = "+"$KillMessages[i].Counter@KillMessages[i].Name@(KillMessages[i].Counter>1 ? KillsText : KillText);
else S = (KillMessages[i].OwnerPRI!=None ? KillMessages[i].OwnerPRI.GetHumanReadableName() : SomeoneText)@"+"$KillMessages[i].Counter@KillMessages[i].Name@(KillMessages[i].Counter>1 ? KillsText : KillText);
Canvas.SetPos(X,Y);
Canvas.DrawColor = KillMessages[i].MsgColor;
T = (1.f - (T/6.f)) * 255.f;
@ -1123,7 +1140,7 @@ simulated function SearchInventoryForNewItem()
{
NewItems.Insert(0,1);
NewItems[0].Icon = Texture2D(DynamicLoadObject(OnlineSub.ItemPropertiesList[j].IconURL,Class'Texture2D'));
NewItems[0].Item = OnlineSub.ItemPropertiesList[j].Name$" ["$RarityStr(OnlineSub.ItemPropertiesList[j].Rarity)$"]";
NewItems[0].Item = OnlineSub.ItemPropertiesList[j].Name@"["$RarityStr(OnlineSub.ItemPropertiesList[j].Rarity)$"]";
NewItems[0].MsgTime = WorldInfo.TimeSeconds;
ExtPlayerController(Owner).ServerItemDropGet(NewItems[0].Item);
}
@ -1136,13 +1153,13 @@ simulated final function string RarityStr(byte R)
{
switch (R)
{
case ITR_Common: return "Common";
case ITR_Uncommon: return "Uncommon +";
case ITR_Rare: return "Rare ++";
case ITR_Legendary: return "Legendary +++";
case ITR_ExceedinglyRare: return "Exceedingly Rare ++++";
case ITR_Mythical: return "Mythical !!!!";
default: return "Unknown -";
case ITR_Common: return ITR_CommonText;
case ITR_Uncommon: return ITR_UncommonText;
case ITR_Rare: return ITR_RareText;
case ITR_Legendary: return ITR_LegendaryText;
case ITR_ExceedinglyRare: return ITR_ExceedinglyRareText;
case ITR_Mythical: return ITR_MythicalText;
default: return ITR_DefaultText;
}
}
@ -1184,7 +1201,7 @@ simulated final function DrawItemsList()
else */XS = XPos-XS;
Canvas.SetPos(XS,YPos);
Canvas.DrawText("New Item:",,FontScale,FontScale);
Canvas.DrawText(NewItemText,,FontScale,FontScale);
Canvas.SetPos(XS,YPos+(YSize*0.5));
Canvas.DrawText(NewItems[i].Item,,FontScale,FontScale);

View File

@ -1,5 +1,8 @@
Class MS_HUD extends HUD;
var localized string PressEscToCancel;
var localized string AdjustSensetive;
var bool bShowProgress,bProgressDC;
var array<string> ProgressLines;
var MX_MiniGameBase ActiveGame;
@ -37,7 +40,7 @@ final function ShowProgressMsg(string S, optional bool bDis)
ParseStringIntoArray(S,ProgressLines,"|",false);
bProgressDC = bDis;
if (!bDis)
ProgressLines.AddItem("Press [Esc] to cancel connection"); // TODO: Localization
ProgressLines.AddItem(PressEscToCancel);
}
final function RenderProgress()
@ -60,7 +63,7 @@ final function RenderProgress()
Y+=YL;
}
Canvas.SetPos(Canvas.ClipX*0.2,Canvas.ClipY*0.91);
Canvas.DrawText("Use Mouse scroll to adjust sensitivity: "$(ActiveGame.Sensitivity*100.f)$"%",,Sc,Sc); // TODO: Localization
Canvas.DrawText(AdjustSensetive@(ActiveGame.Sensitivity*100.f)$"%",,Sc,Sc);
}
defaultproperties

View File

@ -1,5 +1,11 @@
Class MS_PC extends KFPlayerController;
var localized string ConnectingTo;
var localized string ConnectionAborted;
var localized string UserAbortedConnection;
var localized string ConnectionError;
var localized string Disconnecting;
var MS_PendingData TravelData;
var byte ConnectionCounter;
var bool bConnectionFailed;
@ -18,7 +24,7 @@ event PlayerTick(float DeltaTime)
{
if (TravelData.PendingURL!="")
{
MS_HUD(myHUD).ShowProgressMsg("Connecting to "$TravelData.PendingURL); // TODO: Localization
MS_HUD(myHUD).ShowProgressMsg(ConnectingTo@TravelData.PendingURL);
ConsoleCommand("Open "$TravelData.PendingURL);
}
if (TravelData.PendingSong!=None)
@ -64,7 +70,7 @@ final function AbortConnection()
HandleNetworkError(false);
else
{
ShowConnectionProgressPopup(PMT_ConnectionFailure,"Connection aborted","User aborted connection...",true); // TODO: Localization
ShowConnectionProgressPopup(PMT_ConnectionFailure,ConnectionAborted,UserAbortedConnection,true);
ConsoleCommand("Cancel");
}
}
@ -80,7 +86,7 @@ reliable client event bool ShowConnectionProgressPopup(EProgressMessageType Prog
case PMT_ConnectionFailure:
case PMT_PeerConnectionFailure:
bConnectionFailed = true;
MS_HUD(myHUD).ShowProgressMsg("Connection Error: "$ProgressTitle$"|"$ProgressDescription$"|Disconnecting...",true); // TODO: Localization
MS_HUD(myHUD).ShowProgressMsg(ConnectionError@ProgressTitle$"|"$ProgressDescription$"|"$Disconnecting,true);
SetTimer(4,false,'HandleNetworkError');
return true;
case PMT_DownloadProgress:

View File

@ -1,5 +1,9 @@
Class MX_PongGame extends MX_MiniGameBase;
var localized string PressToStartText;
var localized string ScoreText;
var localized string PlaysText;
var int Score,NumPlays;
var vector PlayerPad,EnemyPad,BallPos,BallVel,BallTrajectory;
@ -84,21 +88,21 @@ function Render(float XPos, float YPos, float XSize, float YSize)
// Score
H = WorldInfo.RealTimeSeconds * 0.6;
Canvas.Font = Canvas.GetDefaultCanvasFont();
Canvas.Font = Font(DynamicLoadObject("UI_Canvas_Fonts.Font_Main",class'Font'));
W = FMin(YSize/200.f,3.f);
if (!bGameStarted)
{
Canvas.SetDrawColor(128,64,64,Abs(Sin(H))*96.f+128);
Canvas.SetPos(XPos+XSize*0.4,YPos+YSize*0.2);
Canvas.DrawText("Press Fire to start pong",,W,W); // TODO: Localization
Canvas.DrawText(PressToStartText,,W,W);
}
else
{
Canvas.SetDrawColor(255,255,128,Abs(Sin(H))*96.f);
Canvas.SetPos(XPos+XSize*0.2,YPos+YSize*0.22);
Canvas.DrawText("Score: "$string(Score),,W,W); // TODO: Localization
Canvas.DrawText(ScoreText@string(Score),,W,W);
Canvas.SetPos(XPos+XSize*0.2,YPos+YSize*0.68);
Canvas.DrawText("Plays: "$string(NumPlays),,W,W); // TODO: Localization
Canvas.DrawText(PlaysText@string(NumPlays),,W,W);
}
// Borders

View File

@ -114,7 +114,7 @@ function Timer()
}
}
OldPerkPoints = PendingPerk.CurrentSP;
PerkLabel.SetText(Level$PendingPerk.GetLevelString()@PendingPerk.PerkName$" ("$Points$" "$PendingPerk.CurrentSP$")");
PerkLabel.SetText(Level$PendingPerk.GetLevelString()@PendingPerk.PerkName@"("$Points@PendingPerk.CurrentSP$")");
for (i=0; i<StatsList.ItemComponents.Length; ++i) // Just make sure perk stays the same.
{
StatBuyers[i].SetActivePerk(PendingPerk);
@ -139,7 +139,7 @@ function Timer()
B_Prestige.SetDisabled(!PendingPerk.CanPrestige());
OldPerkPoints = PendingPerk.CurrentSP;
PerkLabel.SetText(Level$PendingPerk.GetLevelString()@PendingPerk.PerkName$" ("$Points$" "$PendingPerk.CurrentSP$")");
PerkLabel.SetText(Level$PendingPerk.GetLevelString()@PendingPerk.PerkName@"("$Points@PendingPerk.CurrentSP$")");
for (i=0; i<StatsList.ItemComponents.Length; ++i) // Just make sure perk stays the same.
StatBuyers[i].CheckBuyLimit();
@ -153,6 +153,7 @@ final function UpdateTraits()
{
local array< class<Ext_TGroupBase> > CatList;
local class<Ext_TGroupBase> N;
local Ext_TGroupBase N_obj;
local int i,j;
local class<Ext_TraitBase> TC;
local string S;
@ -176,8 +177,9 @@ final function UpdateTraits()
N = CatList[j];
if (j>0)
{
TraitsList.AddLine("--"$N.Static.GetUIInfo(PendingPerk),-1);
TraitsList.ToolTip.AddItem(N.Static.GetUIDesc());
N_obj = new N;
TraitsList.AddLine("--"$N_obj.GetUIInfo(PendingPerk),-1);
TraitsList.ToolTip.AddItem(N_obj.GetUIDesc());
}
for (i=0; i<PendingPerk.PerkTraits.Length; ++i)
{
@ -236,7 +238,7 @@ function DrawPerkInfo(Canvas C, int Index, float YOffset, float Height, float Wi
C.DrawText(P.PerkName,,Sc,Sc);
C.SetPos(6+Height,YOffset+Height*0.5);
C.DrawText("Lv "$P.GetLevelString()$" ("$P.CurrentEXP$"/"$P.NextLevelEXP$" XP)",,Sc,Sc);
C.DrawText("Lv "$P.GetLevelString()$" ("$P.CurrentEXP$"/"$P.NextLevelEXP$" XP)",,Sc,Sc); // TODO: Localization
}
function SwitchedPerk(int Index, bool bRight, int MouseX, int MouseY)

View File

@ -1,5 +1,9 @@
Class UIP_PerkSelectionLobby extends UIP_PerkSelection;
var localized string LevelText;
var localized string PointsText;
var localized string NoPerkSelectedText;
function Timer()
{
local int i;
@ -50,7 +54,7 @@ function Timer()
}
}
OldPerkPoints = PendingPerk.CurrentSP;
PerkLabel.SetText("Lv"$PendingPerk.GetLevelString()@PendingPerk.PerkName$" (Points: "$PendingPerk.CurrentSP$")");
PerkLabel.SetText(LevelText$PendingPerk.GetLevelString()@PendingPerk.PerkName@"("$PointsText@PendingPerk.CurrentSP$")");
for (i=0; i<StatsList.ItemComponents.Length; ++i) // Just make sure perk stays the same.
{
StatBuyers[i].SetActivePerk(PendingPerk);
@ -63,13 +67,13 @@ function Timer()
for (i=0; i<StatsList.ItemComponents.Length; ++i)
StatBuyers[i].CloseMenu();
StatsList.ItemComponents.Length = 0;
PerkLabel.SetText("<No perk selected>"); // TODO: Localization
PerkLabel.SetText(NoPerkSelectedText);
}
}
else if (PendingPerk!=None && OldPerkPoints!=PendingPerk.CurrentSP)
{
OldPerkPoints = PendingPerk.CurrentSP;
PerkLabel.SetText("Lv"$PendingPerk.GetLevelString()@PendingPerk.PerkName$" (Points: "$PendingPerk.CurrentSP$")");
PerkLabel.SetText(LevelText$PendingPerk.GetLevelString()@PendingPerk.PerkName@"("$PointsText@PendingPerk.CurrentSP$")");
for (i=0; i<StatsList.ItemComponents.Length; ++i) // Just make sure perk stays the same.
StatBuyers[i].CheckBuyLimit();

View File

@ -4,7 +4,8 @@ var KFGUI_TextField TraitInfo;
var KFGUI_Button YesButton;
var KFGUI_Button NoButton;
var class<Ext_TraitBase> MyTrait;
var class<Ext_TraitBase> MyTraitClass;
var Ext_TraitBase MyTrait;
var int TraitIndex;
var Ext_PerkBase MyPerk;
var int OldPoints,OldLevel;
@ -33,14 +34,16 @@ function CloseMenu()
Super.CloseMenu();
MyPerk = None;
MyTrait = None;
MyTraitClass = None;
SetTimer(0,false);
}
function ShowTraitInfo(int Index, Ext_PerkBase Perk)
{
MyTrait = Perk.PerkTraits[Index].TraitType;
WindowTitle = MyTrait.Default.TraitName;
TraitInfo.SetText(MyTrait.Static.GetPerkDescription());
MyTraitClass = Perk.PerkTraits[Index].TraitType;
MyTrait = new MyTraitClass;
WindowTitle = MyTraitClass.Default.TraitName;
TraitInfo.SetText(MyTrait.GetPerkDescription());
OldPoints = -1;
OldLevel = -1;
@ -58,15 +61,15 @@ function Timer()
{
OldPoints = MyPerk.CurrentSP;
OldLevel = MyPerk.PerkTraits[TraitIndex].CurrentLevel;
if (OldLevel>=MyTrait.Default.NumLevels)
if (OldLevel>=MyTraitClass.Default.NumLevels)
{
YesButton.ButtonText = ButtonBuyDisabledText;
YesButton.SetDisabled(true);
return;
}
Cost = MyTrait.Static.GetTraitCost(OldLevel);
Cost = MyTraitClass.Static.GetTraitCost(OldLevel);
YesButton.ButtonText = ButtonBuyText$" ("$Cost$")";
if (Cost>OldPoints || !MyTrait.Static.MeetsRequirements(OldLevel,MyPerk))
if (Cost>OldPoints || !MyTraitClass.Static.MeetsRequirements(OldLevel,MyPerk))
YesButton.SetDisabled(true);
else YesButton.SetDisabled(false);
}
@ -77,7 +80,7 @@ function ButtonClicked(KFGUI_Button Sender)
switch (Sender.ID)
{
case 'Yes':
ExtPlayerController(GetPlayer()).BoughtTrait(MyPerk.Class,MyTrait);
ExtPlayerController(GetPlayer()).BoughtTrait(MyPerk.Class,MyTraitClass);
break;
case 'No':
DoClose();