ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/OniSplit/Level/ScriptCharacter.cs
Revision: 1114
Committed: Wed Jan 22 14:08:57 2020 UTC (5 years, 8 months ago) by iritscen
File size: 2275 byte(s)
Log Message:
Adding OniSplit source code (v0.9.99.0). Many thanks to Neo for all his work over the years.

File Contents

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