Browse Source

new config,
part of equipment logic

fenix 8 years ago
parent
commit
ed45c26d61
100 changed files with 2520 additions and 652 deletions
  1. 39 61
      Assets/DashGame/Kits/Language.cs
  2. 4 1
      Assets/Editor/XlsxExporter/ExportConfig.cs
  3. 532 0
      Assets/Editor/XlsxExporter/ExportLanguage.cs
  4. 5 1
      Assets/Editor/XlsxExporter/ExportLanguage.cs.meta
  5. 7 0
      Assets/Models/Powers.meta
  6. 7 0
      Assets/Models/StartPage.meta
  7. 2 2
      Assets/Models/UINew.meta
  8. BIN
      Assets/Models/UINew/TinyBox.jpg
  9. 59 0
      Assets/Models/UINew/TinyBox.jpg.meta
  10. BIN
      Assets/Models/UINew/button_blue.png
  11. 59 0
      Assets/Models/UINew/button_blue.png.meta
  12. BIN
      Assets/Models/UINew/button_green.png
  13. 59 0
      Assets/Models/UINew/button_green.png.meta
  14. BIN
      Assets/Models/UINew/button_red.png
  15. 59 0
      Assets/Models/UINew/button_red.png.meta
  16. BIN
      Assets/Models/UINew/button_yellow.png
  17. 59 0
      Assets/Models/UINew/button_yellow.png.meta
  18. BIN
      Assets/Models/UINew/equip_border.png
  19. 59 0
      Assets/Models/UINew/equip_border.png.meta
  20. BIN
      Assets/Models/UINew/equip_craft_border.png
  21. 59 0
      Assets/Models/UINew/equip_craft_border.png.meta
  22. BIN
      Assets/Models/UINew/equip_craft_border_unselected.png
  23. 59 0
      Assets/Models/UINew/equip_craft_border_unselected.png.meta
  24. BIN
      Assets/Models/UINew/equip_icon_count_bar_blue.png
  25. 59 0
      Assets/Models/UINew/equip_icon_count_bar_blue.png.meta
  26. BIN
      Assets/Models/UINew/equip_icon_count_bar_green.png
  27. 59 0
      Assets/Models/UINew/equip_icon_count_bar_green.png.meta
  28. BIN
      Assets/Models/UINew/equip_icon_count_black.png
  29. 59 0
      Assets/Models/UINew/equip_icon_count_black.png.meta
  30. BIN
      Assets/Models/UINew/equip_icon_count_gray.png
  31. 59 0
      Assets/Models/UINew/equip_icon_count_gray.png.meta
  32. BIN
      Assets/Models/UINew/equip_icon_selected.png
  33. 59 0
      Assets/Models/UINew/equip_icon_selected.png.meta
  34. 3 3
      Assets/Plugins/UnityPurchasing/generated/AppleTangle.cs
  35. 3 3
      Assets/Plugins/UnityPurchasing/generated/GooglePlayTangle.cs
  36. 9 0
      Assets/Plugins/iOS.meta
  37. BIN
      Assets/Resources/Prefabs/UI/EquipPanel/EquipPanel.prefab
  38. 2 2
      Assets/Resources/Textures/EquipIcon.meta
  39. BIN
      Assets/Resources/Textures/EquipIcon/0.jpg
  40. 59 0
      Assets/Resources/Textures/EquipIcon/0.jpg.meta
  41. BIN
      Assets/Resources/Textures/EquipIcon/1.psd
  42. 59 0
      Assets/Resources/Textures/EquipIcon/1.psd.meta
  43. BIN
      Assets/Resources/Textures/EquipIcon/2.psd
  44. 59 0
      Assets/Resources/Textures/EquipIcon/2.psd.meta
  45. BIN
      Assets/Resources/Textures/EquipIcon/3.psd
  46. 59 0
      Assets/Resources/Textures/EquipIcon/3.psd.meta
  47. BIN
      Assets/Resources/Textures/EquipIcon/4.psd
  48. 59 0
      Assets/Resources/Textures/EquipIcon/4.psd.meta
  49. 2 2
      Assets/Resources/XML/Config/All.meta
  50. 0 0
      Assets/Resources/XML/Config/All/buff_config.xml
  51. 2 2
      Assets/Resources/XML/Config/All/buff_config.xml.meta
  52. 44 0
      Assets/Resources/XML/Config/All/craft_config.xml
  53. 2 2
      Assets/Resources/XML/Config/All/craft_config.xml.meta
  54. 41 0
      Assets/Resources/XML/Config/All/equip_config.xml
  55. 2 2
      Assets/Resources/XML/Config/All/equip_config.xml.meta
  56. 0 0
      Assets/Resources/XML/Config/All/halo_config.xml
  57. 2 2
      Assets/Resources/XML/Config/All/halo_config.xml.meta
  58. 0 0
      Assets/Resources/XML/Config/All/power_config.xml
  59. 2 2
      Assets/Resources/XML/Config/All/power_config.xml.meta
  60. 0 0
      Assets/Resources/XML/Config/All/shop_config.xml
  61. 2 2
      Assets/Resources/XML/Config/All/shop_config.xml.meta
  62. 0 0
      Assets/Resources/XML/Config/All/skin_config.xml
  63. 2 2
      Assets/Resources/XML/Config/All/skin_config.xml.meta
  64. 188 0
      Assets/Resources/XML/Config/All/word_config.xml
  65. 2 2
      Assets/Resources/XML/Config/All/word_config.xml.meta
  66. 0 8
      Assets/Resources/XML/Config/Chinese/buff_config.xml.meta
  67. 0 35
      Assets/Resources/XML/Config/Chinese/craft_config.xml
  68. 0 37
      Assets/Resources/XML/Config/Chinese/halo_config.xml
  69. 0 170
      Assets/Resources/XML/Config/Chinese/power_config.xml
  70. 0 56
      Assets/Resources/XML/Config/Chinese/shop_config.xml
  71. 0 44
      Assets/Resources/XML/Config/Chinese/skin_config.xml
  72. 0 93
      Assets/Resources/XML/Config/English/buff_config.xml
  73. 0 35
      Assets/Resources/XML/Config/English/craft_config.xml
  74. 0 8
      Assets/Resources/XML/Config/English/halo_config.xml.meta
  75. 0 8
      Assets/Resources/XML/Config/English/shop_config.xml.meta
  76. 0 8
      Assets/Resources/XML/Config/English/skin_config.xml.meta
  77. BIN
      Assets/Scenes/Battle.unity
  78. 2 2
      Assets/ScreenShot.meta
  79. 14 14
      Assets/Scripts/Battle/BattleController.cs
  80. 1 1
      Assets/Scripts/Battle/Map/Buff/BuffManager.cs
  81. 7 0
      Assets/Scripts/Battle/Map/Craft/Craft.cs
  82. 17 2
      Assets/Scripts/Battle/Map/Craft/CraftConfigData.cs
  83. 12 2
      Assets/Scripts/Battle/Map/Craft/CraftData.cs
  84. 1 1
      Assets/Scripts/Battle/Map/Craft/CraftManager.cs
  85. 1 1
      Assets/Scripts/Battle/Map/Halo/HaloManager.cs
  86. 1 1
      Assets/Scripts/Battle/Map/Power/PowerDataManager.cs
  87. 1 1
      Assets/Scripts/Battle/Map/Skin/SkinManager.cs
  88. 9 2
      Assets/Scripts/Config.cs
  89. 0 31
      Assets/Scripts/UI/Buttons/ButtonBuyVIP.cs
  90. 1 1
      Assets/Scripts/UI/ChatPanel/ChatBar.cs
  91. 9 0
      Assets/Scripts/UI/EquipPanel.meta
  92. 43 0
      Assets/Scripts/UI/EquipPanel/EquipCraftItemRenderer.cs
  93. 12 0
      Assets/Scripts/UI/EquipPanel/EquipCraftItemRenderer.cs.meta
  94. 79 0
      Assets/Scripts/UI/EquipPanel/EquipData.cs
  95. 12 0
      Assets/Scripts/UI/EquipPanel/EquipData.cs.meta
  96. 75 0
      Assets/Scripts/UI/EquipPanel/EquipIcon.cs
  97. 12 0
      Assets/Scripts/UI/EquipPanel/EquipIcon.cs.meta
  98. 59 0
      Assets/Scripts/UI/EquipPanel/EquipInfo.cs
  99. 12 0
      Assets/Scripts/UI/EquipPanel/EquipInfo.cs.meta
  100. 174 0
      Assets/Scripts/UI/EquipPanel/EquipManager.cs

+ 39 - 61
Assets/DashGame/Kits/Language.cs

@@ -7,91 +7,69 @@ using System.Xml;
 public class Language
 {
 	
-	private static Dictionary<string, string> lanDict;
-	
-	public static void init ()
-	{
-		lanDict = new Dictionary<string, string>();
-	}
-	
-	public static string GetStr(string id)
-	{
-		if(lanDict == null) 
-		{
-			init ();
-		}
-		
-		if(!lanDict.ContainsKey(id))
-		{
-			return "Topic missing id["+id+"]";
-		}
-		return lanDict[id];
-	}
-
-
-
-
-
-
-
-
-	private static SystemLanguage defaultLan = SystemLanguage.English;
+	private static Dictionary<string, string> lanDict = new Dictionary<string, string>();
 	private static SystemLanguage currentLan;
-	private static XmlDocument xml;
+	private static bool initialized;
 	
 	public static void Init (SystemLanguage lan)
 	{
 		Debuger.Log("Init Language "+lan.ToString());
 
+		initialized = true;
 		currentLan = lan;
-		TextAsset textAsset = (TextAsset)Resources.Load("XML/Language/"+lan.ToString());
-		if(textAsset == null)
+
+		TextAsset textAsset = (TextAsset)Resources.Load("XML/Config/All/word_config");
+		XmlDocument xml = new XmlDocument();
+		xml.LoadXml(textAsset.text);
+
+		lanDict.Clear ();
+
+		XmlNode mapNode = xml.SelectSingleNode("data");
+		XmlNodeList nodeList = mapNode.SelectNodes("item");
+		for(int i=0; i<nodeList.Count; i++)
 		{
-			Debuger.LogError("Can not find language use default "+defaultLan);
-			textAsset = (TextAsset)Resources.Load("XML/Language/"+defaultLan.ToString());
-			currentLan = defaultLan;
+			XmlElement el = nodeList [i] as XmlElement;
+			string title = el.GetAttribute ("title");
+			string label = el.GetAttribute ("label");
+			string word = el.GetAttribute (lan.ToString());
+
+			string key = title + "_" + label;
+			if (lanDict.ContainsKey (key))
+				Debuger.LogError ("Language duplicate "+key);
+			else
+				lanDict.Add (key, word);
 		}
-		
-		if(xml == null)
-			xml = new XmlDocument();
-		xml.LoadXml(textAsset.text);
 	}
 
 	private static SystemLanguage GetSystemLanguage()
 	{
-		if (Config.USER_PORT == Config.USER_PORT_INTERNATIONAL)
-			return SystemLanguage.English;
-		else
-			return SystemLanguage.Chinese;
 //		return SystemLanguage.Chinese;
+		return SystemLanguage.English;
+
+		if(Application.systemLanguage == SystemLanguage.Chinese || Application.systemLanguage == SystemLanguage.ChineseSimplified)
+			return SystemLanguage.Chinese;
+
+		return SystemLanguage.English;
 	}
 
 	public static SystemLanguage GetCurrentLanguage()
 	{
-		if(xml == null)
+		if(!initialized)
 			Init (GetSystemLanguage());
 		return currentLan;
 	}
 	
 	public static string GetStr(string page, string id)
 	{
-		if(xml == null) 
-		{
-			Init (GetSystemLanguage());
-		}
-		
-		try
-		{
-			XmlNode pageNode = xml.SelectSingleNode("lan/"+page);
-			XmlNode node = pageNode.SelectSingleNode(id);
-			if(node != null)
-				return node.InnerText.Replace("\\n", "\n");
-		}
-		catch(Exception e)
-		{
-			Debuger.LogException(e);
-		}
-		
+		if (!initialized)
+			Init (GetSystemLanguage ());
+
+		string key = page + "_" + id;
+
+		if (lanDict.ContainsKey (key)) {
+			return lanDict [key];
+		} 
+
 		string error = "Topic missing page["+page+"] id["+id+"]";
 		Debuger.LogError(error);
 		return error;

+ 4 - 1
Assets/Editor/XlsxExporter/ExportConfig.cs

@@ -250,7 +250,7 @@ public class ExportConfig : EditorWindow
                         //Debug.Log(nvalue);
                     }
 
-                    if (i > 2 && item.GetAttribute("id") != "")
+					if (i > 2 && (item.GetAttribute("id") != "" || fileName.Contains("word_config")))
                     {
                         root.AppendChild(item);
                     }
@@ -276,6 +276,9 @@ public class ExportConfig : EditorWindow
 
     private void CheckDuplicate(string fileName, string id)
     {
+		if (fileName.Contains ("word_config"))
+			return;
+		
         if (idArr.Count < 1)
             return;
 

+ 532 - 0
Assets/Editor/XlsxExporter/ExportLanguage.cs

@@ -0,0 +1,532 @@
+using UnityEditor;
+using UnityEngine;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Excel;
+using System.Data;
+
+using System.Xml;
+using System.Threading;
+
+public class ExportLanguage : EditorWindow
+{
+    [MenuItem("QHJ/Design Tools/Export Language")]
+    public static void AddWindow()
+    {
+        ExportLanguage window = (ExportLanguage)EditorWindow.GetWindow(typeof(ExportLanguage), false, "Export Language");
+        window.Show();
+
+    }
+
+    public List<string> nameArray = new List<string>();
+
+    private string defaultPath;
+    private bool shouldDelete = true;
+    private bool isSuccess;
+    private string text;
+    private Dictionary<string, XmlNode> parentNodeDict;
+
+    private string lijiaUrl = "192.168.1.50";
+    private string localUrl = "192.168.1.41";
+    private string remoteUrl = "218.244.129.189";
+    private bool toLijia = false;
+    private bool toLocal = false;
+    private bool toRemote = false;
+    private string sourcePath = "";
+
+    void Awake()
+    {
+        defaultPath = Application.dataPath + @"/XlsxSource";
+        if (!Directory.Exists(defaultPath))
+            Directory.CreateDirectory(defaultPath);
+        GetObjectNameToArray<string>(defaultPath, "xlsx");
+    }
+
+    void OnGUI()
+    {
+        GUILayout.Label(new GUIContent("1、导出所有语言文件到language目录"));
+
+        shouldDelete = GUILayout.Toggle(shouldDelete, new GUIContent("覆盖已有文件"));
+
+        if (GUILayout.Button("立即导出", GUILayout.Height(30)))
+            CreateAllXml();
+
+        GUILayout.Space(10);
+        GUILayout.Label(new GUIContent("2、生成并上传服务器用语言文件"));
+        if (GUILayout.Button("生成服务器语言文件", GUILayout.Height(30)))
+            CreateAllPhp();
+
+        GUILayout.Space(10);
+
+        GUILayout.Label("选择要上传语言配置的服务器,可多选", GUILayout.Height(20));
+        toLijia = GUILayout.Toggle(toLijia, "上传到李嘉服务器");
+        toLocal = GUILayout.Toggle(toLocal, "上传到内网服务器");
+        GUILayout.BeginHorizontal();
+        toRemote = GUILayout.Toggle(toRemote, "上传到外网服务器");
+        GUILayout.ExpandWidth(false);
+        GUILayout.Label("[url]" + remoteUrl);
+        GUILayout.EndHorizontal();
+        GUILayout.BeginHorizontal();
+        if (GUILayout.Button("全选", GUILayout.Width(40), GUILayout.Height(20)))
+        {
+            toLijia = true;
+            toLocal = true;
+            toRemote = true;
+        }
+        if (GUILayout.Button("清空", GUILayout.Width(40), GUILayout.Height(20)))
+        {
+            toLijia = false;
+            toLocal = false;
+            toRemote = false;
+        }
+        GUILayout.EndHorizontal();
+
+        if (GUILayout.Button("上传配置到服务器", GUILayout.Height(30)))
+        {
+            sourcePath = Application.dataPath + @"/XlsxSource";
+            Dictionary<string, LanguageUploadData> data = new Dictionary<string, LanguageUploadData>();
+            if (toLijia)
+            {
+                LanguageUploadData data0 = new LanguageUploadData();
+                data0.targetUrl = lijiaUrl;
+                data0.sourcePath = sourcePath;
+                if (!data.ContainsKey(lijiaUrl))
+                    data.Add(lijiaUrl, data0);
+            }
+            if (toLocal)
+            {
+                LanguageUploadData data1 = new LanguageUploadData();
+                data1.targetUrl = localUrl;
+                data1.sourcePath = sourcePath;
+                if (!data.ContainsKey(localUrl))
+                    data.Add(localUrl, data1);
+            }
+            if (toRemote)
+            {
+                LanguageUploadData data2 = new LanguageUploadData();
+                data2.targetUrl = remoteUrl;
+                data2.sourcePath = sourcePath;
+                if (!data.ContainsKey(remoteUrl))
+                    data.Add(remoteUrl, data2);
+            }
+
+            if (!toLijia && !toLocal && !toRemote)
+                ShowNotification(new GUIContent("请至少选择一个上传地址"));
+
+            new LanguageUploadFiles(data);
+        }
+
+    }
+
+    /// <summary>
+    /// Return all files' name in target path in Assets//
+    /// </summary>
+    /// <returns>File name in array</returns>
+    /// <param name="path">Assets sublevel path</param>
+    /// <param name="pattern">File type filter</param>
+    /// <typeparam name="T">Class name</typeparam>
+    void GetObjectNameToArray<T>(string path, string pattern, string subDirectory = "")
+    {
+        try
+        {
+            //return file name by array in target folder & subfolder, it can be null
+            string[] files = Directory.GetFiles(path);
+
+            for (int i = 0; i < files.Length; i++)
+            {
+                string p = files[i];
+
+                //file
+                int index = p.LastIndexOf("\\");
+                string folder = p.Substring(0, index + 1);
+                string fileName = p.Substring(index + 1);
+
+                //if directoryEntries is not null, tempPaths cannot be null after splited
+                if (fileName.EndsWith(".meta"))
+                    continue;
+
+                string[] pathSplit = StringExtention.SplitWithString(fileName, ".");
+
+                if (pathSplit.Length > 1 && pathSplit[0].Contains("language"))
+                {
+                    nameArray.Add(subDirectory + "\\" + pathSplit[0]);
+                }
+            }
+
+            //recursion
+            string[] folders = Directory.GetDirectories(path);
+            for (int i = 0; i < folders.Length; i++)
+            {
+                string p = folders[i];
+                GetObjectNameToArray<T>(p, pattern, p.Substring(defaultPath.Length));
+            }
+        }
+        catch (System.IO.DirectoryNotFoundException)
+        {
+            Debug.Log("The path encapsulated in the " + path + "Directory object does not exist.");
+        }
+    }
+
+    /// <summary>
+    /// custom split string function
+    /// </summary>
+    private class StringExtention
+    {
+
+        public static string[] SplitWithString(string sourceString, string splitString)
+        {
+            string tempSourceString = sourceString;
+            List<string> arrayList = new List<string>();
+            string s = string.Empty;
+            while (sourceString.IndexOf(splitString) > -1)  //split
+            {
+                s = sourceString.Substring(0, sourceString.IndexOf(splitString));
+                sourceString = sourceString.Substring(sourceString.IndexOf(splitString) + splitString.Length);
+                arrayList.Add(s);
+            }
+            arrayList.Add(sourceString);
+            return arrayList.ToArray();
+        }
+    }
+
+    private void CreateAllXml()
+    {
+        foreach (string str in nameArray)
+        {
+            if (!str.Contains("language"))
+                continue;
+
+            CreateXml(str);
+        }
+
+        if (isSuccess)
+        {
+            ShowNotification(new GUIContent( "已成功导出!"));
+            DirectoryInfo di = new DirectoryInfo(defaultPath);
+            DirectoryInfo[] diArr = di.GetDirectories();
+            isSuccess = false;
+            AssetDatabase.Refresh();
+        }
+        else
+            ShowNotification(new GUIContent("文件有错误!"));
+    }
+
+    private void CreateXml(string fileName)
+    {
+        parentNodeDict = new Dictionary<string, XmlNode>();
+
+        string realName = StringExtention.SplitWithString(fileName, "\\")[2];
+        string filepath = Application.dataPath + @"/Resources/XML/Config/All/" + realName + ".xml";
+        text = "";
+
+        filepath = filepath.Replace("\\", "/");
+        string[] pathArr = filepath.Split('/');
+        string tempPath = "";
+        for(int i = 0; i < pathArr.Length; i++)
+        {
+            tempPath += pathArr[i] + "/";
+            if (i > 1 && i < pathArr.Length - 1)
+            {
+                if (!Directory.Exists(tempPath))
+                {
+                    Directory.CreateDirectory(tempPath);
+                }
+            }
+        }
+
+        if ((!File.Exists(filepath) && !shouldDelete) || shouldDelete)
+        {
+            XmlDocument xmlDoc = new XmlDocument();
+            tt(fileName, filepath, xmlDoc);
+
+            //try
+            //{
+            //    tt(fileName, filepath, xmlDoc);
+            //}
+            //catch (Exception e)
+            //{
+            //    text += "Exception " + e.Message;
+            //    Debug.Log("Exception " + e.Message);
+            //}
+        }
+    }
+
+    private void tt(string fileName, string filepath, XmlDocument xmlDoc)
+    {
+        FileStream stream = File.Open(Application.dataPath + @"/XlsxSource" + fileName + ".xlsx", FileMode.Open, FileAccess.Read);
+        IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
+
+        text += "\nexcelReader.ResultsCount is" + excelReader.ResultsCount + "\n";
+
+        text += "start excelReader. \n";
+
+        DataSet result = excelReader.AsDataSet();
+
+        text += "get result successful? result[" + result + "]";
+
+        text += "result columns count is " + result.Tables[0].Columns.Count;
+
+        int columns = result.Tables[0].Columns.Count;
+        int rows = result.Tables[0].Rows.Count;
+
+        //start create xml
+        XmlElement root = xmlDoc.CreateElement("lan");
+        XmlNode currentChildNode = null;
+        string parentNodeName = "";
+        for (int i = 0; i < rows; i++)
+        {
+            if (i == 0)
+            {
+                continue;
+            }
+
+            for (int j = 0; j < columns; j++)
+            {
+                string nvalue = result.Tables[0].Rows[i][j].ToString();
+
+                if (i > 2)
+                {
+                    switch (j)
+                    {
+                        case 0:
+                            if (!parentNodeDict.ContainsKey(nvalue))
+                            {
+                                if (nvalue == "")
+                                {
+                                    Debug.LogError("第" + (i + 1) + "行有错误" + "\nxmlDoc" + xmlDoc + "\n" + nvalue + "ij" + i + " " + j);
+                                    break;
+                                }
+                                XmlNode node = xmlDoc.CreateElement(nvalue);
+                                parentNodeDict.Add(nvalue, node);
+                            }
+                            parentNodeName = nvalue;
+                            break;
+                        case 1:
+                            if (nvalue == "")
+                            {
+                                Debug.LogError("第"+(i+1)+"行有错误"+"\nxmlDoc" + xmlDoc + "\n" + nvalue + "ij" + i + " " + j);
+                                break;
+                            }
+                                currentChildNode = xmlDoc.CreateElement(nvalue);
+                                parentNodeDict[parentNodeName].AppendChild(currentChildNode);
+                                                      
+                            break;
+                        case 2:
+                            XmlCDataSection cData = xmlDoc.CreateCDataSection(nvalue);
+                            currentChildNode.AppendChild(cData);
+                            break;
+                        case 3:
+                            XmlAttribute comment = xmlDoc.CreateAttribute("comm");
+                            comment.Value = nvalue;
+                            currentChildNode.Attributes.Append(comment);
+                            break;
+                    }
+
+                    //Debug.Log("labels[j] is " + labels[j] + ", nvalue is " + nvalue);
+                }
+                //Debug.Log(nvalue);
+            }
+
+        }
+
+        foreach (KeyValuePair<string, XmlNode> keyValue in parentNodeDict)
+            root.AppendChild(keyValue.Value);
+
+        xmlDoc.AppendChild(root);
+        xmlDoc.Save(filepath);
+        AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate);
+        //				AssetDatabase.ImportAsset(@"Assets/Resources/XML/Config" + fileName + ".xml", ImportAssetOptions.ForceUpdate);
+        //Debug.Log(fileName + ".xml is saved to " + filepath + ", count is " + idArr.Count);
+
+        isSuccess = true;
+    }
+
+    private void CreateAllPhp()
+    {
+        foreach (string str in nameArray)
+        {
+            if (!str.Contains("language"))
+                continue;
+
+            CreatePhp(str);
+        }
+
+        if (isSuccess)
+        {
+            ShowNotification(new GUIContent("已成功导出!"));
+            DirectoryInfo di = new DirectoryInfo(defaultPath);
+            DirectoryInfo[] diArr = di.GetDirectories();
+            isSuccess = false;
+        }
+        else
+            ShowNotification(new GUIContent("文件有错误!"));
+    }
+
+    private void CreatePhp(string fileName)
+    {
+        string realName = StringExtention.SplitWithString(fileName, "\\")[1];
+        string filepath = defaultPath + "/" + realName + ".php";
+        text = "";
+
+        filepath = filepath.Replace("\\", "/");
+        string[] pathArr = filepath.Split('/');
+        string tempPath = "";
+        for (int i = 0; i < pathArr.Length; i++)
+        {
+            tempPath += pathArr[i] + "/";
+            if (i > 1 && i < pathArr.Length - 1)
+            {
+                if (!Directory.Exists(tempPath))
+                {
+                    Directory.CreateDirectory(tempPath);
+                }
+            }
+        }
+
+        if ((!File.Exists(filepath) && !shouldDelete) || shouldDelete)
+        {
+            try
+            {
+                string fullText = "<?php\n";
+
+                FileStream stream = File.Open(Application.dataPath + @"/XlsxSource" + fileName + ".xlsx", FileMode.Open, FileAccess.Read);
+                IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
+
+                text += "\nexcelReader.ResultsCount is" + excelReader.ResultsCount + "\n";
+
+                text += "start excelReader. \n";
+
+                DataSet result = excelReader.AsDataSet();
+
+                text += "get result successful? result[" + result + "]";
+
+                text += "result columns count is " + result.Tables[0].Columns.Count;
+
+                int columns = result.Tables[0].Columns.Count;
+                int rows = result.Tables[0].Rows.Count;
+
+                //start create xml
+                for (int i = 0; i < rows; i++)
+                {
+                    if (i == 0)
+                    {
+                        continue;
+                    }
+
+                    for (int j = 0; j < columns; j++)
+                    {
+                        string nvalue = result.Tables[0].Rows[i][j].ToString();
+
+                        if (i > 2)
+                        {
+                            switch (j)
+                            {
+                                case 0:
+                                    fullText += "$LANG['" + nvalue + "|";
+                                    break;
+                                case 1:
+                                    fullText += nvalue + "'] = '";
+                                    break;
+                                case 2:
+                                    nvalue = nvalue.Replace("\'", "\\\'");
+                                    fullText += nvalue + "\';\n";
+                                    break;
+                            }
+
+                        }
+                    }
+
+                }
+
+                fullText += "?>";
+                StreamWriter sw = new StreamWriter(filepath);
+                string w = fullText;
+                sw.Write(w);
+                sw.Close();
+                AssetDatabase.Refresh(ImportAssetOptions.ForceUpdate);
+
+                isSuccess = true;
+            }
+            catch (Exception e)
+            {
+                text += "Exception " + e.Message;
+                Debug.Log("Exception " + e.Message);
+            }
+        }
+    }
+
+    private void HideNotification()
+    {
+        this.RemoveNotification();
+    }
+
+    void OnInspectorUpdate()
+    {
+        this.Repaint();
+    }
+
+    void OnDestroy()
+    {
+        EditorUtility.UnloadUnusedAssetsImmediate();
+    }
+
+}
+
+public class LanguageUploadData
+{
+    public string sourcePath;
+    public string targetUrl;
+
+    public string GetCmd()
+    {
+        string command = "@echo off\r\n" +
+            "echo open " + targetUrl + ">ftp.up\r\n" +
+            "echo gaoyuqin>>ftp.up\r\n" +
+            "echo Gaoyuqin123654>>ftp.up\r\n" +
+            //"echo Cd .\\User >>ftp.up\r\n" +
+            "echo binary>>ftp.up\r\n" +
+            "echo lcd \"" + sourcePath + "\">>ftp.up\r\n" +
+            "echo prompt>>ftp.up\r\n" +
+            "echo mkdir qwsk/lang/>>ftp.up\r\n" +
+            "echo cd qwsk/lang/>>ftp.up\r\n" +
+            "echo mput *.php>>ftp.up\r\n" +
+            "echo bye>>ftp.up\r\n" +
+            "FTP -s:ftp.up\r\n" +
+            "del ftp.up /q\r\n" +
+            "pause\r\n";
+
+        return command;
+    }
+}
+
+public class LanguageUploadFiles
+{
+    private Dictionary<string, LanguageUploadData> data;
+
+    private Thread s;
+    public LanguageUploadFiles(Dictionary<string, LanguageUploadData> data)
+    {
+        this.data = data;
+        s = new Thread(Run);
+        s.Start();
+    }
+
+    private void Run()
+    {
+        foreach (string key in data.Keys)
+        {
+            LanguageUploadData uploadData = data[key];
+            RunCmd(key, uploadData.GetCmd());
+            Debug.Log("【RunCmd】" + uploadData.sourcePath + " upload to----  【  " + uploadData.targetUrl + " 】");
+        }
+        s.Abort();
+    }
+
+    private void RunCmd(string key, string command)
+    {
+        Debug.Log(command);
+        File.WriteAllText(key + "-upload-language.bat", command, System.Text.Encoding.GetEncoding(936));
+        System.Diagnostics.Process.Start(key + "-upload-language.bat");
+    }
+}

+ 5 - 1
Assets/Scripts/UI/Buttons/ButtonBuyVIP.cs.meta → Assets/Editor/XlsxExporter/ExportLanguage.cs.meta

@@ -1,8 +1,12 @@
 fileFormatVersion: 2
-guid: 32875b85532f3644ea38570e0a0f0666
+guid: 1b40c0cda9a72d5419b600612de1135f
+timeCreated: 1491986065
+licenseType: Pro
 MonoImporter:
   serializedVersion: 2
   defaultReferences: []
   executionOrder: 0
   icon: {instanceID: 0}
   userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 7 - 0
Assets/Models/Powers.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: adc019b90144b36498f5480b11bd0807
+folderAsset: yes
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 7 - 0
Assets/Models/StartPage.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 97a390ccbd78eb444b302fed00fa7fec
+folderAsset: yes
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 2
Assets/Plugins/Android.meta → Assets/Models/UINew.meta

@@ -1,7 +1,7 @@
 fileFormatVersion: 2
-guid: 600e236e494e87e48a157c2b09960b5a
+guid: 6e643479261948d4ca3e47a20e358989
 folderAsset: yes
-timeCreated: 1483434823
+timeCreated: 1491910010
 licenseType: Pro
 DefaultImporter:
   userData: 

BIN
Assets/Models/UINew/TinyBox.jpg


+ 59 - 0
Assets/Models/UINew/TinyBox.jpg.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 9eefac25bc24c914188e42c9b4f59ae0
+timeCreated: 1492055762
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -1
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UINew/button_blue.png


+ 59 - 0
Assets/Models/UINew/button_blue.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 87a2da3ab30f9b343934dfc0767503ef
+timeCreated: 1491916535
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 10, y: 10, z: 10, w: 10}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UINew/button_green.png


+ 59 - 0
Assets/Models/UINew/button_green.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: c3551dfe774b29f42bca333cc5d4c292
+timeCreated: 1491919653
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 10, y: 10, z: 10, w: 10}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UINew/button_red.png


+ 59 - 0
Assets/Models/UINew/button_red.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 2c7761fb39f33dd4caf3d8961985c613
+timeCreated: 1491919662
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 10, y: 10, z: 10, w: 10}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UINew/button_yellow.png


+ 59 - 0
Assets/Models/UINew/button_yellow.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 9fbfe1b2cd8ee6045bc36122f6f59c37
+timeCreated: 1491917234
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 10, y: 10, z: 10, w: 10}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UINew/equip_border.png


+ 59 - 0
Assets/Models/UINew/equip_border.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 2b8b8be341546134b805b17913565968
+timeCreated: 1491903425
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UINew/equip_craft_border.png


+ 59 - 0
Assets/Models/UINew/equip_craft_border.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 8417a22ae87c24f4d9fbe90e1dee4068
+timeCreated: 1491913738
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 20, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UINew/equip_craft_border_unselected.png


+ 59 - 0
Assets/Models/UINew/equip_craft_border_unselected.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 17cb150097a855b4486fd061295ef143
+timeCreated: 1491914540
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 20, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UINew/equip_icon_count_bar_blue.png


+ 59 - 0
Assets/Models/UINew/equip_icon_count_bar_blue.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: d89c86dc890aa4b4e898ee12ff561240
+timeCreated: 1492055492
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 5, y: 3, z: 5, w: 5}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UINew/equip_icon_count_bar_green.png


+ 59 - 0
Assets/Models/UINew/equip_icon_count_bar_green.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 69fdc6420faa67b4585b1e46374cc4d4
+timeCreated: 1492055475
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 5, y: 3, z: 4, w: 5}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UINew/equip_icon_count_black.png


+ 59 - 0
Assets/Models/UINew/equip_icon_count_black.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: cc244380cc34b06409dd2e5c7a0e1f3e
+timeCreated: 1492055453
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 3, y: 3, z: 3, w: 3}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UINew/equip_icon_count_gray.png


+ 59 - 0
Assets/Models/UINew/equip_icon_count_gray.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: ffcb4c77e7929494ab623f018a4bbe04
+timeCreated: 1492056752
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 6, y: 6, z: 6, w: 6}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Models/UINew/equip_icon_selected.png


+ 59 - 0
Assets/Models/UINew/equip_icon_selected.png.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 526ca09390abc9248b85f0cf98d2c673
+timeCreated: 1492065624
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 6, y: 6, z: 6, w: 6}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 3 - 3
Assets/Plugins/UnityPurchasing/generated/AppleTangle.cs

@@ -4,9 +4,9 @@
 namespace UnityEngine.Purchasing.Security {
     public class AppleTangle
     {
-        private static byte[] data = System.Convert.FromBase64String("23e5dwb88PD09PHBk8D6wfj38qSI0ZCCgoSclILRkJKSlIGFkJ+SlLgph27C5ZRQhmU43PPy8PHwUnPwln75RdEGOl3d0Z6BR87wwX1Gsj5z8PH3+Nt3uXcGkpX08MFwA8Hb9/na9/D09Pbz8OfvmYWFgYLL3t6GhobfkIGBnZTfkp6c3pCBgZ2UkpB66HgvCLqdBPZa08HzGenPCaH4IpOdlNGChZCflZCDldGFlIOcgtGQ/mzMAtq42es5Dz9ESP8or+0nOsz19+LzpKLA4sHg9/Kk9fvi+7CBgcFz9UrBc/JSUfLz8PPz8PPB/Pf4nZTRuJ+S38DXwdX38qT1+uLssIHVExogRoEu/rQQ1jsAnIkcFkTm5sHg9/Kk9fvi+7CBgZ2U0bifkt/A0bKwwXPw08H89/jbd7l3Bvzw8PA46IMErP8kjq5qA9TyS6R+vKz8APfB/vfypOzi8PAO9fTB8vDwDsHsMZLChgbL9t2nGiv+0P8rS4LovkTuYCrvtqEa9ByviHXcGsdTpr2kHaOUnZiQn5KU0Z6f0YWZmILRkpSD/Pf423e5dwb88PD09PHyc/Dw8a1kb4v9VbZ6qiXnxsI6Nf68P+WYIMLHq8GTwPrB+PfypPX34vOkosDi3sFwMvf52vfw9PT28/PBcEfrcEJAwakdq/XDfZlCfuwvlIIOlq+UTYGdlNGjnp6F0bKwwe/m/MHHwcXDKMeOMHakKFZoSMOzCikkgG+PUKO0j+69mqFnsHg1hZP64XKwdsJ7cN3RkpSDhZiXmJKQhZTRgZ6dmJKIRMtcBf7/8WP6QNDn34Ukzfwqk+eoVvT4jeaxp+DvhSJGetLKtlIknk8FgmofI5X+Ooi+xSlTzwiJDpo5RupMYrPV49s2/uxHvG2vkjm6ceaFmJeYkpCFlNGTiNGQn4jRgZCDhXHl2iGYtmWH+A8FmnzfsVcGtryOi8Fz8IfB//fypOz+8PAO9fXy8/BZLY/TxDvUJCj+J5olU9XS4AZQXd+xVwa2vI75r8Hu9/Kk7NL16cHn58Hl9/Kk9fLi/LCBgZ2U0aOenoX5r8Fz8OD38qTs0fVz8PnBc/D1wdfB1ffypPX64uywgYGdlNGylIOF9/Kk7P/15/Xl2iGYtmWH+A8FmnyYl5iSkIWYnp/RsISFmZ6DmIWIwIGdlNGylIOFmJeYkpCFmJ6f0bCElcTS5LrkqOxCZQYHbW8+oUswqaGFmZ6DmIWIwOfB5ffypPXy4vywgfYdjMhyeqLRIsk1QE5rvvuaDtoN0ZCfldGSlIOFmJeYkpCFmJ6f0YHRnpfRhZmU0YWZlJ/RkIGBnZiSkIOQkoWYkpTRgoWQhZSclJ+Fgt/BfoJwkTfqqvjeY0MJtbkBkclv5ATEw8DFwcLHq+b8wsTBw8HIw8DFwe50cnTqaMy2xgNYarF/3SVAYeMp9PHyc/D+8cFz8Pvzc/Dw8RVgWPjM15bRe8KbBvxzPi8aUt4IopuqlZ+V0ZKen5WYhZien4LRnpfRhIKUx2i93IlGHH1qLQKGagOHI4bBvjBaUoBjtqKkMF7esEIJChKBPBdSvY6wWWkIIDuXbdWa4CFSShXq2zLuoVt7JCsVDSH49sZBhITQ");
-        private static int[] order = new int[] { 1,40,27,21,34,35,36,16,42,22,27,40,21,53,22,53,19,29,57,53,38,47,57,42,37,26,36,58,36,44,42,52,50,59,39,50,36,54,52,47,59,58,42,59,47,52,50,51,52,58,50,55,53,58,57,56,59,58,58,59,60 };
-        private static int key = 241;
+        private static byte[] data = System.Convert.FromBase64String("0p2U0oaal9KGmpec0pOCgp6bkZPHwMPGwsHEqOX/wcfCwMLLwMPGwkXpT2Gw1uDYNf3vRL9urJE6uXLlcubZIpu1ZoT7DAaZf9yyVAW1v43SsbPCcPPQwv/0+9h0unQF//Pz8/fy8XDz/fLCcPP48HDz8/IWY1v7hpqdgJuGi8Pkwub08af28eH/s4L0wv308afv4fPzDfb3wvHz8w3C78HEqMKQw/nC+/Txp/b04fCnocPhMpHBhQXI9d6kGSj90/woSIHrvUcrxI0zdacrVWtLwLAJKieDbIxToPqswnDz4/Txp+/S9nDz+sJw8/bC9R6Py3F5odIhyjZDTWi9+JkN2Q7P1JXSeMGYBf9wPSwZUd0LoZiplsJw9knCcPFRUvHw8/Dw8/DC//T7lX36RtIFOV7e0p2CRM3zwn5FsT2Ak5GGm5GX0oGGk4aXn5echoHcwsLj9PGn9vjh+LOCgp6X0ruckdzDiMJw84TC/PTxp+/98/MN9vbx8PNDwqoeqPbAfppBfe8sl4ENlayXTp6X0ruckdzD1MLW9PGn9vnh77OChpuUm5GThpfSkIvSk5yL0oKTgIbSk5yW0pGXgIablJuRk4abnZzSgt7SkZeAhpuUm5GThpfSgp2em5GLq1X3+47lsqTj7IYhRXnRybVRJ52CnpfSsZeAhpuUm5GThpudnNKzh4Kel9KgnZ2G0rGzwuzl/8LEwsbAeet7LAu5ngf1WdDC8BrqzAqi+yFw8/L0+9h0unQFkZb388JzAMLY9IWF3JOCgp6X3JGdn92TgoKel5GToJeem5OckZfSnZzShpqbgdKRl4DcslQFtb+N+qzC7fTxp+/R9urC5FlRg2C1oaczXd2zQQoJEYI/FFG+7WMp7LWiGfcfrIt23xnEUKW+px67KoRtweaXU4VmO9/w8fPy81Fw8zvrgAev/CeNrWkA1/FIp32/r/8Di9KTgYGHn5eB0pORkZeChpOckZeblJuRk4abnZzSs4eGmp2Am4aLw5bH0ee556vvQWYFBG5sPaJIM6qiZ2yI/la1eakm5MXBOTb9vzzmmyNMBoFpHCCW/TmLvcYqUMwLig2ZOuTC5vTxp/bx4f+zgoKel9KgnZ2G9vTh8Kehw+HC4/Txp/b44fizgoJaLozQxzjXJyv9JJkmUNbR4wVTXv/0+9h0unQF//Pz9/fy8XDz8/Ku+tn08/f39fDz5OyahoaCgcjd3YVHyF8G/fzyYPlD0+TchifO/ymQ5LeM7b6ZomSzezaGkPnicbN1wXhz2HS6dAX/8/P39/LCkMP5wvv08af08afv/Pbk9ubZIpu1ZoT7DAaZf+13cXfpa8+1xQBbabJ83iZDYuAqkJ6X0oGGk5yWk4CW0oaXgJ+B0pONs1pqCyM4lG7WmeMiUUkW6dgx7dYQGSNFgi39txPVOAOfih8VR+Xl1MLW9PGn9vnh77OCgp6X0rGXgIacltKRnZyWm4abnZyB0p2U0oeBl8Rrvt+KRR9+aS4BhWkAhCCFwr0z/W/PAdm72ug6DDxHS/wrrO4kOc99gXOSNOmp+91gQAq2ugKSymznB93CczH0+tn08/f39fDwwnNE6HNBolh4JygWDiL79cVCh4fT");
+        private static int[] order = new int[] { 41,7,59,32,13,14,14,29,8,57,58,33,51,56,41,21,46,57,28,26,32,39,45,44,52,56,41,46,34,36,38,31,52,39,46,41,40,39,52,46,50,51,59,54,47,51,47,56,50,52,52,59,57,53,58,58,57,59,58,59,60 };
+        private static int key = 242;
 
         public static byte[] Data() {
             return Obfuscator.DeObfuscate(data, order, key);

+ 3 - 3
Assets/Plugins/UnityPurchasing/generated/GooglePlayTangle.cs

@@ -4,9 +4,9 @@
 namespace UnityEngine.Purchasing.Security {
     public class GooglePlayTangle
     {
-        private static byte[] data = System.Convert.FromBase64String("KqmnqJgqqaKqKqmpqApzLEgWh2k3tVfyC48azjf/m0lUOknQe5NG1W84vbWb+1yU1xRFi2n06nppleFvp56ilOkjo8ZlmgEkf2FRsPF9tVmYKqmKmKWuoYIu4C5fpampqa2oq553Fm/Zj/0Q729tCutbZDsczO+gs69u2LdZarBFgMCy8OG7zkvvwj1nG1es3AK+tsAlSB/+B/jT9YcD7G3jGIUp79wPe1XYewq1b7Z7GP3tPYcpUh5AeX0/w8Imjc5eAlpZN3fWpO1dy2cFmg0D1vR/J1Btdmj+ge2UrPdVfQclYAK4mAV0cHEhvYGuRkGWd3CayadDdLQu2JFe/j/9XZY9EZ39NAB8hj5ROZLe0cSIwCUzS2MUOL8ko40a+6qrqaip");
-        private static int[] order = new int[] { 1,13,8,4,13,6,10,7,8,10,12,13,12,13,14 };
-        private static int key = 168;
+        private static byte[] data = System.Convert.FromBase64String("eMJsF1sFPDh6hodjyIsbRx8ccjJy8BK3Tspfi3K63gwRfwyVPtYDkHhU2LhxRTnDexR815uUgc2FYHYOIl4S6ZlH+/OFYA1au0K9lrDCRqni2+fRrGbmgyDfRGE6JBT1tDjwHCimXcBsqplKPhCdPk/wKvM+Xbio2zJTKpzKuFWqKihPrh4hflmJquX26iud8hwv9QDFhfe1pP6LDqqHeG/s4u3db+zn72/s7O1PNmkNU8Isk+GoGI4iQN9IRpOxOmIVKDMtu8QDBNMyNd+M4gYx8Wud1Bu7ergY0yp9+PDevhnRklEAziyxrz8s0KQq3W/sz93g6+THa6VrGuDs7Ozo7e6o0emyEDhCYCVH/d1AMTU0ZPjE6yZRffph5shfvu/u7O3s");
+        private static int[] order = new int[] { 5,13,11,7,4,11,6,10,13,12,12,13,13,13,14 };
+        private static int key = 237;
 
         public static byte[] Data() {
             return Obfuscator.DeObfuscate(data, order, key);

+ 9 - 0
Assets/Plugins/iOS.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 044ce91500562494bbfb926267cf2c0f
+folderAsset: yes
+timeCreated: 1426488285
+licenseType: Free
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Resources/Prefabs/UI/EquipPanel/EquipPanel.prefab


+ 2 - 2
Assets/Resources/XML/Config/Chinese.meta → Assets/Resources/Textures/EquipIcon.meta

@@ -1,7 +1,7 @@
 fileFormatVersion: 2
-guid: ecc8ee9b6bbb4aa4e875d42727175d11
+guid: 93b4153e36635484d987bff477164a28
 folderAsset: yes
-timeCreated: 1467614226
+timeCreated: 1491903424
 licenseType: Pro
 DefaultImporter:
   userData: 

BIN
Assets/Resources/Textures/EquipIcon/0.jpg


+ 59 - 0
Assets/Resources/Textures/EquipIcon/0.jpg.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: c36936102ab90be45978ee55bf4831a9
+timeCreated: 1492070848
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Resources/Textures/EquipIcon/1.psd


+ 59 - 0
Assets/Resources/Textures/EquipIcon/1.psd.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: 893be23512421ad46b0d9324dce0dcb4
+timeCreated: 1492051717
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Resources/Textures/EquipIcon/2.psd


+ 59 - 0
Assets/Resources/Textures/EquipIcon/2.psd.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: d1c241e2ead051f448c0d644291bc82a
+timeCreated: 1492052040
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Resources/Textures/EquipIcon/3.psd


+ 59 - 0
Assets/Resources/Textures/EquipIcon/3.psd.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: a2d64fb84bee2f644a3707c3bdbb1619
+timeCreated: 1492052038
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
Assets/Resources/Textures/EquipIcon/4.psd


+ 59 - 0
Assets/Resources/Textures/EquipIcon/4.psd.meta

@@ -0,0 +1,59 @@
+fileFormatVersion: 2
+guid: bce1f4ed5d7ec114085b2ed78bec8e7c
+timeCreated: 1492052039
+licenseType: Pro
+TextureImporter:
+  fileIDToRecycleName: {}
+  serializedVersion: 2
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    linearTexture: 0
+    correctGamma: 0
+    fadeOut: 0
+    borderMipMap: 0
+    mipMapFadeDistanceStart: 1
+    mipMapFadeDistanceEnd: 3
+  bumpmap:
+    convertToNormalMap: 0
+    externalNormalMap: 0
+    heightScale: 0.25
+    normalMapFilter: 0
+  isReadable: 0
+  grayScaleToAlpha: 0
+  generateCubemap: 0
+  cubemapConvolution: 0
+  cubemapConvolutionSteps: 7
+  cubemapConvolutionExponent: 1.5
+  seamlessCubemap: 0
+  textureFormat: -3
+  maxTextureSize: 2048
+  textureSettings:
+    filterMode: -1
+    aniso: -1
+    mipBias: -1
+    wrapMode: 1
+  nPOTScale: 0
+  lightmap: 0
+  rGBM: 0
+  compressionQuality: 50
+  allowsAlphaSplitting: 0
+  spriteMode: 1
+  spriteExtrude: 1
+  spriteMeshType: 1
+  alignment: 0
+  spritePivot: {x: 0.5, y: 0.5}
+  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+  spritePixelsToUnits: 100
+  alphaIsTransparency: 1
+  spriteTessellationDetail: -1
+  textureType: 8
+  buildTargetSettings: []
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+  spritePackingTag: 
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 2
Assets/Resources/XML/Config/English.meta → Assets/Resources/XML/Config/All.meta

@@ -1,7 +1,7 @@
 fileFormatVersion: 2
-guid: 2198d193ff43efb4c971f246f12288ac
+guid: aeed459f35ee16746970d37d579be397
 folderAsset: yes
-timeCreated: 1467614464
+timeCreated: 1491986784
 licenseType: Pro
 DefaultImporter:
   userData: 

+ 0 - 0
Assets/Resources/XML/Config/Chinese/buff_config.xml → Assets/Resources/XML/Config/All/buff_config.xml


+ 2 - 2
Assets/Resources/XML/Config/English/buff_config.xml.meta → Assets/Resources/XML/Config/All/buff_config.xml.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: a499533be8fc98e4080ffdd6d91a7510
-timeCreated: 1467614464
+guid: 319c14a89b1bf0e44bbf4f4b26fdbe94
+timeCreated: 1491986784
 licenseType: Pro
 TextScriptImporter:
   userData: 

+ 44 - 0
Assets/Resources/XML/Config/All/craft_config.xml

@@ -0,0 +1,44 @@
+<data>
+  <item id="1" name="Dasher" description="看看你的头硬还是我的拳头硬。" hp="150" dmg="50" equip="111123" attack="10" power="11|12" model="Dasher" />
+  <item id="2" name="Hunter" description="一旦猎物被盯上就不可能逃掉。" hp="90" dmg="110" equip="222113" attack="20" power="21|22" model="Hunter" />
+  <item id="3" name="Thunder" description="不要乱动,小心触电。" hp="80" dmg="120" equip="222213" attack="30" power="31|32" model="Thunder" />
+  <item id="4" name="Assassin" description="看不见的危险才是最大的危险。" hp="100" dmg="100" equip="222113" attack="40" power="41|42" model="Assassin" />
+  <item id="5" name="Medic" description="看来你需要修理一下了。" hp="120" dmg="80" equip="112223" attack="50" power="51|52" model="Medic" />
+  <item id="6" name="Spider" description="有人要自投罗网了" hp="110" dmg="90" equip="222113" attack="60" power="61|62" model="Spider" />
+  <item id="7" name="Ice" description="寒潮来袭" hp="100" dmg="100" equip="222113" attack="70" power="71|72" model="Ice" />
+  <item id="8" name="Flame" description="融化一切" hp="130" dmg="70" equip="111223" attack="80" power="81|82" model="Flame" />
+  <item id="1001" name="小蜘蛛" description="小蜘蛛" hp="33" dmg="33" equip="" attack="1001" power="" model="TinySpider" />
+  <item id="1002" name="防御塔" description="防御塔" hp="200" dmg="200" equip="" attack="1002" power="" model="Door" />
+  <comment>
+    <id>
+ID
+</id>
+    <name>
+名称
+</name>
+    <description>
+描述(30字以内)
+</description>
+    <hp>
+生命
+</hp>
+    <dmg>
+伤害
+</dmg>
+    <equip>
+装备推荐
+1=生命
+2=伤害
+3=移动
+</equip>
+    <attack>
+普通攻击
+</attack>
+    <power>
+技能
+</power>
+    <model>
+模型
+</model>
+  </comment>
+</data>

+ 2 - 2
Assets/Resources/XML/Config/English/craft_config.xml.meta → Assets/Resources/XML/Config/All/craft_config.xml.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: 9c8f267be1486b7408fdc6512b6cbb15
-timeCreated: 1467614464
+guid: ac6122e7b7179264db4a61422d8ebe33
+timeCreated: 1491986784
 licenseType: Pro
 TextScriptImporter:
   userData: 

+ 41 - 0
Assets/Resources/XML/Config/All/equip_config.xml

@@ -0,0 +1,41 @@
+<data>
+  <item id="1" name="light iron armor" quality="" icon="" hp="1" hp_up="1.5" dmg="" dmg_up="" />
+  <item id="2" name="iron armor" quality="1" icon="" hp="9" hp_up="2" dmg="" dmg_up="" />
+  <item id="3" name="heavy iron armor" quality="2" icon="" hp="17" hp_up="2.5" dmg="" dmg_up="" />
+  <item id="4" name="super iron armor" quality="3" icon="" hp="25" hp_up="3" dmg="" dmg_up="" />
+  <comment>
+    <id>
+ID
+</id>
+    <name>
+名称
+</name>
+    <quality>
+品质
+普通=0(不填)
+精良=1
+史诗=2
+传说=3
+</quality>
+    <icon>
+图标
+不填与id一样
+</icon>
+    <hp>
+生命
+初始值
+</hp>
+    <hp_up>
+生命
+成长值
+</hp_up>
+    <dmg>
+伤害
+初始值
+</dmg>
+    <dmg_up>
+伤害
+成长值
+</dmg_up>
+  </comment>
+</data>

+ 2 - 2
Assets/Resources/XML/Config/Chinese/power_config.xml.meta → Assets/Resources/XML/Config/All/equip_config.xml.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: 799aa50fff2fe1c48be10fae95d08c89
-timeCreated: 1467614227
+guid: a6cfbfbfc4f28a44e8a0d5d4db5208cc
+timeCreated: 1491986785
 licenseType: Pro
 TextScriptImporter:
   userData: 

+ 0 - 0
Assets/Resources/XML/Config/English/halo_config.xml → Assets/Resources/XML/Config/All/halo_config.xml


+ 2 - 2
Assets/Resources/XML/Config/Chinese/halo_config.xml.meta → Assets/Resources/XML/Config/All/halo_config.xml.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: 417de4eb5d362414f87e2cd5e5f6c592
-timeCreated: 1467614227
+guid: 4c97383c5ffd3d24e9e579bd5542c9d2
+timeCreated: 1491986785
 licenseType: Pro
 TextScriptImporter:
   userData: 

+ 0 - 0
Assets/Resources/XML/Config/English/power_config.xml → Assets/Resources/XML/Config/All/power_config.xml


+ 2 - 2
Assets/Resources/XML/Config/English/power_config.xml.meta → Assets/Resources/XML/Config/All/power_config.xml.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: 24610baba7686684683030722ecb75ac
-timeCreated: 1467614465
+guid: 744a1702a4a64554d8a96546779aa977
+timeCreated: 1491986786
 licenseType: Pro
 TextScriptImporter:
   userData: 

+ 0 - 0
Assets/Resources/XML/Config/English/shop_config.xml → Assets/Resources/XML/Config/All/shop_config.xml


+ 2 - 2
Assets/Resources/XML/Config/Chinese/shop_config.xml.meta → Assets/Resources/XML/Config/All/shop_config.xml.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: 09ffe2efe95a69d46bd9bbd01020c52d
-timeCreated: 1467614227
+guid: 9977036f455f58d4188889a6736ac877
+timeCreated: 1491986786
 licenseType: Pro
 TextScriptImporter:
   userData: 

+ 0 - 0
Assets/Resources/XML/Config/English/skin_config.xml → Assets/Resources/XML/Config/All/skin_config.xml


+ 2 - 2
Assets/Resources/XML/Config/Chinese/skin_config.xml.meta → Assets/Resources/XML/Config/All/skin_config.xml.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: 47dedc39c2872bd4e83c488239649c72
-timeCreated: 1467614273
+guid: 37b579e8383b2654789fdeb3f00dee1d
+timeCreated: 1491986787
 licenseType: Pro
 TextScriptImporter:
   userData: 

+ 188 - 0
Assets/Resources/XML/Config/All/word_config.xml

@@ -0,0 +1,188 @@
+<data>
+  <item title="Public" label="yes" English="Yes" Chinese="是" />
+  <item title="Public" label="no" English="No" Chinese="否" />
+  <item title="Public" label="ok" English="Ok" Chinese="确定" />
+  <item title="Public" label="cancel" English="Cancel" Chinese="取消" />
+  <item title="Public" label="continue" English="Continue" Chinese="继续" />
+  <item title="Public" label="back" English="Back" Chinese="返回" />
+  <item title="Public" label="noFunction" English="Coming soon" Chinese="功能即将开放" />
+  <item title="Public" label="accept" English="Accept" Chinese="接受" />
+  <item title="Public" label="refuse" English="Refuse" Chinese="拒绝" />
+  <item title="Public" label="loading" English="Loading..." Chinese="加载中..." />
+  <item title="Public" label="share" English="Share" Chinese="分享" />
+  <item title="Public" label="play" English="Play" Chinese="播放" />
+  <item title="Public" label="replay" English="Replay" Chinese="回放" />
+  <item title="Public" label="exit" English="Exit" Chinese="离开" />
+  <item title="Public" label="watch" English="Watch" Chinese="观看" />
+  <item title="Time" label="day" English="day" Chinese="日" />
+  <item title="Time" label="hour" English="hour" Chinese="小时" />
+  <item title="Time" label="minute" English="minute" Chinese="分" />
+  <item title="Time" label="second" English="second" Chinese="秒" />
+  <item title="Time" label="days" English="days" Chinese="日" />
+  <item title="Time" label="hours" English="hours" Chinese="小时" />
+  <item title="Time" label="minutes" English="minutes" Chinese="分" />
+  <item title="Time" label="seconds" English="seconds" Chinese="秒" />
+  <item title="Time" label="d" English="d" Chinese="天" />
+  <item title="Time" label="h" English="h" Chinese="时" />
+  <item title="Time" label="min" English="min" Chinese="分" />
+  <item title="Time" label="justNow" English="Just now" Chinese="刚刚" />
+  <item title="Time" label="ago" English="ago" Chinese="之前" />
+  <item title="Login" label="toGCUser" English="This Game Center account already has rank {0} player. \nDo you want change to that player?" Chinese="该Game Center账号已经有积分 {0}角色. \n你要换这个角色吗?" />
+  <item title="Menu" label="vip" English="VIP" Chinese="VIP" />
+  <item title="Menu" label="free" English="FREE" Chinese="免费" />
+  <item title="Menu" label="active" English="actived" Chinese="激活" />
+  <item title="Menu" label="startBtn" English="START FIGHT" Chinese="开始战斗" />
+  <item title="LeaderBoard" label="title" English="Leaderboard" Chinese="排行榜" />
+  <item title="LeaderBoard" label="myRank" English="My rank" Chinese="我的排名" />
+  <item title="ClanPanel" label="tab1Btn0" English="Create Array" Chinese="创建纵队" />
+  <item title="ClanPanel" label="tab1Btn1" English="Join Array" Chinese="加入纵队" />
+  <item title="ClanPanel" label="tab2Btn0" English="My Array" Chinese="我的纵队" />
+  <item title="ClanPanel" label="tab2Btn1" English="Find Array" Chinese="搜索纵队" />
+  <item title="ClanPanel" label="nameLabel" English="Array Name:" Chinese="纵队名字:" />
+  <item title="ClanPanel" label="descLabel" English="Description:" Chinese="描述:" />
+  <item title="ClanPanel" label="create" English="Create" Chinese="创建" />
+  <item title="ClanPanel" label="edit" English="Edit" Chinese="编辑" />
+  <item title="ClanPanel" label="emptyName" English="The Array Name can not empty!" Chinese="纵队名字不能为空!" />
+  <item title="ClanPanel" label="menberLabel" English="Menbers:" Chinese="成员:" />
+  <item title="ClanPanel" label="findLabel" English="Find Array:" Chinese="搜索纵队:" />
+  <item title="ClanPanel" label="findBtnLabel" English="Find" Chinese="搜索" />
+  <item title="ClanPanel" label="join" English="Join" Chinese="加入" />
+  <item title="ClanPanel" label="leave" English="Leave" Chinese="离开" />
+  <item title="ClanPanel" label="kick" English="Do you want kick %NICK% out of array?" Chinese="你要让%NICK%离开纵队吗?" />
+  <item title="ClanPanel" label="findTips" English="Type Array ID or the first letters of the Array's name" Chinese="输入纵队ID或者纵队名字的前几个字" />
+  <item title="ClanPanel" label="rankLabel" English="Array Rank:" Chinese="纵队积分:" />
+  <item title="ClanPanel" label="idLabel" English="Array ID:" Chinese="纵队ID:" />
+  <item title="ClanPanel" label="requireLabel" English="Entry requirement:" Chinese="进入要求:" />
+  <item title="ClanPanel" label="typeLabel" English="Type:" Chinese="类型:" />
+  <item title="ClanPanel" label="type0" English="Anyone can join" Chinese="任何人都可以加入" />
+  <item title="ClanPanel" label="type1" English="Join by request" Chinese="只有被批准才能加入" />
+  <item title="ClanPanel" label="type2" English="Closed" Chinese="不可加入" />
+  <item title="ChatPanel" label="social" English="Social" Chinese="社交" />
+  <item title="ChatPanel" label="chat" English="Chat" Chinese="聊天" />
+  <item title="ChatPanel" label="follow" English="Follow" Chinese="关注" />
+  <item title="ChatPanel" label="fans" English="Fans" Chinese="粉丝" />
+  <item title="ChatPanel" label="array" English="Array" Chinese="纵队" />
+  <item title="ChatPanel" label="say" English="say:" Chinese="说:" />
+  <item title="ChatPanel" label="placeholder" English="Tap here to chat..." Chinese="点击这里聊天..." />
+  <item title="ChatPanel" label="replayTitle" English="'s battle replay" Chinese="的战斗回放" />
+  <item title="ChatPanel" label="createClanTip" English="Create or join a Array and get stronger." Chinese="创建或加入一个纵队,一起变得强大." />
+  <item title="ChatPanel" label="createClanLabel" English="Join Now" Chinese="立即加入" />
+  <item title="ChatPanel" label="findLabel" English="Find player:" Chinese="搜索玩家:" />
+  <item title="ChatPanel" label="findBtnLabel" English="Find" Chinese="搜索" />
+  <item title="ChatPanel" label="findTip" English="Type player ID or the first letters of the player's name" Chinese="输入玩家ID或者玩家名字的前几个字" />
+  <item title="ChatPanel" label="chatWith" English="Chat with %NICK%" Chinese="和 %NICK%聊天" />
+  <item title="ChatPanel" label="findPlayer" English="Find Player" Chinese="搜索玩家" />
+  <item title="ChatPanel" label="findMorePlayer" English="Find more players" Chinese="寻找更多的玩家" />
+  <item title="UserPanel" label="profile" English="Profile" Chinese="玩家简介" />
+  <item title="UserPanel" label="changeName" English="Change name" Chinese="修改名称" />
+  <item title="UserPanel" label="unfollow" English="Unfollow" Chinese="取消关注" />
+  <item title="UserPanel" label="follow" English="Follow" Chinese="关注" />
+  <item title="UserPanel" label="followed" English="You have followed %NICK%." Chinese="你已经关注了 %NICK%." />
+  <item title="UserPanel" label="unfollowed" English="You have canceled the follow of %NICK%." Chinese="你取消了对%NICK%的关注." />
+  <item title="UserPanel" label="win" English="Win" Chinese="胜利" />
+  <item title="UserPanel" label="changeNick" English="Type the name you want to change" Chinese="输入你的新名字" />
+  <item title="Invite" label="navTab" English="Invite player fight with you" Chinese="邀请玩家一起战斗" />
+  <item title="Invite" label="invite" English="Invite" Chinese="邀请" />
+  <item title="Invite" label="state0" English="&lt;color=#74FF51FF&gt;Online&lt;/color&gt;" Chinese="&lt;color=#74FF51FF&gt;在线&lt;/color&gt;" />
+  <item title="Invite" label="state1" English="&lt;color=#CDEBFFFF&gt;In battle&lt;/color&gt;" Chinese="&lt;color=#CDEBFFFF&gt;战斗中&lt;/color&gt;" />
+  <item title="Invite" label="state2" English="&lt;color=#606060FF&gt;Offline&lt;/color&gt;" Chinese="&lt;color=#606060FF&gt;离线&lt;/color&gt;" />
+  <item title="Invite" label="nameState0" English="%NICK%" Chinese="%NICK%" />
+  <item title="Invite" label="nameState1" English="&lt;color=#FF9800FF&gt;%NICK%&lt;/color&gt;" Chinese="&lt;color=#FF9800FF&gt;%NICK%&lt;/color&gt;" />
+  <item title="Invite" label="nameState2" English="&lt;color=#606060FF&gt;%NICK%&lt;/color&gt;" Chinese="&lt;color=#606060FF&gt;%NICK%&lt;/color&gt;" />
+  <item title="Invite" label="action0" English="Invite" Chinese="邀请" />
+  <item title="Invite" label="action1" English="Waiting (%SEC%)" Chinese="等待 (%SEC%)" />
+  <item title="Invite" label="action2" English="&lt;color=#CDEBFFFF&gt;Refused (%SEC%)&lt;/color&gt;" Chinese="&lt;color=#CDEBFFFF&gt;拒绝 (%SEC%)&lt;/color&gt;" />
+  <item title="Invite" label="action3" English="&lt;color=#74FF51FF&gt;In team&lt;/color&gt;" Chinese="&lt;color=#74FF51FF&gt;在队伍中&lt;/color&gt;" />
+  <item title="Invite" label="inviteLabel" English="Invite player" Chinese="邀请队友" />
+  <item title="Invite" label="leaveLabel" English="Leave team" Chinese="离开队伍" />
+  <item title="Invite" label="teamLeftConfirm" English="Do you want left this team?" Chinese="你要离开队伍吗?" />
+  <item title="Invite" label="teamInviteConfirm" English="%NICK% invite you to join his team." Chinese="%NICK%邀请你加入他的队伍." />
+  <item title="Invite" label="teamKickConfirm" English="Do you want to kick %NICK% out of the team?" Chinese="你想让%NICK%离开队伍吗?" />
+  <item title="Invite" label="createClanTip" English="Only can invite player in same Array. Create or join a Array and get stronger." Chinese="只能邀请同一个纵队的玩家,创建或者加入一个纵队." />
+  <item title="Invite" label="createClanLabel" English="Join Now" Chinese="立即加入" />
+  <item title="BuyCoinPanel" label="title" English="Shop" Chinese="商店" />
+  <item title="BuyCoinPanel" label="vipInfo" English="Buy VIP for one year, will unlock all mechas." Chinese="购买VIP,将解锁所有机甲." />
+  <item title="BuyCoinPanel" label="vipBought" English="Now you are VIP, and all mechas unlocked." Chinese="已经成为VIP, 所有机甲已经解锁." />
+  <item title="BuyCoinPanel" label="coinBought" English="{0} crystals got." Chinese="获得{0}水晶." />
+  <item title="BuyCoinPanel" label="diamondBought" English="{0} energy cube got." Chinese="获得{0}能量块." />
+  <item title="ResultPanel" label="complete" English="Battle Complete" Chinese="战斗结束" />
+  <item title="ResultPanel" label="winner" English="Winner\nis" Chinese="胜利者\n是" />
+  <item title="ResultPanel" label="draw" English="Draw" Chinese="平局" />
+  <item title="NPCNick" label="nick0" English="Naboo" Chinese="克利普顿" />
+  <item title="NPCNick" label="nick1" English="Tatooine" Chinese="卡艾尔" />
+  <item title="NPCNick" label="nick2" English="Coruscant" Chinese="斯蒂夫" />
+  <item title="NPCNick" label="nick3" English="Kamino" Chinese="托尼" />
+  <item title="NPCNick" label="nick4" English="Geonosis" Chinese="班纳" />
+  <item title="NPCNick" label="nick5" English="Kashyyyk" Chinese="罗杰斯" />
+  <item title="NPCNick" label="nick6" English="Felucia" Chinese="帕克" />
+  <item title="NPCNick" label="nick7" English="Mustafar" Chinese="克林特" />
+  <item title="NPCNick" label="nick8" English="Kessel" Chinese="皮特罗" />
+  <item title="NPCNick" label="nick9" English="Alderaan" Chinese="强尼" />
+  <item title="NPCNick" label="nick10" English="Dantooine" Chinese="娜塔莎" />
+  <item title="NPCNick" label="nick11" English="Yavin" Chinese="布鲁斯" />
+  <item title="NPCNick" label="nick12" English="Hoth" Chinese="巴特曼" />
+  <item title="NPCNick" label="nick13" English="Dagobah" Chinese="欧比王" />
+  <item title="NPCNick" label="nick14" English="Bespin" Chinese="奥干纳" />
+  <item title="NPCNick" label="nick15" English="Endor" Chinese="阿纳金" />
+  <item title="NPCNick" label="nick16" English="Massa" Chinese="鲁斯特" />
+  <item title="NPCNick" label="nick17" English="Calamari" Chinese="格里多" />
+  <item title="NPCNick" label="nick18" English="Fasima" Chinese="沙拉克" />
+  <item title="NPCNick" label="nick19" English="Watto" Chinese="萨缪尔" />
+  <item title="GameInfo" label="buyCDTip" English="New mech will ready in %SECOND% seconds." Chinese="新机甲还需%SECOND%秒才能准备好" />
+  <item title="GameInfo" label="readyToBuy" English="New mech is ready." Chinese="新机甲已准备完毕" />
+  <item title="GameInfo" label="noCoin" English="Not enough crystals" Chinese="没有足够的能量水晶" />
+  <item title="GameInfo" label="attendant" English="'s follower" Chinese="的随从" />
+  <item title="GameInfo" label="deathInfo" English="%KILLER_NAME% have slain %DEATH_NAME%" Chinese="%KILLER_NAME%摧毁了%DEATH_NAME%" />
+  <item title="GameInfo" label="selectCraft" English="Choose your mecha" Chinese="选择操纵的机甲" />
+  <item title="GameInfo" label="swapCraft" English="Choose the mecha, which you want to swap." Chinese="选取将要交换机甲" />
+  <item title="GameInfo" label="combo1" English="" Chinese="" />
+  <item title="GameInfo" label="combo2" English="Double kill" Chinese="双杀" />
+  <item title="GameInfo" label="combo3" English="Triple kill" Chinese="三杀" />
+  <item title="GameInfo" label="combo4" English="Quadruple kill" Chinese="四杀" />
+  <item title="GameInfo" label="combo5" English="Penta-kill" Chinese="杀人如麻" />
+  <item title="PowerTip" label="cd" English="Not ready yet." Chinese="还没有准备好" />
+  <item title="PowerTip" label="needTarget" English="You need a target" Chinese="需要选择一个目标" />
+  <item title="PowerTip" label="needCloser" English="Target is too far." Chinese="目标距离太远了" />
+  <item title="PowerTip" label="noTargetInRange" English="No target nearby." Chinese="附近范围内没有目标" />
+  <item title="LoadingPanel" label="loadingTip0" English="Tips : You can use three different mechs each week." Chinese="用兵之法,十则围之,五则攻之,倍则分之,敌则能战之,少则能逃之,不若则能避之。——孙武" />
+  <item title="LoadingPanel" label="loadingTip1" English="Tips : There are two very useful special skills that cast by crystals." Chinese="善用兵者,不以短击长,而以长击短。——司马迁" />
+  <item title="LoadingPanel" label="loadingTip2" English="Tips : Finish daily quests to get bonus crystals, even some energy cube." Chinese="凡与敌战,须务持重。见利则动,不见利则止,慎不可轻举也。——刘基" />
+  <item title="LoadingPanel" label="loadingTip3" English="Tips : Do not fight alone! do not fight alone! do not fight alone!" Chinese="只有获得胜利的可能性非常大时,才可进行决战。——恩格斯" />
+  <item title="LoadingPanel" label="loadingTip4" English="Tips : Remember the target of the battle you join." Chinese="使敌人丧失平衡,自己乱了阵脚,这才是战略的真正目的;其结果不是敌人自行崩溃,就是在会战中轻易被我击溃。——利德尔·哈特" />
+  <item title="LoadingPanel" label="loadingTip5" English="Tips : Change your mech anytime you want." Chinese="任何战术都只适用于一定的历史阶段;如果武器改进了,技术有了新的进步,那么军事组织的形式、军队指挥的方法也会随着改变。——伏龙芝" />
+  <item title="LoadingPanel" label="loadingTip6" English="Tips : Tap screen to move, mechs will attack enemies automatically." Chinese="每一种情况都有适合于它的一个特殊的战略。——安德烈·博弗尔" />
+  <item title="LoadingPanel" label="loadingTip7" English="Tips : Tap skill icons to cast the skills." Chinese="凡战者,以正合,以奇胜。故善出奇者,无穷如天地,不竭如山河。——孙武" />
+  <item title="LoadingPanel" label="loadingTip8" English="Tips : You can find out the mechs differences in the mech label." Chinese="正兵贵先,奇兵贵后。或先或后,制敌者也。——魏缭" />
+  <item title="LoadingPanel" label="loadingTip9" English="Tips : Halos and skins make your mech special!" Chinese="有正无奇,虽整不烈,无以致胜也;有奇无正,虽锐无恃,难以控御也。——何良臣" />
+  <item title="MapInfo" label="challengeMission" English="Mission:Occupy energy tower" Chinese="任务:占领地图中央的能量塔" />
+  <item title="MapInfo" label="defenseMission" English="Mission:Destroy opponent's energy tower" Chinese="任务:摧毁对方能量塔" />
+  <item title="MapInfo" label="flagMission" English="Mission:Capture the flag" Chinese="任务:夺取旗帜" />
+  <item title="Equip" label="currentLevel" English="Current level:" Chinese="当前等级:" />
+  <item title="Equip" label="nextLevel" English="Next level:" Chinese="下一等级:" />
+  <item title="Equip" label="maxLevel" English="Already max level" Chinese="已达最高等级" />
+  <item title="Equip" label="hp" English=" HP" Chinese="生命" />
+  <item title="Equip" label="dmg" English="DMG" Chinese="伤害" />
+  <item title="Equip" label="name1" English="Light iron armor" Chinese="轻型防护钢板" />
+  <item title="Equip" label="name2" English="Iron armor" Chinese="防护钢板" />
+  <item title="Equip" label="name3" English="Heavy iron armor" Chinese="重型防护钢板" />
+  <item title="Equip" label="name4" English="Super iron armor" Chinese="超级防护钢板" />
+  <item title="EquipPanel" label="levelLabel" English="Level" Chinese="等级" />
+  <item title="EquipPanel" label="upgrade" English="Upgrade" Chinese="升级" />
+  <item title="EquipPanel" label="equip" English="Equip" Chinese="装备" />
+  <item title="EquipPanel" label="recommand" English="Recommand" Chinese="推荐方案" />
+  <item title="EquipPanel" label="customize" English="Customize" Chinese="自定义方案" />
+  <comment>
+    <title>
+标题
+</title>
+    <label>
+标签
+</label>
+    <English>
+英文
+</English>
+    <Chinese>
+中文
+</Chinese>
+  </comment>
+</data>

+ 2 - 2
Assets/Resources/XML/Config/Chinese/craft_config.xml.meta → Assets/Resources/XML/Config/All/word_config.xml.meta

@@ -1,6 +1,6 @@
 fileFormatVersion: 2
-guid: 1f01a39bfd1d77f4dbef6e39499c74cc
-timeCreated: 1467614226
+guid: d830093f044bc0049a2f264d38f1bd60
+timeCreated: 1491986799
 licenseType: Pro
 TextScriptImporter:
   userData: 

+ 0 - 8
Assets/Resources/XML/Config/Chinese/buff_config.xml.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 96128293175268d48b2cdfaa68a0b3b6
-timeCreated: 1467614226
-licenseType: Pro
-TextScriptImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 35
Assets/Resources/XML/Config/Chinese/craft_config.xml

@@ -1,35 +0,0 @@
-<data>
-  <item id="1" name="铁拳" description="看看你的头硬还是我的拳头硬。" hp="1600" attack="10" power="11|12" model="Dasher" />
-  <item id="2" name="追猎者" description="一旦猎物被盯上就不可能逃掉。" hp="1100" attack="20" power="21|22" model="Hunter" />
-  <item id="3" name="雷神" description="不要乱动,小心触电。" hp="1200" attack="30" power="31|32" model="Thunder" />
-  <item id="4" name="刺客" description="看不见的危险才是最大的危险。" hp="1250" attack="40" power="41|42" model="Assassin" />
-  <item id="5" name="庇护者" description="看来你需要修理一下了。" hp="1200" attack="50" power="51|52" model="Medic" />
-  <item id="6" name="蜘蛛" description="有人要自投罗网了" hp="1200" attack="60" power="61|62" model="Spider" />
-  <item id="7" name="冰霜" description="寒潮来袭" hp="1300" attack="70" power="71|72" model="Ice" />
-  <item id="8" name="烈焰" description="融化一切" hp="1100" attack="80" power="81|82" model="Flame" />
-  <item id="1001" name="小蜘蛛" description="小蜘蛛" hp="300" attack="1001" power="" model="TinySpider" />
-  <item id="1002" name="防御塔" description="防御塔" hp="3000" attack="1002" power="" model="Door" />
-  <comment>
-    <id>
-ID
-</id>
-    <name>
-名称
-</name>
-    <description>
-描述(30字以内)
-</description>
-    <hp>
-血
-</hp>
-    <attack>
-普通攻击
-</attack>
-    <power>
-技能
-</power>
-    <model>
-模型
-</model>
-  </comment>
-</data>

+ 0 - 37
Assets/Resources/XML/Config/Chinese/halo_config.xml

@@ -1,37 +0,0 @@
-<data>
-  <item id="0" name="默认" description="默认" currency="" price="" model="Default" />
-  <item id="1" name="光环 No.1" description="五角星" currency="" price="500" model="1" />
-  <item id="2" name="光环 No.2" description="五角星" currency="" price="500" model="2" />
-  <item id="3" name="光环 No.3" description="五角星" currency="" price="500" model="3" />
-  <item id="4" name="光环 No.4" description="五角星" currency="" price="500" model="4" />
-  <item id="5" name="光环 No.5" description="五角星" currency="" price="500" model="5" />
-  <item id="6" name="光环 No.6" description="五角星" currency="" price="500" model="6" />
-  <item id="7" name="光环 No.7" description="五角星" currency="" price="500" model="7" />
-  <item id="8" name="光环 No.8" description="五角星" currency="" price="500" model="8" />
-  <item id="9" name="光环 No.9" description="五角星" currency="" price="500" model="9" />
-  <item id="10" name="光环 No.10" description="五角星" currency="" price="500" model="10" />
-  <comment>
-    <id>
-ID
-</id>
-    <name>
-名称
-</name>
-    <description>
-描述(30字以内)
-</description>
-    <currency>
-货币类型
-0 能量块
-1 水晶
-
-不填为0
-</currency>
-    <price>
-价格
-</price>
-    <model>
-资源
-</model>
-  </comment>
-</data>

+ 0 - 170
Assets/Resources/XML/Config/Chinese/power_config.xml

@@ -1,170 +0,0 @@
-<data>
-  <item id="10" name="铁拳攻击" description="" type="1" effect="" crystal="" distance="3" cd="2" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="80" value_type="" decay="" buff="" shake="" anim="" g_effect="Melee" s_effect="bullet_dasher" g_hit="HunterHit" s_hit="" icon="" />
-  <item id="11" name="冲锋" description="快速冲向目标,并对目标造成伤害,并且是目标短时间丧失行动能力" type="8" effect="" crystal="" distance="8" cd="12" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="100" value_type="" decay="" buff="1" shake="" anim="1" g_effect="" s_effect="" g_hit="" s_hit="" icon="" />
-  <item id="12" name="雷霆一击" description="" type="6" effect="" crystal="" distance="5" cd="10" bnum="" binterval="" target="3" target_type="" target_lim="" target_sort="" value="150" value_type="" decay="" buff="2" shake="1" anim="" g_effect="DashQuakeBullet" s_effect="bullet_dasher_quake" g_hit="" s_hit="" icon="" />
-  <item id="20" name="追猎者攻击" description="" type="" effect="" crystal="" distance="8" cd="1.5" bnum="16" binterval="0.08" target="" target_type="" target_lim="" target_sort="" value="64" value_type="" decay="" buff="" shake="" anim="" g_effect="HunterBullet" s_effect="bullet_hunter" g_hit="HunterHit" s_hit="hit_hunter" icon="" />
-  <item id="21" name="乱射" description="" type="" effect="" crystal="" distance="8" cd="8" bnum="" binterval="0.1" target="3" target_type="" target_lim="4" target_sort="1" value="75" value_type="" decay="" buff="" shake="" anim="" g_effect="HunterSnap" s_effect="bullet_huntersnap" g_hit="HunterSnapHit" s_hit="hit_huntersnap" icon="" />
-  <item id="22" name="闪烁" description="瞬间移动一段距离" type="4" effect="2" crystal="" distance="8" cd="5" bnum="" binterval="" target="1" target_type="" target_lim="" target_sort="" value="" value_type="" decay="" buff="" shake="" anim="" g_effect="" s_effect="effect_teleport_appear" g_hit="" s_hit="" icon="" />
-  <item id="30" name="雷神攻击" description="" type="2" effect="" crystal="" distance="8" cd="2" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="90" value_type="" decay="" buff="" shake="" anim="" g_effect="ThunderBullet" s_effect="bullet_thunder_chain_lightning" g_hit="" s_hit="" icon="" />
-  <item id="31" name="闪电重击" description="" type="" effect="" crystal="" distance="8" cd="8" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="150" value_type="" decay="" buff="3" shake="" anim="" g_effect="ThunderThump" s_effect="bullet_thunder_thump" g_hit="" s_hit="" icon="" />
-  <item id="32" name="连锁闪电" description="" type="2" effect="" crystal="" distance="8" cd="10" bnum="" binterval="" target="2" target_type="" target_lim="4" target_sort="1" value="225" value_type="" decay="30" buff="" shake="" anim="" g_effect="ThunderBullet" s_effect="bullet_thunder_chain_lightning" g_hit="" s_hit="" icon="" />
-  <item id="40" name="刺客攻击" description="" type="1" effect="" crystal="" distance="3" cd="2" bnum="2" binterval="0.1" target="" target_type="" target_lim="" target_sort="" value="95" value_type="" decay="" buff="" shake="" anim="" g_effect="Melee" s_effect="bullet_blade" g_hit="AssassinHit" s_hit="" icon="" />
-  <item id="41" name="潜行" description="隐形,敌人无法发现你" type="3" effect="2" crystal="" distance="" cd="15" bnum="" binterval="" target="1" target_type="" target_lim="" target_sort="" value="" value_type="" decay="" buff="4" shake="" anim="" g_effect="" s_effect="bullet_blade" g_hit="" s_hit="" icon="" />
-  <item id="42" name="突袭" description="瞬间移动到敌人旁边并对其造成伤害" type="4" effect="" crystal="" distance="8" cd="5" bnum="2" binterval="0.1" target="" target_type="" target_lim="" target_sort="" value="150" value_type="" decay="" buff="" shake="" anim="" g_effect="Melee" s_effect="bullet_blade" g_hit="AssassinHit" s_hit="" icon="" />
-  <item id="50" name="庇护者攻击" description="" type="" effect="" crystal="" distance="8" cd="2" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="80" value_type="" decay="" buff="" shake="" anim="" g_effect="MedicBullet" s_effect="bullet_medic" g_hit="MedicHit" s_hit="hit_medic" icon="" />
-  <item id="51" name="修复" description="" type="" effect="1" crystal="" distance="8" cd="5" bnum="" binterval="" target="3" target_type="2" target_lim="1" target_sort="1" value="150" value_type="" decay="" buff="" shake="" anim="" g_effect="MedicBullet" s_effect="" g_hit="MedicHealHit" s_hit="bullet_heal" icon="" />
-  <item id="52" name="群体修复" description="" type="" effect="1" crystal="" distance="8" cd="10" bnum="" binterval="0.05" target="3" target_type="2" target_lim="4" target_sort="1" value="75" value_type="" decay="" buff="" shake="" anim="" g_effect="MedicBullet" s_effect="" g_hit="MedicHealHit" s_hit="bullet_heal" icon="" />
-  <item id="60" name="蜘蛛攻击" description="" type="" effect="" crystal="" distance="6" cd="2" bnum="2" binterval="0.05" target="" target_type="" target_lim="" target_sort="" value="90" value_type="" decay="" buff="" shake="" anim="" g_effect="SpiderBullet" s_effect="bullet_spider" g_hit="SpiderHit" s_hit=" hit_spider" icon="" />
-  <item id="61" name="蜘蛛网" description="" type="" effect="2" crystal="" distance="8" cd="8" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="" value_type="" decay="" buff="5" shake="" anim="" g_effect="SpiderNet" s_effect="bullet_normal" g_hit="" s_hit="" icon="" />
-  <item id="62" name="小蜘蛛" description="制造一个小蜘蛛来为你战斗" type="5" effect="2" crystal="" distance="" cd="10" bnum="" binterval="" target="" target_type="2" target_lim="2" target_sort="" value="1001" value_type="2" decay="" buff="" shake="" anim="" g_effect="" s_effect="effect_teleport_appear" g_hit="" s_hit="" icon="" />
-  <item id="70" name="冰霜攻击" description="" type="" effect="" crystal="" distance="8" cd="1.5" bnum="12" binterval="0.1" target="" target_type="" target_lim="" target_sort="" value="84" value_type="" decay="" buff="" shake="" anim="" g_effect="HunterBullet" s_effect="bullet_hunter" g_hit="HunterHit" s_hit="hit_hunter" icon="" />
-  <item id="71" name="冰霜之箭" description="" type="" effect="" crystal="" distance="8" cd="5" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="150" value_type="" decay="" buff="6" shake="" anim="" g_effect="IceArrow" s_effect="bullet_ice" g_hit="MedicHit" s_hit="" icon="" />
-  <item id="72" name="霜之新星" description="" type="6" effect="" crystal="" distance="5" cd="10" bnum="" binterval="" target="3" target_type="" target_lim="" target_sort="" value="150" value_type="" decay="" buff="7" shake="" anim="" g_effect="IceNova" s_effect="bullet_ice" g_hit="" s_hit="" icon="" />
-  <item id="80" name="烈焰攻击" description="" type="" effect="" crystal="" distance="4" cd="1.5" bnum="2" binterval="" target="5" target_type="" target_lim="" target_sort="" value="70" value_type="" decay="" buff="" shake="" anim="" g_effect="Flame" s_effect="bullet_flame" g_hit="" s_hit="" icon="" />
-  <item id="81" name="大火球" description="" type="" effect="" crystal="" distance="8" cd="8" bnum="" binterval="" target="" target_type="" target_lim="" target_sort="" value="225" value_type="" decay="" buff="" shake="" anim="" g_effect="FlameBall" s_effect="bullet_flame_ball" g_hit="HunterSnapHit" s_hit="hit_huntersnap" icon="" />
-  <item id="82" name="烈焰新星" description="" type="6" effect="" crystal="" distance="5" cd="10" bnum="" binterval="" target="3" target_type="" target_lim="" target_sort="" value="175" value_type="" decay="" buff="" shake="" anim="" g_effect="FlameNova" s_effect="bullet_flame_breath" g_hit="" s_hit="" icon="" />
-  <item id="1001" name="小蜘蛛攻击" description="" type="" effect="" crystal="" distance="6" cd="2" bnum="2" binterval="0.05" target="" target_type="" target_lim="" target_sort="" value="60" value_type="" decay="" buff="" shake="" anim="" g_effect="SpiderBulletTiny" s_effect="bullet_spider" g_hit="SpiderHitTiny" s_hit=" hit_spider" icon="" />
-  <item id="1002" name="防御塔攻击" description="" type="" effect="" crystal="" distance="8" cd="2" bnum="2" binterval="" target="" target_type="" target_lim="" target_sort="" value="250" value_type="" decay="" buff="" shake="" anim="" g_effect="HunterSnap" s_effect="bullet_huntersnap" g_hit="HunterSnapHit" s_hit="hit_huntersnap" icon="" />
-  <item id="2001" name="加血" description="" type="3" effect="1" crystal="100" distance="" cd="30" bnum="" binterval="" target="1" target_type="" target_lim="" target_sort="" value="600" value_type="" decay="" buff="" shake="" anim="" g_effect="" s_effect="bullet_heal" g_hit="" s_hit="" icon="" />
-  <item id="2002" name="加速" description="" type="3" effect="2" crystal="50" distance="" cd="30" bnum="" binterval="" target="1" target_type="" target_lim="" target_sort="" value="" value_type="" decay="" buff="9" shake="" anim="" g_effect="" s_effect="" g_hit="" s_hit="" icon="" />
-  <comment>
-    <id>
-ID
-</id>
-    <name>
-名称
-</name>
-    <description>
-描述(30字以内)
-
-有些无法自己生成描述的技能需要用该项
-</description>
-    <type>
-技能类型
-(不填为远程射击)
-0.远程射击
-1.近战
-2.锁链射击
-3.立即生效
-4.闪现
-5.召唤
-6.新星
-7.扇形
-8.冲锋
-</type>
-    <effect>
-效果
-
-0伤害
-1治疗
-2无
-(不填为伤害)
-</effect>
-    <crystal>
-水晶需求
-(不填为0)
-
-</crystal>
-    <distance>
-目标距离
-(场景距离单位
-可不填)
-
-</distance>
-    <cd>
-冷却时间
-(秒)
-(可不填)
-
-</cd>
-    <bnum>
-子弹数量
-(不填为1)
-</bnum>
-    <binterval>
-子弹间隔(秒)
-(不填为不间隔)
-</binterval>
-    <target>
-      目标
-(不填为单个目标)
-0.单个目标
-1.自己
-2.锁链范围
-3.圆形范围
-4.扇形范围
-5.前方矩形
-</target>
-    <target_type>
-目标类型
-
-1敌方
-2我方
-4位置
-(不填为敌方,目标为自己是为我方)
-</target_type>
-    <target_lim>
-数量限制
-(不填为
-无限制)
-</target_lim>
-    <target_sort>
-筛选规则
-1.血由少到多
-2.血由多到少
-(可不填)
-</target_sort>
-    <value>
-数值
-(可不填)
-</value>
-    <value_type>
-数值类型
-0.总数值 
-1.百分比
-2.召唤ID
-               
-(不填为总数值)
-</value_type>
-    <decay>
-衰减
-(百分比)
-(不填为
-不衰减)
-</decay>
-    <buff>
-产生buff
-</buff>
-    <shake>
-是否抖屏
-0.否
-1.是
-(不填为0)
-</shake>
-    <anim>
-动作动画
-0.Attack
-1.Run
-2.Idle
-
-(不填为0)
-</anim>
-    <g_effect>
-特效
-</g_effect>
-    <s_effect>
-音效
-</s_effect>
-    <g_hit>
-击中特效
-</g_hit>
-    <s_hit>
-击中音效
-</s_hit>
-    <icon>
-图标
-(不填跟
-ID一样)
-</icon>
-  </comment>
-</data>

+ 0 - 56
Assets/Resources/XML/Config/Chinese/shop_config.xml

@@ -1,56 +0,0 @@
-<data>
-  <item id="1" name="VIP 三天" description="3天VIP会员,全体机甲无限制选取" code="VIP1" value="" sort="" platform="1" price="1" type="" icon="" />
-  <item id="2" name="VIP 七天" description="7天VIP会员,全体机甲无限制选取" code="VIP2" value="" sort="" platform="1" price="2" type="" icon="" />
-  <item id="3" name="VIP 一年" description="一年VIP会员,全体机甲无限制选取" code="VIP3" value="" sort="" platform="1" price="12" type="" icon="" />
-  <item id="4" name="VIP one year" description="One year VIP, unlock all mechas." code="VIP4" value="" sort="1" platform="2" price="¥ 12.00" type="" icon="VIP3" />
-  <item id="5" name="水晶10000" description="X10000" code="C10000" value="10 000" sort="2" platform="2" price="¥ 6.00" type="" icon="" />
-  <item id="6" name="水晶25000" description="购买25000水晶" code="C25000" value="25 000" sort="2" platform="2" price="¥ 12.00" type="" icon="" />
-  <item id="7" name="水晶75000" description="购买75000水晶" code="C75000" value="75 000" sort="2" platform="2" price="¥ 30.00" type="" icon="" />
-  <comment>
-    <id>
-ID
-</id>
-    <name>
-名称
-</name>
-    <description>
-描述(30字以内)
-</description>
-    <code>
-代码
-</code>
-    <value>
-值
-</value>
-    <sort>
-分类
-1.VIP
-2.水晶
-3.能量块
-</sort>
-    <platform>
-平台
-
-1安卓
-2苹果
-
-(不填为通用)
-</platform>
-    <price>
-价格
-</price>
-    <type>
-货币类型
-
-0人民币
-1黄水晶
-
-(不填为人民币)
-</type>
-    <icon>
-图标
-(不填跟
-code一样)
-</icon>
-  </comment>
-</data>

+ 0 - 44
Assets/Resources/XML/Config/Chinese/skin_config.xml

@@ -1,44 +0,0 @@
-<data>
-  <item id="0" name="默认" description="" craft="" model="" />
-  <item id="1" name="皮肤 No.1" description="" craft="1" model="Protoss" />
-  <item id="2" name="皮肤 No.1" description="" craft="2" model="Protoss" />
-  <item id="3" name="皮肤 No.1" description="" craft="3" model="Protoss" />
-  <item id="4" name="皮肤 No.1" description="" craft="4" model="Protoss" />
-  <item id="5" name="皮肤 No.1" description="" craft="5" model="Protoss" />
-  <item id="6" name="皮肤 No.1" description="" craft="6" model="Protoss" />
-  <item id="7" name="皮肤 No.1" description="" craft="7" model="Protoss" />
-  <item id="8" name="皮肤 No.1" description="" craft="8" model="Protoss" />
-  <item id="9" name="皮肤 No.2" description="" craft="1" model="Terrain" />
-  <item id="10" name="皮肤 No.2" description="" craft="2" model="Terrain" />
-  <item id="11" name="皮肤 No.2" description="" craft="3" model="Terrain" />
-  <item id="12" name="皮肤 No.2" description="" craft="4" model="Terrain" />
-  <item id="13" name="皮肤 No.2" description="" craft="5" model="Terrain" />
-  <item id="14" name="皮肤 No.2" description="" craft="6" model="Terrain" />
-  <item id="15" name="皮肤 No.2" description="" craft="7" model="Terrain" />
-  <item id="16" name="皮肤 No.2" description="" craft="8" model="Terrain" />
-  <item id="17" name="皮肤 No.3" description="" craft="1" model="Zerg" />
-  <item id="18" name="皮肤 No.3" description="" craft="2" model="Zerg" />
-  <item id="19" name="皮肤 No.3" description="" craft="3" model="Zerg" />
-  <item id="20" name="皮肤 No.3" description="" craft="4" model="Zerg" />
-  <item id="21" name="皮肤 No.3" description="" craft="5" model="Zerg" />
-  <item id="22" name="皮肤 No.3" description="" craft="6" model="Zerg" />
-  <item id="23" name="皮肤 No.3" description="" craft="7" model="Zerg" />
-  <item id="24" name="皮肤 No.3" description="" craft="8" model="Zerg" />
-  <comment>
-    <id>
-ID
-</id>
-    <name>
-名称
-</name>
-    <description>
-描述(30字以内)
-</description>
-    <craft>
-机甲ID
-</craft>
-    <model>
-资源
-</model>
-  </comment>
-</data>

+ 0 - 93
Assets/Resources/XML/Config/English/buff_config.xml

@@ -1,93 +0,0 @@
-<data>
-  <item id="1" name="冲锋" description="迅速移动到目标旁边" target="1" is_good="1" is_normal="" buff_type="3|8|9" duration="3" value="200" value_type="1" remove="4|5" end="1" end_buff="10|11" g_effect="DashFlame" s_effect="buff_dasher_dash" />
-  <item id="2" name="雷霆震荡" description="移动速度减少" target="" is_good="" is_normal="" buff_type="4" duration="5" value="50" value_type="1" remove="" end="" end_buff="" g_effect="DashQuake" s_effect="" />
-  <item id="3" name="闪电重击" description="电击造成当机" target="" is_good="" is_normal="" buff_type="5" duration="2" value="" value_type="" remove="" end="" end_buff="" g_effect="ThunderThump" s_effect="buff_thunder_thump" />
-  <item id="4" name="影子披风" description="潜行" target="" is_good="1" is_normal="" buff_type="6" duration="" value="" value_type="" remove="2|3" end="" end_buff="" g_effect="" s_effect="" />
-  <item id="5" name="蛛网" description="蜘蛛网束缚" target="" is_good="" is_normal="" buff_type="4" duration="2.5" value="100" value_type="1" remove="" end="" end_buff="" g_effect="SpiderNet" s_effect="" />
-  <item id="6" name="冰霜之箭" description="寒冷造成移动速度减慢" target="" is_good="" is_normal="" buff_type="4" duration="2" value="50" value_type="1" remove="" end="" end_buff="" g_effect="SnowDot" s_effect="buff_icearrow" />
-  <item id="7" name="冰冻" description="被冰冻住什么都没法干" target="" is_good="" is_normal="" buff_type="5" duration="2" value="" value_type="" remove="" end="" end_buff="" g_effect="Frozen" s_effect="buff_frozen" />
-  <item id="8" name="变大" description="大,大,大" target="1" is_good="1" is_normal="" buff_type="7" duration="15" value="50" value_type="1" remove="" end="" end_buff="" g_effect="" s_effect="buff_dasher_dash" />
-  <item id="9" name="加速" description="移动速度增加" target="1" is_good="1" is_normal="" buff_type="3" duration="5" value="60" value_type="1" remove="" end="" end_buff="" g_effect="" s_effect="buff_dasher_dash" />
-  <item id="10" name="撞晕" description="受到撞击造成眩晕" target="" is_good="" is_normal="" buff_type="5|1" duration="2" value="0|100" value_type="" remove="" end="" end_buff="" g_effect="DashStun" s_effect="hit_huntersnap" />
-  <comment>
-    <id>
-buff ID
-</id>
-    <name>
-技能buff名
-</name>
-    <description>
-buff描述(30字以内)
-</description>
-    <target>
-目标
-0.目标
-1.施放者
-不填为目标
-</target>
-    <is_good>
-“增/减”益
-0.减益
-1.增益
-</is_good>
-    <is_normal>
-常态
-0.否
-1.是
-不填为否
-</is_normal>
-    <buff_type>
-         技能效果
-1.伤害
-2.回复
-3.增加移动速度
-4.减少移动速度
-5.锁定(无法移动攻击技能)
-6.隐形
-7.变大
-8.禁止操作
-9.接近目标
-</buff_type>
-    <duration>
-持续时间(秒)
-(不填即永远存在)
-</duration>
-    <value>
-数值
-(可不填)
-</value>
-    <value_type>
-数值类型
-0.总数值 
-1.百分比
-               
-(不填为总数值)
-</value_type>
-    <remove>
-解除条件
-1.移动
-2.使用技能
-3.受到攻击
-4.无法移动
-5.超时
-
-(不填为不解除)
-</remove>
-    <end>
-结束条件
-0.时间结束
-1.靠近目标
-
-(不填为0)
-</end>
-    <end_buff>
-
-</end_buff>
-    <g_effect>
-特效
-</g_effect>
-    <s_effect>
-音效
-</s_effect>
-  </comment>
-</data>

+ 0 - 35
Assets/Resources/XML/Config/English/craft_config.xml

@@ -1,35 +0,0 @@
-<data>
-  <item id="1" name="Dasher" description="看看你的头硬还是我的拳头硬。" hp="1600" attack="10" power="11|12" model="Dasher" />
-  <item id="2" name="Hunter" description="一旦猎物被盯上就不可能逃掉。" hp="1100" attack="20" power="21|22" model="Hunter" />
-  <item id="3" name="Thunder" description="不要乱动,小心触电。" hp="1200" attack="30" power="31|32" model="Thunder" />
-  <item id="4" name="Assassin" description="看不见的危险才是最大的危险。" hp="1250" attack="40" power="41|42" model="Assassin" />
-  <item id="5" name="Medic" description="看来你需要修理一下了。" hp="1200" attack="50" power="51|52" model="Medic" />
-  <item id="6" name="Spider" description="有人要自投罗网了" hp="1200" attack="60" power="61|62" model="Spider" />
-  <item id="7" name="Ice" description="寒潮来袭" hp="1300" attack="70" power="71|72" model="Ice" />
-  <item id="8" name="Flame" description="融化一切" hp="1100" attack="80" power="81|82" model="Flame" />
-  <item id="1001" name="小蜘蛛" description="小蜘蛛" hp="300" attack="1001" power="" model="TinySpider" />
-  <item id="1002" name="防御塔" description="防御塔" hp="3000" attack="1002" power="" model="Door" />
-  <comment>
-    <id>
-ID
-</id>
-    <name>
-名称
-</name>
-    <description>
-描述(30字以内)
-</description>
-    <hp>
-血
-</hp>
-    <attack>
-普通攻击
-</attack>
-    <power>
-技能
-</power>
-    <model>
-模型
-</model>
-  </comment>
-</data>

+ 0 - 8
Assets/Resources/XML/Config/English/halo_config.xml.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 0df7ae7cfd94b734bad58763151be1e3
-timeCreated: 1467614465
-licenseType: Pro
-TextScriptImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
Assets/Resources/XML/Config/English/shop_config.xml.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 45869f8c8749f1746be6b9b82af113f0
-timeCreated: 1467614465
-licenseType: Pro
-TextScriptImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 8
Assets/Resources/XML/Config/English/skin_config.xml.meta

@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: 0d6c3b9c3cbd1d34baa480701a5d9c07
-timeCreated: 1467614466
-licenseType: Pro
-TextScriptImporter:
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

BIN
Assets/Scenes/Battle.unity


+ 2 - 2
Assets/XlsxSource/Chinese.meta → Assets/ScreenShot.meta

@@ -1,7 +1,7 @@
 fileFormatVersion: 2
-guid: d5a15762cebf7d04390521175b36055f
+guid: 2ed75af07e5638b499eb79c10bb951e6
 folderAsset: yes
-timeCreated: 1446716349
+timeCreated: 1491815181
 licenseType: Pro
 DefaultImporter:
   userData: 

+ 14 - 14
Assets/Scripts/Battle/BattleController.cs

@@ -464,7 +464,7 @@ public class BattleController : MonoBehaviour
 
 	public void coinNotEnough()
 	{
-		battleUI.ShowBottomTip(Language.GetStr("coinNotEnough"));
+		battleUI.ShowBottomTip(Language.GetStr("GameInfo", "noCoin"));
 		//Instantiate(GetComponent<BattleSounds>().coinNotEnough);
 	}
 
@@ -645,19 +645,19 @@ public class BattleController : MonoBehaviour
 		}
 	}
 
-	void Update()
-	{
-		if(Input.GetKeyDown(KeyCode.Escape))
-		{
-			if(!isGameOver && GameObject.FindObjectsOfType<AlertPanel>().Length == 0)
-			{
-				if(battleType == BattleType.Battle)
-					AlertPanel.Show("", Language.GetStr("BattleUI", "exitTip"), AlertPanel.YES|AlertPanel.NO, OnExitBattle);
-				else if(battleType == BattleType.Menu)
-					AlertPanel.Show("", Language.GetStr("BattleUI", "quitTip"), AlertPanel.YES|AlertPanel.NO, OnExitBattle);
-			}
-		}
-	}
+//	void Update()
+//	{
+//		if(Input.GetKeyDown(KeyCode.Escape))
+//		{
+//			if(!isGameOver && GameObject.FindObjectsOfType<AlertPanel>().Length == 0)
+//			{
+//				if(battleType == BattleType.Battle)
+//					AlertPanel.Show("", Language.GetStr("BattleUI", "exitTip"), AlertPanel.YES|AlertPanel.NO, OnExitBattle);
+//				else if(battleType == BattleType.Menu)
+//					AlertPanel.Show("", Language.GetStr("BattleUI", "quitTip"), AlertPanel.YES|AlertPanel.NO, OnExitBattle);
+//			}
+//		}
+//	}
 
 	private void OnExitBattle(AlertCloseEvent evt)
 	{

+ 1 - 1
Assets/Scripts/Battle/Map/Buff/BuffManager.cs

@@ -16,7 +16,7 @@ public class BuffManager
 	public BuffManager()
 	{
 		dataDict = new Dictionary<int, BuffData>();
-		InitByXML("XML/Config/"+Language.GetCurrentLanguage()+"/buff_config");
+		InitByXML("XML/Config/All/buff_config");
 	}
 
 	public void InitByXML(string path)

+ 7 - 0
Assets/Scripts/Battle/Map/Craft/Craft.cs

@@ -127,6 +127,13 @@ public class Craft : BattleObject, IPowerOwner
 		SetState (State.Idle);
 	}
 
+
+	public float GetDamage()
+	{
+		return craftData.GetDamage ();
+	}
+
+
 	public override TeamUtil.Team team {
 		get {
 			return _team;

+ 17 - 2
Assets/Scripts/Battle/Map/Craft/CraftConfigData.cs

@@ -8,8 +8,10 @@ public class CraftConfigData
 	public int id;
 	public string name;
 	public string description;
-	public int hp;
+	public float hp;
+	public float dmg;
 	public int attack;
+	public int[] equipRcmdArr;
 	public int[] powers;
 	public string model;
 
@@ -21,15 +23,28 @@ public class CraftConfigData
 		id = StringUtil.ToInt(node.Attributes["id"].Value);
 		name = node.Attributes["name"].Value;
 		description = node.Attributes["description"].Value;
-		hp = StringUtil.ToInt(node.Attributes["hp"].Value);
+		hp = StringUtil.ToFloat(node.Attributes["hp"].Value);
+		dmg = StringUtil.ToFloat (node.Attributes["dmg"].Value);
 		attack = StringUtil.ToInt(node.Attributes["attack"].Value);
 		powers = StringUtil.SplitToInt(node.Attributes["power"].Value, '|');
 		model = node.Attributes["model"].Value;
+
+		string equip = node.Attributes ["equip"].Value;
+		equipRcmdArr = new int[equip.Length];
+		for(int i=0; i<equip.Length; i++)
+		{
+			equipRcmdArr [i] = StringUtil.ToInt (equip.Substring(i));
+		}
 	}
 
 	public string GetIcon()
 	{
 		return "Textures/CraftIcon/"+id;
 	}
+
+	public Sprite GetIconSprite()
+	{
+		return Resources.Load<Sprite>(GetIcon());
+	}
 }
 

+ 12 - 2
Assets/Scripts/Battle/Map/Craft/CraftData.cs

@@ -15,6 +15,9 @@ public class CraftData
 	public bool isHero;
 	public AI.AIType aiType;
 
+	private float hp;
+	private float damage;
+
 	private CraftConfigData data;
 	public CraftData (int craftId)
 	{
@@ -24,6 +27,8 @@ public class CraftData
 	public void SetCraftId(int craftId)
 	{
 		this.data = CraftManager.GetInstance().GetData(craftId);
+		hp = UpgradeUtil.GetHp(data.hp);
+		damage = UpgradeUtil.GetDamage (data.dmg);
 	}
 
 	public int GetCraftId()
@@ -36,9 +41,14 @@ public class CraftData
 		return data.name;
 	}
 
-	public int GetMaxHp()
+	public float GetMaxHp()
+	{
+		return hp;
+	}
+
+	public float GetDamage()
 	{
-		return data.hp;
+		return damage;
 	}
 
 	public string GetModel()

+ 1 - 1
Assets/Scripts/Battle/Map/Craft/CraftManager.cs

@@ -13,7 +13,7 @@ public class CraftManager
 	{
 		dataDict = new Dictionary<int, CraftConfigData>();
 		dataList = new List<CraftConfigData>();
-		InitByXML("XML/Config/"+Language.GetCurrentLanguage()+"/craft_config");
+		InitByXML("XML/Config/All/craft_config");
 	}
 	
 	public void InitByXML(string path)

+ 1 - 1
Assets/Scripts/Battle/Map/Halo/HaloManager.cs

@@ -15,7 +15,7 @@ public class HaloManager {
 	public HaloManager()
 	{
 		dataDict = new Dictionary<int, HaloData>();
-		InitByXML("XML/Config/"+Language.GetCurrentLanguage()+"/halo_config");
+		InitByXML("XML/Config/All/halo_config");
 	}
 	
 	public void InitByXML(string path)

+ 1 - 1
Assets/Scripts/Battle/Map/Power/PowerDataManager.cs

@@ -10,7 +10,7 @@ public class PowerDataManager
 	public PowerDataManager()
 	{
 		dataDict = new Dictionary<int, PowerData>();
-		InitByXML("XML/Config/"+Language.GetCurrentLanguage()+"/power_config");
+		InitByXML("XML/Config/All/power_config");
 	}
 	
 	public void InitByXML(string path)

+ 1 - 1
Assets/Scripts/Battle/Map/Skin/SkinManager.cs

@@ -18,7 +18,7 @@ public class SkinManager {
 	{
 		dataDict = new Dictionary<int, SkinData>();
 		dataListByCraftId = new Dictionary<int, List<SkinData>>();
-		InitByXML("XML/Config/"+Language.GetCurrentLanguage()+"/skin_config");
+		InitByXML("XML/Config/All/skin_config");
 	}
 	
 	public void InitByXML(string path)

+ 9 - 2
Assets/Scripts/Config.cs

@@ -15,8 +15,15 @@ public class Config
 	//server port for china is empty string, for international is intl
 	public const string USER_PORT_CHINA = "";
 	public const string USER_PORT_INTERNATIONAL = "intl";
-	public static string USER_PORT = USER_PORT_INTERNATIONAL;
-//	public static string USER_PORT = USER_PORT_CHINA;
+
+	public static string USER_PORT
+	{
+		get{ 
+			if (Language.GetCurrentLanguage () == SystemLanguage.Chinese)
+				return USER_PORT_CHINA;
+			return USER_PORT_INTERNATIONAL;
+		}
+	}
 
 
 //	public static bool USE_LOCAL_SERVER = true;

+ 0 - 31
Assets/Scripts/UI/Buttons/ButtonBuyVIP.cs

@@ -1,31 +0,0 @@
-using UnityEngine;
-using UnityEngine.UI;
-using System.Collections;
-
-public class ButtonBuyVIP : MonoBehaviour
-{
-
-	public Text priceText;
-
-	public string defaultPrice;
-
-	// Use this for initialization
-	void Start ()
-	{
-		//setBought(true);
-	}
-
-	public void setBought(bool value)
-	{
-		GetComponent<Button>().interactable = !value;
-		if(value)
-		{
-			priceText.text = Language.GetStr("bought");
-		}
-		else
-		{
-			priceText.text = defaultPrice;
-		}
-	}
-}
-

+ 1 - 1
Assets/Scripts/UI/ChatPanel/ChatBar.cs

@@ -23,7 +23,7 @@ public class ChatBar : MonoBehaviour
 		if(!isShown)
 			this.gameObject.SetActive (false);
 		
-		navTab.SetTitles (new string[]{Language.GetStr("ChatPanel", "global"), Language.GetStr("ChatPanel", "chat")});
+		navTab.SetTitles (new string[]{Language.GetStr("ChatPanel", "social"), Language.GetStr("ChatPanel", "chat")});
 	}
 
 	void OnDestroy()

+ 9 - 0
Assets/Scripts/UI/EquipPanel.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: acc3ba335f922f443a12184a5f470f40
+folderAsset: yes
+timeCreated: 1491910085
+licenseType: Pro
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 43 - 0
Assets/Scripts/UI/EquipPanel/EquipCraftItemRenderer.cs

@@ -0,0 +1,43 @@
+using UnityEngine;
+using UnityEngine.UI;
+using System.Collections;
+
+public class EquipCraftItemRenderer : SelectItemRenderer {
+
+	public EquipPanel equipPanel;
+
+	public Sprite selectedBg;
+	public Sprite unselectedBg;
+
+	public Image bgImg;
+	public Image craftImg;
+
+	public override bool selected {
+		get {
+			return base.selected;
+		}
+		set {
+			base.selected = value;
+			bgImg.sprite = value ? selectedBg : unselectedBg;
+		}
+	}
+
+	public override object data {
+		get {
+			return base.data;
+		}
+		set {
+			base.data = value;
+			CraftConfigData craftData = value as CraftConfigData;
+			if(craftData != null)
+			{
+				craftImg.sprite = craftData.GetIconSprite ();
+			}
+		}
+	}
+
+	public void OnClick()
+	{
+		equipPanel.SelectCraft (this);
+	}
+}

+ 12 - 0
Assets/Scripts/UI/EquipPanel/EquipCraftItemRenderer.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: 34aa10f9dc7ed224281cf904d10d3538
+timeCreated: 1491966307
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 79 - 0
Assets/Scripts/UI/EquipPanel/EquipData.cs

@@ -0,0 +1,79 @@
+using UnityEngine;
+using System.Collections;
+using System.Xml;
+
+public class EquipData
+{
+
+	public int id;
+	public UpgradeUtil.Quality quality;
+	public string icon;
+	public float hp;
+	public float hp_up;
+	public float dmg;
+	public float dmg_up;
+
+	public EquipData()
+	{
+		
+	}
+
+	public EquipData(XmlElement data)
+	{
+		id = StringUtil.ToInt (data.GetAttribute("id"));
+		quality = UpgradeUtil.GetQualityByCode (StringUtil.ToInt(data.GetAttribute("quality")));
+		icon = data.GetAttribute("icon").ToString ();
+		hp = StringUtil.ToFloat (data.GetAttribute("hp"));
+		hp_up = StringUtil.ToFloat (data.GetAttribute("hp_up"));
+		dmg = StringUtil.ToFloat (data.GetAttribute("dmg"));
+		dmg_up = StringUtil.ToFloat (data.GetAttribute("dmg_up"));
+	}
+
+	public string GetName()
+	{
+		return Language.GetStr ("Equip", "name"+id);
+	}
+
+	public Color GetBorderColor()
+	{
+		return UpgradeUtil.GetBorderColor (quality);
+	}
+
+	public Color GetTextColor()
+	{
+		return UpgradeUtil.GetTextColor (quality);
+	}
+
+	public string GetIcon()
+	{
+		if(StringUtil.Empty(icon))
+			return "Textures/EquipIcon/"+id;
+		return "Textures/EquipIcon/"+icon;
+	}
+
+	public static Sprite GetUnknowIconSprite()
+	{
+		return Resources.Load<Sprite>("Textures/EquipIcon/0");
+	}
+
+	public Sprite GetIconSprite()
+	{
+		return Resources.Load<Sprite>(GetIcon());
+	}
+
+
+
+
+
+
+
+
+
+
+
+	public override string ToString ()
+	{
+		return string.Format ("[EquipData] id:{0} quality:{1} icon:{2}", id, quality, icon);
+	}
+}
+

+ 12 - 0
Assets/Scripts/UI/EquipPanel/EquipData.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: d4c787b78a0704047881547cac8ac035
+timeCreated: 1492052847
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 75 - 0
Assets/Scripts/UI/EquipPanel/EquipIcon.cs

@@ -0,0 +1,75 @@
+using UnityEngine;
+using UnityEngine.UI;
+using System.Collections;
+
+public class EquipIcon : SelectItemRenderer {
+
+	public Image icon;
+	public Image border;
+	public Text lvTxt;
+	public Image countBarMask;
+	public Text countTxt;
+	public Image countBarFull;
+	public Image selectImg;
+
+	public EquipPanel equipPanel;
+
+	void Awake()
+	{
+		
+	}
+
+	public override object data {
+		get {
+			return base.data;
+		}
+		set {
+			base.data = value;
+			selected = selected;
+
+			Equipment equip = value as Equipment;
+			if (equip != null) {
+
+				border.color = equip.GetData ().GetBorderColor ();
+				icon.sprite = equip.GetData ().GetIconSprite ();
+				lvTxt.color = equip.GetData ().GetTextColor ();
+				lvTxt.text = equip.GetLevelLabel ();
+
+				int count = equip.GetCount ();
+				int max = equip.GetNextLevelCount ();
+				float percent = (float)count / (float)max;
+
+				countBarMask.fillAmount = percent;
+				countBarFull.enabled = percent >= 1f;
+				countTxt.text = "" + count + "/" + max;
+			} else {
+				border.color = UpgradeUtil.GetCommonBorderColor ();
+				icon.sprite = EquipData.GetUnknowIconSprite ();
+				lvTxt.text = "";
+				countTxt.text = "";
+				countBarMask.fillAmount = 0;
+			}
+		}
+	}
+
+	public override bool selected {
+		get {
+			return base.selected;
+		}
+		set {
+			base.selected = value;
+			selectImg.enabled = value;
+		}
+	}
+
+
+	public void OnClickEquip()
+	{
+		equipPanel.SelectEquip (this);
+	}
+
+	public void OnClickEquiped()
+	{
+		equipPanel.SelectEquiped (this);
+	}
+}

+ 12 - 0
Assets/Scripts/UI/EquipPanel/EquipIcon.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: ea0c57f125d21b9408263ba20762a2cb
+timeCreated: 1491910099
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 59 - 0
Assets/Scripts/UI/EquipPanel/EquipInfo.cs

@@ -0,0 +1,59 @@
+using UnityEngine;
+using UnityEngine.UI;
+using System.Collections;
+using System.Collections.Generic;
+
+public class EquipInfo : MonoBehaviour {
+
+	public Image border;
+	public Image icon;
+	public Text nameTxt;
+	public Text levelTxt;
+	public Text descTxt;
+
+	public Text upgradeLabel;
+	public Button upgradeBtn;
+	public Text equipLabel;
+	public Button equipBtn;
+
+	public EquipPanel equipPanel;
+
+	private Equipment equipment;
+
+	void Awake()
+	{
+		upgradeLabel.text = Language.GetStr ("EquipPanel", "upgrade");
+		equipLabel.text = Language.GetStr ("EquipPanel", "equip");
+	}
+
+	public void SetEquip(Equipment equip)
+	{
+		this.equipment = equip;
+
+		border.color = equip.GetData ().GetBorderColor ();
+		icon.sprite = equip.GetData ().GetIconSprite ();
+		nameTxt.text = equip.GetData ().GetName ();
+		nameTxt.color = equip.GetData ().GetTextColor ();
+		levelTxt.text = equip.GetLevelLabel ();
+
+		descTxt.text = equip.GetDescription ();
+
+		if (equip.GetCount () >= equip.GetNextLevelCount ())
+			ButtonUtil.Selected (upgradeBtn.gameObject);
+		else
+			ButtonUtil.Unselect (upgradeBtn.gameObject);
+	}
+
+
+	public void OnClickUpgrade()
+	{
+		if (equipment.GetCount () >= equipment.GetNextLevelCount ()) {
+			
+		}
+	}
+
+	public void OnClickEquip()
+	{
+		equipPanel.Equip (equipment);
+	}
+}

+ 12 - 0
Assets/Scripts/UI/EquipPanel/EquipInfo.cs.meta

@@ -0,0 +1,12 @@
+fileFormatVersion: 2
+guid: c5e7e92d651f02647804085c8db03636
+timeCreated: 1492066265
+licenseType: Pro
+MonoImporter:
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 174 - 0
Assets/Scripts/UI/EquipPanel/EquipManager.cs

@@ -0,0 +1,174 @@
+using UnityEngine;
+using System.Collections;
+using System.Collections.Generic;
+using System.Xml;
+using LitJson;
+
+public class EquipManager
+{
+
+	private Dictionary<int, EquipData> dataDict;
+
+	private Dictionary<int, EquipedData> equipedDict;
+
+	private List<Equipment> inventoryList;
+	public List<Equipment> hpList;
+	public List<Equipment> dmgList;
+	public List<Equipment> moveList;
+
+	public EquipManager()
+	{
+		dataDict = new Dictionary<int, EquipData>();
+		InitByXML("XML/Config/All/equip_config");
+
+		equipedDict = new Dictionary<int, EquipedData> ();
+
+		inventoryList = new List<Equipment> ();
+		hpList = new List<Equipment> ();
+		dmgList = new List<Equipment> ();
+		moveList = new List<Equipment> ();
+
+		InitEquiped ();
+	}
+
+	public void InitByXML(string path)
+	{
+		TextAsset textAsset = (TextAsset)Resources.Load(path);
+
+		XmlDocument xml = new XmlDocument();
+		xml.LoadXml(textAsset.text);
+
+		XmlNode mapNode = xml.SelectSingleNode("data");
+
+		XmlNodeList nodeList = mapNode.SelectNodes("item");
+		for(int i=0; i<nodeList.Count; i++)
+		{
+			EquipData data = new EquipData(nodeList[i] as XmlElement);
+			if(!dataDict.ContainsKey(data.id))
+				dataDict.Add(data.id, data);
+			else
+				Debuger.LogError("Equipment " + data.id + " has duplicate");
+		}
+	}
+
+
+
+	public void InitEquipInventory(JsonData jsonArr)
+	{
+		inventoryList.Clear ();
+		hpList.Clear ();
+		dmgList.Clear ();
+		moveList.Clear ();
+
+		for(int i=0; i<jsonArr.Count; i++)
+		{
+			JsonData data = jsonArr [i];
+			int id = JsonUtil.ToInt (data["id"]);
+			int level = JsonUtil.ToInt (data["level"]);
+			int count = JsonUtil.ToInt (data["count"]);
+
+			Equipment equipment = new Equipment (GetData (id));
+			equipment.SetCount (count);
+			equipment.SetLevel (level);
+
+//			equipment.SetCount (Random.Range(0, 10));
+//			equipment.SetLevel (Random.Range(1, 5));
+
+			inventoryList.Add (equipment);
+
+			if (equipment.HasHpProperty ())
+				hpList.Add (equipment);
+			if (equipment.HasDamageProperty ())
+				dmgList.Add (equipment);
+			if (equipment.HasMoveProperty ())
+				moveList.Add (equipment);
+		}
+
+		SortRecommand ();
+	}
+
+	private void SortRecommand()
+	{
+		hpList.Sort (HpCompare);
+		dmgList.Sort (DamageCompare);
+		moveList.Sort (MoveCompare);
+	}
+
+	private static int HpCompare(Equipment a, Equipment b)
+	{
+		if (a.GetHpProperty () > b.GetHpProperty ())
+			return -1;
+		else if (a.GetHpProperty () < b.GetHpProperty ())
+			return 1;
+		return 0;
+	}
+
+	private static int DamageCompare(Equipment a, Equipment b)
+	{
+		if (a.GetDamageProperty () > b.GetDamageProperty ())
+			return -1;
+		else if (a.GetDamageProperty () < b.GetDamageProperty ())
+			return 1;
+		return 0;
+	}
+
+	private static int MoveCompare(Equipment a, Equipment b)
+	{
+		if (a.GetMoveProperty () > b.GetMoveProperty ())
+			return -1;
+		else if (a.GetMoveProperty () < b.GetMoveProperty ())
+			return 1;
+		return 0;
+	}
+
+
+	public EquipData GetData(int id)
+	{
+		EquipData data = null;
+		dataDict.TryGetValue (id, out data);
+		return data;
+	}
+
+
+	public List<Equipment> GetInventoryList()
+	{
+		return inventoryList;
+	}
+
+
+
+
+
+
+	private void InitEquiped()
+	{
+		List<CraftConfigData> list = CraftManager.GetInstance ().GetDataList ();
+		for(int i=0; i<list.Count; i++)
+		{
+			CraftConfigData data = list [i];
+			EquipedData equipedData = new EquipedData (data.id);
+			equipedDict.Add (data.id, equipedData);
+		}
+
+
+	}
+
+	public EquipedData GetEquipedData(int craftId)
+	{
+		if(equipedDict.ContainsKey(craftId))
+			return equipedDict [craftId];
+		return null;
+	}
+
+
+	private static EquipManager instance;
+	public static EquipManager GetInstance()
+	{
+		if(instance == null)
+		{
+			instance = new EquipManager ();
+		}
+		return instance;
+	}
+}
+

Some files were not shown because too many files changed in this diff