增加开局开队友首都视野
This commit is contained in:
parent
c76ca961f1
commit
7a501d15e0
@ -499,6 +499,7 @@ namespace RuntimeData
|
||||
public void OnTurnStart(MapData map)
|
||||
{
|
||||
Turn++;
|
||||
Main.PlayerLogic.UpdateAllTeammateCapitalSight(map);
|
||||
//减少1点伟人复活冷却的时间点
|
||||
for (int i = 0; i < 6; i++)
|
||||
if (giantPenalty[i] > 0) giantPenalty[i]--;
|
||||
|
||||
@ -1615,6 +1615,41 @@ namespace Logic
|
||||
return UpdateSight_LogicView(mapData,playerData,mapData.GridMap.GetAroundGridIdList(radius,gridData,true),ViewNextFrame);
|
||||
}
|
||||
|
||||
public void UpdateAllTeammateCapitalSight(MapData mapData)
|
||||
{
|
||||
if (mapData?.PlayerMap?.PlayerDataList == null) return;
|
||||
|
||||
foreach (var player in mapData.PlayerMap.PlayerDataList)
|
||||
{
|
||||
if (player == null || !player.IsSurvival) continue;
|
||||
|
||||
using var pooledGidList = THCollectionPool.GetListHandle<uint>(out var gidList);
|
||||
foreach (var teammate in mapData.PlayerMap.PlayerDataList)
|
||||
{
|
||||
if (teammate == null || !teammate.IsSurvival || teammate.Id == player.Id) continue;
|
||||
if (!CheckIsTeammate(mapData, player, teammate)) continue;
|
||||
if (!mapData.GetCapitalCityDataByPlayerId(teammate.Id, out var capital)) continue;
|
||||
if (!mapData.GetGridIdByCityId(capital.Id, out var capitalGid)) continue;
|
||||
if (player.Sight.CheckIsInSight(capitalGid)) continue;
|
||||
gidList.Add(capitalGid);
|
||||
}
|
||||
|
||||
if (gidList.Count > 0)
|
||||
UpdateSight_LogicView(mapData, player, gidList);
|
||||
}
|
||||
}
|
||||
|
||||
private static bool CheckIsTeammate(MapData mapData, PlayerData player, PlayerData targetPlayer)
|
||||
{
|
||||
if (mapData?.MapConfig != null && mapData.MapConfig.ArePlayersInSameTeam(player.Id, targetPlayer.Id))
|
||||
return true;
|
||||
|
||||
if (player.GetCountryDiplomacyInfo(targetPlayer.Id, out var selfToTarget) && selfToTarget.IsTeammate)
|
||||
return true;
|
||||
|
||||
return targetPlayer.GetCountryDiplomacyInfo(player.Id, out var targetToSelf) && targetToSelf.IsTeammate;
|
||||
}
|
||||
|
||||
public void DebugGetAllSight(MapData mapData, PlayerData playerData)
|
||||
{
|
||||
using var pooledGidList = THCollectionPool.GetListHandle<uint>(out var gidList);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user