diff --git a/CAPI/cpp/API/include/constants.h b/CAPI/cpp/API/include/constants.h index a535aee9..fb7c4ffa 100755 --- a/CAPI/cpp/API/include/constants.h +++ b/CAPI/cpp/API/include/constants.h @@ -17,7 +17,7 @@ namespace Constants SCCI int32_t numOfGridPerCell = 1000; // 单位坐标数 SCCI int32_t rows = 50; // 地图行数 SCCI int32_t cols = 50; // 地图列数 - SCCI int32_t maxResourceProgress = 200; + SCCI int32_t maxResourceProgress = 32000; SCCI int32_t maxWormholeHp = 18000; SCCI double robPercent = 0.2; // 击杀获得经济比率 SCCI int32_t DestroyBuildingBonus = 200; @@ -25,23 +25,25 @@ namespace Constants SCCI double recycleMultiplier = 0.5; struct Home { - SCCI int32_t maxHp = 24000; + SCCI int32_t maxHp = 48000; SCCI int32_t energySpeed = 100; + SCCI int32_t attackRange = 8000; + SCCI int32_t damage = 300; }; struct Factory { - SCCI int32_t maxHp = 8000; - SCCI int32_t energySpeed = 300; + SCCI int32_t maxHp = 12000; + SCCI int32_t energySpeed = 200; }; struct Community { - SCCI int32_t maxHp = 6000; + SCCI int32_t maxHp = 10000; }; struct Fort { - SCCI int32_t maxHp = 12000; + SCCI int32_t maxHp = 16000; SCCI int32_t attackRange = 8000; - SCCI int32_t damage = 1200; + SCCI int32_t damage = 300; }; // 船 @@ -120,54 +122,55 @@ namespace Constants // 子弹 struct Laser { - SCCI int32_t Damage = 1200; + SCCI int32_t Damage = 800; SCCI int32_t AttackRange = 4000; SCCI double ArmorDamageMultiplier = 1.5; SCCI double ShieldDamageMultiplier = 0.6; SCCI int32_t Speed = 20000; - SCCI int32_t CastTime = 300; // ms - SCCI int32_t BackSwing = 300; + SCCI int32_t CastTime = 500; // ms + SCCI int32_t BackSwing = 1000; }; struct Plasma { - SCCI int32_t Damage = 1300; + SCCI int32_t Damage = 1000; SCCI int32_t AttackRange = 4000; SCCI double ArmorDamageMultiplier = 2.0; SCCI double ShieldDamageMultiplier = 0.4; SCCI int32_t Speed = 10000; - SCCI int32_t CastTime = 400; // ms - SCCI int32_t BackSwing = 400; + SCCI int32_t CastTime = 800; // ms + SCCI int32_t BackSwing = 1600; }; struct Shell { - SCCI int32_t Damage = 1800; + SCCI int32_t Damage = 1200; SCCI int32_t AttackRange = 4000; SCCI double ArmorDamageMultiplier = 0.4; SCCI double ShieldDamageMultiplier = 1.5; SCCI int32_t Speed = 8000; - SCCI int32_t CastTime = 200; // ms - SCCI int32_t BackSwing = 200; + SCCI int32_t CastTime = 500; // ms + SCCI int32_t BackSwing = 1000; }; struct Missile { SCCI int32_t Damage = 1600; - SCCI int32_t AttackRange = 8000; - SCCI int32_t ExplodeRange = 1600; + SCCI int32_t AttackRange = 6000; + SCCI int32_t ExplodeRange = 1100; SCCI double ArmorDamageMultiplier = 1.0; SCCI double ShieldDamageMultiplier = 0.4; SCCI int32_t Speed = 6000; - SCCI int32_t CastTime = 600; // ms - SCCI int32_t BackSwing = 600; + SCCI int32_t CastTime = 1200; // ms + SCCI int32_t BackSwing = 1800; }; struct Arc { - SCCI int32_t Damage = 3200; // 100-3200 - SCCI int32_t AttackRange = 8000; + SCCI int32_t MinDamage = 800; + SCCI int32_t MaxDamage = 1600; + SCCI int32_t AttackRange = 6000; SCCI double ArmorDamageMultiplier = 2.0; SCCI double ShieldDamageMultiplier = 2.0; SCCI int32_t Speed = 8000; - SCCI int32_t CastTime = 600; // ms - SCCI int32_t BackSwing = 600; + SCCI int32_t CastTime = 1200; // ms + SCCI int32_t BackSwing = 1800; }; } // namespace Constants #endif diff --git a/CAPI/python/PyAPI/constants.py b/CAPI/python/PyAPI/constants.py index ed893f48..95522da9 100644 --- a/CAPI/python/PyAPI/constants.py +++ b/CAPI/python/PyAPI/constants.py @@ -3,7 +3,7 @@ class Constants: numofGridPerCell = 1000 rows = 50 cols = 50 - maxResourceProgress = 200 + maxResourceProgress = 32000 maxWormholeHp = 18000 robPercent = 0.2 destroyBuildingBonus = 200 @@ -13,23 +13,25 @@ class Constants: class Home: - maxHp = 24000 + maxHp = 48000 energySpeed = 100 + damage = 300 + attackRange = 8000 class Factory: - maxHp = 8000 - energySpeed = 300 + maxHp = 12000 + energySpeed = 200 class Community: - maxHp = 6000 + maxHp = 10000 class Fort: - maxHp = 12000 + maxHp = 16000 attackRange = 8000 - damage = 1200 + damage = 300 class CivilianShip: @@ -101,51 +103,52 @@ class Weapon: class Laser: - Damage = 1200 + Damage = 800 AttackRange = 4000 ArmorDamageMultiplier = 1.5 ShieldDamageMultiplier = 0.6 Speed = 20000 - CastTime = 300 - BackSwing = 300 + CastTime = 500 + BackSwing = 1000 class Plasma: - Damage = 1300 + Damage = 1000 AttackRange = 4000 ArmorDamageMultiplier = 2.0 ShieldDamageMultiplier = 0.4 Speed = 10000 - CastTime = 400 - BackSwing = 400 + CastTime = 800 + BackSwing = 1600 class Shell: - Damage = 1800 + Damage = 1200 AttackRange = 4000 ArmorDamageMultiplier = 0.4 ShieldDamageMultiplier = 1.5 Speed = 8000 - CastTime = 200 - BackSwing = 200 + CastTime = 500 + BackSwing = 1000 class Missle: Damage = 1600 - AttackRange = 8000 - ExplodeRange = 1600 + AttackRange = 6000 + ExplodeRange = 1100 ArmorDamageMultiplier = 1.0 ShieldDamageMultiplier = 0.4 Speed = 6000 - CastTime = 600 - BackSwing = 600 + CastTime = 1200 + BackSwing = 1800 class Arc: - Damage = 3200 - AttackRange = 8000 + MinDamage = 800 + MaxDamage = 1600 + AttackRange = 6000 ArmorDamageMultiplier = 2.0 ShieldDamageMultiplier = 2.0 Speed = 8000 - CastTime = 600 - BackSwing = 600 + CastTime = 1200 + BackSwing = 1800 diff --git a/logic/GameClass/GameObj/Areas/Construction.cs b/logic/GameClass/GameObj/Areas/Construction.cs index 8b82dfd6..217764df 100755 --- a/logic/GameClass/GameObj/Areas/Construction.cs +++ b/logic/GameClass/GameObj/Areas/Construction.cs @@ -70,8 +70,6 @@ public bool BeAttacked(Bullet bullet) } if (HP == 0) { - lock (lockOfConstructionType) - constructionType = ConstructionType.Null; IsActivated.Set(false); } return HP.IsBelowMaxTimes(0.5); diff --git a/logic/Gaming/AttackManager.cs b/logic/Gaming/AttackManager.cs index 7e74fae5..d220a500 100755 --- a/logic/Gaming/AttackManager.cs +++ b/logic/Gaming/AttackManager.cs @@ -106,8 +106,9 @@ private void BombObj(Bullet bullet, GameObj objBeingShot) } break; case GameObjType.Wormhole: + var previousHP = ((WormholeCell)objBeingShot).Wormhole.HP; ((WormholeCell)objBeingShot).Wormhole.BeAttacked(bullet); - if (((WormholeCell)objBeingShot).Wormhole.HP < GameData.WormholeHP / 2) + if (previousHP >= GameData.WormholeHP / 2 && ((WormholeCell)objBeingShot).Wormhole.HP < GameData.WormholeHP / 2) { var shipList = gameMap.ShipInTheList(((WormholeCell)objBeingShot).Wormhole.Cells); if (shipList != null)