浏览代码

修改根据士兵等级选关逻辑

1243896040 3 周之前
父节点
当前提交
6d83810420
共有 1 个文件被更改,包括 31 次插入40 次删除
  1. 31 40
      ActionTowerDefense/Assets/Scripts/EnemyCreater.cs

+ 31 - 40
ActionTowerDefense/Assets/Scripts/EnemyCreater.cs

@@ -174,7 +174,7 @@ public class EnemyCreater : MonoBehaviour
 
         }
 
-        if (GameManager.instance.leveType == LeveType.Conclusion 
+        if (GameManager.instance.leveType == LeveType.Conclusion
             || LevelSelect.instance.isDebug && LevelSelect.instance.isAddLevel_debug)
         {
             createdEnemy1 = new List<bool>();
@@ -226,7 +226,7 @@ public class EnemyCreater : MonoBehaviour
                 else
                 {
                     createdEnemy1.Add(false);
-                    createEnemyTime1.Add(new List<float> 
+                    createEnemyTime1.Add(new List<float>
                     { waveTime + cfgCreateEnemy1[i].StartTime, waveTime + cfgCreateEnemy1[i].EndTime });
                     createdEnemyTower1.Add("");
                     createdEnemyTowerHp1.Add(0);
@@ -244,19 +244,20 @@ public class EnemyCreater : MonoBehaviour
     public void GetLevelOrientation(int id)
     {
         List<int> soldierRank = new List<int>();
-        for(int i = 0; i < 3; i++)
+        for (int i = 0; i < 3; i++)
         {
             soldierRank.Add(SoldierEXP.expInstance.ssexp[i].level);
         }
+        //µÈ¼¶¸ßµÄÔÚǰ
         List<List<int>> idSort = new List<List<int>>();
         if (soldierRank[0] == soldierRank[1])
         {
             idSort.Add(new List<int> { 0, 1 });
-            if (soldierRank[2] == idSort[0][0])
+            if (soldierRank[2] == soldierRank[0])
             {
                 idSort[0].Add(2);
             }
-            else if (soldierRank[2] > idSort[0][0])
+            else if (soldierRank[2] > soldierRank[0])
             {
                 idSort.Insert(0, new List<int> { 2 });
             }
@@ -277,71 +278,61 @@ public class EnemyCreater : MonoBehaviour
                 idSort.Add(new List<int> { 1 });
                 idSort.Add(new List<int> { 0 });
             }
-            for(int i = 0; i < 2; i++)
+            for (int i = 0; i < 2; i++)
             {
-                if(soldierRank[2] > soldierRank[idSort[i][0]])
+                if (soldierRank[2] > soldierRank[idSort[i][0]])
                 {
                     idSort.Insert(i, new List<int> { 2 });
                     break;
                 }
-                if(soldierRank[2] == soldierRank[idSort[i][0]])
+                if (soldierRank[2] == soldierRank[idSort[i][0]])
                 {
                     idSort[i].Add(2);
                     break;
                 }
-                if(i == 1)
+                if (i == 1)
                 {
                     idSort.Add(new List<int> { 2 });
                 }
             }
         }
+        //string x = "";
+        //for(int i = 0; i < idSort.Count; i++)
+        //{
+        //    x += "["; 
+        //    for(int j = 0; j < idSort[i].Count; j++)
+        //    {
+        //        x += idSort[i][j];
+        //    }
+        //    x += "]";
+        //}
 
-        
-        List<int> idList = new List<int> { 6,4,1 };
-        int x0 = -1;
-        int x1 = -1;
         switch (idSort.Count)
         {
             case 1:
-                levelTypes[id] = Random.Range(1, 9); 
+                levelTypes[id] = Random.Range(1, 6);
                 break;
             case 2:
                 switch (idSort[id].Count)
                 {
                     case 1:
-                        levelTypes[id] = idList[idSort[id][0]];
+                        levelTypes[id] = GetLevelTypes(idSort[id][0]);
                         break;
                     case 2:
-                        x0 = idSort[id][0];
-                        x1 = idSort[id][1];
-                        if(x0 == 0 && x1 == 2)
-                        {
-                            levelTypes[id] = Random.Range(7, 9);
-                        }
-                        else
-                        {
-                            levelTypes[id] = Random.Range(idList[x1] + 1, idList[x0]);
-                        }
+                        levelTypes[id] = (GetLevelTypes(idSort[id][0]) + GetLevelTypes(idSort[id][1])) / 2;
+                        if (levelTypes[id] == 3) levelTypes[id] = 6;
                         break;
                 }
                 break;
             case 3:
-                x0 = Mathf.Min(idSort[0 + id * 2][0], idSort[1][0]);
-                x1 = Mathf.Max(idSort[0 + id * 2][0], idSort[1][0]);
-                if (x0 == 0 && x1 == 2)
-                {
-                    levelTypes[id] = Random.Range(7, 9);
-                }
-                else
-                {
-                    levelTypes[id] = Random.Range(idList[x1] + 1, idList[x0]);
-                }
+                levelTypes[id] = GetLevelTypes(idSort[id * 2][0]);
                 break;
         }
-        if (id == 1 && levelTypes[1] == levelTypes[0])
-        {
-            GetLevelOrientation(1);
-        }
+    }
+
+    public int GetLevelTypes(int id)
+    {
+        return id * 2 + 1;
     }
 
     public void OnGameTimeChange(float gameTime)
@@ -566,7 +557,7 @@ public class EnemyCreater : MonoBehaviour
                 enemy.SetSortingOrder(enemy.baseSortingOrder + enemyDic[cfgEnemy.Name].Count);
                 break;
         }
-        if(cfgEnemy.Type == "Tower")
+        if (cfgEnemy.Type == "Tower")
         {
 
         }