robot_exchange.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package cli
  2. import (
  3. "f1-game/internal/enum"
  4. nameRoute "f1-game/internal/name/route"
  5. "f1-game/internal/pb"
  6. )
  7. // 地图交易所货柜解锁
  8. func (p *Robot) ExchangeSlotUnlock(actType enum.ExchangeActType) {
  9. req := &pb.I32{
  10. Value: int32(actType),
  11. }
  12. rsp := &pb.I32I32{}
  13. err := p.RequestResponse(nameRoute.MapPlayer_ExchangeSlotUnlock, req, rsp)
  14. if err != nil {
  15. p.Debugf("[ExchangeSlotUnlock] err = %v", err)
  16. return
  17. }
  18. p.Debugf("[ExchangeSlotUnlock] rsp = %v", rsp)
  19. }
  20. // 获取资源的历史求购价格
  21. func (p *Robot) ExchangeHistoryPrice(itemID int32) {
  22. req := &pb.I32{
  23. Value: itemID,
  24. }
  25. rsp := &pb.I32I32{}
  26. err := p.RequestResponse(nameRoute.MapPlayer_ExchangeHistoryPrice, req, rsp)
  27. if err != nil {
  28. p.Debugf("[ExchangeHistoryPrice] err = %v", err)
  29. return
  30. }
  31. p.Debugf("[ExchangeHistoryPrice] rsp = %v", rsp)
  32. }
  33. // 出售或求购商品
  34. func (p *Robot) ExchangeItem(actType enum.ExchangeActType, itemID int32, count int64, price int32) {
  35. req := &pb.ExchangeItem{
  36. ActType: int32(actType),
  37. Asset: &pb.Asset{
  38. Id: itemID,
  39. Num: count,
  40. },
  41. Price: price,
  42. }
  43. rsp := &pb.ExchangeDetail{}
  44. err := p.RequestResponse(nameRoute.MapPlayer_ExchangeItem, req, rsp)
  45. if err != nil {
  46. p.Debugf("[ExchangeItem] err = %v", err)
  47. return
  48. }
  49. p.Debugf("[ExchangeItem] rsp = %v", rsp)
  50. }
  51. // 购买商品
  52. func (p *Robot) ExchangeBuyItem(count int32, transID string) {
  53. req := &pb.I32Str{
  54. Key: count,
  55. Value: transID,
  56. }
  57. rsp := &pb.ExchangeBuyResult{}
  58. err := p.RequestResponse(nameRoute.MapPlayer_ExchangeBuyItem, req, rsp)
  59. if err != nil {
  60. p.Debugf("[ExchangeBuyItem] err = %v", err)
  61. return
  62. }
  63. p.Debugf("[ExchangeBuyItem] rsp = %v", rsp)
  64. }
  65. // 根据条件查询地图交易所的商品列表
  66. func (p *Robot) ExchangeQuery(pageNum int32, itemIDList []int32, subTypeList []int32, qualityList []int32, priceSort, countSort enum.ExchangeSortType) {
  67. req := &pb.ExchangeQueryFilter{
  68. PageNum: pageNum,
  69. ItemIDList: itemIDList,
  70. SubTypeList: subTypeList,
  71. QualityList: qualityList,
  72. PriceSort: int32(priceSort),
  73. CountSort: int32(countSort),
  74. }
  75. rsp := &pb.ExchangeDetailList{}
  76. err := p.RequestResponse(nameRoute.MapPlayer_ExchangeQuery, req, rsp)
  77. if err != nil {
  78. p.Debugf("[ExchangeQuery] err = %v", err)
  79. return
  80. }
  81. p.Debugf("[ExchangeQuery] rsp = %v", rsp)
  82. }
  83. // 获取自己的交易商品列表
  84. func (p *Robot) ExchangeMyItems(actType enum.ExchangeActType) string {
  85. req := &pb.I32{
  86. Value: int32(actType),
  87. }
  88. rsp := &pb.MyExchangeItems{}
  89. err := p.RequestResponse(nameRoute.MapPlayer_ExchangeyMyItems, req, rsp)
  90. if err != nil {
  91. p.Debugf("[ExchangeMyItems] err = %v", err)
  92. return ""
  93. }
  94. p.Debugf("[ExchangeMyItems] rsp = %v", rsp)
  95. if len(rsp.List) == 0 {
  96. return ""
  97. }
  98. return rsp.List[0].TransactionID
  99. }
  100. // 更新地图交易所商品
  101. func (p *Robot) ExchangeItemUpdate(updateType enum.ExchangeUpdateType, transID string) {
  102. req := &pb.I32Str{
  103. Key: int32(updateType),
  104. Value: transID,
  105. }
  106. rsp := &pb.I32{}
  107. err := p.RequestResponse(nameRoute.MapPlayer_ExchangeyItemUpdate, req, rsp)
  108. if err != nil {
  109. p.Debugf("[ExchangeItemUpdate] err = %v", err)
  110. return
  111. }
  112. p.Debugf("[ExchangeItemUpdate] rsp = %v", rsp)
  113. }
  114. // 获取交易所日志
  115. func (p *Robot) ExchangeLog(logType enum.ExchangeLogType, lastLogID int64) {
  116. req := &pb.I32I64{
  117. Key: int32(logType),
  118. Value: lastLogID,
  119. }
  120. rsp := &pb.ExchangeLogList{}
  121. err := p.RequestResponse(nameRoute.MapPlayer_ExchangeyLog, req, rsp)
  122. if err != nil {
  123. p.Debugf("[ExchangeLog] err = %v", err)
  124. return
  125. }
  126. p.Debugf("[ExchangeLog] rsp = %v", rsp)
  127. }