#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 System.Collections.Generic;
using Arthea.Abilities.Skills;
using Arthea.Abilities.Spells;
namespace Arthea.Abilities
{
/// <summary>
/// Implementation of a ability list.
/// </summary>
public class AbilityList : List<Ability>
{
#region [rgn] Constructors (1)
/// <summary>
/// Initializes a new instance of the <see cref="AbilityList"/> class.
/// </summary>
public AbilityList()
{
Log.Info("Initializing abilities...");
Add(new MagicMissileSpell());
Add(new KickSkill());
}
#endregion [rgn]
#region [rgn] Methods (3)
// [rgn] Public Methods (3)
/// <summary>
/// Finds the name.
/// </summary>
/// <param name="name">The name.</param>
/// <returns>an ability</returns>
public Ability FindName(String name)
{
return Find(delegate(Ability skill) { return name == skill.Name; });
}
/// <summary>
/// Finds the skill.
/// </summary>
/// <param name="name">The name.</param>
/// <returns>a skill</returns>
public Skill FindSkill(String name)
{
return
Find(
delegate(Ability ability) { return ability is Skill && name.IsPrefixOf(ability.Name); }) as
Skill;
}
/// <summary>
/// Finds the spell.
/// </summary>
/// <param name="name">The name.</param>
/// <returns> a spell</returns>
public Spell FindSpell(String name)
{
return
Find(
delegate(Ability ability) { return ability is Spell && name.IsPrefixOf(ability.Name); }) as
Spell;
}
#endregion [rgn]
}
}