Mercurial > repos > snowblizz-super-API-ideas
view API/Objects/Requirement/AbstractRequirement.cs @ 381:30db6669f5cd
* Update to VS.Net 2010 compatibility
* Fix whitespace
no-open-ticket
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sun, 07 Aug 2011 19:15:33 +0000 |
parents | 0dd8dbe8afe9 |
children |
line wrap: on
line source
// This file (AbstractRequirement.cs) is a part of the IBBoard.WarFoundry.API project and is copyright 2011 IBBoard // // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license. using System; namespace IBBoard.WarFoundry.API.Objects.Requirement { public abstract class AbstractRequirement : IRequirement { public override bool Equals (object obj) { if (obj == null) { return false; } else if (obj.GetType().Equals(this.GetType())) { return TypeEquals(obj); } else { return false; } } /// <summary> /// Type-specific equality checking - must be implemented by each class /// </summary> /// <returns> /// <code>true</code> if this object is equal to <code>obj</code>, else <code>false</code> /// </returns> /// <param name='obj'> /// The object to compare to /// </param> protected abstract bool TypeEquals(object obj); protected virtual bool IsApplicable(WarFoundryObject toObjectAdded, Army toArmy) { return IsApplicable(toArmy) || IsApplicable(toObjectAdded); } protected virtual bool IsApplicable(Army toArmy) { return true; } protected virtual bool IsApplicable(WarFoundryObject toObject) { return true; } public string GetValidationMessage(Army army) { string message = ""; Validation result = ValidatesArmy(army); if (!Validates.AsOkay(result)) { message = GetValidationFailedMessage(army); } return message; } protected abstract string GetValidationFailedMessage(Army army); public string GetAllowsAddingMessage(UnitType toAdd, Army toArmy) { string message = ""; Validation result = AllowsAdding(toAdd, toArmy); if (!Validates.AsOkay(result)) { message = GetAllowsAddingFailedMessage(toAdd, toArmy); } return message; } protected abstract string GetAllowsAddingFailedMessage(UnitType toAdd, Army toArmy); public abstract Validation AllowsAdding(WarFoundryObject wfObject, Army toArmy); public abstract Validation ValidatesArmy(Army army); } }