棋盘编辑器扩展
This commit is contained in:
parent
358a41e2ed
commit
c0a5a33d45
@ -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<int, int> dict = new Dictionary<int, int>();
|
||||
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<int> list = new List<int>();
|
||||
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<string, string> 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;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user