2025-12-05 20:15:55 +08:00

107 lines
2.6 KiB
Go

package model
import "roserver/serverproto"
const (
ROLL_CARD_X5 = 5
ROLL_CARD_TYPE_NORMAL = 1
ROLL_CARD_TYPE_MINI = 2
ROLL_CARD_TYPE_MVP = 3
)
type RollCardCfg struct {
cardId int32
cardType int32
cardLevel int32
weight int32
rangeStart int32
rangeEnd int32
}
type LiveCardRoom struct {
LiveRoom
playerCards []*serverproto.KeyValueType64Str
rollCardCfgList []*RollCardCfg
}
func newLiveCardRoom(roomId uint32, tickInterval uint32) *LiveCardRoom {
room := &LiveCardRoom{
LiveRoom: newLiveRoom(roomId, LIVEROOM_TYPE_CARD, tickInterval),
}
room.Init()
return room
}
func (self *LiveCardRoom) Init() {
cardCfg := serverproto.CardCfgLoader
for _, v := range cardCfg {
switch v.CardType {
case ROLL_CARD_TYPE_NORMAL:
self.rollCardCfgList = append(self.rollCardCfgList, &RollCardCfg{
cardId: v.CardId,
cardType: v.CardType,
cardLevel: v.CardLevel,
weight: (10 + v.CardLevel),
})
case ROLL_CARD_TYPE_MINI:
self.rollCardCfgList = append(self.rollCardCfgList, &RollCardCfg{
cardId: v.CardId,
cardType: v.CardType,
cardLevel: v.CardLevel,
weight: (5 + v.CardLevel),
})
case ROLL_CARD_TYPE_MVP:
self.rollCardCfgList = append(self.rollCardCfgList, &RollCardCfg{
cardId: v.CardId,
cardType: v.CardType,
cardLevel: v.CardLevel,
weight: (0 + v.CardLevel),
})
}
}
}
func (self *LiveCardRoom) RollCards(cardCount int) string {
rollInfo := ""
// cards := make([]uint32, 0)
if cardCount == ROLL_CARD_X5 {
// 先保底抽一张MINI卡
}
return rollInfo
}
func (self *LiveCardRoom) ShowStart() {
// 为准备的玩家抽卡
self.playerCards = make([]*serverproto.KeyValueType64Str, 0)
for _, uid := range self.LiveRoom.readyUidList {
self.playerCards = append(self.playerCards, &serverproto.KeyValueType64Str{
Key: uid,
})
}
}
func (self *LiveCardRoom) ShowEnd() {}
func (self *LiveCardRoom) GetMaxReadyNum(roomType uint32) int {
return LIVEROOM_CARD_MAX_READY_NUM
}
func (self *LiveCardRoom) GetPlayDataList(readyUidList []uint64, uid uint64) []*serverproto.KeyValueType64Str {
return nil
}
// 抽卡:获取整个抽卡结果数据,在客户端播放抽卡动画
func (self *LiveCardRoom) GetShowResultList(readyUidList []uint64, uid uint64) []*serverproto.KeyValueType64Str {
return nil
}
// 抽卡:获取当前玩家获得的物品
func (self *LiveCardRoom) GetShowRewardList(readyUidList []uint64, uid uint64) []*serverproto.KeyValueType {
return nil
}
func (self *LiveCardRoom) HandleSubmit(uid uint64, data []*serverproto.KeyValueType) int32 {
return 0
}