71 lines
2.5 KiB
C#
71 lines
2.5 KiB
C#
/*
|
||
* @Author: 白哉
|
||
* @Description: 通用逻辑接口
|
||
* @Date: 2025年04月01日 星期二 11:04:23
|
||
* @Modify:
|
||
*/
|
||
|
||
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
|
||
namespace Logic.Common
|
||
{
|
||
public interface ICommonLogic
|
||
{
|
||
//-------UI选项相关查询-------
|
||
List<string> GetCityActionOptionList(int cid);
|
||
//获取city[cid]目前所有可行的生产选项,默认操作者pid是city[cid]的拥有者
|
||
List<string> GetTileActionOptionList(Vector2Int tpos, int pid);
|
||
//获取grid[tpos]目前所有可行的生产选项,默认操作者pid是grid[pos]的拥有者,但是无主之地需要借助传入的pid来确认是否具备科技,例如无主之地建设桥梁和道路
|
||
List<string> 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<Vector2Int> GetTileNearbyList(Vector2Int tpos, ResourceType t);
|
||
//获取grid[tpos]周围一圈具备t属性的tile的position list (resource重载版本)
|
||
List<Vector2Int> 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]位置建设桥梁是否需要镜像左右
|
||
|
||
|
||
}
|
||
} |