Example #1
0
        public override void Read(XmlNode os)
        {
            foreach (XmlNode current in XmlObject.GetChilds(os))
            {
                switch (current.Name)
                {
                case "Index":
                    this.Index = ReadInt(current);
                    break;

                case "IndexName":
                    this.IndexName = ReadString(current);
                    break;

                case "Delay":
                    this.Delay = ReadFloat(current);
                    break;

                case "Spawn":
                    this.Spawn = (MonsterWaveSpawnType)ReadInt(current);
                    break;

                case "Monsters":
                {
                    XmlObject.GetChilds(current).ForEach(delegate(XmlNode pNode)
                        {
                            MapMonsterCall data = new MapMonsterCall();
                            data.Read(pNode);
                            Monsters.Add(data);
                        });
                }
                break;
                }
            }
        }
Example #2
0
        public override void Import(XmlObject pData, bool pBuild)
        {
            MapMonsterWave data = pData as MapMonsterWave;

            Index     = data.Index;
            IndexName = data.IndexName;
            Delay     = data.Delay;
            Spawn     = data.Spawn;
            this.Build();
            this.SetName();
            if (pBuild)
            {
                for (int i = 0; i < data.Monsters.Count; i++)
                {
                    GameObject       go    = gameObject.AddChild();
                    LevelMonsterCall pCall = go.AddComponent <LevelMonsterCall>();
                    pCall.Import(data.Monsters[i], pBuild);
                }
            }
        }
Example #3
0
        public override void OnInspectorGUI()
        {
            LevelWave pElem  = target as LevelWave;
            int       pIndex = EditorGUILayout.IntField("波次索引", pElem.Index);

            if (pElem.Index != pIndex)
            {
                pElem.Index = pIndex;
                pElem.SetName();
            }

            string pIndexName = EditorGUILayout.TextField("波次名字", pElem.IndexName);

            if (pElem.IndexName != pIndexName)
            {
                pElem.IndexName = pIndexName;
            }

            float pDelay = EditorGUILayout.FloatField("距离上一波次结束的延迟", pElem.Delay);

            if (pElem.Delay != pDelay)
            {
                pElem.Delay = pDelay;
            }

            ESpawn pChineseSpawn        = (ESpawn)pElem.Spawn;
            MonsterWaveSpawnType pSpawn = (MonsterWaveSpawnType)EditorGUILayout.EnumPopup("怪物刷新方式", pChineseSpawn);

            if (pElem.Spawn != pSpawn)
            {
                pElem.Spawn = pSpawn;
            }


            EditorGUILayout.Space();
            if (GUILayout.Button("添加怪物"))
            {
                LevelMonsterCall pMonster = pElem.AddElement();
                pMonster.SetName();
            }
        }