Example #1
0
        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);
        }