feat: 添加ItemInfo结构体并重构抽蛋和任务系统 - 在common/data/color.go中添加ItemInfo结构体用于表示发放物品的信息 - 在common/utils/tomap.go中添加RandomSlice泛型函数用于从切片中随机选取元素 - 重构action_egg.go中的EggGamePlay功能,实现抽蛋逻辑和物品发放 - 更新fight_boss.go中使用新的ItemInfo结构体替换旧的model.ItemInfo - 修改user_talk.go中获取物品数量的逻辑 - 更新user_task.go中任务完成逻辑使用新的ItemInfo结构体 - 在egg.go中更新抽蛋结果结构体使用ItemInfo - 更新战斗奖励结构体使用ItemInfo - 在player.go中添加学习力道具处理逻辑 - 重构任务系统使用新的ItemInfo结构体 - 移除旧的model.ItemInfo定义 - 更新宠物奖励配置模型添加成长值等字段 - 实现GetEgg方法用于获取扭蛋奖励 - 修复宠物融合材料服务中的道具验证逻辑 ```
57 lines
1.5 KiB
Go
57 lines
1.5 KiB
Go
package task
|
||
|
||
import (
|
||
"blazing/common/data"
|
||
)
|
||
|
||
type TaskResult struct {
|
||
PetTypeId uint32 `json:"petTypeId" description:"发放的精灵ID"` // 发放的精灵ID,
|
||
|
||
ItemList []data.ItemInfo `json:"itemList" description:"发放物品的数组"` // 发放物品的数组,
|
||
}
|
||
|
||
var TaskResultMap = make(map[uint32]map[uint32]TaskResult)
|
||
|
||
// 添加默认分支0
|
||
func Get_Task_Info(v CompleteTaskInboundInfo) *TaskResult {
|
||
|
||
t, ok := TaskResultMap[v.TaskId][v.OutState]
|
||
if ok {
|
||
|
||
return &t
|
||
} else {
|
||
t, ok := TaskResultMap[v.TaskId][0]
|
||
if ok {
|
||
return &t
|
||
}
|
||
}
|
||
return nil
|
||
}
|
||
func init() {
|
||
// 定义通用奖励:经验奖励(ItemId:3,数量20000)
|
||
expReward := []data.ItemInfo{{ItemId: 3, ItemCnt: 20000}}
|
||
// 定义扭蛋牌奖励(ItemId:400501,数量5)
|
||
eggReward := []data.ItemInfo{{ItemId: 400501, ItemCnt: 5}}
|
||
|
||
// 批量初始化任务ID 401-407(奖励均为经验)
|
||
for taskID := 401; taskID <= 407; taskID++ {
|
||
// 为每个任务ID初始化内层map
|
||
TaskResultMap[uint32(taskID)] = make(map[uint32]TaskResult)
|
||
// 设置状态0对应的奖励(与401格式一致)
|
||
TaskResultMap[uint32(taskID)][0] = TaskResult{
|
||
ItemList: expReward,
|
||
}
|
||
}
|
||
|
||
// 单独初始化任务462(奖励为扭蛋牌)
|
||
TaskResultMap[462] = make(map[uint32]TaskResult)
|
||
TaskResultMap[462][0] = TaskResult{
|
||
ItemList: eggReward,
|
||
}
|
||
|
||
// 后续若有其他任务,按相同格式添加即可
|
||
// 例如:
|
||
// TaskResultMap[xxx] = make(map[uint32]TaskResult)
|
||
// TaskResultMap[xxx][0] = TaskResult{ItemList: ...}
|
||
}
|