Kaynağa Gözat

出怪表新增护甲倍率和穿甲倍率

wgl 5 ay önce
ebeveyn
işleme
2e07570751

+ 0 - 6
ActionTowerDefense/Assets/GameLevelEditor/GameMap/CoreScripts/Editor/GameMapEdPopup.cs

@@ -300,9 +300,6 @@ public class GameMapEdPopup : PopupWindowContent
 						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, $"M{cell_row}", (spawnTime.attack == 0 ? 1 : spawnTime.attack).ToString());
-						ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"N{cell_row}", (spawnTime.moveSpeed == 0 ? 1 : spawnTime.moveSpeed).ToString());
-						ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"O{cell_row}", (spawnTime.Hp == 0 ? 1 : spawnTime.Hp).ToString());
 						cell_row++;
 					}
 				}
@@ -401,9 +398,6 @@ public class GameMapEdPopup : PopupWindowContent
 					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"F{cell_row}", spawnTime.startTime.ToString());
 					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"G{cell_row}", spawnTime.endTime.ToString());
 					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"H{cell_row}", spawnTime.num.ToString());
-					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"I{cell_row}", (spawnTime.attack == 0 ? 1 : spawnTime.attack).ToString());
-					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"J{cell_row}", (spawnTime.moveSpeed == 0 ? 1 : spawnTime.moveSpeed).ToString());
-					ExcelEditor.ModifyExcel(package, gameMap.showIdent, $"K{cell_row}", (spawnTime.Hp == 0 ? 1 : spawnTime.Hp).ToString());
 					cell_row++;
 				}
 			}

+ 15 - 1
ActionTowerDefense/Assets/Gen/SingleCreateEnemyConfig.cs

@@ -32,10 +32,12 @@ public sealed partial class SingleCreateEnemyConfig :  Bright.Config.BeanBase
         { if(!_json["AttackRatio"].IsNumber) { throw new SerializationException(); }  AttackRatio = _json["AttackRatio"]; }
         { if(!_json["SpeedRatio"].IsNumber) { throw new SerializationException(); }  SpeedRatio = _json["SpeedRatio"]; }
         { if(!_json["HPRatio"].IsNumber) { throw new SerializationException(); }  HPRatio = _json["HPRatio"]; }
+        { if(!_json["ArmorRatio"].IsNumber) { throw new SerializationException(); }  ArmorRatio = _json["ArmorRatio"]; }
+        { if(!_json["ArmorPiercingRatio"].IsNumber) { throw new SerializationException(); }  ArmorPiercingRatio = _json["ArmorPiercingRatio"]; }
         PostInit();
     }
 
-    public SingleCreateEnemyConfig(float WaveID, string WaveName, int Dynamic, int WaveTime, string BuildingID, float BuildingHP, string EnemyName, System.Collections.Generic.List<int> Position, int StartTime, int EndTime, int Count, float AttackRatio, float SpeedRatio, float HPRatio ) 
+    public SingleCreateEnemyConfig(float WaveID, string WaveName, int Dynamic, int WaveTime, string BuildingID, float BuildingHP, string EnemyName, System.Collections.Generic.List<int> Position, int StartTime, int EndTime, int Count, float AttackRatio, float SpeedRatio, float HPRatio, float ArmorRatio, float ArmorPiercingRatio ) 
     {
         this.WaveID = WaveID;
         this.WaveName = WaveName;
@@ -51,6 +53,8 @@ public sealed partial class SingleCreateEnemyConfig :  Bright.Config.BeanBase
         this.AttackRatio = AttackRatio;
         this.SpeedRatio = SpeedRatio;
         this.HPRatio = HPRatio;
+        this.ArmorRatio = ArmorRatio;
+        this.ArmorPiercingRatio = ArmorPiercingRatio;
         PostInit();
     }
 
@@ -71,7 +75,13 @@ public sealed partial class SingleCreateEnemyConfig :  Bright.Config.BeanBase
     /// 140
     /// </summary>
     public int Dynamic { get; private set; }
+    /// <summary>
+    /// 经验倍率:
+    /// </summary>
     public int WaveTime { get; private set; }
+    /// <summary>
+    /// 1
+    /// </summary>
     public string BuildingID { get; private set; }
     public float BuildingHP { get; private set; }
     public string EnemyName { get; private set; }
@@ -82,6 +92,8 @@ public sealed partial class SingleCreateEnemyConfig :  Bright.Config.BeanBase
     public float AttackRatio { get; private set; }
     public float SpeedRatio { get; private set; }
     public float HPRatio { get; private set; }
+    public float ArmorRatio { get; private set; }
+    public float ArmorPiercingRatio { get; private set; }
 
     public const int __ID__ = 691467974;
     public override int GetTypeId() => __ID__;
@@ -112,6 +124,8 @@ public sealed partial class SingleCreateEnemyConfig :  Bright.Config.BeanBase
         + "AttackRatio:" + AttackRatio + ","
         + "SpeedRatio:" + SpeedRatio + ","
         + "HPRatio:" + HPRatio + ","
+        + "ArmorRatio:" + ArmorRatio + ","
+        + "ArmorPiercingRatio:" + ArmorPiercingRatio + ","
         + "}";
     }
     

+ 9 - 1
ActionTowerDefense/Assets/Gen/SingleDynamicEnemyConfig.cs

@@ -28,10 +28,12 @@ public sealed partial class SingleDynamicEnemyConfig :  Bright.Config.BeanBase
         { if(!_json["AttackRatio"].IsNumber) { throw new SerializationException(); }  AttackRatio = _json["AttackRatio"]; }
         { if(!_json["SpeedRatio"].IsNumber) { throw new SerializationException(); }  SpeedRatio = _json["SpeedRatio"]; }
         { if(!_json["HPRatio"].IsNumber) { throw new SerializationException(); }  HPRatio = _json["HPRatio"]; }
+        { if(!_json["ArmorRatio"].IsNumber) { throw new SerializationException(); }  ArmorRatio = _json["ArmorRatio"]; }
+        { if(!_json["ArmorPiercingRatio"].IsNumber) { throw new SerializationException(); }  ArmorPiercingRatio = _json["ArmorPiercingRatio"]; }
         PostInit();
     }
 
-    public SingleDynamicEnemyConfig(int WaveID, string WaveName, string EnemyName, System.Collections.Generic.List<int> Position, int StartTime, int EndTime, int Count, float AttackRatio, float SpeedRatio, float HPRatio ) 
+    public SingleDynamicEnemyConfig(int WaveID, string WaveName, string EnemyName, System.Collections.Generic.List<int> Position, int StartTime, int EndTime, int Count, float AttackRatio, float SpeedRatio, float HPRatio, float ArmorRatio, float ArmorPiercingRatio ) 
     {
         this.WaveID = WaveID;
         this.WaveName = WaveName;
@@ -43,6 +45,8 @@ public sealed partial class SingleDynamicEnemyConfig :  Bright.Config.BeanBase
         this.AttackRatio = AttackRatio;
         this.SpeedRatio = SpeedRatio;
         this.HPRatio = HPRatio;
+        this.ArmorRatio = ArmorRatio;
+        this.ArmorPiercingRatio = ArmorPiercingRatio;
         PostInit();
     }
 
@@ -70,6 +74,8 @@ public sealed partial class SingleDynamicEnemyConfig :  Bright.Config.BeanBase
     public float AttackRatio { get; private set; }
     public float SpeedRatio { get; private set; }
     public float HPRatio { get; private set; }
+    public float ArmorRatio { get; private set; }
+    public float ArmorPiercingRatio { get; private set; }
 
     public const int __ID__ = 1939625395;
     public override int GetTypeId() => __ID__;
@@ -96,6 +102,8 @@ public sealed partial class SingleDynamicEnemyConfig :  Bright.Config.BeanBase
         + "AttackRatio:" + AttackRatio + ","
         + "SpeedRatio:" + SpeedRatio + ","
         + "HPRatio:" + HPRatio + ","
+        + "ArmorRatio:" + ArmorRatio + ","
+        + "ArmorPiercingRatio:" + ArmorPiercingRatio + ","
         + "}";
     }
     

+ 10 - 13
ActionTowerDefense/Assets/Scripts/Characters/AttackController.cs

@@ -16,7 +16,7 @@ public enum AttackEffect
     [LabelText("击晕")]Weak = 3, 
 
     //非控制
-    [LabelText("穿甲")]Armor,
+    [LabelText("穿甲")]ArmorPiercing,
     [LabelText("易伤")]Vulnerable,
     ChangeDamage,       //更改攻击力
     SustainedInjury,    //持续伤害
@@ -90,14 +90,14 @@ public class AttackInfo
     public Weak weak;
 
     //穿甲
-    [Serializable]public struct Armor
+    [Serializable]public struct ArmorPiercing
     {
         [LabelText("穿甲值")]
         public int rate;
     }
-    private bool ShowArmorValue() => attackEffect.Contains(AttackEffect.Armor);
+    private bool ShowArmorValue() => attackEffect.Contains(AttackEffect.ArmorPiercing);
     [ShowIf("ShowArmorValue")][LabelText("穿甲参数")]
-    public Armor armor;
+    public ArmorPiercing armorPiercing;
 
     //易伤
     [Serializable]public struct Vulnerable
@@ -139,7 +139,7 @@ public class AttackInfo
         ai.blowUp = blowUp;
         ai.shotDown = shotDown;
         ai.weak = weak;
-        ai.armor = armor;
+        ai.armorPiercing = armorPiercing;
         ai.changeDamage = changeDamage;
         ai.sustainedInjury = sustainedInjury;
     }
@@ -255,8 +255,6 @@ public class AttackController : MonoBehaviour
     [DisplayOnly]
     public bool canHitFly;
     [DisplayOnly]
-    public int armorPiercing;                       //穿甲率
-    [DisplayOnly]
     public AttackInfo attackInfo;
     [DisplayOnly]
     public GameObject addAttackEffect;
@@ -335,21 +333,20 @@ public class AttackController : MonoBehaviour
         curAttackMethod = attackMethod[id];
         attackType = curAttackMethod.attackType;
         canHitFly = curAttackMethod.canHitFly;
-        armorPiercing = curAttackMethod.armorPiercing;
+        attackInfo = curAttackMethod.attackInfo;
+        curDamage = attackInfo.damage;
+        attackTrigger = curAttackMethod.attackTrigger;
         Demonic dem = owner.GetComponent<Demonic>();
         if (dem)
         {
-            for(int i = 0; i < 3; i++)
+            for (int i = 0; i < 3; i++)
             {
                 if (GameManager.curSoldiers[i] == dem.soldierType)
                 {
-                    armorPiercing += slr.seb[i].armorPiercing;
+                    attackTrigger.attackInfo.armorPiercing.rate += slr.seb[i].armorPiercing;
                 }
             }
         }
-        attackInfo = curAttackMethod.attackInfo;
-        curDamage = attackInfo.damage;
-        attackTrigger = curAttackMethod.attackTrigger;
         bulletPrefab = curAttackMethod.bulletPrefab;
         shootPos = curAttackMethod.shootPos;
         shootTrack = curAttackMethod.shootTrack;

+ 1 - 1
ActionTowerDefense/Assets/Scripts/Characters/AttributeStatus.cs

@@ -411,7 +411,7 @@ public class AttributeStatus : MonoBehaviour
     }
 
     //Êܵ½´©¼×
-    public int AddArmor(AttackInfo.Armor armor, int damage)
+    public int AddArmorPiercing(AttackInfo.ArmorPiercing armor, int damage)
     {
         //¼ÆË㻤¼×¼õÃâ
         int am = resistances.armor;

+ 2 - 2
ActionTowerDefense/Assets/Scripts/Characters/MoveCharacter.cs

@@ -237,8 +237,8 @@ public class MoveCharacter : Character
                 {
                     /*·Ç¿ØÖÆ*/
                     //´©¼×
-                    case AttackEffect.Armor:
-                        armorRate = attributeStatus.AddArmor(attackInfo.armor, damage);
+                    case AttackEffect.ArmorPiercing:
+                        armorRate = attributeStatus.AddArmorPiercing(attackInfo.armorPiercing, damage);
                         break;
                     //Ò×ÉË
                     case AttackEffect.Vulnerable:

+ 32 - 83
ActionTowerDefense/Assets/Scripts/EnemyCreater.cs

@@ -311,90 +311,34 @@ public class EnemyCreater : MonoBehaviour
         return maxID;
     }
 
-    public GameObject CreateEnemy(SingleCreateEnemyConfig cfgCreateEnemy, Vector3 pos, bool active = false)
+    //出怪表每一行怪
+    public void CreateEnemy(SingleCreateEnemyConfig cfg, Vector3 pos, bool active = false)
     {
-        SingleEnemyConfig cfgEnemy = GameManager.instance.allCfgData.CfgEnemy.Get(cfgCreateEnemy.EnemyName);
-        string enemyStr = $"Prefab/{cfgEnemy.Type}/{cfgEnemy.EnemyPrefab}";
-        float posx = pos.x + Random.Range(-cfgEnemy.Radius[0], cfgEnemy.Radius[0]);
-        float posy = pos.y + Random.Range(-cfgEnemy.Radius[1], cfgEnemy.Radius[1]) - 1;
-        pos = new Vector3(posx, posy <= 0 ? 0 : posy, 0);
-        GameObject enemyObj = Util.Instantiate(enemyStr, pos, active: active);
-        AttackInfo attackInfo;
-        if(cfgEnemy.Type == "Tower")
-        {
-            EnemyTower enemyTower = enemyObj.GetComponent<EnemyTower>();
-            Tower tower = enemyObj.GetComponent<Tower>();
-            if (enemyTower != null)
-            {
-                enemyTower.name = cfgEnemy.Name;
-
-                enemyTower.totalHp = (int)(cfgEnemy.HP * cfgCreateEnemy.HPRatio);
-                enemyTower.hp = enemyTower.totalHp;
-
-                attackInfo = enemyTower.attackController.attackInfo;
-                attackInfo.damage = (int)(cfgEnemy.AttackMarch * cfgCreateEnemy.AttackRatio);
-                enemyTower.attackController.attackInfo = attackInfo;
-                enemyTower.Init();
-            }
-            if (tower != null)
-            {
-                tower.name = cfgEnemy.Name;
-
-                tower.totalHp = (int)(cfgEnemy.HP * cfgCreateEnemy.HPRatio);
-                tower.hp = tower.totalHp;
-
-                attackInfo = tower.attackController.attackInfo;
-                attackInfo.damage = (int)(cfgEnemy.AttackMarch * cfgCreateEnemy.AttackRatio);
-                tower.attackController.attackInfo = attackInfo;
-                tower.Init();
-            }
-            if (!buildingDic.ContainsKey(cfgEnemy.Name))
-            {
-                buildingDic.Add(cfgEnemy.Name, new List<GameObject>());
-            }
-            buildingDic[cfgEnemy.Name].Add(enemyObj);
-            enemyCreateTowerDic[cfgCreateEnemy.WaveName] = enemyTower;
-        }
-        else if(cfgEnemy.Type == "Enemy")
-        {
-            Enemy enemy = enemyObj.GetComponent<Enemy>();
-            enemy.name = cfgEnemy.Name;
-            if (!enemyDic.ContainsKey(cfgEnemy.Name))
-            {
-                enemyDic.Add(cfgEnemy.Name, new List<Enemy>());
-            }
-            enemyDic[cfgEnemy.Name].Add(enemy);
-
-            enemy.totalHp = (int)(cfgEnemy.HP * cfgCreateEnemy.HPRatio);
-            enemy.hp = enemy.totalHp;
-            enemy.minMoveSpeed = cfgEnemy.MinMoveSpeed * cfgCreateEnemy.SpeedRatio;
-            enemy.maxMoveSpeed = cfgEnemy.MaxMoveSpeed * cfgCreateEnemy.SpeedRatio;
-
-            attackInfo = enemy.attackController.attackMethod[0].attackInfo;
-            attackInfo.damage = (int)(cfgEnemy.AttackMarch * cfgCreateEnemy.AttackRatio);
-            enemy.attackController.attackMethod[0].attackInfo = attackInfo;
+        CreateEnemyInit(cfg.EnemyName, cfg.WaveName,
+            cfg.HPRatio, cfg.AttackRatio, cfg.SpeedRatio, cfg.ArmorRatio, cfg.ArmorPiercingRatio,
+            pos, active);
+    }
 
-            if (enemy.canFly)
-            {
-                enemy.flyHeight = enemy.transform.position.y;
-            }
-            enemy.Init();
-            enemy.SetSortingOrder(enemy.baseSortingOrder + enemyDic[cfgEnemy.Name].Count);
-        }
-        enemyObj.transform.position = pos;
-        return enemyObj;
+    //动态出怪表每一波怪
+    public void CreateEnemy(SingleDynamicEnemyConfig cfg, Vector3 pos, bool active = false)
+    {
+        CreateEnemyInit(cfg.EnemyName, cfg.WaveName,
+            cfg.HPRatio, cfg.AttackRatio, cfg.SpeedRatio, cfg.ArmorRatio, cfg.ArmorPiercingRatio,
+            pos, active);
     }
 
-    public GameObject CreateEnemy(SingleDynamicEnemyConfig cfgCreateEnemy, Vector3 pos, bool active = false)
+    public GameObject CreateEnemyInit(string EnemyName, string WaveName,
+        float HPRatio, float AttackRatio, float SpeedRatio, float ArmorRatio, float ArmorPiercingRatio,
+        Vector3 pos, bool active = false)
     {
-        SingleEnemyConfig cfgEnemy = GameManager.instance.allCfgData.CfgEnemy.Get(cfgCreateEnemy.EnemyName);
+        SingleEnemyConfig cfgEnemy = GameManager.instance.allCfgData.CfgEnemy.Get(EnemyName);
         string enemyStr = $"Prefab/{cfgEnemy.Type}/{cfgEnemy.EnemyPrefab}";
         float posx = pos.x + Random.Range(-cfgEnemy.Radius[0], cfgEnemy.Radius[0]);
         float posy = pos.y + Random.Range(-cfgEnemy.Radius[1], cfgEnemy.Radius[1]) - 1;
         pos = new Vector3(posx, posy <= 0 ? 0 : posy, 0);
         GameObject enemyObj = Util.Instantiate(enemyStr, pos, active: active);
         AttackInfo attackInfo;
-        if (cfgEnemy.Type == "Tower")
+        if(cfgEnemy.Type == "Tower")
         {
             EnemyTower enemyTower = enemyObj.GetComponent<EnemyTower>();
             Tower tower = enemyObj.GetComponent<Tower>();
@@ -402,11 +346,11 @@ public class EnemyCreater : MonoBehaviour
             {
                 enemyTower.name = cfgEnemy.Name;
 
-                enemyTower.totalHp = (int)(cfgEnemy.HP * cfgCreateEnemy.HPRatio);
+                enemyTower.totalHp = (int)(cfgEnemy.HP * HPRatio);
                 enemyTower.hp = enemyTower.totalHp;
 
                 attackInfo = enemyTower.attackController.attackInfo;
-                attackInfo.damage = (int)(cfgEnemy.AttackMarch * cfgCreateEnemy.AttackRatio);
+                attackInfo.damage = (int)(cfgEnemy.AttackMarch * AttackRatio);
                 enemyTower.attackController.attackInfo = attackInfo;
                 enemyTower.Init();
             }
@@ -414,11 +358,11 @@ public class EnemyCreater : MonoBehaviour
             {
                 tower.name = cfgEnemy.Name;
 
-                tower.totalHp = (int)(cfgEnemy.HP * cfgCreateEnemy.HPRatio);
+                tower.totalHp = (int)(cfgEnemy.HP * HPRatio);
                 tower.hp = tower.totalHp;
 
                 attackInfo = tower.attackController.attackInfo;
-                attackInfo.damage = (int)(cfgEnemy.AttackMarch * cfgCreateEnemy.AttackRatio);
+                attackInfo.damage = (int)(cfgEnemy.AttackMarch * AttackRatio);
                 tower.attackController.attackInfo = attackInfo;
                 tower.Init();
             }
@@ -427,9 +371,9 @@ public class EnemyCreater : MonoBehaviour
                 buildingDic.Add(cfgEnemy.Name, new List<GameObject>());
             }
             buildingDic[cfgEnemy.Name].Add(enemyObj);
-            enemyCreateTowerDic[cfgCreateEnemy.WaveName] = enemyTower;
+            enemyCreateTowerDic[WaveName] = enemyTower;
         }
-        else if (cfgEnemy.Type == "Enemy")
+        else if(cfgEnemy.Type == "Enemy")
         {
             Enemy enemy = enemyObj.GetComponent<Enemy>();
             enemy.name = cfgEnemy.Name;
@@ -439,14 +383,19 @@ public class EnemyCreater : MonoBehaviour
             }
             enemyDic[cfgEnemy.Name].Add(enemy);
 
-            enemy.totalHp = (int)(cfgEnemy.HP * cfgCreateEnemy.HPRatio);
+            enemy.totalHp = (int)(cfgEnemy.HP * HPRatio);
             enemy.hp = enemy.totalHp;
-            enemy.minMoveSpeed = cfgEnemy.MinMoveSpeed * cfgCreateEnemy.SpeedRatio;
-            enemy.maxMoveSpeed = cfgEnemy.MaxMoveSpeed * cfgCreateEnemy.SpeedRatio;
+            enemy.minMoveSpeed = cfgEnemy.MinMoveSpeed * SpeedRatio;
+            enemy.maxMoveSpeed = cfgEnemy.MaxMoveSpeed * SpeedRatio;
 
             attackInfo = enemy.attackController.attackMethod[0].attackInfo;
-            attackInfo.damage = (int)(cfgEnemy.AttackMarch * cfgCreateEnemy.AttackRatio);
+            attackInfo.damage = (int)(cfgEnemy.AttackMarch * AttackRatio);
             enemy.attackController.attackMethod[0].attackInfo = attackInfo;
+            enemy.attributeStatus.resistances.armor = (int)(enemy.attributeStatus.resistances.armor * ArmorRatio + 0.5f);
+            foreach (var item in enemy.attackController.attackMethod)
+            {
+                item.attackInfo.armorPiercing.rate = (int)(item.attackInfo.armorPiercing.rate * ArmorPiercingRatio);
+            }
 
             if (enemy.canFly)
             {

Dosya farkı çok büyük olduğundan ihmal edildi
+ 277 - 95
ActionTowerDefense/GenerateDatas/json/cfgcreateenemy.json


+ 20 - 8
ActionTowerDefense/GenerateDatas/json/cfgdynamicenemy.json

@@ -7,9 +7,11 @@
     "StartTime": 0,
     "EndTime": 0,
     "Count": 0,
-    "AttackRatio": 0,
-    "SpeedRatio": 0,
-    "HPRatio": 0
+    "AttackRatio": 1,
+    "SpeedRatio": 1,
+    "HPRatio": 1,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
   },
   {
     "WaveID": 1,
@@ -26,7 +28,9 @@
     "Count": 2,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 1
+    "HPRatio": 1,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
   },
   {
     "WaveID": 1,
@@ -43,7 +47,9 @@
     "Count": 2,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 1
+    "HPRatio": 1,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
   },
   {
     "WaveID": 1,
@@ -60,7 +66,9 @@
     "Count": 2,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 1
+    "HPRatio": 1,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
   },
   {
     "WaveID": 2,
@@ -75,7 +83,9 @@
     "Count": 23,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 1
+    "HPRatio": 1,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
   },
   {
     "WaveID": 3,
@@ -90,6 +100,8 @@
     "Count": 3,
     "AttackRatio": 1,
     "SpeedRatio": 1,
-    "HPRatio": 1
+    "HPRatio": 1,
+    "ArmorRatio": 1,
+    "ArmorPiercingRatio": 1
   }
 ]

+ 26 - 15
ActionTowerDefense/GenerateDatas/json/cfgsoldierlevel.json

@@ -1,7 +1,7 @@
 [
   {
     "Level": 2,
-    "Soldier": "spear",
+    "Soldier": "sword",
     "EXP": 100,
     "SummonAttack": 0,
     "MarchAttack": 0,
@@ -12,7 +12,7 @@
   },
   {
     "Level": 3,
-    "Soldier": "spear",
+    "Soldier": "sword",
     "EXP": 200,
     "SummonAttack": 10,
     "MarchAttack": 0,
@@ -23,7 +23,7 @@
   },
   {
     "Level": 4,
-    "Soldier": "spear",
+    "Soldier": "sword",
     "EXP": 300,
     "SummonAttack": 0,
     "MarchAttack": 10,
@@ -34,7 +34,7 @@
   },
   {
     "Level": 5,
-    "Soldier": "spear",
+    "Soldier": "sword",
     "EXP": 400,
     "SummonAttack": 0,
     "MarchAttack": 0,
@@ -45,7 +45,7 @@
   },
   {
     "Level": 6,
-    "Soldier": "spear",
+    "Soldier": "sword",
     "EXP": 500,
     "SummonAttack": 0,
     "MarchAttack": 0,
@@ -55,8 +55,19 @@
     "ArmorPierce": 1
   },
   {
-    "Level": 2,
+    "Level": 7,
     "Soldier": "sword",
+    "EXP": 500,
+    "SummonAttack": 100,
+    "MarchAttack": 0,
+    "HP": 0,
+    "armor": 0,
+    "MP": 0,
+    "ArmorPierce": 0
+  },
+  {
+    "Level": 2,
+    "Soldier": "shield",
     "EXP": 100,
     "SummonAttack": 0,
     "MarchAttack": 0,
@@ -67,7 +78,7 @@
   },
   {
     "Level": 3,
-    "Soldier": "sword",
+    "Soldier": "shield",
     "EXP": 200,
     "SummonAttack": 10,
     "MarchAttack": 0,
@@ -78,7 +89,7 @@
   },
   {
     "Level": 4,
-    "Soldier": "sword",
+    "Soldier": "shield",
     "EXP": 300,
     "SummonAttack": 0,
     "MarchAttack": 10,
@@ -89,7 +100,7 @@
   },
   {
     "Level": 5,
-    "Soldier": "sword",
+    "Soldier": "shield",
     "EXP": 400,
     "SummonAttack": 0,
     "MarchAttack": 0,
@@ -100,7 +111,7 @@
   },
   {
     "Level": 6,
-    "Soldier": "sword",
+    "Soldier": "shield",
     "EXP": 500,
     "SummonAttack": 0,
     "MarchAttack": 0,
@@ -111,7 +122,7 @@
   },
   {
     "Level": 2,
-    "Soldier": "shield",
+    "Soldier": "spear",
     "EXP": 100,
     "SummonAttack": 0,
     "MarchAttack": 0,
@@ -122,7 +133,7 @@
   },
   {
     "Level": 3,
-    "Soldier": "shield",
+    "Soldier": "spear",
     "EXP": 200,
     "SummonAttack": 10,
     "MarchAttack": 0,
@@ -133,7 +144,7 @@
   },
   {
     "Level": 4,
-    "Soldier": "shield",
+    "Soldier": "spear",
     "EXP": 300,
     "SummonAttack": 0,
     "MarchAttack": 10,
@@ -144,7 +155,7 @@
   },
   {
     "Level": 5,
-    "Soldier": "shield",
+    "Soldier": "spear",
     "EXP": 400,
     "SummonAttack": 0,
     "MarchAttack": 0,
@@ -155,7 +166,7 @@
   },
   {
     "Level": 6,
-    "Soldier": "shield",
+    "Soldier": "spear",
     "EXP": 500,
     "SummonAttack": 0,
     "MarchAttack": 0,

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


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


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor