TH1/My project/Assets/Scripts/Logic/AI/AIActionBase.cs
2025-05-22 11:55:24 +08:00

52 lines
1.4 KiB
C#

/*
* @Author: 白哉
* @Description: AI 行为类
* @Date: 2025年04月01日 星期二 14:04:35
* @Modify:
*/
using Logic.Action;
namespace Logic.AI
{
public enum AIDifficult
{
Simple,
Normal,
Hard,
}
public class AIActionBase
{
public CalculateResult Result;
public CommonActionParams Param;
public ActionLogicBase ActionLogic;
public bool IsInSight;
public AIActionBase(CommonActionParams param, ActionLogicBase action)
{
Param = param;
ActionLogic = action;
IsInSight = false;
}
public void CheckIsActionInPlayerSight()
{
IsInSight = true;
var player = Param.MapData.PlayerMap.SelfPlayerData;
if (Param.MapData.GridMap.GetGridDataByGid(Param.GridId, out var grid)
&& player.Sight.CheckIsInSight(grid.Id)) return;
if (Param.MapData.GetGridDataByUnitId(Param.UnitId, out var unitGrid)
&& player.Sight.CheckIsInSight(unitGrid.Id)) return;
if (Param.MapData.GetGridDataByUnitId(Param.TargetUnitId, out var targetUnit)
&& player.Sight.CheckIsInSight(targetUnit.Id)) return;
if (Param.MapData.GetGridDataByCityId(Param.CityId, out var cityGrid)
&& player.Sight.CheckIsInSight(cityGrid.Id)) return;
IsInSight = false;
}
}
}