| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package player
- import (
- "f1-game/internal/code"
- "f1-game/internal/data"
- "f1-game/internal/enum"
- nameLocal "f1-game/internal/name/local"
- "f1-game/internal/pb"
- gameFacade "f1-game/nodes/game/internal/facade"
- ao "f1-game/nodes/game/player/asset/origin"
- cproto "github.com/cherry-game/cherry/net/proto"
- )
- func (p *actorPlayer) initVip() {
- p.Local().Register(nameLocal.Player_VipDailyExpReward, p.vipDailyExpReward)
- p.Local().Register(nameLocal.Player_VipDailyBoxReward, p.vipDailyBoxReward)
- }
- // 领取每日VIP点数
- func (p *actorPlayer) vipDailyExpReward(session *cproto.Session, _ *pb.None) {
- var (
- playerTable = p.PlayerTable()
- rewardType = enum.VipDailyRewardType_Exp
- )
- if !enum.IsVipDailyRewardType(rewardType) {
- p.ResponseCode(session, code.IllegalArgument)
- return
- }
- if playerTable.Vip.IsReceived(rewardType) {
- p.ResponseCode(session, code.VipDailyRewardReceived)
- return
- }
- playerTable.Vip.SetReceived(rewardType)
- if addExp := data.VipDailyExp.GetExpByDay(playerTable.Stats.ContinueLoginDays); addExp > 0 {
- gameFacade.Vip.AddExp(p.playerID, addExp)
- }
- playerTable.Save2Queue()
- p.ResponseCode(session, code.OK)
- p.Debug("[vipDailyExpReward] Received success.")
- }
- // 领取每日VIP宝箱奖励
- func (p *actorPlayer) vipDailyBoxReward(session *cproto.Session, req *pb.I32) {
- var (
- playerTable = p.PlayerTable()
- level = req.Value // VIP等级
- rewardType = enum.VipDailyRewardType_Box
- )
- if !enum.IsVipDailyRewardType(rewardType) {
- p.ResponseCode(session, code.IllegalArgument)
- return
- }
- if playerTable.Vip.IsReceived(rewardType) {
- p.ResponseCode(session, code.VipDailyRewardReceived)
- return
- }
- if level == 0 {
- level = playerTable.Vip.Level
- }
- vipRow, found := data.Vip.GetByLevel(level)
- if !found {
- p.ResponseCode(session, code.ConfigNotFound_VipLevel)
- return
- }
- playerTable.Vip.SetReceived(rewardType)
- rewardAssets, errCode := gameFacade.Asset.Adds(p.playerID, vipRow.DailyBox, ao.None, true)
- if code.IsFail(errCode) {
- p.ResponseCode(session, errCode)
- return
- }
- playerTable.Save2Queue()
- rsp := rewardAssets.ToAssetListProto()
- p.Response(session, &rsp)
- p.Debug("[vipDailyBoxReward] Received success. level = %d", level)
- }
|