2025-08-18 23:16:13 +08:00

71 lines
2.5 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* @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]位置建设桥梁是否需要镜像左右
}
}