修复bug
This commit is contained in:
parent
258f15d3db
commit
4b91f841dc
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user