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 | }
|
---|