public static StgEventAbs ToStgEvent(XmlNode node) { switch ((StgEventType)int.Parse(node.Attributes.GetNamedItem("Type").InnerText)) { case StgEventType.HeroBorn: return(StgEventHeroBorn.ToStgEvent(node)); case StgEventType.ZombieBorn: return(StgEventZombieBorn.ToStgEvent(node)); //case StgEventType.HeroMove: // return StgEventHeroMove.ToStgEvent(node); //case StgEventType.HeroGet: // return StgEventHeroGet.ToStgEvent(node); //case StgEventType.NPCBorn: // return StgEventNPCBorn.ToStgEvent(node); //case StgEventType.NPCMove: // return StgEventNPCMove.ToStgEvent(node); //case StgEventType.NPCDeliver: // return StgEventNPCDeliver.ToStgEvent(node); //case StgEventType.PrefabBorn: // return StgEventPrefabBorn.ToStgEvent(node); //case StgEventType.PrefabBornZombie: // return StgEventPrefabBornZombie.ToStgEvent(node); //case StgEventType.Conversation: // return StgEventConversation.ToStgEvent(node); } return(new StgEventAbs()); }
public static StgEventZombieBorn ToStgEvent(XmlNode node) { StgEventZombieBorn born = new StgEventZombieBorn { isBlock = node["EB"].InnerText.Equals("1"), delay = float.Parse(node["ED"].InnerText) }; XmlNode node2 = node["WS"]; IEnumerator enumerator = node2.ChildNodes.GetEnumerator(); try { while (enumerator.MoveNext()) { XmlNode current = (XmlNode)enumerator.Current; StgZombieWave item = new StgZombieWave { zombieName = current["T"].InnerText, waveDelay = int.Parse(current["D"].InnerText), minCount = int.Parse(current["IC"].InnerText), maxCount = int.Parse(current["AC"].InnerText), minInterval = float.Parse(current["IT"].InnerText), maxInterval = float.Parse(current["AT"].InnerText), position = CommonTools.StringToVector3(current["P"].InnerText), range = float.Parse(current["R"].InnerText) }; born.waves.Add(item); Debug.Log(item.ToString()); } } finally { //IDisposable disposable = enumerator as IDisposable; //if (disposable == null) //{ //} //disposable.Dispose(); } return(born); }