diff --git a/EOLib/Domain/Extensions/CharacterStatExtensions.cs b/EOLib/Domain/Extensions/CharacterStatExtensions.cs new file mode 100644 index 000000000..eccf52ebf --- /dev/null +++ b/EOLib/Domain/Extensions/CharacterStatExtensions.cs @@ -0,0 +1,47 @@ +using EOLib.Domain.Character; + +namespace EOLib.Domain.Extensions +{ + public static class CharacterStatExtensions + { + public static string GetKarmaString(this ICharacterStats characterStats) + { + /* 0 - 100 = Demonic + * 101 - 500 = Doomed + * 501 - 750 = Cursed + * 751 - 900 = Evil + * 901 - 1099 = Neutral + * 1100 - 1249 = Good + * 1250 - 1499 = Blessed + * 1500 - 1899 = Saint + * 1900 - 2000 = Pure + */ + + var num = characterStats[CharacterStat.Karma]; + + if (num >= 0) + { + if (num <= 100) + return "Demonic"; + if (num <= 500) + return "Doomed"; + if (num <= 750) + return "Cursed"; + if (num <= 900) + return "Evil"; + if (num <= 1099) + return "Neutral"; + if (num <= 1249) + return "Good"; + if (num <= 1499) + return "Blessed"; + if (num <= 1899) + return "Saint"; + if (num <= 2000) + return "Pure"; + } + + return string.Empty; + } + } +} diff --git a/EndlessClient/HUD/Panels/StatsPanel.cs b/EndlessClient/HUD/Panels/StatsPanel.cs index 8cb545442..a9f79cd39 100644 --- a/EndlessClient/HUD/Panels/StatsPanel.cs +++ b/EndlessClient/HUD/Panels/StatsPanel.cs @@ -5,6 +5,7 @@ using EndlessClient.Dialogs.Factories; using EOLib; using EOLib.Domain.Character; +using EOLib.Domain.Extensions; using EOLib.Graphics; using Microsoft.Xna.Framework; using XNAControls; @@ -178,7 +179,7 @@ protected override void OnUpdateControl(GameTime gameTime) _otherInfo[GOLD].Text = $"{CurrentCharacterGold.Amount}"; _otherInfo[EXP].Text = $"{_lastCharacterStats[CharacterStat.Experience]}"; _otherInfo[TNL].Text = $"{ExperienceToNextLevel}"; - _otherInfo[KARMA].Text = $"{_lastCharacterStats[CharacterStat.Karma]}"; + _otherInfo[KARMA].Text = $"{_lastCharacterStats.GetKarmaString()}"; _characterInfo[NAME].Text = $"{_characterProvider.MainCharacter.Name}"; _characterInfo[GUILD].Text = $"{_characterProvider.MainCharacter.GuildName}"; diff --git a/EndlessClient/Old/OldCharacter.cs b/EndlessClient/Old/OldCharacter.cs index c7b14a7ec..f7b0e3182 100644 --- a/EndlessClient/Old/OldCharacter.cs +++ b/EndlessClient/Old/OldCharacter.cs @@ -181,43 +181,6 @@ public bool NeedsSpellTarget public bool IsDrunk { get; set; } - public static string KarmaStringFromNum(int num) - { - /* 0 - 100 = Demonic - * 101 - 500 = Doomed - * 501 - 750 = Cursed - * 751 - 900 = Evil - * 901 - 1099 = Neutral - * 1100 - 1249 = Good - * 1250 - 1499 = Blessed - * 1500 - 1899 = Saint - * 1900 - 2000 = Pure - */ - if (num >= 0) - { - if (num <= 100) - return "Demonic"; - if (num <= 500) - return "Doomed"; - if (num <= 750) - return "Cursed"; - if (num <= 900) - return "Evil"; - if (num <= 1099) - return "Neutral"; - if (num <= 1249) - return "Good"; - if (num <= 1499) - return "Blessed"; - if (num <= 1899) - return "Saint"; - if (num <= 2000) - return "Pure"; - } - - throw new ArgumentOutOfRangeException(nameof(num), num, "Karma values must be between 0-2000"); - } - private readonly PacketAPI m_packetAPI; public OldCharacter()