diff --git a/Assets/Editor/BFOthersTools/BoardEditorTools/BoardEditorWindow.cs b/Assets/Editor/BFOthersTools/BoardEditorTools/BoardEditorWindow.cs index b24abf16f..71f1c9072 100644 --- a/Assets/Editor/BFOthersTools/BoardEditorTools/BoardEditorWindow.cs +++ b/Assets/Editor/BFOthersTools/BoardEditorTools/BoardEditorWindow.cs @@ -218,6 +218,7 @@ namespace BFEditor GUILayout.BeginVertical(); GUILayout.Label("随机类型和数量[类型,数量] 空格 [类型,数量]"); randomTypeStr = GUILayout.TextField(randomTypeStr, GUILayout.Width(500)); + GUILayout.BeginHorizontal(); if(GUILayout.Button("生成随机棋盘", GUILayout.Width(80))) { string[] units = randomTypeStr.Split('['); @@ -236,7 +237,6 @@ namespace BFEditor { list.Add(i); } - Debug.Log(JsonConvert.SerializeObject(dict)); JArray ja = new JArray(); for (int i = 0; i < gridCount; i++) { @@ -254,6 +254,51 @@ namespace BFEditor } boardDict[curIndex] = ja; } + if(GUILayout.Button("生成随机棋盘+元素", GUILayout.Width(110))) + { + string[] units = randomTypeStr.Split('['); + Dictionary dict = new Dictionary(); + for (int i = 0; i < units.Length; i++) + { + string formatStr = units[i].Replace("[", "").Replace("]", "").Replace(" ", ""); + string[] unitList = formatStr.Split(','); + if (unitList.Length >= 2) + { + dict[int.Parse(unitList[0])] = int.Parse(unitList[1]); + } + } + List list = new List(); + for (int i = 0; i < gridCount; i++) + { + list.Add(i); + } + JArray ja = new JArray(); + for (int i = 0; i < gridCount; i++) + { + JArray unit = (JArray)JsonConvert.DeserializeObject("[0, 0]"); + ja.Add(unit); + } + foreach (int gridType in dict.Keys) + { + for(int i = 0; i < dict[gridType]; i++) + { + int index = UnityEngine.Random.Range(0, list.Count); + ja[list[index]][0] = gridType; + list.RemoveAt(index); + } + } + for (int i = 0; i < ja.Count; i++) + { + int gridType = (int)(ja[i][0]); + Dictionary gridTypeDict = boardGridTypeDict[gridType]; + if (gridTypeDict.ContainsKey("break_stay_element") || !gridTypeDict.ContainsKey("element_invalid")) + { + ja[i][1] = UnityEngine.Random.Range(1, 6); + } + } + boardDict[curIndex] = ja; + } + GUILayout.EndHorizontal(); GUILayout.EndArea(); if(GUI.Button(new Rect(1050, 10, 100, 30), "导出到Excel")) { @@ -302,6 +347,7 @@ namespace BFEditor foreach (var item2 in (JObject)item.Value) { dict[item2.Key] = item2.Value.ToString(); + Debug.Log(item2.Key); } boardGridTypeDict[key] = dict; }