Esempio n. 1
0
 private void OnLoadFinishEventHandler(XmlDocument xmlDoc)
 {
     try
     {
         XmlNode     xmlNode    = xmlDoc.SelectSingleNode("table");
         XmlNode     xmlNode2   = xmlNode.SelectSingleNode("map");
         XmlNodeList childNodes = xmlNode2.ChildNodes;
         foreach (XmlNode xmlNode3 in childNodes)
         {
             XmlElement xmlElement = (XmlElement)xmlNode3;
             MapNode    mapNode    = new MapNode();
             //初始化格子坐标
             mapNode.nIndexX   = Convert.ToInt32(xmlElement.GetAttribute("X"));
             mapNode.nIndexY   = Convert.ToInt32(xmlElement.GetAttribute("Y"));
             mapNode.nIndexU   = Convert.ToInt32(xmlElement.GetAttribute("U"));
             mapNode.m_strType = xmlElement.GetAttribute("type");
             //初始化格子类型
             if (!MapCfg.MapNodeTransfer(mapNode))
             {
                 Debug.LogError("m_oCfg.MapNodeTransfer(oNode) == false");
                 return;
             }
             if (this.m_dicMapData.ContainsKey(mapNode.nIndexX))
             {
                 //如果xy都已经存在缓存格子中,说明肯定出错了,重复初始化话,就报错
                 if (this.m_dicMapData[mapNode.nIndexX].ContainsKey(mapNode.nIndexY))
                 {
                     string message = string.Format("XY conflict x={0},y={1}", mapNode.nIndexX, mapNode.nIndexY);
                     this.logger.Error("m_oDicMapData[oNode.nIndexX].ContainsKey(oNode.nIndexY) == true,");
                     this.logger.Error(message);
                     return;
                 }
                 //如果没有重复,就加到缓存格子中
                 this.m_dicMapData[mapNode.nIndexX].Add(mapNode.nIndexY, mapNode);
             }
             else
             {
                 Dictionary <int, MapNode> dictionary = new Dictionary <int, MapNode>();
                 dictionary.Add(mapNode.nIndexY, mapNode);
                 this.m_dicMapData.Add(mapNode.nIndexX, dictionary);
             }
             //如果节点的类型是基地类型,初始化基地节点变量
             if (mapNode.m_eMapNodeType == EMapNodeType.MAP_NODE_EMPIRE_BASE)
             {
                 this.empireMapNode.m_nX = mapNode.nIndexX;
                 this.empireMapNode.m_nY = mapNode.nIndexY;
                 this.empireMapNode.m_nU = mapNode.nIndexU;
             }
             else
             {
                 if (mapNode.m_eMapNodeType == EMapNodeType.MAP_NODE_LEAGUE_BASE)
                 {
                     this.leagueMapNode.m_nX = mapNode.nIndexX;
                     this.leagueMapNode.m_nY = mapNode.nIndexY;
                     this.leagueMapNode.m_nU = mapNode.nIndexU;
                 }
             }
         }
         XmlNode xmlNode4 = xmlNode.SelectSingleNode("mapInfo");
         if (xmlNode4 != null)
         {
             XmlElement xmlElement2 = xmlNode4 as XmlElement;
             string     attribute   = xmlElement2.GetAttribute("pos");
             Vector3    vector      = UnityTools.String2Vector3(attribute);
             string     attribute2  = xmlElement2.GetAttribute("rotation");
             Vector3    vector2     = UnityTools.String2Vector3(attribute2);
             //初始化地图坐标和旋转方向
             this.InitPos      = vector;
             this.InitRotation = vector2;
             XmlNodeList xmlNodeList = xmlNode4.SelectNodes("nodeType");
             foreach (XmlNode xmlNode5 in xmlNodeList)
             {
                 try
                 {
                     XmlElement      xmlElement3     = (XmlElement)xmlNode5;
                     string          attribute3      = xmlElement3.GetAttribute("type");
                     EMapNodeType    eMapNodeType    = MapCfg.String2MapNodeType(attribute3);
                     string          attribute4      = xmlElement3.GetAttribute("file");
                     MapNodeTypeInfo mapNodeTypeInfo = new MapNodeTypeInfo(eMapNodeType, attribute4);
                     string          attribute5      = xmlElement3.GetAttribute("localPos");
                     if (!string.IsNullOrEmpty(attribute5))
                     {
                         mapNodeTypeInfo.LocalPos = UnityTools.String2Vector3(attribute5);
                     }
                     string attribute6 = xmlElement3.GetAttribute("localRotation");
                     if (!string.IsNullOrEmpty(attribute6))
                     {
                         mapNodeTypeInfo.LocalRotation = UnityTools.String2Vector3(attribute6);
                     }
                     string attribute7 = xmlElement3.GetAttribute("effectId");
                     if (!string.IsNullOrEmpty(attribute7))
                     {
                         mapNodeTypeInfo.EffectId = Convert.ToInt32(attribute7);
                     }
                     string attribute8 = xmlElement3.GetAttribute("triggerEffectId");
                     if (!string.IsNullOrEmpty(attribute8))
                     {
                         mapNodeTypeInfo.GetEffectId = Convert.ToInt32(attribute8);
                     }
                     this.m_dicMapNodeTypeInfo.Add(eMapNodeType, mapNodeTypeInfo);
                 }
                 catch (Exception ex)
                 {
                     this.logger.Fatal(ex.ToString());
                 }
             }
         }
         XmlNode xmlNode6 = xmlNode.SelectSingleNode("pveSetting");
         if (xmlNode6 != null)
         {
             this.PVESetting = new PVESetting();
             XmlNode xmlNode7 = xmlNode6.SelectSingleNode("ourBase");
             if (xmlNode7 != null)
             {
                 XmlElement xmlElement4 = (XmlElement)xmlNode7;
                 string     attribute9  = xmlElement4.GetAttribute("file");
                 this.PVESetting.OurBaseModelFile = attribute9;
                 string attribute10 = xmlElement4.GetAttribute("LocalPos");
                 if (!string.IsNullOrEmpty(attribute10))
                 {
                     this.PVESetting.OurBaseLocalPos = UnityTools.String2Vector3(attribute10);
                 }
                 string attribute11 = xmlElement4.GetAttribute("LocalRotation");
                 if (!string.IsNullOrEmpty(attribute11))
                 {
                     this.PVESetting.OurBaseLocalRotation = UnityTools.String2Vector3(attribute11);
                 }
             }
             XmlNode xmlNode8 = xmlNode6.SelectSingleNode("enemyBase");
             if (xmlNode8 != null)
             {
                 XmlElement xmlElement5 = (XmlElement)xmlNode8;
                 string     attribute12 = xmlElement5.GetAttribute("file");
                 this.PVESetting.EnemyBaseModelFile = attribute12;
                 string attribute13 = xmlElement5.GetAttribute("LocalPos");
                 if (!string.IsNullOrEmpty(attribute13))
                 {
                     this.PVESetting.EnemyBaseLocalPos = UnityTools.String2Vector3(attribute13);
                 }
                 string attribute14 = xmlElement5.GetAttribute("LocalRotation");
                 if (!string.IsNullOrEmpty(attribute14))
                 {
                     this.PVESetting.EnemyBaseLocalRotation = UnityTools.String2Vector3(attribute14);
                 }
             }
         }
     }
     catch (Exception ex2)
     {
         this.logger.Fatal(ex2.Message);
     }
 }