修复bug

This commit is contained in:
wuwenbo 2025-07-09 14:47:11 +08:00
parent 258f15d3db
commit 4b91f841dc

View File

@ -180,7 +180,7 @@ namespace Logic.AI
// 小兵目标城市
public Dictionary<uint, uint> UnitTargetCity;
// 小兵攻击系数
public Dictionary<uint, int> UnitAttackRatio;
public Dictionary<uint, float> UnitAttackRatio;
// 军团可达城市
public Dictionary<uint, HashSet<uint>> LegionCanMoveCities;
@ -241,7 +241,7 @@ namespace Logic.AI
LegionTargetCity = new Dictionary<uint, uint>();
UnitTargetGrid = new Dictionary<uint, GridData>();
UnitTargetCity = new Dictionary<uint, uint>();
UnitAttackRatio = new Dictionary<uint, int>();
UnitAttackRatio = new Dictionary<uint, float>();
LegionCanMoveCities = new Dictionary<uint, HashSet<uint>>();
TechGapScore = new Dictionary<TechType, float>();
@ -1039,9 +1039,11 @@ namespace Logic.AI
// 刷新小兵攻击系数
public void CalculateUnitAttackRatio()
{
var selfCity = new List<CityData>();
Map.GetCityDataListByPlayerId(Player.Id, selfCity);
foreach (var unit in Map.UnitMap.UnitList)
{
var ratio = 1;
var ratio = 1f;
if (unit.LegionId != 0)
{
if (LegionStrategy.TryGetValue(unit.LegionId, out var value))
@ -1058,6 +1060,10 @@ namespace Logic.AI
else ratio = 2;
}
}
if (Map.GetGridDataByUnitId(unit.Id, out var unitGrid) &&
Map.GetCityDataByGid(unitGrid.Id, out var city) &&
selfCity.Contains(city)) ratio = 0.5f;
UnitAttackRatio[unit.Id] = ratio;
}
}