[1114] | 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 | }
|
---|