player.go 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. package mapCall
  2. import (
  3. capp "f1-game/internal/cherry_app"
  4. "f1-game/internal/code"
  5. "f1-game/internal/enum"
  6. nameActor "f1-game/internal/name/actor"
  7. nameRemote "f1-game/internal/name/remote"
  8. "f1-game/internal/pb"
  9. "f1-game/internal/types"
  10. assetOrigin "f1-game/nodes/game/player/asset/origin"
  11. dbLogic "f1-game/nodes/map/internal/db/data/logic"
  12. cfacade "github.com/cherry-game/cherry/facade"
  13. )
  14. var (
  15. Player = &playerCall{}
  16. )
  17. type playerCall struct{}
  18. func (p *playerCall) AutoMarchRequest(playerID, leagueID int64, objectID int64, segments types.List[*dbLogic.AutoMarchSegment]) {
  19. req := &pb.AutoMarchRequest{
  20. PlayerID: playerID,
  21. LeagueID: leagueID,
  22. ObjectID: objectID,
  23. }
  24. for _, segment := range segments {
  25. req.List = append(req.List, &pb.AutoMarchReqestData{
  26. MarchType: int32(segment.MarchType),
  27. Start: segment.StartPoint.ToProto(),
  28. End: segment.EndPoint.ToProto(),
  29. })
  30. }
  31. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  32. capp.Call(targetPath, nameRemote.MapPlayer_AutoMarchRequest, req)
  33. }
  34. func (p *playerCall) NotifyRebornPush(playerID int64, x, y int32) {
  35. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  36. capp.Call(targetPath, nameRemote.MapPlayer_NotifyRebornPush, &pb.Point{
  37. X: x,
  38. Y: y,
  39. })
  40. }
  41. func (p *playerCall) AutoDefendRequest(playerID, buildObjectID int64, teamIDs []int32) {
  42. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  43. capp.Call(targetPath, nameRemote.MapPlayer_AutoDefendRequest, &pb.AutoDefendRequest{
  44. BuildObjectID: buildObjectID,
  45. TeamIDs: teamIDs,
  46. })
  47. }
  48. func (p *playerCall) UpdateTeam(playerID int64, req *pb.UpdateTeam) {
  49. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  50. capp.Call(targetPath, nameRemote.MapPlayer_UpdateTeam, req)
  51. }
  52. func (p *playerCall) AddAsset(playerID int64, itemID int32, itemCount int64, ao assetOrigin.Origin) int32 {
  53. addAssets := types.Assets{
  54. {
  55. ID: itemID,
  56. Num: itemCount,
  57. },
  58. }
  59. return p.AddAssets(playerID, addAssets, ao)
  60. }
  61. func (p *playerCall) AddAssets(playerID int64, addAssets types.Assets, ao assetOrigin.Origin) int32 {
  62. return p.AddPBAssets(playerID, addAssets.ToProto(), ao)
  63. }
  64. func (p *playerCall) AddPBAssets(playerID int64, addAssets []*pb.Asset, ao assetOrigin.Origin) int32 {
  65. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  66. capp.Call(targetPath, nameRemote.MapPlayer_AssetAdd, &pb.PlayerAddAssets{
  67. AddAssets: addAssets,
  68. Origin: ao.ID,
  69. })
  70. return code.OK
  71. }
  72. func (p *playerCall) UpdateWatcherPoint(playerID int64, point *pb.Point) {
  73. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  74. capp.Call(targetPath, nameRemote.MapPlayer_UpdateWatcherPoint, point)
  75. }
  76. func (p *playerCall) MainCitySiege(playerID int64, mainCityObjectID int64) {
  77. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  78. capp.Call(targetPath, nameRemote.MapPlayer_MainCitySiege, &pb.I64{
  79. Value: mainCityObjectID,
  80. })
  81. }
  82. func (p *playerCall) AutoDefendQuit(playerID, buildObjectID int64) {
  83. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  84. capp.Call(targetPath, nameRemote.MapPlayer_AutoDefendQuit, &pb.I64{
  85. Value: buildObjectID,
  86. })
  87. }
  88. // AutoReborn 玩家自动重生
  89. func (p *playerCall) AutoReborn(playerID int64) {
  90. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  91. capp.Call(targetPath, nameRemote.MapPlayer_AutoReborn, nil)
  92. }
  93. func (p *playerCall) AutoRetreat(playerID int64, teamID int32, retreatState enum.MarchState, isRemoveRedeploy bool) {
  94. req := &pb.AutoRetreat{
  95. TeamID: teamID,
  96. MarchState: int32(retreatState),
  97. IsRemoveRedeploy: isRemoveRedeploy,
  98. }
  99. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  100. capp.Call(targetPath, nameRemote.MapPlayer_AutoRetreat, req)
  101. }
  102. func (p *playerCall) MapPlayerBattleStart(playerID int64, req *pb.BattleReq) {
  103. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  104. capp.Call(targetPath, nameRemote.MapPlayer_BattleStart, req)
  105. }
  106. func (p *playerCall) MapPlayerUpdateTeamState(playerID int64, teamID int32, teamState enum.TeamState) {
  107. target := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  108. req := &pb.I32I32{Key: teamID, Value: int32(teamState)}
  109. capp.Call(target, nameRemote.MapPlayer_UpdateTeamState, req)
  110. }
  111. func (p *playerCall) BattleReportAdd(playerID int64, req *pb.ReportGroup) {
  112. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  113. capp.Call(targetPath, nameRemote.MapPlayer_ReportAdd, req)
  114. }
  115. func (p *playerCall) SubTeamTroopsNum(playerID int64, req *pb.TeamBattleDamage) {
  116. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  117. capp.Call(targetPath, nameRemote.MapPlayer_SubTeamTroopsNum, req)
  118. }
  119. func (p *playerCall) ExchangeItemDeliver(req *pb.PlayerExchangeItemDeliver) int32 {
  120. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, req.PlayerID)
  121. return capp.Call(targetPath, nameRemote.MapPlayerExchange_ItemDeliver, req)
  122. }
  123. func (p *playerCall) ExchangeItemRetrieve(playerID int64, req *pb.ExchangeDetail) {
  124. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  125. capp.Call(targetPath, nameRemote.MapPlayerExchange_ItemRetrieve, req)
  126. }
  127. func (p *playerCall) ExchangeItemCanceled(playerID int64, req *pb.ExchangeDetail) {
  128. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  129. capp.Call(targetPath, nameRemote.MapPlayerExchange_ItemCanceled, req)
  130. }
  131. func (p *playerCall) ExchangeItemRemove(playerID int64, actType enum.ExchangeActType, transactionID string) {
  132. req := &pb.I32Str{
  133. Key: int32(actType),
  134. Value: transactionID,
  135. }
  136. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  137. capp.Call(targetPath, nameRemote.MapPlayerExchange_ItemRemove, req)
  138. }
  139. func (p *playerCall) ScoutSearch(queueID int32, playerID, targetPlayerID int64) int32 {
  140. req := &pb.I32I64{
  141. Key: queueID,
  142. Value: playerID,
  143. }
  144. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, targetPlayerID)
  145. errCode := capp.Call(targetPath, nameRemote.MapScout_Seach, req)
  146. return errCode
  147. }
  148. func (p *playerCall) ScoutSearchResult(queueID int32, playerID, targetPlayerID int64, targetPlayerName string, assets *types.Assets) {
  149. proto := assets.ToAssetListProto()
  150. req := &pb.ScoutSearchResult{
  151. QueueID: queueID,
  152. TargetPlayerID: targetPlayerID,
  153. TargetPlayerName: targetPlayerName,
  154. Assets: &proto,
  155. }
  156. targetPath := cfacade.NewChildPath("", nameActor.Map_Player, playerID)
  157. capp.Call(targetPath, nameRemote.MapScout_SeachResult, req)
  158. }