Esempio n. 1
0
    public MonsterCfd GetMonsterCfg(int id)
    {
        MonsterCfd monsterData = null;

        if (dictMonsterCfgData.TryGetValue(id, out monsterData))
        {
            return(monsterData);
        }

        return(null);
    }
Esempio n. 2
0
    private void InitMonsterCfgData(string xmlPath)
    {
        TextAsset xmlText = Resources.Load <TextAsset>(xmlPath);

        if (!xmlText)
        {
            CommonTools.Log("xml file: " + PathDefine.cPath_RandomNameCfg + "not exits!",
                            LogType.LogType_Error);
            return;
        }

        //开始解析xml文件
        XmlDocument doc = new XmlDocument();

        doc.LoadXml(xmlText.text);

        XmlNodeList nodeList = doc.SelectSingleNode("root").ChildNodes;

        for (int i = 0; i < nodeList.Count; i++)
        {
            XmlElement element = nodeList[i] as XmlElement;

            if (element.GetAttributeNode("ID") == null)
            {
                continue;
            }
            int id = Convert.ToInt32(element.GetAttributeNode("ID").InnerText);

            MonsterCfd monsterData = new MonsterCfd
            {
                ID   = id,
                prop = new BattleProps()
            };

            #region 遍历解析
            foreach (XmlElement elem in nodeList[i].ChildNodes)
            {
                switch (elem.Name)
                {
                case "mName":
                    monsterData.name = elem.InnerText;
                    break;

                case "resPath":
                    monsterData.resPath = elem.InnerText;
                    break;

                case "skillID":
                    monsterData.skillID = int.Parse(elem.InnerText);
                    break;

                case "atkDis":
                    monsterData.atkDistance = float.Parse(elem.InnerText);
                    break;

                case "isStop":
                    monsterData.bStop = elem.InnerText.Equals("1");
                    break;

                case "mType":
                    if (elem.InnerText.Equals("1"))
                    {
                        monsterData.monsterType = Constants.MonsterType.Normal;
                    }
                    else if (elem.InnerText.Equals("2"))
                    {
                        monsterData.monsterType = Constants.MonsterType.Boss;
                    }
                    break;

                case "hp":
                    monsterData.prop.hp = int.Parse(elem.InnerText);
                    break;

                case "ad":
                    monsterData.prop.ad = int.Parse(elem.InnerText);
                    break;

                case "ap":
                    monsterData.prop.ap = int.Parse(elem.InnerText);
                    break;

                case "addef":
                    monsterData.prop.addef = int.Parse(elem.InnerText);
                    break;

                case "apdef":
                    monsterData.prop.apdef = int.Parse(elem.InnerText);
                    break;

                case "dodge":
                    monsterData.prop.dodge = int.Parse(elem.InnerText);
                    break;

                case "pierce":
                    monsterData.prop.pierce = int.Parse(elem.InnerText);
                    break;

                case "critical":
                    monsterData.prop.critical = int.Parse(elem.InnerText);
                    break;
                }
            }
            #endregion

            dictMonsterCfgData.Add(id, monsterData);
        }
    }