增加任务逻辑
This commit is contained in:
115
Assets/TcgEngine/Docs/TaskConfigurations.md
Normal file
115
Assets/TcgEngine/Docs/TaskConfigurations.md
Normal file
@@ -0,0 +1,115 @@
|
||||
# 任务配置文件结构说明
|
||||
|
||||
## 概述
|
||||
|
||||
任务配置文件定义了游戏中可用的各种任务。每个任务都有特定的条件和奖励。
|
||||
|
||||
## 配置字段说明
|
||||
|
||||
| 字段名 | 类型 | 必需 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | string | 是 | 任务唯一标识符 |
|
||||
| name | string | 是 | 任务显示名称 |
|
||||
| desc | string | 是 | 任务描述 |
|
||||
| condition | int | 是 | 任务条件类型 (参考TaskConditionType枚举) |
|
||||
| value1 | int | 是 | 任务目标值 |
|
||||
| value2 | string | 否 | 条件参数2 (根据任务类型可能需要) |
|
||||
| value3 | string | 否 | 条件参数3 (根据任务类型可能需要) |
|
||||
| rewardTypes | int[] | 是 | 奖励类型数组 (参考TaskRewardType枚举) |
|
||||
| rewardNums | int[] | 是 | 奖励数量数组 (与rewardTypes一一对应) |
|
||||
| isDailyTask | boolean | 是 | 是否为每日任务 |
|
||||
| durationHours | int | 是 | 任务持续时间(小时) |
|
||||
|
||||
## 任务类型详解
|
||||
|
||||
### 1. 登录任务 (LoginGame - 1)
|
||||
- **描述**: 玩家登录游戏即可完成
|
||||
- **value1**: 无意义 (通常为1)
|
||||
- **value2/value3**: 不使用
|
||||
|
||||
### 2. 对战任务 (PlayGames - 2)
|
||||
- **描述**: 完成指定场次的游戏对战
|
||||
- **value1**: 需要完成的对战场次
|
||||
- **value2/value3**: 不使用
|
||||
|
||||
### 3. 胜利任务 (WinGames - 3)
|
||||
- **描述**: 获得指定场次的对战胜利
|
||||
- **value1**: 需要获得胜利的场次
|
||||
- **value2/value3**: 不使用
|
||||
|
||||
### 4. 击败英雄任务 (DefeatHeroWithAttributes - 4)
|
||||
- **描述**: 击败指定阵营的英雄
|
||||
- **value1**: 需要击败的英雄数量
|
||||
- **value2**: 第一个目标阵营 (如 "YiYongJun")
|
||||
- **value3**: 第二个目标阵营 (如 "DiGuoJun")
|
||||
|
||||
### 5. 召唤英雄任务 (SummonHeroWithAttributes - 5)
|
||||
- **描述**: 召唤指定阵营的英雄
|
||||
- **value1**: 需要召唤的英雄数量
|
||||
- **value2**: 第一个目标阵营 (如 "WangGuoJun")
|
||||
- **value3**: 第二个目标阵营 (如 "ZiYouRen")
|
||||
|
||||
### 6. 使用技能任务 (UseHeroSkillWithAttributes - 6)
|
||||
- **描述**: 使用指定阵营英雄的技能
|
||||
- **value1**: 需要使用的技能次数
|
||||
- **value2**: 第一个目标阵营 (如 "ShouQun")
|
||||
- **value3**: 第二个目标阵营 (如 "XieMo")
|
||||
|
||||
## 奖励类型
|
||||
|
||||
### 金币奖励 (Coins - 0)
|
||||
- **描述**: 给予玩家指定数量的金币
|
||||
- **rewardNums**: 金币数量
|
||||
|
||||
## 示例配置文件
|
||||
|
||||
### 登录任务示例
|
||||
```json
|
||||
{
|
||||
"id": "login_task_1",
|
||||
"name": "每日登录",
|
||||
"desc": "每日登录游戏",
|
||||
"condition": 1,
|
||||
"value1": 1,
|
||||
"value2": "",
|
||||
"value3": "",
|
||||
"rewardTypes": [0],
|
||||
"rewardNums": [100],
|
||||
"isDailyTask": true,
|
||||
"durationHours": 24
|
||||
}
|
||||
```
|
||||
|
||||
### 胜利任务示例
|
||||
```json
|
||||
{
|
||||
"id": "win_task_1",
|
||||
"name": "胜利之路",
|
||||
"desc": "获得3场对战胜利",
|
||||
"condition": 3,
|
||||
"value1": 3,
|
||||
"value2": "",
|
||||
"value3": "",
|
||||
"rewardTypes": [0],
|
||||
"rewardNums": [200],
|
||||
"isDailyTask": true,
|
||||
"durationHours": 24
|
||||
}
|
||||
```
|
||||
|
||||
### 击败英雄任务示例
|
||||
```json
|
||||
{
|
||||
"id": "defeat_hero_task_1",
|
||||
"name": "阵营克星",
|
||||
"desc": "击败5个义勇军或帝国军英雄",
|
||||
"condition": 4,
|
||||
"value1": 5,
|
||||
"value2": "YiYongJun",
|
||||
"value3": "DiGuoJun",
|
||||
"rewardTypes": [0],
|
||||
"rewardNums": [300],
|
||||
"isDailyTask": true,
|
||||
"durationHours": 24
|
||||
}
|
||||
```
|
||||
7
Assets/TcgEngine/Docs/TaskConfigurations.md.meta
Normal file
7
Assets/TcgEngine/Docs/TaskConfigurations.md.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c0a30614928943b46853e32be2a29fb0
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
119
Assets/TcgEngine/Docs/TaskSystemAPI.md
Normal file
119
Assets/TcgEngine/Docs/TaskSystemAPI.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# 任务系统接口文档
|
||||
|
||||
## 概述
|
||||
|
||||
任务系统允许玩家完成各种游戏内任务以获得奖励。系统支持多种任务类型,包括日常任务、成就任务等。
|
||||
|
||||
## API端点
|
||||
|
||||
### 获取所有任务配置
|
||||
```
|
||||
GET /api/tasks
|
||||
```
|
||||
|
||||
**响应**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "login_task_1",
|
||||
"name": "每日登录",
|
||||
"desc": "每日登录游戏",
|
||||
"condition": 1,
|
||||
"value1": 1,
|
||||
"value2": "",
|
||||
"value3": "",
|
||||
"rewardTypes": [0],
|
||||
"rewardNums": [100],
|
||||
"isDailyTask": true,
|
||||
"durationHours": 24
|
||||
},
|
||||
{
|
||||
"id": "win_task_1",
|
||||
"name": "胜利之路",
|
||||
"desc": "获得3场对战胜利",
|
||||
"condition": 3,
|
||||
"value1": 3,
|
||||
"value2": "",
|
||||
"value3": "",
|
||||
"rewardTypes": [0],
|
||||
"rewardNums": [200],
|
||||
"isDailyTask": true,
|
||||
"durationHours": 24
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
### 获取玩家任务数据
|
||||
```
|
||||
GET /api/users/{userId}/tasks
|
||||
```
|
||||
|
||||
**响应**
|
||||
```json
|
||||
{
|
||||
"tasks": [
|
||||
{
|
||||
"taskId": "login_task_1",
|
||||
"assignedTime": 16409952000000000,
|
||||
"expireTime": 16410816000000000,
|
||||
"status": 1,
|
||||
"progress": 1
|
||||
}
|
||||
],
|
||||
"lastDailyTaskAssigned": 16409952000000000
|
||||
}
|
||||
```
|
||||
|
||||
### 保存玩家任务数据
|
||||
```
|
||||
POST /api/users/{userId}/tasks
|
||||
```
|
||||
|
||||
**请求体**
|
||||
```json
|
||||
{
|
||||
"tasks": [
|
||||
{
|
||||
"taskId": "login_task_1",
|
||||
"assignedTime": 16409952000000000,
|
||||
"expireTime": 16410816000000000,
|
||||
"status": 1,
|
||||
"progress": 1
|
||||
}
|
||||
],
|
||||
"lastDailyTaskAssigned": 16409952000000000
|
||||
}
|
||||
```
|
||||
|
||||
**响应**
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"error": ""
|
||||
}
|
||||
```
|
||||
|
||||
## 枚举值定义
|
||||
|
||||
### 任务条件类型 (TaskConditionType)
|
||||
| 值 | 名称 | 描述 |
|
||||
|---|------|------|
|
||||
| 1 | LoginGame | 登入游戏 |
|
||||
| 2 | PlayGames | 进行X场对战 |
|
||||
| 3 | WinGames | 胜利X场 |
|
||||
| 4 | DefeatHeroWithAttributes | 击败Y属性和Z属性的英雄X次 |
|
||||
| 5 | SummonHeroWithAttributes | 召唤Y属性和Z属性的英雄X次 |
|
||||
| 6 | UseHeroSkillWithAttributes | 使用Y属性和Z属性英雄的技能X次 |
|
||||
|
||||
### 任务奖励类型 (TaskRewardType)
|
||||
| 值 | 名称 | 描述 |
|
||||
|---|------|------|
|
||||
| 0 | Coins | 金币 |
|
||||
|
||||
### 任务状态 (TaskStatus)
|
||||
| 值 | 名称 | 描述 |
|
||||
|---|------|------|
|
||||
| 0 | Active | 激活 |
|
||||
| 1 | Completed | 完成 |
|
||||
| 2 | Expired | 过期 |
|
||||
| 3 | Claimed | 已领取 |
|
||||
7
Assets/TcgEngine/Docs/TaskSystemAPI.md.meta
Normal file
7
Assets/TcgEngine/Docs/TaskSystemAPI.md.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 33e4d9d92f851d04ea1362bf1570a671
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
101
Assets/TcgEngine/Docs/TaskSystemUserGuide.md
Normal file
101
Assets/TcgEngine/Docs/TaskSystemUserGuide.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# 任务系统使用说明
|
||||
|
||||
## 概述
|
||||
|
||||
任务系统为玩家提供游戏目标和奖励机制。系统每天为玩家分配一个随机任务,玩家完成任务后可获得奖励。
|
||||
|
||||
## 系统架构
|
||||
|
||||
任务系统由以下几个核心组件构成:
|
||||
|
||||
1. **TaskData**: 任务配置数据结构
|
||||
2. **TaskManager**: 任务管理器,负责任务逻辑处理
|
||||
3. **GameClientTaskIntegration**: 游戏客户端集成组件
|
||||
4. **API接口**: 与服务器通信的接口
|
||||
|
||||
## 功能特性
|
||||
|
||||
### 1. 任务分配
|
||||
- 每日0点为每个玩家随机分配一个任务
|
||||
- 玩家最多同时持有5个任务
|
||||
- 任务过期时间为24小时
|
||||
|
||||
### 2. 任务类型
|
||||
系统支持以下6种任务类型:
|
||||
1. 登录任务
|
||||
2. 对战任务
|
||||
3. 胜利任务
|
||||
4. 击败特定阵营英雄任务
|
||||
5. 召唤特定阵营英雄任务
|
||||
6. 使用特定阵营英雄技能任务
|
||||
|
||||
### 3. 任务状态
|
||||
任务具有以下4种状态:
|
||||
1. **Active**: 激活状态,玩家正在进行中
|
||||
2. **Completed**: 完成状态,条件已满足但奖励未领取
|
||||
3. **Expired**: 过期状态,任务已超时
|
||||
4. **Claimed**: 已领取,奖励已发放
|
||||
|
||||
### 4. 奖励机制
|
||||
当前版本仅支持金币奖励,未来可扩展支持:
|
||||
- 卡牌包
|
||||
- 稀有卡牌
|
||||
- 经验值
|
||||
- 其他游戏内物品
|
||||
|
||||
## 集成指南
|
||||
|
||||
### 1. 客户端集成
|
||||
在游戏客户端中,通过以下方式集成任务系统:
|
||||
|
||||
```csharp
|
||||
// 在游戏启动时初始化任务系统
|
||||
TaskManager taskManager = TaskManager.Instance;
|
||||
taskManager.OnPlayerLogin(); // 玩家登录时检查任务
|
||||
|
||||
// 在游戏过程中自动追踪任务进度
|
||||
// 系统会自动监听游戏事件并更新任务进度
|
||||
```
|
||||
|
||||
### 2. 服务器集成
|
||||
服务器需要提供以下API接口:
|
||||
|
||||
1. `GET /tasks` - 获取所有任务配置
|
||||
2. `GET /users/{userId}/tasks` - 获取玩家任务数据
|
||||
3. `POST /users/{userId}/tasks` - 保存玩家任务数据
|
||||
|
||||
## 扩展开发
|
||||
|
||||
### 添加新的任务类型
|
||||
1. 在`TaskConditionType`枚举中添加新的任务类型
|
||||
2. 在`TaskManager.UpdateTaskProgress`方法中添加相应的条件判断
|
||||
3. 在服务器端添加对应的任务处理逻辑
|
||||
|
||||
### 添加新的奖励类型
|
||||
1. 在`TaskRewardType`枚举中添加新的奖励类型
|
||||
2. 在`TaskManager.GiveReward`方法中添加奖励发放逻辑
|
||||
3. 在服务器端添加对应的奖励处理逻辑
|
||||
|
||||
## 最佳实践
|
||||
|
||||
### 性能优化
|
||||
1. 使用本地缓存减少API调用频率
|
||||
2. 对任务数据进行批处理更新
|
||||
3. 实现合理的错误重试机制
|
||||
|
||||
### 用户体验
|
||||
1. 及时通知玩家任务完成状态
|
||||
2. 提供清晰的任务进度显示
|
||||
3. 确保奖励发放的可靠性
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 常见问题
|
||||
1. **任务无法加载**: 检查网络连接和API接口状态
|
||||
2. **任务进度不更新**: 检查事件监听是否正常注册
|
||||
3. **奖励未发放**: 检查奖励发放逻辑和用户数据同步
|
||||
|
||||
### 调试建议
|
||||
1. 使用日志输出追踪任务状态变化
|
||||
2. 验证API响应数据的正确性
|
||||
3. 检查时间戳和过期逻辑
|
||||
7
Assets/TcgEngine/Docs/TaskSystemUserGuide.md.meta
Normal file
7
Assets/TcgEngine/Docs/TaskSystemUserGuide.md.meta
Normal file
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3f085404f2be13947a04ab677c3025cd
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user