package logic //type PlayerMonthlyCard struct { // Id uint32 `bson:"id" key:"1"` // BeginTime int64 `bson:"begin_time"` // TotalDays uint32 `bson:"days_total"` // RewardDays uint32 `bson:"reward_days"` // DailyItems []uint32 `bson:"daily_items"` // DailyNums []uint32 `bson:"daily_nums"` //} // //func (this *PlayerMonthlyCard) BuildMsgMonthlyCard() *proto.MonthlyCard { // return &proto.MonthlyCard{Id: this.Id, BeginTime: this.BeginTime, TotalDays: this.TotalDays, RewardDays: this.RewardDays} //} // //func (this *Player) checkMonthlyCardReward(now int64) (changed bool) { // for _, monthlyCard := range this.MonthlyCard { // if len(monthlyCard.DailyItems) == 0 { // continue // } // // var monthlyCardTable = this.manager.tables.MonthlyCard.Get(int(monthlyCard.Id)) // if monthlyCardTable == nil { // this.manager.logger.Error("Could not find the monthly card table when sending the monthly card daily reward, id: ", monthlyCard.Id) // continue // } // // var days = uint32(now-monthlyCard.BeginTime)/86400 + 1 // if days < monthlyCard.RewardDays { // continue // } // // if days >= monthlyCard.TotalDays { // days = monthlyCard.TotalDays // // this.WipeModel(monthlyCard) // } else { // this.SaveModel(monthlyCard) // } // // for i := monthlyCard.RewardDays; i < days; i++ { // var mailTime = monthlyCard.BeginTime + GameDailyResetTime + util.DayTotalSeconds*int64(monthlyCard.RewardDays) // // monthlyCard.RewardDays += 1 // // this.AddMail( // proto.MailTypeNormal, // util.IntegerToString(monthlyCardTable.MailTitle), // util.IntegerToString(monthlyCardTable.MailContent), // nil, // monthlyCard.DailyItems, // monthlyCard.DailyNums, // mailTime, // ) // } // // changed = true // } // return //} // //func (this *Player) CheckMonthlyCardPrivilege(checkType proto.MonthlyCardPrivilegeType) (privilegeArg int64) { // for _, monthlyCard := range this.MonthlyCard { // var monthlyCardTable = this.manager.tables.MonthlyCard.Get(int(monthlyCard.Id)) // if monthlyCardTable == nil { // continue // } // // for i, privilegeType := range monthlyCardTable.PrivilegeType { // if proto.MonthlyCardPrivilegeType(privilegeType) == checkType { // privilegeArg += int64(monthlyCardTable.PrivilegeArg[i]) // } // } // } // return //} // //func (this *Player) AddMonthlyCard(monthlyCardTable *data.MonthlyCard) []*proto.ItemPair { // var todayBeginTime = util.TodayBeginTime() + GameDailyResetTime // var monthlyCard = this.MonthlyCard[uint32(monthlyCardTable.Id)] // if monthlyCard == nil || uint32((todayBeginTime-monthlyCard.BeginTime)/util.DayTotalSeconds) > monthlyCard.TotalDays { // if monthlyCard == nil { // monthlyCard = &PlayerMonthlyCard{Id: uint32(monthlyCardTable.Id), BeginTime: todayBeginTime, TotalDays: uint32(monthlyCardTable.EffectiveDay), RewardDays: 0} // this.MonthlyCard[monthlyCard.Id] = monthlyCard // } // // for i, itemId := range monthlyCardTable.ActiveRewardList { // monthlyCard.DailyItems = append(monthlyCard.DailyItems, uint32(itemId)) // monthlyCard.DailyNums = append(monthlyCard.DailyNums, uint32(monthlyCardTable.ActiveNumList[i])) // } // // monthlyCard.RewardDays += 1 // // if len(monthlyCard.DailyItems) > 0 { // this.AddMail( // proto.MailTypeNormal, // util.IntegerToString(monthlyCardTable.MailTitle), // util.IntegerToString(monthlyCardTable.MailContent), // nil, // monthlyCard.DailyItems, // monthlyCard.DailyNums, // util.Unix(), // ) // } // } else { // monthlyCard.TotalDays += uint32(monthlyCardTable.EffectiveDay) // } // // this.SaveModel(monthlyCard) // // _ = this.AddItem(uint32(monthlyCardTable.CardRewardId), uint32(monthlyCardTable.CardRewardNum), LogTypeItemObtainByMonthlyCard) // // _ = this.Send(proto.ModIdStore, proto.MsgIdMonthlyCardChange, &proto.MsgMonthlyCardChangeAck{MonthlyCard: monthlyCard.BuildMsgMonthlyCard()}) // // return []*proto.ItemPair{{ItemId: uint32(monthlyCardTable.CardRewardId), ItemNum: uint32(monthlyCardTable.CardRewardNum)}} //} // //func (this *Player) BuildMsgMonthlyCardListAck() *proto.MsgMonthlyCardListAck { // var list []*proto.MonthlyCard // for _, monthlyCard := range this.MonthlyCard { // list = append(list, monthlyCard.BuildMsgMonthlyCard()) // } // return &proto.MsgMonthlyCardListAck{List: list} //}