matchconfig.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package sngmatch
  2. import (
  3. "bet24.com/log"
  4. item "bet24.com/servers/micros/item_inventory/proto"
  5. "bet24.com/servers/micros/matches/handler/matchbase"
  6. )
  7. type matchconfig struct {
  8. MatchId int
  9. Name string
  10. Desc string
  11. GameId int
  12. GameName string
  13. GameRule string
  14. TotalUser int
  15. TableUser int
  16. Target int
  17. PlayTime int
  18. EnrollFee []item.ItemPack
  19. Prizes []matchbase.Prize_config
  20. matchbase.Time_config
  21. // 扩展部分
  22. OnlineUser int
  23. TotalPrizeAmount int // 奖励总金币数量
  24. PrizeDesc string // 奖励描述,如果为空,显示TotalPrizeAmount
  25. DailyFreeCount int // 每日免费次数
  26. LeftFreeCount int // 剩余免费次数
  27. RobotConfig *matchbase.Robot_config `json:",omitempty"`
  28. Level int
  29. EleminateByScore bool
  30. WinnerCount int
  31. }
  32. func (mc *matchconfig) dump() {
  33. log.Release(" MatchId[%d],Name[%s],GameName[%s],TotalUser[%d],TableUser[%d],Target[%d],PlayTime[%d],Fee%v,Prizes%v,Online[%d],TotalPrize[%d]",
  34. mc.MatchId, mc.Name, mc.GameName, mc.TotalUser, mc.TableUser, mc.Target, mc.PlayTime, mc.EnrollFee, mc.Prizes, mc.OnlineUser, mc.TotalPrizeAmount)
  35. if mc.RobotConfig != nil {
  36. log.Release(" RobotConfig:%v", *mc.RobotConfig)
  37. }
  38. }
  39. func (mc *matchconfig) getPrizes(rank int) []item.ItemPack {
  40. var ret []item.ItemPack
  41. for _, v := range mc.Prizes {
  42. if v.Rank == rank {
  43. return v.Prize
  44. }
  45. }
  46. return ret
  47. }
  48. func (mc *matchconfig) calTotalPrize() {
  49. if len(mc.EnrollFee) == 0 {
  50. mc.DailyFreeCount = 0
  51. }
  52. mc.TotalPrizeAmount = 0
  53. for _, v := range mc.Prizes {
  54. mc.TotalPrizeAmount += v.GetPrizeValue()
  55. }
  56. }
  57. func (mc *matchconfig) addOnline(add int) {
  58. mc.OnlineUser += add
  59. if mc.OnlineUser < 0 {
  60. mc.OnlineUser = 0
  61. }
  62. }
  63. func (mc *matchconfig) setLeftFreeCount(userId int) {
  64. mc.RobotConfig = nil
  65. if mc.DailyFreeCount == 0 {
  66. return
  67. }
  68. mc.LeftFreeCount = mc.DailyFreeCount - getFreeCountManager().getUserFreeCount(userId, mc.MatchId)
  69. }