public void ArmorTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); // Add ArmorValue 6 Armor to the character. Their total Armor should be 6 with a Encumbrance penalty of 0 since there is nothing with a +value. Armor objArmor = new Armor(objCharacter); objArmor.ArmorValue = "6"; objCharacter.Armor.Add(objArmor); Assert.AreEqual(6, objCharacter.ArmorValue, "ArmorValue does not equal the expected value of 6."); Assert.AreEqual(6, objCharacter.TotalArmorValue, "TotalArmorValue does not equal the expected value of 6."); Assert.AreEqual(0, objCharacter.ArmorEncumbrance, "ArmorEncumbrance does not equal the expected value of 0."); // Add an Armor Mod to the Armor. This should bring the Armor value up to 8. ArmorMod objMod = new ArmorMod(objCharacter); objMod.ArmorValue = 2; objCharacter.Armor[0].ArmorMods.Add(objMod); Assert.AreEqual(8, objCharacter.ArmorValue, "ArmorValue does not equal the expected value of 8."); Assert.AreEqual(8, objCharacter.TotalArmorValue, "TotalArmorValue does not equal the expected value of 8."); Assert.AreEqual(0, objCharacter.ArmorEncumbrance, "ArmorEncumbrance does not equal the expected value of 0."); // Add an additional +6 value Armor to the character. Their total Aromr should be 14 with an Encumbrance penalty of 2. Armor objPlusArmor = new Armor(objCharacter); objPlusArmor.ArmorValue = "+6"; objCharacter.Armor.Add(objPlusArmor); Assert.AreEqual(14, objCharacter.ArmorValue, "ArmorValue does not equal the expected value of 14."); Assert.AreEqual(14, objCharacter.TotalArmorValue, "TotalArmorValue does not equal the expected value of 14."); Assert.AreEqual(2, objCharacter.ArmorEncumbrance, "ArmorEncumbrance does not equal the expected value of 2."); // Increase the character's STR to 4. This should reduce the Armor Encumbrance penalty to 1. objCharacter.STR.Value = 4; Assert.AreEqual(14, objCharacter.ArmorValue, "ArmorValue does not equal the expected value of 14."); Assert.AreEqual(14, objCharacter.TotalArmorValue, "TotalArmorValue does not equal the expected value of 14."); Assert.AreEqual(1, objCharacter.ArmorEncumbrance, "ArmorEncumbrance does not equal the expected value of 1."); // Unequipping the Armor Mod should reduce the Armor value down to 12. objCharacter.Armor[0].ArmorMods[0].Equipped = false; Assert.AreEqual(12, objCharacter.ArmorValue, "ArmorValue does not equal the expected value of 12."); Assert.AreEqual(12, objCharacter.TotalArmorValue, "TotalArmorValue does not equal the expected value of 12."); Assert.AreEqual(1, objCharacter.ArmorEncumbrance, "ArmorEncumbrance does not equal the expected value of 1."); // Unequipping the +value Armor should put the character back to Armor 6 with no Encumbrance penalty. objCharacter.Armor[1].Equipped = false; Assert.AreEqual(6, objCharacter.ArmorValue, "ArmorValue does not equal the expected value of 6."); Assert.AreEqual(6, objCharacter.TotalArmorValue, "TotalArmorValue does not equal the expected value of 6."); Assert.AreEqual(0, objCharacter.ArmorEncumbrance, "ArmorEncumbrance does not equal the expected value of 0."); }
public void CreateAllCritterPowersTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); TreeNode objNode = new TreeNode(); XmlDocument objXmlDocument = XmlManager.Instance.Load("critterpowers.xml"); foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/powers/power")) { CritterPower objPower = new CritterPower(objCharacter); objPower.Create(objXmlNode, objCharacter, objNode, 0, "", false); } }
public void CreateAllArmorTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); TreeNode objNode = new TreeNode(); ContextMenuStrip cmsArmor = new ContextMenuStrip(); XmlDocument objXmlDocument = XmlManager.Instance.Load("armor.xml"); foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/armors/armor")) { Armor objArmor = new Armor(objCharacter); objArmor.Create(objXmlNode, objNode, cmsArmor); } }
public void CreateAllArmorModsTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); TreeNode objNode = new TreeNode(); List<Weapon> lstWeapons = new List<Weapon>(); List<TreeNode> lstTreeNodes = new List<TreeNode>(); XmlDocument objXmlDocument = XmlManager.Instance.Load("armor.xml"); foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/mods/mod")) { ArmorMod objMod = new ArmorMod(objCharacter); objMod.Create(objXmlNode, objNode, 1, lstWeapons, lstTreeNodes); } }
public void CreateAllMetamagicsTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); TreeNode objNode = new TreeNode(); ContextMenuStrip cmsGear = new ContextMenuStrip(); List<Weapon> lstWeapons = new List<Weapon>(); List<TreeNode> lstTreeNodes = new List<TreeNode>(); XmlDocument objXmlDocument = XmlManager.Instance.Load("metamagics.xml"); foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/metamagics/metamagic")) { Metamagic objMetamagic = new Metamagic(objCharacter); objMetamagic.Create(objXmlNode, objCharacter, objNode, Improvement.ImprovementSource.Metamagic); } }
public void CMOverflowTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); // Set the character's BOD to 4 and verify the Overflow. objCharacter.BOD.Value = 4; Assert.AreEqual(5, objCharacter.CMOverflow, "CM Overflow does not equal the expected value of 5."); // Add an Overflow Improvement and verify it is correct. Improvement objImprovement = new Improvement(); objImprovement.ImproveType = Improvement.ImprovementType.CMOverflow; objImprovement.Value = 1; objImprovement.ImproveSource = Improvement.ImprovementSource.Quality; objCharacter.Improvements.Add(objImprovement); Assert.AreEqual(6, objCharacter.CMOverflow, "CM Overflow does not equal the expected value of 6."); }
public void CreateAllBiowareTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); TreeNode objNode = new TreeNode(); List<Weapon> lstWeapons = new List<Weapon>(); List<TreeNode> lstTreeNodes = new List<TreeNode>(); GradeList objGradeList = new GradeList(); objGradeList.LoadList(Improvement.ImprovementSource.Bioware); XmlDocument objXmlDocument = XmlManager.Instance.Load("bioware.xml"); foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/biowares/bioware")) { Cyberware objCyberware = new Cyberware(objCharacter); objCyberware.Create(objXmlNode, objCharacter, objGradeList.GetGrade("Standard"), Improvement.ImprovementSource.Bioware, 1, objNode, lstWeapons, lstTreeNodes); } }
public void CreateAllQualitiesTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); objCharacter.AdeptEnabled = true; objCharacter.MagicianEnabled = true; TreeNode objNode = new TreeNode(); List<Weapon> lstWeapons = new List<Weapon>(); List<TreeNode> lstTreeNodes = new List<TreeNode>(); XmlDocument objXmlDocument = XmlManager.Instance.Load("qualities.xml"); foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/qualities/quality")) { Quality objQuality = new Quality(objCharacter); objQuality.Create(objXmlNode, objCharacter, QualitySource.Selected, objNode, lstWeapons, lstTreeNodes); } }
public void EssenceCyberwareOnlyTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); Cyberware objCyberware = new Cyberware(objCharacter); objCyberware.ESS = "0.3"; objCharacter.Cyberware.Add(objCyberware); Assert.AreEqual(5.7m, objCharacter.Essence, "Essence does not equal the expected value of 5.7."); Assert.AreEqual(1, objCharacter.EssencePenalty, "Essence Penalty does not equal the expected value of 1."); }
public void EssenceCyberwareAndBiowareTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); Cyberware objCybeware = new Cyberware(objCharacter); objCybeware.SourceType = Improvement.ImprovementSource.Cyberware; objCybeware.ESS = "0.6"; Cyberware objBioware = new Cyberware(objCharacter); objBioware.SourceType = Improvement.ImprovementSource.Bioware; objBioware.ESS = "0.4"; objCharacter.Cyberware.Add(objCybeware); objCharacter.Cyberware.Add(objBioware); // Bioware Essence should only be 0.2 since the lower of the Cyberware/Bioware totals is halved. Assert.AreEqual(5.2m, objCharacter.Essence, "Essence does not equal the expected value of 5.6."); Assert.AreEqual(0.6m, objCharacter.CyberwareEssence, "Cyberware Essence does not equal the expected value of 0.6."); Assert.AreEqual(0.2m, objCharacter.BiowareEssence, "Bioware Essence does not equal the expected value of 0.2."); }
public void CMThresholdTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); // Verify that the character's Treshold is correct. Assert.AreEqual(3, objCharacter.CMThreshold, "CM Threshold does not equal the expected value of 3."); // Add a Threshold Improvement and verify it is correct. Improvement objImprovement = new Improvement(); objImprovement.ImproveType = Improvement.ImprovementType.CMThreshold; objImprovement.Value = 1; objImprovement.ImproveSource = Improvement.ImprovementSource.Quality; objCharacter.Improvements.Add(objImprovement); Assert.AreEqual(4, objCharacter.CMThreshold, "CM Threshold does not equal the expected value of 4."); }
public void CreateAllWeaponModsTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); TreeNode objNode = new TreeNode(); XmlDocument objXmlDocument = XmlManager.Instance.Load("weapons.xml"); foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/mods/mod")) { WeaponMod objMod = new WeaponMod(objCharacter); objMod.Create(objXmlNode, objNode); } }
public void StandardAttributeTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); // Test the standard Attribute ranges. Assert.AreEqual(1, objCharacter.BOD.MetatypeMinimum, "BOD Minimum is not equal to the expected value of 1."); Assert.AreEqual(6, objCharacter.BOD.MetatypeMaximum, "BOD Maximum is not equal to the expected value of 6."); Assert.AreEqual(9, objCharacter.BOD.MetatypeAugmentedMaximum, "BOD Augmented Maximum is not equal to the expected value of 9."); // Try to go outside of the standard minimum and maximum values. objCharacter.BOD.Value = 10; Assert.AreEqual(6, objCharacter.BOD.TotalValue, "BOD value was able to extend beyond the Maximum value of 6."); objCharacter.BOD.Value = -10; Assert.AreEqual(1, objCharacter.BOD.TotalValue, "BOD value was able to extend beyond the Minimum value of 1."); // Make sure that adding an Improvement that would extend the Attribute's maximum range still only returns the absolute maximum. Improvement objImprovement = new Improvement(); objImprovement.ImproveType = Improvement.ImprovementType.Attribute; objImprovement.Augmented = 20; objImprovement.ImprovedName = "BOD"; objImprovement.CustomName = "BOD Value Improvement"; objImprovement.ImproveSource = Improvement.ImprovementSource.Quality; objCharacter.Improvements.Add(objImprovement); Assert.AreEqual(9, objCharacter.BOD.TotalValue, "BOD value can extend beyond the Augmented Maximum value of 9."); // Increase the Attribute's augmented maximum and verify that the new maximum value from Improvements is correct. Improvement objSecondImprovement = new Improvement(); objSecondImprovement.ImproveType = Improvement.ImprovementType.Attribute; objSecondImprovement.AugmentedMaximum = 1; objSecondImprovement.ImprovedName = "BOD"; objSecondImprovement.CustomName = "BOD Augmented Maximum Improvement"; objSecondImprovement.ImproveSource = Improvement.ImprovementSource.Quality; objCharacter.Improvements.Add(objSecondImprovement); Assert.AreEqual(10, objCharacter.BOD.TotalValue, "BOD value increased Augmented Maximum is not the expected value of 10."); }
public void CreateAllWeaponsTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); TreeNode objNode = new TreeNode(); ContextMenuStrip cmsWeapon = new ContextMenuStrip(); ContextMenuStrip cmsWeaponAccessory = new ContextMenuStrip(); ContextMenuStrip cmsWeaponMod = new ContextMenuStrip(); XmlDocument objXmlDocument = XmlManager.Instance.Load("weapons.xml"); foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/weapons/weapon")) { Weapon objWeapon = new Weapon(objCharacter); objWeapon.Create(objXmlNode, objCharacter, objNode, cmsWeapon, cmsWeaponAccessory, cmsWeaponMod, true); } }
public void SpecialAttributeTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); // Test the standard Attribute ranges. Assert.AreEqual(1, objCharacter.MAG.MetatypeMinimum, "MAG Minimum is not equal to the expected value of 1."); Assert.AreEqual(6, objCharacter.MAG.MetatypeMaximum, "MAG Maximum is not equal to the expected value of 6."); Assert.AreEqual(6, objCharacter.MAG.MetatypeAugmentedMaximum, "MAG Augmented Maximum is not equal to the expected value of 6."); // Try to go outside of the standard minimum and maximum values. objCharacter.MAG.Value = 10; Assert.AreEqual(6, objCharacter.MAG.TotalValue, "MAG value was able to extend beyond the Maximum value of 6."); objCharacter.MAG.Value = -10; Assert.AreEqual(1, objCharacter.MAG.TotalValue, "MAG value was able to extend beyond the Minimum value of 1."); // Set the character's MAG to 5, then apply an Essence penalty through Cyberware. objCharacter.MAG.Value = 5; // MAG should be 4 after adding an Essence Penalty. Cyberware objCyberware = new Cyberware(objCharacter); objCyberware.ESS = "0.3"; objCharacter.Cyberware.Add(objCyberware); Assert.AreEqual(4, objCharacter.MAG.TotalValue, "MAG value after an Essence reduction is not equal to the expected value of 4."); }
public void CreateAllVehiclesTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); TreeNode objNode = new TreeNode(); ContextMenuStrip cmsVehicle = new ContextMenuStrip(); ContextMenuStrip cmsVehicleGear = new ContextMenuStrip(); ContextMenuStrip cmsVehicleWeapon = new ContextMenuStrip(); ContextMenuStrip cmsVehicleWeaponAccessory = new ContextMenuStrip(); ContextMenuStrip cmsVehicleWeaponMod = new ContextMenuStrip(); XmlDocument objXmlDocument = XmlManager.Instance.Load("vehicles.xml"); foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/vehicles/vehicle")) { Vehicle objVehicle = new Vehicle(objCharacter); objVehicle.Create(objXmlNode, objNode, cmsVehicle, cmsVehicleGear, cmsVehicleWeapon, cmsVehicleWeaponAccessory, cmsVehicleWeaponMod); } }
public void StunCMTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); // Set the character's WIL to 4 and verify that they have 10 boxes in their Stun Condition Monitor. objCharacter.WIL.Value = 4; Assert.AreEqual(10, objCharacter.StunCM, "Stun CM does not equal the expected value of 10."); // Set the character's WIL to 5 and verify that they have 11 boxes in their Stun Condition Monitor. objCharacter.WIL.Value = 5; Assert.AreEqual(11, objCharacter.StunCM, "Stun CM does not equal the expected value of 11."); }
public void CreateAllProgramsTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); TreeNode objNode = new TreeNode(); XmlDocument objXmlDocument = XmlManager.Instance.Load("programs.xml"); foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/programs/program")) { TechProgram objProgram = new TechProgram(objCharacter); objProgram.Create(objXmlNode, objCharacter, objNode, "", false); } }
public void WeaponTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); // Add a Combat Axe. Weapon objWeapon = new Weapon(objCharacter); objWeapon.Category = "Blades"; objWeapon.WeaponType = "Melee"; objWeapon.Spec = "Axes"; objWeapon.Reach = 2; objWeapon.Damage = "(STR/2+9)P"; objWeapon.AP = "-4"; objWeapon.RC = "0"; objWeapon.Accuracy = "4"; objWeapon.Ammo = "0"; objWeapon.Concealability = 0; objWeapon.Avail = "9R"; objWeapon.Cost = 500; objWeapon.Source = "SR5"; objWeapon.Page = "900"; // Add the Weapon to the character. objCharacter.Weapons.Add(objWeapon); // Set the character's Blades Skill to 3. Skill objSkill = new Skill(objCharacter); objSkill = objCharacter.Skills.Find(o => o.DisplayName == "Blades"); objSkill.Rating = 3; // Set the character's STR to 4 and make sure the Weapon attributes are calculated correctly. objCharacter.STR.Value = 4; Assert.AreEqual("11P", objWeapon.CalculatedDamage(), "Weapon DV does not match the expected value of 11P."); // Dice Pool should be 4 since the character has Blades 3 + AGI 1. Assert.AreEqual("4", objWeapon.DicePool, "Weapon Dice Pool does not match the expected value of 4."); // Add the Specialization to the Skill and check its value again. Should be 4 (6). objSkill.Specialization = "Axes"; Assert.AreEqual("4 (6)", objWeapon.DicePool, "Weapon Dice Pool with Specialization does not match the expected value of 4 (6)."); // Set the character's STR to 5 and make sure the Weapon attributes are calculated correctly. DV should be 12 since fractions are rounded up. objCharacter.STR.Value = 5; Assert.AreEqual("12P", objWeapon.CalculatedDamage(), "Weapon DV does not match the expected value of 11P."); }
public void CreateAllSpellsTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); TreeNode objNode = new TreeNode(); XmlDocument objXmlDocument = XmlManager.Instance.Load("spells.xml"); foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/spells/spell")) { Spell objSpell = new Spell(objCharacter); objSpell.Create(objXmlNode, objCharacter, objNode, "", false, false, false); } }
public void CreateAllGearTest() { // Create a new Human character. Character objCharacter = new Character(); objCharacter.LoadMetatype(Guid.Parse("e28e7075-f635-4c02-937c-e4fc61c51602")); TreeNode objNode = new TreeNode(); ContextMenuStrip cmsGear = new ContextMenuStrip(); List<Weapon> lstWeapons = new List<Weapon>(); List<TreeNode> lstTreeNodes = new List<TreeNode>(); XmlDocument objXmlDocument = XmlManager.Instance.Load("gear.xml"); foreach (XmlNode objXmlNode in objXmlDocument.SelectNodes("/chummer/gears/gear")) { Gear objGear = new Gear(objCharacter); objGear.Create(objXmlNode, objCharacter, objNode, 1, lstWeapons, lstTreeNodes); } }