/// <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); }
/// <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)); }
/// <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); }
/// <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)); }
/// <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); }