// Copyright © 2017-2018 Atomic Software, LLC. All Rights Reserved. // See LICENSE.md for full license information. using Atom.Core.Game.GameObjects.Characters; namespace Atom.Core.Extensions { public static class CharacterClassExtensions { /// /// Retrieves the class's base class (or the first 'step' of the class). /// /// The current class. /// The current class's base class. public static CharacterClass GetBaseClass(this CharacterClass characterClass) { switch (characterClass) { case CharacterClass.Fighter: case CharacterClass.CleverFighter: case CharacterClass.Warrior: case CharacterClass.Gladiator: case CharacterClass.Knight: return CharacterClass.Fighter; case CharacterClass.Cleric: case CharacterClass.HighCleric: case CharacterClass.Paladin: case CharacterClass.HolyKnight: case CharacterClass.Guardian: return CharacterClass.Cleric; case CharacterClass.Archer: case CharacterClass.HawkArcher: case CharacterClass.Scout: case CharacterClass.SharpShooter: case CharacterClass.Ranger: return CharacterClass.Archer; case CharacterClass.Mage: case CharacterClass.WizMage: case CharacterClass.Enchanter: case CharacterClass.Warlock: case CharacterClass.Wizard: return CharacterClass.Mage; case CharacterClass.Trickster: case CharacterClass.Gambit: case CharacterClass.Renegade: case CharacterClass.Spectre: case CharacterClass.Reaper: return CharacterClass.Trickster; case CharacterClass.Crusader: case CharacterClass.Templar: return CharacterClass.Crusader; default: return CharacterClass.None; } } } }