using System; using System.Xml; using System.Collections.Generic; public partial class TestPage : System.Web.UI.Page { public void OnLoadComplete(EventArgs args) { Response.Write(args); } public void ShowXml() { try { var xml = new XmlDocument(); xml.Load(Request.InputStream); if( xml.DocumentElement.Name == "abilities" ) { foreach( XmlNode ability in xml.DocumentElement.ChildNodes ) { Response.Write(ability.Name); Response.Write(ability.InnerText); } } } catch( XmlException e ) { } } private void ComputeCosts() { } class Ability { public int Value; public int Cost; public int Bonus; public Ability() { } public void ComputeCost(bool from8) { Cost = Ability.ComputeCost(Value, from8); } public static int ComputeCost(int value, bool from8) { var limitDown = from8 ? 8 : 10; if( value < limitDown ){ return -1; } var costAdded = from8 ? 2 : 0; if( value <= 13 ){ return costAdded + value - 10; } if( value <= 16 ){ return costAdded + 3 + 2 * (value - 13); } if( value <= 17 ){ return costAdded + 14; } if( value <= 18 ){ return costAdded + 16; } return -1; } } class Abilities { private Ability Strenth = new Abitlity(); private Ability Constitution = new Abitlity(); private Ability Dexterity = new Abitlity(); private Ability Intelligence = new Abitlity(); private Ability Wisdom = new Abitlity(); private Ability Charisma = new Abitlity(); public void ComputeCosts() { var listAbilities = new List(); listAbilities.Add(Strength); listAbilities.Add(Constitution); listAbilities.Add(Dexterity); listAbilities.Add(Intelligence); listAbilities.Add(Wisdom); listAbilities.Add(Charisma); listAbilities.Sort(delegate(Ability a, Ability b){ return a.Value - b.Value; }); } } }