同一个卡包内不能开出重复卡牌
This commit is contained in:
parent
0f732904be
commit
d4dc459192
@ -271,3 +271,14 @@ func IsContain(s []int, s2 []int) bool {
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
func IsSameElem(s []int) bool {
|
||||
r := make(map[int]struct{})
|
||||
for _, v := range s {
|
||||
if _, ok := r[v]; ok {
|
||||
return true
|
||||
}
|
||||
r[v] = struct{}{}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
@ -134,3 +134,11 @@ func UnitLimitedTimeEvent(p *Player) error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func UnitCard(p *Player) error {
|
||||
CardMod := p.PlayMod.getCardMod()
|
||||
for i := 0; i < 1000; i++ {
|
||||
CardMod.OpenCardPack(4)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -157,9 +157,8 @@ func (c *CardMod) OpenCardPack(Star int) ([]int, error) {
|
||||
}
|
||||
|
||||
mustHaveStar := cardCfg.GetPackMustHave(Star)
|
||||
|
||||
if mustHaveStar != 0 {
|
||||
cardId = randCard(c.Round, mustHaveStar, 0)
|
||||
cardId = randCard(c.Round, mustHaveStar, 0, newCard)
|
||||
if cardId == 0 {
|
||||
return newCard, fmt.Errorf("OpenCardPack card id err")
|
||||
}
|
||||
@ -177,11 +176,11 @@ func (c *CardMod) OpenCardPack(Star int) ([]int, error) {
|
||||
CardStar := GoUtil.RandMap(randList)
|
||||
switch CardStar {
|
||||
case 5:
|
||||
cardId = randCard(c.Round, 4, 1)
|
||||
cardId = randCard(c.Round, 4, 1, newCard)
|
||||
case 6:
|
||||
cardId = randCard(c.Round, 5, 1)
|
||||
cardId = randCard(c.Round, 5, 1, newCard)
|
||||
default:
|
||||
cardId = randCard(c.Round, CardStar, 0)
|
||||
cardId = randCard(c.Round, CardStar, 0, newCard)
|
||||
}
|
||||
if cardId == 0 {
|
||||
return newCard, fmt.Errorf("OpenCardPack card id err")
|
||||
@ -539,7 +538,7 @@ func (c *CardMod) GetHandbookReward(CardId int) ([]*item.Item, error) {
|
||||
}
|
||||
|
||||
func (c *CardMod) RandCard(Star int) int {
|
||||
return randCard(c.Round, Star, 0)
|
||||
return randCard(c.Round, Star, 0, []int{})
|
||||
}
|
||||
|
||||
func (c *CardMod) SeasonFirstReward() ([]*item.Item, error) {
|
||||
|
||||
@ -5,12 +5,15 @@ import (
|
||||
cardCfg "server/conf/card"
|
||||
)
|
||||
|
||||
func randCard(Round, Star, IsGold int) int {
|
||||
func randCard(Round, Star, IsGold int, Except []int) int {
|
||||
cardList := cardCfg.GetCardListByStar(Round, Star, IsGold)
|
||||
cardList = GoUtil.SubSlices(cardList, Except)
|
||||
cardId := GoUtil.RandSlice(cardList)
|
||||
return cardId
|
||||
}
|
||||
|
||||
func RankGoldCard() (int, int) {
|
||||
return randCard(0, 4, 1), randCard(0, 5, 1)
|
||||
Card1 := randCard(0, 4, 1, []int{})
|
||||
Card2 := randCard(0, 5, 1, []int{Card1})
|
||||
return Card1, Card2
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user