| 1 | using System; | 
 
 
 
 
 | 2 | using System.Xml; | 
 
 
 
 
 | 3 | using Oni.Metadata; | 
 
 
 
 
 | 4 |  | 
 
 
 
 
 | 5 | namespace Oni.Level | 
 
 
 
 
 | 6 | { | 
 
 
 
 
 | 7 | internal class ScriptCharacter | 
 
 
 
 
 | 8 | { | 
 
 
 
 
 | 9 | public string className; | 
 
 
 
 
 | 10 | public string name; | 
 
 
 
 
 | 11 | public string weaponClassName; | 
 
 
 
 
 | 12 | public int flagId; | 
 
 
 
 
 | 13 | public int scriptId; | 
 
 
 
 
 | 14 | public InstanceMetadata.AISACharacterFlags flags; | 
 
 
 
 
 | 15 | public InstanceMetadata.AISACharacterTeam team; | 
 
 
 
 
 | 16 | public string onSpawn; | 
 
 
 
 
 | 17 | public string onDeath; | 
 
 
 
 
 | 18 | public string onSeenEnemy; | 
 
 
 
 
 | 19 | public string onAlarmed; | 
 
 
 
 
 | 20 | public string onHurt; | 
 
 
 
 
 | 21 | public string onDefeated; | 
 
 
 
 
 | 22 | public string onOutOfAmmo; | 
 
 
 
 
 | 23 | public string onNoPath; | 
 
 
 
 
 | 24 | public int ammo; | 
 
 
 
 
 | 25 |  | 
 
 
 
 
 | 26 | public static ScriptCharacter Read(XmlReader xml) | 
 
 
 
 
 | 27 | { | 
 
 
 
 
 | 28 | xml.ReadStartElement("Character"); | 
 
 
 
 
 | 29 |  | 
 
 
 
 
 | 30 | var chr = new ScriptCharacter { | 
 
 
 
 
 | 31 | name = xml.ReadElementContentAsString("Name", ""), | 
 
 
 
 
 | 32 | scriptId = xml.ReadElementContentAsInt("ScriptId", ""), | 
 
 
 
 
 | 33 | flagId = xml.ReadElementContentAsInt("FlagId", ""), | 
 
 
 
 
 | 34 | flags = xml.ReadElementContentAsEnum<InstanceMetadata.AISACharacterFlags>("Flags"), | 
 
 
 
 
 | 35 | team = xml.ReadElementContentAsEnum<InstanceMetadata.AISACharacterTeam>("Team"), | 
 
 
 
 
 | 36 | className = xml.ReadElementContentAsString("Class", "") | 
 
 
 
 
 | 37 | }; | 
 
 
 
 
 | 38 |  | 
 
 
 
 
 | 39 | xml.ReadStartElement("Scripts"); | 
 
 
 
 
 | 40 | chr.onSpawn = xml.ReadElementContentAsString("Spawn", ""); | 
 
 
 
 
 | 41 | chr.onDeath = xml.ReadElementContentAsString("Die", ""); | 
 
 
 
 
 | 42 | chr.onSeenEnemy = xml.ReadElementContentAsString("Combat", ""); | 
 
 
 
 
 | 43 | chr.onAlarmed = xml.ReadElementContentAsString("Alarm", ""); | 
 
 
 
 
 | 44 | chr.onHurt = xml.ReadElementContentAsString("Hurt", ""); | 
 
 
 
 
 | 45 | chr.onDefeated = xml.ReadElementContentAsString("Defeated", ""); | 
 
 
 
 
 | 46 | chr.onOutOfAmmo = xml.ReadElementContentAsString("OutOfAmmo", ""); | 
 
 
 
 
 | 47 | chr.onNoPath = xml.ReadElementContentAsString("NoPath", ""); | 
 
 
 
 
 | 48 | xml.ReadEndElement(); | 
 
 
 
 
 | 49 |  | 
 
 
 
 
 | 50 | chr.weaponClassName = xml.ReadElementContentAsString("Weapon", ""); | 
 
 
 
 
 | 51 | chr.ammo = xml.ReadElementContentAsInt("Ammo", ""); | 
 
 
 
 
 | 52 |  | 
 
 
 
 
 | 53 | xml.ReadEndElement(); | 
 
 
 
 
 | 54 |  | 
 
 
 
 
 | 55 | return chr; | 
 
 
 
 
 | 56 | } | 
 
 
 
 
 | 57 | } | 
 
 
 
 
 | 58 | } |