From 7693518640f25193fb012a41aabf04e53b978930 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Fri, 22 Dec 2023 11:57:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20activity=20=E5=92=8C=20fight=20?= =?UTF-8?q?=E5=8C=85=E6=96=87=E6=A1=A3=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 2 +- game/activity/README.md | 12 ++++++++++++ game/activity/activity.go | 1 + game/fight/README.md | 18 ++++++++++++++++++ 4 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 game/activity/README.md create mode 100644 game/fight/README.md diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6b5b266..10130b4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -18,4 +18,4 @@ jobs: bump-minor-pre-major: true bump-patch-for-minor-pre-major: true changelog-types: '[{"type":"other","section":"Other | 其他更改","hidden":false},{"type":"revert","section":"Reverts | 回退","hidden":false},{"type":"feat","section":"Features | 新特性","hidden":false},{"type":"fix","section":"Bug Fixes | 修复","hidden":false},{"type":"improvement","section":"Feature Improvements | 改进","hidden":false},{"type":"docs","section":"Docs | 文档优化","hidden":false},{"type":"style","section":"Styling | 可读性优化","hidden":false},{"type":"refactor","section":"Code Refactoring | 重构","hidden":false},{"type":"perf","section":"Performance Improvements | 性能优化","hidden":false},{"type":"test","section":"Tests | 新增或优化测试用例","hidden":false},{"type":"build","section":"Build System | 影响构建的修改","hidden":false},{"type":"ci","section":"CI | 更改我们的 CI 配置文件和脚本","hidden":false}]' - release-as: 0.4.0 \ No newline at end of file +# release-as: 0.4.0 \ No newline at end of file diff --git a/game/activity/README.md b/game/activity/README.md new file mode 100644 index 0000000..8364a57 --- /dev/null +++ b/game/activity/README.md @@ -0,0 +1,12 @@ +# Activity + +[![Go doc](https://img.shields.io/badge/go.dev-reference-brightgreen?logo=go&logoColor=white&style=flat)](https://pkg.go.dev/github.com/kercylan98/minotaur/game/activity) + +`activity` 是为不同类型的活动提供灵活的状态管理实现,支持活动的预告、开始、结束、延长展示等状态。 + +## 设计思路 +- 为不同类型的活动提供灵活的状态管理框架,支持活动的预告、开始、结束、延长展示等状态。 +- 支持事件驱动,根据活动状态变化和时间触发事件。 +- 允许活动循环,并支持配置延长展示时间。 +- 在多线程环境下使用互斥锁进行同步。 +- 使用反射处理不同类型的活动数据。 \ No newline at end of file diff --git a/game/activity/activity.go b/game/activity/activity.go index 3ab45fa..41bcdba 100644 --- a/game/activity/activity.go +++ b/game/activity/activity.go @@ -1,3 +1,4 @@ +// Package activity 活动状态管理 package activity import ( diff --git a/game/fight/README.md b/game/fight/README.md new file mode 100644 index 0000000..9fa9859 --- /dev/null +++ b/game/fight/README.md @@ -0,0 +1,18 @@ +# Fight + +[![Go doc](https://img.shields.io/badge/go.dev-reference-brightgreen?logo=go&logoColor=white&style=flat)](https://pkg.go.dev/github.com/kercylan98/minotaur/game/fight) + +## TurnBased [`回合制`]((https://pkg.go.dev/github.com/kercylan98/minotaur/game/fight#TurnBased)) + +### 设计思路 +- 在每个回合中计算下一次行动时间间隔。然后,会根据当前行动时间间隔选择下一个行动实体。 +- 当选择到下一个行动实体后,进入行动阶段。在行动阶段中,会先触发 [`TurnBasedEntitySwitchEvent`](https://pkg.go.dev/github.com/kercylan98/minotaur/game/fight#TurnBased.RegTurnBasedEntitySwitchEvent) 事件,然后开始计时。 +- 当计时结束时,如果实体还未完成行动,则会触发 [`TurnBasedEntityActionTimeoutEvent`](https://pkg.go.dev/github.com/kercylan98/minotaur/game/fight#TurnBased.RegTurnBasedEntityActionTimeoutEvent) 事件。如果实体已经完成行动,则会触发 [`TurnBasedEntityActionFinishEvent`](https://pkg.go.dev/github.com/kercylan98/minotaur/game/fight#TurnBased.RegTurnBasedEntityActionFinishEvent) 事件。 +- 当实体完成行动后,会触发 [`TurnBasedEntityActionSubmitEvent`](https://pkg.go.dev/github.com/kercylan98/minotaur/game/fight#TurnBased.RegTurnBasedEntityActionSubmitEvent) 事件。 + +回合制功能的设计思路主要考虑了以下几个方面: + +* 灵活性:`TurnBased` 类型提供了丰富的属性和方法,可以满足不同游戏的需要。 +* 可扩展性:`TurnBased` 类型还提供了 `AddCamp`、`GetCamp`、`SetActionTimeout` 等方法,可以根据需要扩展回合制功能。 +* 事件驱动:回合制功能使用事件驱动的方式来通知回合制状态变化。 +