/// <summary> /// Converts a <see cref="CipCreatureFlag"/> to an <see cref="CreatureFlag"/>. /// </summary> /// <param name="cipFlag">The CIP creature flag to convert.</param> /// <returns>The <see cref="CreatureFlag"/> picked, if any.</returns> public static CreatureFlag?ToCreatureFlag(this CipCreatureFlag cipFlag) { return(cipFlag switch { CipCreatureFlag.Unpushable => CreatureFlag.CannotBePushed, CipCreatureFlag.KickBoxes => CreatureFlag.CannotBePushed, CipCreatureFlag.KickCreatures => CreatureFlag.CannotBePushed, CipCreatureFlag.NoHit => CreatureFlag.CannotBeTargetted, CipCreatureFlag.DistanceFighting => CreatureFlag.KeepsDistance, _ => null, });
public void TestParseMonsterFile() { const string ExpectedName = "warlock"; const string ExpectedArticle = "a"; const BloodType ExpectedBloodType = BloodType.Blood; const uint ExpectedExperience = 4000; const CipOutfitType ExpectedOutfitType = CipOutfitType.Outfit; const ushort ExpectedOutfitId = 130; const byte ExpectedHeadColor = 0; const byte ExpectedBodyColor = 52; const byte ExpectedLegsColor = 128; const byte ExpectedFeetColor = 95; const uint ExpectedCorpse = 4240; const ushort ExpectedSummonCost = 0; const ushort ExpectedFleeThreshold = 1000; const ushort ExpectedAttack = 40; const ushort ExpectedDefense = 50; const ushort ExpectedArmor = 32; const byte ExpectedLoseTarget = 50; const byte ExpectedStrategyClosest = 100; const byte ExpectedStrategyWeakest = 0; const byte ExpectedStrategyStrongest = 0; const byte ExpectedStrategyRandom = 0; const uint ExpectedHitpoints = 3200; const uint ExpectedSpeed = 75; const uint ExpectedCapacity = 900; const uint ExpectedFistSkill = 50; const int ExpectedSpellRulesCount = 10; const int ExpectedInventoryCount = 18; CipCreatureFlag[] expectedFlags = new CipCreatureFlag[] { CipCreatureFlag.KickBoxes, CipCreatureFlag.KickCreatures, CipCreatureFlag.SeeInvisible, CipCreatureFlag.Unpushable, CipCreatureFlag.DistanceFighting, CipCreatureFlag.NoSummon, CipCreatureFlag.NoIllusion, CipCreatureFlag.NoBurning, CipCreatureFlag.NoPoison, CipCreatureFlag.NoEnergy, CipCreatureFlag.NoParalyze, }; string[] expectedPhrases = new string[] { "Learn the secret of our magic! YOUR death!", "Even a rat is a better mage than you.", "We don't like intruders!", }; (ushort id, byte max, ushort chance)[] expectedInventory = new (ushort, byte, ushort)[]