github.com/lianghucheng/zrddz@v0.0.0-20200923083010-c71f680932e2/src/game/internal/user_daily_sign.go (about)

     1  package internal
     2  
     3  import (
     4  	"common"
     5  	"conf"
     6  	"msg"
     7  	"time"
     8  )
     9  
    10  func (user *User) dailySign() {
    11  	user.checkDailySign()
    12  
    13  	if user.baseData.userData.DailySign {
    14  		return
    15  	}
    16  
    17  	user.baseData.userData.DailySign = true
    18  	addChips := conf.GetCfgDailySign()[user.baseData.userData.SignTimes].Chips
    19  	user.baseData.userData.Chips += addChips
    20  	user.baseData.userData.SignTimes++
    21  	saveUserData(user.baseData.userData)
    22  
    23  	user.WriteMsg(&msg.S2C_UpdateUserChips{
    24  		Chips:user.baseData.userData.Chips,
    25  	})
    26  	user.WriteMsg(&msg.S2C_DailySign{
    27  		Chips: addChips,
    28  	})
    29  
    30  	user.sendDailySignItems()
    31  }
    32  
    33  func (user *User) sendDailySignItems() {
    34  	user.checkDailySign()
    35  
    36  	dailySignItems := []msg.DailySignItems{}
    37  	for i := 0; i < user.baseData.userData.SignTimes; i++ {
    38  		dailySignItems = append(dailySignItems, msg.DailySignItems{
    39  			Chips:conf.GetCfgDailySign()[i].Chips,
    40  			Status:msg.SignFinish,
    41  		})
    42  	}
    43  	if !user.baseData.userData.DailySign {
    44  		dailySignItems = append(dailySignItems, msg.DailySignItems{
    45  			Chips:conf.GetCfgDailySign()[user.baseData.userData.SignTimes].Chips,
    46  			Status:msg.SignAccess,
    47  		})
    48  	} else {
    49  		dailySignItems = append(dailySignItems, msg.DailySignItems{
    50  			Chips:conf.GetCfgDailySign()[user.baseData.userData.SignTimes].Chips,
    51  			Status:msg.SignDeny,
    52  		})
    53  	}
    54  
    55  	for i := user.baseData.userData.SignTimes + 1; i < 7; i++ {
    56  		dailySignItems = append(dailySignItems, msg.DailySignItems{
    57  			Chips:conf.GetCfgDailySign()[i].Chips,
    58  			Status:msg.SignDeny,
    59  		})
    60  	}
    61  	user.WriteMsg(&msg.S2C_DailySignItems{
    62  		SignItems:dailySignItems,
    63  		IsSign:user.baseData.userData.DailySign,
    64  	})
    65  }
    66  
    67  func (user *User) checkDailySign() {
    68  	if user.baseData.userData.DailySignDeadLine < time.Now().Unix() {
    69  		user.baseData.userData.DailySignDeadLine = common.OneDay0ClockTimestamp(time.Now().Add(24*time.Hour))
    70  		user.baseData.userData.DailySign = false
    71  		if time.Now().Weekday() == time.Monday {
    72  			user.baseData.userData.SignTimes = 0
    73  		}
    74  		saveUserData(user.baseData.userData)
    75  	}
    76  }