public string ApplyMagicItem(IEquipment MagicItem) { MagicItemStatBlock MI = (MagicItemStatBlock)MagicItem; try { MagicItemAbilities.Add(MagicItemAbilityReflectionWrapper.GetMagicItemAbility(MI.name, MI.ExtraAbilities)); } catch (Exception ex) { throw new Exception("IndividualStatBlock_Combat-ApplyMagicItem", ex); } return(MI.name + " abilities added."); }
private string ApplyMagicItem(IEquipment MagicItem) { StatBlockInfo.ACMods acMods_Computed = new StatBlockInfo.ACMods(); MagicItemStatBlock MI = (MagicItemStatBlock)MagicItem; try { MagicItemAbilitiesWrapper wrapper = MagicItemAbilityReflectionWrapper.GetMagicItemAbility(MI.name, MI.ExtraAbilities); _sbCheckerBaseInput.IndvSB.ApplyMagicItem(MagicItem); if (wrapper.EquimentBaseString.Length > 0) { Dictionary <IEquipment, int> tempArmor = Equipment_Parse.ParseArmorSimple(new List <string> { wrapper.EquimentBaseString }, _armorBusiness); if (tempArmor.Keys.First().EquipmentType == EquipmentType.Armor) { double Bonus = 0; Armor armor = (Armor)tempArmor.Keys.First(); if (armor.category == "shield") { if (armor.bonus.HasValue) { Bonus = Convert.ToInt32(armor.bonus); if (armor.Broken) { Bonus = Math.Floor(Bonus / 2); } acMods_Computed.Shield += Convert.ToInt32(Bonus) + armor.EnhancementBonus; } } if (armor.category.Contains("armor")) { if (armor.bonus.HasValue) { Bonus = Convert.ToInt32(armor.bonus); if (armor.Broken) { Bonus = Math.Floor(Bonus / 2); } acMods_Computed.Armor += Convert.ToInt32(Bonus) + armor.EnhancementBonus; } } } } _equipmentData.MagicItemAbilities.Add(wrapper); } catch (Exception ex) { _sbCheckerBaseInput.MessageXML.AddFail("SBChecker-ApplyMagicItem", ex.Message + "--- " + ex.InnerException); } _armorClassData.ACMods_Computed = acMods_Computed; return(MI.name + " abilities added."); }