#region Arthea License /*********************************************************************** * Arthea MUD by R. Jennings (2007) http://arthea.googlecode.com/ * * By using this code you comply with the Artistic and GPLv2 Licenses. * ***********************************************************************/ #endregion using Arthea.Abilities.Spells.Enums; using Arthea.Classes; using Arthea.Continents.Areas.Characters; using Arthea.Continents.Areas.Characters.Enums; namespace Arthea.Abilities.Spells { /// <summary> /// Implementation of a spell. /// </summary> public abstract class Spell : Ability { #region [rgn] Fields (2) private int mana; private SpellTarget target; #endregion [rgn] #region [rgn] Constructors (1) /// <summary> /// Initializes a new instance of the <see cref="Spell"/> class. /// </summary> /// <param name="name">The name.</param> /// <param name="levels">The levels.</param> /// <param name="pos">The minimum position.</param> /// <param name="wait">The wait.</param> /// <param name="difficulty">The difficulty.</param> /// <param name="damage">The damage.</param> /// <param name="flags">The flags.</param> /// <param name="target">The target.</param> /// <param name="mana">The mana.</param> public Spell(string name, ClassValues levels, Position pos, byte wait, byte difficulty, string damage, AbilityFlags flags, SpellTarget target, int mana) : base(name, levels, pos, wait, difficulty, damage, flags) { this.target = target; this.mana = mana; } #endregion [rgn] #region [rgn] Properties (2) /// <summary> /// Gets or sets the mana. /// </summary> /// <value>The mana.</value> public int Mana { get { return mana; } set { mana = value; } } /// <summary> /// Gets or sets the target. /// </summary> /// <value>The target.</value> public SpellTarget Target { get { return target; } set { target = value; } } #endregion [rgn] #region [rgn] Methods (1) // [rgn] Public Methods (1) /// <summary> /// Processes this spell for a character. /// </summary> /// <param name="ch">The character.</param> /// <param name="argument">The argument.</param> public abstract void Process(Character ch, object argument); #endregion [rgn] } }