player_asset.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package player
  2. import (
  3. "f1-game/internal/code"
  4. nameRemote "f1-game/internal/name/remote"
  5. "f1-game/internal/pb"
  6. "f1-game/internal/types"
  7. "f1-game/nodes/game/player/asset"
  8. assetOrigin "f1-game/nodes/game/player/asset/origin"
  9. )
  10. func (p *actorPlayer) initAsset() {
  11. p.Remote().Register(nameRemote.Player_AssetAdd, p.assetAdd)
  12. p.Remote().Register(nameRemote.Player_AssetSub, p.assetSub)
  13. p.Remote().Register(nameRemote.Player_AssetCheck, p.assetCheck)
  14. }
  15. // assetAdd 添加资产
  16. func (p *actorPlayer) assetAdd(req *pb.PlayerAddAssets) (*pb.AssetList, int32) {
  17. addAssets := types.Assets{}
  18. addAssets.FillProto(req.AddAssets)
  19. ao := assetOrigin.Get(req.Origin)
  20. retAssets, errCode := asset.Service().Adds(p.playerID, addAssets, ao, true)
  21. if code.IsFail(errCode) {
  22. return nil, errCode
  23. }
  24. rsp := retAssets.ToAssetListProto()
  25. return &rsp, errCode
  26. }
  27. // assetSub 扣除资产
  28. func (p *actorPlayer) assetSub(req *pb.PlayerAddAssets) (*pb.AssetList, int32) {
  29. addAssets := types.Assets{}
  30. addAssets.FillProto(req.AddAssets)
  31. ao := assetOrigin.Get(req.Origin)
  32. retAssets, errCode := asset.Service().Subs(p.playerID, addAssets, ao)
  33. if code.IsFail(errCode) {
  34. return nil, errCode
  35. }
  36. rsp := retAssets.ToAssetListProto()
  37. return &rsp, errCode
  38. }
  39. // assetSub 检测资产
  40. func (p *actorPlayer) assetCheck(req *pb.AssetList) int32 {
  41. assets := types.Assets{}
  42. assets.FillProto(req.List)
  43. return asset.Service().IsAllEnough(p.playerID, assets)
  44. }