Prechádzať zdrojové kódy

怪物成长倍率从波次移到怪物种类上

wgl 5 mesiacov pred
rodič
commit
670ca7f9ca

+ 12 - 11
ActionTowerDefense/Assets/GameLevelEditor/GameMap/CoreScripts/Editor/GameMapEdPopup.cs

@@ -181,9 +181,7 @@ public class GameMapEdPopup : PopupWindowContent
 				
 				ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"C{cell_row}", layer.name);
 				ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"D{cell_row}", layer.duration.ToString());
-				ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"E{cell_row}", layer.attack.ToString());
-				ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"F{cell_row}", layer.moveSpeed.ToString());
-				ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"G{cell_row}", layer.Hp.ToString());
+
 				for(int j = 0;j< layer.spawnTimes.Count; j++)
                 {
 					SpawnTime spawnTime = layer.spawnTimes[j];
@@ -199,7 +197,7 @@ public class GameMapEdPopup : PopupWindowContent
 							ExcelEditor.ModifyExcel(package, gameMap.showIdent, cell_row, 3 + k, "");
 						}
 					}
-					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"H{cell_row}", Asset.tileAsset.GetTile(spawnTime.id).name);
+					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"E{cell_row}", Asset.tileAsset.GetTile(spawnTime.id).name);
 					string posString = "";
 					for(int k = 0; k < spawnTime.pos.Count; k++)
                     {
@@ -213,10 +211,13 @@ public class GameMapEdPopup : PopupWindowContent
                         }
 						posString += ",";
                     }
-					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"I{cell_row}",	posString);
-					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"J{cell_row}",	spawnTime.startTime.ToString());
-					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"K{cell_row}",	spawnTime.endTime.ToString());
-					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"L{cell_row}",	spawnTime.num.ToString());
+					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"F{cell_row}",	posString);
+					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"G{cell_row}",	spawnTime.startTime.ToString());
+					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"H{cell_row}",	spawnTime.endTime.ToString());
+					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"I{cell_row}",	spawnTime.num.ToString());
+					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"J{cell_row}", (spawnTime.attack == 0?1:spawnTime.attack).ToString());
+					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"K{cell_row}", (spawnTime.moveSpeed == 0?1:spawnTime.moveSpeed).ToString());
+					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"L{cell_row}", (spawnTime.Hp == 0?1:spawnTime.Hp).ToString());
 					cell_row++;
 				}
             }
@@ -290,9 +291,6 @@ public class GameMapEdPopup : PopupWindowContent
 					GameMapLayer gameMapLayer = gameMap.layers[gameMap.layers.Length - 1];
 					gameMapLayer.name = singleCreateEnemyConfig.WaveName; 
 					gameMapLayer.duration = singleCreateEnemyConfig.WaveTime;
-					gameMapLayer.Hp = singleCreateEnemyConfig.HPRatio;
-					gameMapLayer.moveSpeed = singleCreateEnemyConfig.SpeedRatio;
-					gameMapLayer.attack = singleCreateEnemyConfig.AttackRatio;
 
 					//波次第一行怪物数据
 					ReloadEnemyInWave(gameMapLayer, cfgCreateEnemy[i],excelWorksheets[mapIdx - 1]);
@@ -345,6 +343,9 @@ public class GameMapEdPopup : PopupWindowContent
 			spawnTime.startTime = cfgData.StartTime;
 			spawnTime.endTime = cfgData.EndTime;
 			spawnTime.num = cfgData.Count;
+			spawnTime.Hp = cfgData.HPRatio;
+			spawnTime.moveSpeed = cfgData.SpeedRatio;
+			spawnTime.attack = cfgData.AttackRatio;
 
 			layer.spawnTimes.Add(spawnTime);
         }

+ 21 - 9
ActionTowerDefense/Assets/GameLevelEditor/GameMap/CoreScripts/Editor/GameMapEditor.cs

@@ -950,9 +950,6 @@ public class GameMapEditor : EditorWindow
 		EditorGUI.BeginChangeCheck();
 		string addName = EditorGUILayout.TextField("波次名称", layer.name);
 		int duration = EditorGUILayout.IntField("下一波时间", layer.duration);
-		float addHp = EditorGUILayout.FloatField("血量倍率", layer.Hp);
-		float addMoveSpeed = EditorGUILayout.FloatField("速度倍率", layer.moveSpeed);
-		float addAttack = EditorGUILayout.FloatField("攻击倍率", layer.attack);
 
 		EditorGUILayout.BeginVertical("box");
 		{
@@ -1058,9 +1055,6 @@ public class GameMapEditor : EditorWindow
 			//}
 			layer.name = addName;
 			layer.duration = duration;
-			layer.Hp = addHp;
-			layer.moveSpeed = addMoveSpeed;
-			layer.attack = addAttack;
 			EditorUtility.SetDirty(asset);
 		}
 
@@ -1322,9 +1316,18 @@ public class GameMapEditor : EditorWindow
 				foreach (var sheetName in excelsSheets)
 				{
 					ExcelEditor.ModifyExcel(package, sheetName, 7, 3 + asset.tileAsset.tiles.Count + i, "");
-				}
+                }
+            }
+            try
+            {
+				package.Save();
+			}
+            catch (System.InvalidOperationException e)
+            {
+				Debug.LogError($"出怪表未关闭请重试");
+				Debug.LogException(e);
+				return;
 			}
-			package.Save();
 		}
 		fileInfo = new FileInfo(path);
 		using (ExcelPackage package = new ExcelPackage(fileInfo))
@@ -1345,7 +1348,16 @@ public class GameMapEditor : EditorWindow
 				ExcelEditor.ModifyExcel(package, "CfgEnemy", $"L{8 + i}", tile.parameter.MaxMoveSpeed.ToString());
 			}
 			ExcelEditor.RemoveExcelRows(package, "CfgEnemy", 8 + asset.tileAsset.tiles.Count, 108 + asset.tileAsset.tiles.Count);
-			package.Save();
+			try
+			{
+				package.Save();
+			}
+			catch (System.InvalidOperationException e)
+			{
+				Debug.LogError($"怪物表未关闭请重试");
+				Debug.LogException(e);
+				return;
+			}
 		}
 		Debug.Log("怪物表数据保存完毕!");
 	}

+ 3 - 3
ActionTowerDefense/Assets/GameLevelEditor/GameMap/CoreScripts/GameMapLayer.cs

@@ -9,6 +9,9 @@ public struct SpawnTime
 	public int startTime;
 	public int endTime;
 	public int num;
+	[HideInInspector] public float Hp;
+	[HideInInspector] public float moveSpeed;
+	[HideInInspector] public float attack;
 }
 
 /// <summary>
@@ -22,9 +25,6 @@ public class GameMapLayer
 	public int[] grid = new int[0];
 	public int duration;
 	public string name;
-	public float Hp = 1;
-	public float moveSpeed = 1;
-	public float attack = 1;
 	public List<SpawnTime> spawnTimes = new List<SpawnTime>();
 
 

BIN
ActionTowerDefense/Luban/Config/Datas/出怪表.xlsx