| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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"
- assetOrigin "f1-game/nodes/game/player/asset/origin"
- cproto "github.com/cherry-game/cherry/net/proto"
- )
- func (p *actorPlayer) initVip() {
- p.Local().Register(nameLocal.Player_VipDailyReward, p.vipDailyReward)
- }
- // 领取每日VIP奖励
- func (p *actorPlayer) vipDailyReward(session *cproto.Session, req *pb.I32) {
- var (
- playerTable = p.PlayerTable()
- rewardType = enum.VipDailyRewardType(req.Value)
- )
- 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)
- switch rewardType {
- case enum.VipDailyRewardType_Exp:
- if addExp := data.VipDailyExp.GetExpByDay(playerTable.Stats.ContinueLoginDays); addExp > 0 {
- gameFacade.Vip.AddExp(p.playerID, addExp)
- }
- case enum.VipDailyRewardType_Box:
- if vipRow, found := data.Vip.GetByLevel(playerTable.Vip.Level); found {
- gameFacade.Asset.Adds(p.playerID, vipRow.DailyBox, assetOrigin.None, true)
- }
- }
- playerTable.Save2Queue()
- p.ResponseCode(session, code.OK)
- }
|