package player import ( "f1-game/internal/code" nameRemote "f1-game/internal/name/remote" "f1-game/internal/pb" "f1-game/internal/types" "f1-game/nodes/game/player/asset" assetOrigin "f1-game/nodes/game/player/asset/origin" ) func (p *actorPlayer) initAsset() { p.Remote().Register(nameRemote.Player_AssetAdd, p.assetAdd) p.Remote().Register(nameRemote.Player_AssetSub, p.assetSub) p.Remote().Register(nameRemote.Player_AssetCheck, p.assetCheck) } // assetAdd 添加资产 func (p *actorPlayer) assetAdd(req *pb.PlayerAddAssets) (*pb.AssetList, int32) { addAssets := types.Assets{} addAssets.FillProto(req.AddAssets) ao := assetOrigin.Get(req.Origin) retAssets, errCode := asset.Service().Adds(p.playerID, addAssets, ao, true) if code.IsFail(errCode) { return nil, errCode } rsp := retAssets.ToAssetListProto() return &rsp, errCode } // assetSub 扣除资产 func (p *actorPlayer) assetSub(req *pb.PlayerAddAssets) (*pb.AssetList, int32) { addAssets := types.Assets{} addAssets.FillProto(req.AddAssets) ao := assetOrigin.Get(req.Origin) retAssets, errCode := asset.Service().Subs(p.playerID, addAssets, ao) if code.IsFail(errCode) { return nil, errCode } rsp := retAssets.ToAssetListProto() return &rsp, errCode } // assetSub 检测资产 func (p *actorPlayer) assetCheck(req *pb.AssetList) int32 { assets := types.Assets{} assets.FillProto(req.List) return asset.Service().IsAllEnough(p.playerID, assets) }