예제 #1
0
        /// <summary>
        /// Saves properties
        /// </summary>
        /// <param name="writer">XmlWriter</param>
        /// <returns>True if saved</returns>
        public virtual bool Save(XmlWriter writer)
        {
            if (writer == null || writer.WriteState != WriteState.Element)
            {
                return(false);
            }

            HitPoint.Save(writer);
            Strength.Save("strength", writer);
            Intelligence.Save("intelligence", writer);
            Wisdom.Save("wisdom", writer);
            Dexterity.Save("dexterity", writer);
            Constitution.Save("constitution", writer);
            Charisma.Save("charisma", writer);

            writer.WriteStartElement("alignment");
            writer.WriteAttributeString("value", Alignment.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("movespeed");
            writer.WriteAttributeString("value", MoveSpeed.TotalMilliseconds.ToString());
            writer.WriteEndElement();


            return(true);
        }
예제 #2
0
		/// <summary>
		/// Reroll entity abilities
		/// </summary>
		public virtual void RollAbilities()
		{
			Charisma.Value = RollForAbility();
			Strength.Value = RollForAbility();
			Constitution.Value = RollForAbility();
			Dexterity.Value = RollForAbility();
			Intelligence.Value = RollForAbility();
			Wisdom.Value = RollForAbility();

			HitPoint = new HitPoint(GameBase.Random.Next(6, 37));
		}
예제 #3
0
		/// <summary>
		/// Constructor
		/// </summary>
		public Entity()
		{
			Charisma = new Ability();
			Strength = new Ability();
			Constitution = new Ability();
			Dexterity = new Ability();
			HitPoint = new HitPoint();
			Intelligence = new Ability();
			Wisdom = new Ability();
			MoveSpeed = TimeSpan.FromSeconds(1.0f);
		}
예제 #4
0
        /// <summary>
        /// Reroll entity abilities
        /// </summary>
        public virtual void RollAbilities()
        {
            Charisma.Value     = RollForAbility();
            Strength.Value     = RollForAbility();
            Constitution.Value = RollForAbility();
            Dexterity.Value    = RollForAbility();
            Intelligence.Value = RollForAbility();
            Wisdom.Value       = RollForAbility();

            HitPoint = new HitPoint(GameBase.Random.Next(6, 38));
        }
예제 #5
0
 /// <summary>
 /// Constructor
 /// </summary>
 public Entity()
 {
     Charisma     = new Ability();
     Strength     = new Ability();
     Constitution = new Ability();
     Dexterity    = new Ability();
     HitPoint     = new HitPoint();
     Intelligence = new Ability();
     Wisdom       = new Ability();
     MoveSpeed    = TimeSpan.FromSeconds(1.0f);
 }
예제 #6
0
        /// <summary>
        /// Loads
        /// </summary>
        /// <param name="node">XmlNode handle</param>
        public virtual bool Load(XmlNode node)
        {
            if (node == null)
            {
                return(false);
            }


            if (node.NodeType == XmlNodeType.Comment)
            {
                return(false);
            }

            switch (node.Name.ToLower())
            {
            case "strength":
            {
                Strength.Load(node);
            }
            break;

            case "intelligence":
            {
                Intelligence.Load(node);
            }
            break;

            case "wisdom":
            {
                Wisdom.Load(node);
            }
            break;

            case "dexterity":
            {
                Dexterity.Load(node);
            }
            break;

            case "constitution":
            {
                Constitution.Load(node);
            }
            break;

            case "charisma":
            {
                Charisma.Load(node);
            }
            break;

            case "alignment":
            {
                Alignment = (EntityAlignment)Enum.Parse(typeof(EntityAlignment), node.Attributes["value"].Value, true);
            }
            break;

            case "hitpoint":
            {
                HitPoint.Load(node);
            }
            break;

            case "movespeed":
            {
                MoveSpeed = TimeSpan.FromMilliseconds(int.Parse(node.Attributes["value"].Value));
            }
            break;

            default:
            {
                Trace.WriteLine("[Entity] Load() : Unknown node : <{0}>", node.Name);
            }
            break;
            }


            return(true);
        }