Improve illiterate text and FOV handling

This commit is contained in:
Juzlus 2026-08-03 21:58:19 +02:00
parent cc32a11404
commit ada2f4ff7b
36 changed files with 799 additions and 123 deletions

View file

@ -25,14 +25,14 @@ namespace src.utils
if (targetresult.Players.Count == 0)
{
if (!ignoreMessage && command.CallingPlayer != null)
command.ReplyToCommand(command.CallingPlayer.GetTranslation("no_player"));
command.ReplyToCommand(command.CallingPlayer.GetTranslationWithoutIlliterate("no_player"));
return (new List<CCSPlayerController>(), string.Empty);
}
else if (singletarget && targetresult.Players.Count > 1)
{
if (command.CallingPlayer != null)
command.ReplyToCommand(command.CallingPlayer.GetTranslation("duplicate_player"));
command.ReplyToCommand(command.CallingPlayer.GetTranslationWithoutIlliterate("duplicate_player"));
return (new List<CCSPlayerController>(), string.Empty);
}

View file

@ -132,7 +132,7 @@ namespace src.utils
}
var value = Math.Round((double)(chance ?? 1), 2);
var skillNameText = GetTranslation(SkillKey(skill), langCode, player, value);
var skillNameText = GetTranslation(SkillKey(skill), langCode, player, true, value);
if (skillNameText.Contains('%')) skillNameText = skillNameText.Replace(value.ToString(), Math.Round(value * 100, 0).ToString());
return skillNameText;
}
@ -173,7 +173,7 @@ namespace src.utils
var skillName = SkillDesc2Key(skill);
var value = Math.Round((double)(chance ?? 1), 2);
var desc2 = GetTranslation(skillName, langCode, player, value);
var desc2 = GetTranslation(skillName, langCode, player, true, value);
var skilLDescription = desc2 == skillName
? player.GetTranslation(SkillDescKey(skill))
@ -181,7 +181,7 @@ namespace src.utils
return skilLDescription;
}
public static void PrintTranslationToChatAll(string message, string[]? key, params object[][]? args)
public static void PrintTranslationToChatAll(string message, string[]? key, bool useIlliterate = true, params object[][]? args)
{
foreach (var player in Utilities.GetPlayers().Where(p => !p.IsBot))
{
@ -196,7 +196,7 @@ namespace src.utils
for (int i = 0; i < key.Length; i++)
{
object[] currentArgs = args != null && i < args.Length ? args[i] : [];
string translation = GetTranslation(key[i], langCode, null, currentArgs);
string translation = GetTranslation(key[i], langCode, null, useIlliterate, currentArgs);
translations.Add(translation);
}
player.PrintToChat(string.Format(message, [.. translations]));
@ -206,10 +206,21 @@ namespace src.utils
public static string GetTranslation(this CCSPlayerController player, string key, params object[] args)
{
string langCode = GetLangCode(player);
return GetTranslation(key, langCode, player, args);
return GetTranslation(key, langCode, player, true, args);
}
public static string GetTranslation(string key, string? langCode = null, CCSPlayerController? player = null, params object[] args)
public static string GetTranslationWithoutIlliterate(this CCSPlayerController player, string key, params object[] args)
{
string langCode = GetLangCode(player);
return GetTranslation(key, langCode, player, false, args);
}
public static string GetTranslationWithoutIlliterate(string key)
{
return GetTranslation(key, null, null, false);
}
public static string GetTranslation(string key, string? langCode = null, CCSPlayerController? player = null, bool useIlliterate = true, params object[] args)
{
langCode ??= defaultLangCode;
if (_translations.TryGetValue(langCode, out var langDict) && langDict.TryGetValue(key, out var translation))
@ -219,13 +230,13 @@ namespace src.utils
{
string output = args.Length == 0 ? translation : string.Format(translation, args);
if (Illiterate.CheckIlliterateSkill(player))
if (useIlliterate && Illiterate.CheckIlliterateSkill(player))
return Illiterate.GetRandomText(output)!;
return output;
}
if (langCode != defaultLangCode)
return GetTranslation(key, null, player, args);
return GetTranslation(key, null, player, useIlliterate, args);
return key;
}

View file

@ -878,7 +878,7 @@ namespace src.utils
if (manager == null) return;
var config = Config.LoadedConfig.HtmlHudCustomisation;
var your_skill = player.GetTranslation("your_skill");
var your_skill = player.GetTranslationWithoutIlliterate("your_skill");
var emptySymbol = $"<font class='fontSize-{(string.IsNullOrEmpty(your_skill) ? "l" : "ml")}'> </font>";
string infoLine = string.IsNullOrEmpty(your_skill)
@ -897,9 +897,9 @@ namespace src.utils
var hudContent = infoLine + skillLine + remainingLine;
string controllsLine =
$"{emptySymbol}<font class='fontSize-{config.WSADMenuControllsLineSize}' color='{config.WSADMenuControllsLineColor1}'>{player.GetTranslation($"menu_controlls_scroll")}</font>"
+ $"<font class='fontSize-{config.WSADMenuControllsLineSize}' color='{config.WSADMenuControllsLineColor2}'>{player.GetTranslation($"menu_controlls_padding")}</font>"
+ $"<font class='fontSize-{config.WSADMenuControllsLineSize}' color='{config.WSADMenuControllsLineColor3}'>{player.GetTranslation($"menu_controlls_select")}</font>{emptySymbol}";
$"{emptySymbol}<font class='fontSize-{config.WSADMenuControllsLineSize}' color='{config.WSADMenuControllsLineColor1}'>{player.GetTranslationWithoutIlliterate($"menu_controlls_scroll")}</font>"
+ $"<font class='fontSize-{config.WSADMenuControllsLineSize}' color='{config.WSADMenuControllsLineColor2}'>{player.GetTranslationWithoutIlliterate($"menu_controlls_padding")}</font>"
+ $"<font class='fontSize-{config.WSADMenuControllsLineSize}' color='{config.WSADMenuControllsLineColor3}'>{player.GetTranslationWithoutIlliterate($"menu_controlls_select")}</font>{emptySymbol}";
string itemText = $"<font class='fontSize-{config.WSADMenuItemLineSize}' color='{config.WSADMenuItemLineColor}'>{{0}}</font><br>";
string itemHoverText = $"<font class='fontSize-{config.WSADMenuItemLineSize}'><font color='purple'>[ </font><font color='{config.WSADMenuItemHoverLineColor}'>{{0}}</font><font color='purple'> ]</font></font><br>";