Skip to content

Commit

Permalink
Fixed energy shield parsing in Russian for Path of Exile 2
Browse files Browse the repository at this point in the history
Fixes #472
  • Loading branch information
leMicin committed Jan 18, 2025
1 parent fc2f984 commit add995b
Show file tree
Hide file tree
Showing 13 changed files with 31 additions and 2 deletions.
Binary file modified Game Localization.xlsm
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -7,31 +7,48 @@

namespace Sidekick.Apis.Poe.Parser.Properties.Definitions;

public class EnergyShieldProperty(IGameLanguageProvider gameLanguageProvider, GameType game) : PropertyDefinition
public class EnergyShieldProperty
(
IGameLanguageProvider gameLanguageProvider,
GameType game
) : PropertyDefinition
{
private Regex? Pattern { get; set; }

private Regex? AlternatePattern { get; set; }

public override List<Category> ValidCategories { get; } = [Category.Armour];

public override void Initialize()
{
Pattern = gameLanguageProvider.Language.DescriptionEnergyShield.ToRegexIntCapture();
if (!string.IsNullOrEmpty(gameLanguageProvider.Language.DescriptionEnergyShieldAlternate))
{
AlternatePattern = gameLanguageProvider.Language.DescriptionEnergyShieldAlternate.ToRegexIntCapture();
}
}

public override void Parse(ItemProperties itemProperties, ParsingItem parsingItem)
{
var propertyBlock = parsingItem.Blocks[1];
itemProperties.EnergyShield = GetInt(Pattern, propertyBlock);
if (itemProperties.EnergyShield <= 0 && AlternatePattern != null) itemProperties.EnergyShield = GetInt(AlternatePattern, propertyBlock);
if (itemProperties.EnergyShield > 0) propertyBlock.Parsed = true;
}

public override BooleanPropertyFilter? GetFilter(Item item, double normalizeValue)
{
if (item.Properties.EnergyShield <= 0) return null;

var text = gameLanguageProvider.Language.DescriptionEnergyShield;
if (!string.IsNullOrEmpty(gameLanguageProvider.Language.DescriptionEnergyShieldAlternate) && item.Header.Game == GameType.PathOfExile2)
{
text = gameLanguageProvider.Language.DescriptionEnergyShieldAlternate;
}

var filter = new IntPropertyFilter(this)
{
Text = gameLanguageProvider.Language.DescriptionEnergyShield,
Text = text,
NormalizeEnabled = true,
NormalizeValue = normalizeValue,
Value = item.Properties.EnergyShield,
Expand Down
2 changes: 2 additions & 0 deletions src/Sidekick.Common/Game/Languages/IGameLanguage.cs
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ public interface IGameLanguage

string DescriptionEnergyShield { get; }

string DescriptionEnergyShieldAlternate { get; }

string DescriptionArmour { get; }

string DescriptionEvasion { get; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public class GameLanguageDe : IGameLanguage
public string DescriptionLightningDamage => "Blitzschaden";
public string DescriptionChaosDamage => "Chaosschaden";
public string DescriptionEnergyShield => "Energieschild";
public string DescriptionEnergyShieldAlternate => "";
public string DescriptionArmour => "Rüstung";
public string DescriptionEvasion => "Ausweichwert";
public string DescriptionChanceToBlock => "Chance auf Blocken";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public class GameLanguageEn : IGameLanguage
public string DescriptionLightningDamage => "Lightning Damage";
public string DescriptionChaosDamage => "Chaos Damage";
public string DescriptionEnergyShield => "Energy Shield";
public string DescriptionEnergyShieldAlternate => "";
public string DescriptionArmour => "Armour";
public string DescriptionEvasion => "Evasion Rating";
public string DescriptionChanceToBlock => "Chance to Block";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public class GameLanguageEs : IGameLanguage
public string DescriptionLightningDamage => "Daño de rayo";
public string DescriptionChaosDamage => "Daño de caos";
public string DescriptionEnergyShield => "Escudo de energía";
public string DescriptionEnergyShieldAlternate => "";
public string DescriptionArmour => "Armadura";
public string DescriptionEvasion => "Evasión";
public string DescriptionChanceToBlock => "Probabilidad de bloqueo";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public class GameLanguageFr : IGameLanguage
public string DescriptionLightningDamage => "Dégâts de foudre";
public string DescriptionChaosDamage => "Dégâts de Chaos";
public string DescriptionEnergyShield => "Bouclier d'énergie";
public string DescriptionEnergyShieldAlternate => "";
public string DescriptionArmour => "Armure";
public string DescriptionEvasion => "Score d'Évasion";
public string DescriptionChanceToBlock => "Chances de blocage";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public class GameLanguageJp : IGameLanguage
public string DescriptionLightningDamage => "雷ダメージ";
public string DescriptionChaosDamage => "混沌ダメージ";
public string DescriptionEnergyShield => "エナジーシールド";
public string DescriptionEnergyShieldAlternate => "";
public string DescriptionArmour => "アーマー";
public string DescriptionEvasion => "回避力";
public string DescriptionChanceToBlock => "ブロック率";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public class GameLanguageKr : IGameLanguage
public string DescriptionLightningDamage => "번개 피해";
public string DescriptionChaosDamage => "카오스 피해";
public string DescriptionEnergyShield => "에너지 보호막";
public string DescriptionEnergyShieldAlternate => "";
public string DescriptionArmour => "방어도";
public string DescriptionEvasion => "회피";
public string DescriptionChanceToBlock => "막기 확률";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public class GameLanguagePt : IGameLanguage
public string DescriptionLightningDamage => "Dano de Raio";
public string DescriptionChaosDamage => "Dano de Caos";
public string DescriptionEnergyShield => "Escudo de Energia";
public string DescriptionEnergyShieldAlternate => "";
public string DescriptionArmour => "Armadura";
public string DescriptionEvasion => "Evasão";
public string DescriptionChanceToBlock => "Chance de Bloquear";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public class GameLanguageRu : IGameLanguage
public string DescriptionLightningDamage => "Урон от молнии";
public string DescriptionChaosDamage => "Урон хаосом";
public string DescriptionEnergyShield => "Энерг. щит";
public string DescriptionEnergyShieldAlternate => "Энергетический щит";
public string DescriptionArmour => "Броня";
public string DescriptionEvasion => "Уклонение";
public string DescriptionChanceToBlock => "Шанс заблокировать удар";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ public class GameLanguageTh : IGameLanguage
public string DescriptionLightningDamage => "ความเสียหายน้ำสายฟ้า";
public string DescriptionChaosDamage => "ความเสียหายเคออส";
public string DescriptionEnergyShield => "โล่พลังงาน";
public string DescriptionEnergyShieldAlternate => "";
public string DescriptionArmour => "ค่าเกราะ";
public string DescriptionEvasion => "อัตราการหลบหลีก";
public string DescriptionChanceToBlock => "โอกาสบล็อค";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ public class GameLanguageZhTw : IGameLanguage
public string DescriptionCriticalHitChance => "暴擊率";

public string DescriptionEnergyShield => "能量護盾";
public string DescriptionEnergyShieldAlternate => "";

public string DescriptionArmour => "護甲";

Expand Down

0 comments on commit add995b

Please sign in to comment.