Skip to content

fix: 🐛 接口文档更新 #1148

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
116 changes: 69 additions & 47 deletions docs/contests/THUAI8/interface/interfacecpp.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

# cpp接口一览
# THUAI8 角色控制接口文档

本文档详细介绍THUAI8游戏中的两个主要角色控制接口:ICharacterAPI和ITeamAPI,以及它们从IAPI继承的所有方法。

Expand Down Expand Up @@ -139,27 +138,57 @@ THUAI8::PlaceType GetPlaceType(int32_t cellX, int32_t cellY) const
获取指定格子的类型,如障碍、空地等。

```cpp
std::optional<THUAI8::EconomyResourceState> GetEnconomyResourceState(int32_t cellX, int32_t cellY) const
std::optional<THUAI8::EconomyResource> GetEconomyResourceState(int32_t cellX, int32_t cellY) const
```

- **返回类型:** `std::optional<THUAI8::EconomyResourceState>`
- **返回类型:** `std::optional<THUAI8::EconomyResource>`
- **参数:**
- `cellX`:格子X坐标
- `cellY`:格子Y坐标

获取指定格子的经济资源状态,如果该格子没有经济资源则返回空。

**注:这里``THUAI8::EconomyResource``包含了关于经济资源的所有有效信息,包括:所属队伍``team_id``、开采进程``process``、经济资源类型``THUAI8::EconomyResourceType``**

```cpp
std::optional<std::pair<int32_t, int32_t>> GetAdditionResourceState(int32_t cellX, int32_t cellY) const
std::optional<THUAI8::AdditionResource> GetAdditionResourceState(int32_t cellX, int32_t cellY) const
```

- **返回类型:** `std::optional<std::pair<int32_t, int32_t>>`
- **返回类型:** `std::optional<THUAI8::AdditionResource>`
- **参数:**
- `cellX`:格子X坐标
- `cellY`:格子Y坐标

获取指定格子的加成资源状态,如果该格子没有加成资源则返回空。

**注:这里``THUAI8::AdditionResource``包含了关于加成资源的所有有效信息,包括:所属队伍``team_id``、剩余血量``hp``、加成资源类型``THUAI8::AdditionResourceType``**

```cpp
std::optional<THUAI8::ConstructionState> GetConstructionState(int32_t cellX, int32_t cellY) const
```

* **返回类型:**``std::optional<THUAI8::ConstructionState>`
* **参数:**
- ``cellX``:格子X坐标
- ``cellY``:格子Y坐标

获取指定格子的建筑状态(不含陷阱),如果该格子没有建筑则返回空。

**注:这里``THUAI8::ConstructionState``包含了关于建筑的所有有效信息,包括:所属队伍``team_id``、剩余血量``hp``、建筑类型(不含陷阱)``THUAI8::ConstructionType``**

```cpp
std::optional<THUAI8::Trap> GetTrapState(int32_t cellX, int32_t cellY) const
```

* **返回类型:**``std::optional<THUAI8::Trap>`
* **参数:**
- ``cellX``:格子X坐标
- ``cellY``:格子Y坐标

获取指定格子的陷阱状态,如果该格子没有陷阱则返回空。

**注:这里``THUAI8::Trap``包含了关于陷阱的所有有效信息,包括:所属队伍``team_id``、是否有效``trap_valid``、陷阱类型``THUAI8::TrapType``**

```cpp
std::vector<int64_t> GetPlayerGUIDs() const
```
Expand Down Expand Up @@ -242,66 +271,49 @@ std::future<bool> Move(int32_t moveTimeInMilliseconds, double angle)

控制角色向指定方向移动指定的时间,返回操作是否成功的future对象。

```cpp
std::future<bool> MoveRight(int64_t timeInMilliseconds)
```

- **返回类型:** `std::future<bool>`
- **参数:**
- `timeInMilliseconds`:移动持续时间,单位为毫秒

控制角色向右指定的时间,返回操作是否成功的future对象。
### 角色攻击

```cpp
std::future<bool> MoveUp(int64_t timeInMilliseconds)
std::future<bool> Skill_Attack(double angle)
```

- **返回类型:** `std::future<bool>`
- **参数:**
- `timeInMilliseconds`:移动持续时间,单位为毫秒
- `angle`:攻击方向,单位为弧度

控制角色向上指定的时间,返回操作是否成功的future对象。
角色向指定方向使用技能攻击,返回操作是否成功的future对象。

```cpp
std::future<bool> MoveLeft(int64_t timeInMilliseconds)
std::future<bool> Common_Attack(int64_t attackedPlayerID)
```

- **返回类型:** `std::future<bool>`
- **参数:**
- `timeInMilliseconds`:移动持续时间,单位为毫秒
- `attackedPlayerID`:被攻击者角色ID

控制角色向左指定的时间,返回操作是否成功的future对象。
角色对指定目标进行普通攻击,返回操作是否成功的future对象。

### 攻击建筑

```cpp
std::future<bool> MoveDown(int64_t timeInMilliseconds)
std::future<bool> AttackConstruction()
```

- **返回类型:** `std::future<bool>`
- **参数:**
- `timeInMilliseconds`:移动持续时间,单位为毫秒
* **返回类型:**``std::future<bool>``
* **参数:无**

控制角色向下指定的时间,返回操作是否成功的future对象
角色对建筑进行攻击,返回是否成功的future对象

### 角色攻击
### 攻击加成资源

```cpp
std::future<bool> Skill_Attack(double angle)
std::future<bool> AttackAdditionResource()
```

- **返回类型:** `std::future<bool>`
- **参数:**
- `angle`:攻击方向,单位为弧度
* **返回类型:**``std::future<bool>``
* **参数:无**

角色向指定方向使用技能攻击,返回操作是否成功的future对象。

```cpp
std::future<bool> Common_Attack(int64_t attackedPlayerID)
```
- **返回类型:** `std::future<bool>`
- **参数:**
- `attackedPlayerID`:被攻击者角色ID

角色对指定目标进行普通攻击,返回操作是否成功的future对象。
角色对加成资源进行攻击,返回是否成功的future对象。

### 角色恢复与生产

Expand All @@ -316,13 +328,11 @@ std::future<bool> Recover(int64_t recover)
角色进行生命值恢复,返回操作是否成功的future对象。

```cpp
std::future<bool> Produce(int64_t playerID, int64_t teamID)
std::future<bool> Produce()
```

- **返回类型:** `std::future<bool>`
- **参数:**
- `playerID`:角色ID
- `teamID`:队伍ID
- **参数:无**

角色进行资源生产,返回操作是否成功的future对象。

Expand All @@ -334,10 +344,22 @@ std::future<bool> Construct(THUAI8::ConstructionType constructionType)

- **返回类型:** `std::future<bool>`
- **参数:**
- `constructionType`:建筑类型
- `constructionType`:建筑类型(除陷阱类型外)

角色建造指定类型的建筑,返回操作是否成功的future对象。

### 建造陷阱

```cpp
std::future<bool> ConstructTrap(THUAI8::TrapType trapType)
```

* **返回类型:**``std::future<bool>``
* **参数:**
- ``trapType``:陷阱类型

角色建造陷阱,返回操作是否成功的future对象。

### 角色信息获取

```cpp
Expand Down Expand Up @@ -412,4 +434,4 @@ std::future<bool> BuildCharacter(THUAI8::CharacterType CharacterType, int32_t bi
3. API调用的结果(成功/失败)
4. 游戏状态变化

调试API的日志文件保存在"logs/api-{teamID}-{playerID}-log.txt",其中teamID是团队ID,playerID是角色ID。日志记录了API调用的时间、参数和结果,便于开发者调试和分析游戏运行情况。
调试API的日志文件保存在"logs/api-{teamID}-{playerID}-log.txt",其中teamID是团队ID,playerID是角色ID。日志记录了API调用的时间、参数和结果,便于开发者调试和分析游戏运行情况。