v1.2.2.b6
Performance & stability pass (issue #34 + audit) General: - DisableAll resets only skills active in the previous round instead of all loaded skills (~89ms -> ~5ms) - Removed per-tick LINQ/allocations, O(1) HUD skill lookups, translation substitutions moved to load time - ForceFullUpdate creates the network service once per broadcast; view-angle guard only skips a genuine (0,0,0) placeholder - Debug hooks/logging only active when DebugMode is enabled (single reused writer) - Player skill state unified to a single collection (fixes a rare disconnect race) - Gamedata signatures resolved lazily/isolated; hardened tick/transmit paths against invalid handles - Description HUD honours always-show / -1 duration consistently across all assignment paths Skills: - Jester: fixed the no-damage effect leaking after a mid-round skill change (Thief/Deactivator) - Jackal: fixed trail entities accumulating over a round - Falcon Eye / Third Eye / Spectator: camera state cleared on disable Also: added missing translation keys as untranslated markers across language files. Fixes #34
This commit is contained in:
parent
a0f37ba1a1
commit
25cd8eb989
31 changed files with 202 additions and 79 deletions
|
|
@ -55,7 +55,18 @@ namespace src.utils
|
|||
var translations = JsonConvert.DeserializeObject<ConcurrentDictionary<string, string>>(jsonText);
|
||||
|
||||
if (translations != null)
|
||||
{
|
||||
string redColor = ChatColors.Red.ToString();
|
||||
string? altButton = Config.LoadedConfig.AlternativeSkillButton;
|
||||
foreach (var tkey in translations.Keys.ToList())
|
||||
{
|
||||
var val = translations[tkey].Replace("CHATCOLORS.RED", redColor);
|
||||
if (!string.IsNullOrEmpty(altButton))
|
||||
val = val.Replace("css_useSkill", $"css_useSkill/{altButton}");
|
||||
translations[tkey] = val;
|
||||
}
|
||||
_translations.AddOrUpdate(code, translations, (k, v) => translations);
|
||||
}
|
||||
}
|
||||
|
||||
public static bool HasTranslation(string code)
|
||||
|
|
@ -150,9 +161,6 @@ namespace src.utils
|
|||
else
|
||||
{
|
||||
string output = args.Length == 0 ? translation : string.Format(translation, args);
|
||||
output = output.Replace("CHATCOLORS.RED", ChatColors.Red.ToString());
|
||||
if (Config.LoadedConfig.AlternativeSkillButton != null)
|
||||
output = output.Replace("css_useSkill", $"css_useSkill/{Config.LoadedConfig.AlternativeSkillButton}");
|
||||
|
||||
if (Illiterate.CheckIlliterateSkill(player))
|
||||
return Illiterate.GetRandomText(output)!;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue