public virtual void Attack(IAttackable otherCharacter) { if (this.Owner == default(IBlob)) { throw new InvalidOperationException(ErrorMessages.OwnerNotSet); } if (!otherCharacter.IsAlive()) { throw new InvalidOperationException(ErrorMessages.DeadBlobAttackedError); } otherCharacter.TakeDamage(this.Damage); }