public void EquipToHero(Hero hero)
{
Contract.Requires(hero != null);
Contract.Requires(!Equipped);
Contract.Ensures(Equipped);
/*
Contract.Ensures(
this.type == EquipmentType.Weapon ?
hero.Inventory.Weapon.Equals(this) :
this.type == EquipmentType.Armor ?
hero.Inventory.Armor.Equals(this) :
this.type == EquipmentType.Other ?
hero.Inventory.OtherItems.Contains(this) :
this.type == EquipmentType.Potion && hero.Inventory.Potions.Contains(this));
* */
foreach (Ability ability in abilities)
{
ability.Apply(hero);
}
hero.DiceContribution += this.DiceContribution;
hero.SurgeAbilityContribution += this.SurgeAbilitiesContribution;
equipped = true;
}