public void UnequipFromHero(Hero hero) { Contract.Requires(Equipped); Contract.Ensures(!Equipped); foreach (Ability ability in abilities) { ability.Apply(hero, true); } hero.DiceContribution -= this.DiceContribution; equipped = false; }