Merge branch 'main' of http://10.27.17.121:3000/kawagiri/TH1
This commit is contained in:
commit
df546508d3
@ -50,25 +50,36 @@ namespace NodeCanvas.Tasks.Actions
|
||||
param.MapData.GetCityDataListByPlayerId(param.PlayerData.Id, selfCity);
|
||||
var aroundGrids = param.MapData.GridMap.GetAroundGridData(Offset, Offset, unitGrid);
|
||||
var targetGrids = new List<List<GridData>>();
|
||||
for (int i = 0; i < 3; i++) targetGrids.Add(new List<GridData>());
|
||||
for (int i = 0; i < 4; i++) targetGrids.Add(new List<GridData>());
|
||||
foreach (var grid in aroundGrids)
|
||||
{
|
||||
if (grid == unitGrid) continue;
|
||||
if (grid.Resource == ResourceType.CityCenter && !param.MapData.GetCityDataByGid(grid.Id, out _))
|
||||
if (grid.Resource == ResourceType.CityCenter && param.MapData.GetCityDataByGid(grid.Id, out var city) &&
|
||||
!selfCity.Contains(city) && param.MapData.GetPlayerDataByCityId(city.Id, out var player))
|
||||
{
|
||||
targetGrids[0].Add(grid);
|
||||
continue;
|
||||
param.PlayerData.DiplomacyData.GetCountryDiplomacyInfo(player.Id, out var selfToPlayer);
|
||||
if (selfToPlayer.DiplomacyState != DiplomacyState.League)
|
||||
{
|
||||
targetGrids[0].Add(grid);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (grid.Resource == ResourceType.Treasure) // 宝箱
|
||||
|
||||
if (grid.Resource == ResourceType.CityCenter && !param.MapData.GetCityDataByGid(grid.Id, out _))
|
||||
{
|
||||
targetGrids[1].Add(grid);
|
||||
continue;
|
||||
}
|
||||
if (grid.Resource == ResourceType.Starfish && param.PlayerData.TechTree.CheckIfHasTech(TechType.Navigation)) // 海星
|
||||
if (grid.Resource == ResourceType.Treasure) // 宝箱
|
||||
{
|
||||
targetGrids[2].Add(grid);
|
||||
continue;
|
||||
}
|
||||
if (grid.Resource == ResourceType.Starfish && param.PlayerData.TechTree.CheckIfHasTech(TechType.Navigation)) // 海星
|
||||
{
|
||||
targetGrids[3].Add(grid);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
var score = float.MinValue;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -616,13 +616,8 @@ namespace Logic.AI
|
||||
}
|
||||
if (type == CalculateType.UnitAttack)
|
||||
{
|
||||
if (aiAction.Param.UnitData == null || aiAction.Param.TargetUnitData == null) return false;
|
||||
if (!data.UnitAttackRatio.TryGetValue(aiAction.Param.UnitData.Id, out var ratio)) return false;
|
||||
|
||||
var selfDmg = Table.Instance.CalcDamage(aiAction.Param.MapData, aiAction.Param.UnitData, aiAction.Param.TargetUnitData);
|
||||
var otherDmg = Table.Instance.CalcDamage(aiAction.Param.MapData, aiAction.Param.TargetUnitData, aiAction.Param.UnitData);
|
||||
if (selfDmg < aiAction.Param.TargetUnitData.Health && selfDmg * ratio < otherDmg) return false;
|
||||
return true;
|
||||
var score = data.CalculateAttackGain(aiAction.Param.MapData, aiAction.Param.UnitData, aiAction.Param.TargetUnitData);
|
||||
return score > 0;
|
||||
}
|
||||
|
||||
if (type == CalculateType.UnitAttackSelfCityEnemy)
|
||||
@ -659,12 +654,9 @@ namespace Logic.AI
|
||||
if (aiAction.Param.UnitData == null || aiAction.Param.TargetUnitData == null || aiAction.Param.TargetGridData == null) return false;
|
||||
if (!aiAction.Param.MapData.GetGridDataByUnitId(aiAction.Param.TargetUnitData.Id, out var unitGrid)) return false;
|
||||
if (aiAction.Param.TargetGridData != unitGrid) return false;
|
||||
if (!data.UnitAttackRatio.TryGetValue(aiAction.Param.UnitData.Id, out var ratio)) return false;
|
||||
|
||||
var selfDmg = Table.Instance.CalcDamage(aiAction.Param.MapData, aiAction.Param.UnitData, aiAction.Param.TargetUnitData);
|
||||
var otherDmg = Table.Instance.CalcDamage(aiAction.Param.MapData, aiAction.Param.TargetUnitData, aiAction.Param.UnitData);
|
||||
if (selfDmg < aiAction.Param.TargetUnitData.Health && selfDmg * ratio < otherDmg) return false;
|
||||
return true;
|
||||
var score = data.CalculateAttackGain(aiAction.Param.MapData, aiAction.Param.UnitData, aiAction.Param.TargetUnitData);
|
||||
return score > 0;
|
||||
}
|
||||
if (type == CalculateType.LegionAttackMoveInCity)
|
||||
{
|
||||
@ -713,6 +705,7 @@ namespace Logic.AI
|
||||
}
|
||||
if (type == CalculateType.DiplomacyTech)
|
||||
{
|
||||
// TODO 外交科技选择
|
||||
if (aiAction.ActionLogic.ActionId.TechType == TechType.Strategy) return true;
|
||||
if (aiAction.ActionLogic.ActionId.TechType == TechType.Diplomacy) return true;
|
||||
return false;
|
||||
|
||||
@ -524,10 +524,7 @@ namespace Logic.Editor
|
||||
}
|
||||
_activeSet.Add(textCom.ID);
|
||||
}
|
||||
foreach (var prefab in prefabList) EditorUtility.SetDirty(prefab);
|
||||
AssetDatabase.SaveAssets();
|
||||
AssetDatabase.Refresh();
|
||||
|
||||
|
||||
_asset.RefreshDict();
|
||||
foreach (var kv in _zhStrDict)
|
||||
{
|
||||
@ -561,6 +558,7 @@ namespace Logic.Editor
|
||||
}
|
||||
|
||||
WriteToExcel();
|
||||
foreach (var prefab in prefabList) EditorUtility.SetDirty(prefab);
|
||||
EditorUtility.SetDirty(_asset);
|
||||
AssetDatabase.SaveAssets();
|
||||
AssetDatabase.Refresh();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user