/* * @Author: 白哉 * @Description: 通用逻辑接口 * @Date: 2025年04月01日 星期二 11:04:23 * @Modify: */ using System.Collections.Generic; using UnityEngine; namespace Logic.Common { public interface ICommonLogic { //-------UI选项相关查询------- List GetCityActionOptionList(int cid); //获取city[cid]目前所有可行的生产选项,默认操作者pid是city[cid]的拥有者 List GetTileActionOptionList(Vector2Int tpos, int pid); //获取grid[tpos]目前所有可行的生产选项,默认操作者pid是grid[pos]的拥有者,但是无主之地需要借助传入的pid来确认是否具备科技,例如无主之地建设桥梁和道路 List GetUnitActionOptionList(int uid); //获取unit[uid]目前所有可行的生产选项 //-------player相关查询------- bool CheckPlayerCanPayAction(int pid, string actionName); //返回player[pid]是否有钱支付actionName行动 //-------city相关查询------- bool CheckCityFullPopulation(int cid); //返回 是否city[cid]已经人口满员 bool CheckUnitCanAttackPos(int uid, Vector2Int tpos); //返回unit[uid]是否可以攻击tpos位置 bool CheckUnitHasAttackTarget(int uid); //返回unit[uid]是否具有可攻击对象 //-------unit相关查询------- float[,] CalcUnitMoveInfo(int uid); //计算单位移动力表格,返回一个二维数组 int CheckUnitCanMoveAttack(int uid, float[,] moveInfo); //判断一个位置能否移动/攻击,返回0不可,1可移,2可攻,3下海,4上岸 //-------tile相关查询------- List GetTileNearbyList(Vector2Int tpos, ResourceType t); //获取grid[tpos]周围一圈具备t属性的tile的position list (resource重载版本) List GetTileNearbyList(Vector2Int tpos, TerrainFeature t); //获取grid[tpos]周围一圈具备t属性的tile的position list (feature重载版本) int QueryTileNearbySum(Vector2Int tpos, ResourceType t); //统计grid[tpos]周围一圈具备t属性的tile有几个 int FindUnitOnPos(Vector2Int tpos); //返回处于grid[tpos]上的unit的uid bool CheckTerrainCanBridge(Vector2Int tpos); //返回grid[tpos]能否建立桥梁 bool CheckBridgeMirror(Vector2Int tpos); //返回 是否grid[tpos]位置建设桥梁是否需要镜像左右 } }