/* * @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; } } }