novicewelfare.go 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package proto
  2. import (
  3. item "bet24.com/servers/micros/item_inventory/proto"
  4. task "bet24.com/servers/micros/task/proto"
  5. )
  6. // 新手福利 - 配置
  7. type NoviceWelfare struct {
  8. DurationDay int // 活动持续时间(天)
  9. Prizes []item.ItemPack // 大礼包(完美完成的奖励)
  10. Tasks []*NoviceTask // 任务
  11. }
  12. // 新手任务
  13. type NoviceTask struct {
  14. DayIndex int // 天数索引
  15. Action int // 动作
  16. Guide string // 跳转
  17. Target int // 目标达成数
  18. Awards []item.ItemPack // 福利奖励
  19. task.TaskScope // 游戏限制
  20. }
  21. // 是否适用
  22. func (t *NoviceTask) IsApplicative(param task.TaskScope) bool {
  23. if len(t.GameNames) == 0 {
  24. return false
  25. }
  26. for _, v := range t.GameNames {
  27. if v == param.GameName {
  28. return true
  29. }
  30. }
  31. return false
  32. }
  33. const (
  34. TaskStatus_Locked = iota // 0=未解锁
  35. TaskStatus_Uncompleted // 1=未完成
  36. TaskStatus_Completed // 2=完成
  37. TaskStatus_Claimed // 3=已领取奖励
  38. )
  39. // 用户新手任务时间表
  40. type UserNoviceTaskSchedule struct {
  41. DayIndex int // 天数索引
  42. Scheduled int // 完成进度
  43. Status int // 任务的状态
  44. UnlockDayIndex int // 解锁天索引
  45. }
  46. // 用户新手福利
  47. type UserNoviceWelfare struct {
  48. DaysRemaining int // 剩余天数
  49. IsFinalPackage bool // 是否最终礼包
  50. Schedule []*UserNoviceTaskSchedule // 任务时间表
  51. }