上传房间处理

This commit is contained in:
liwei1dao 2023-11-13 16:03:55 +08:00
parent 232dc9d051
commit a28d16b1b9

View File

@ -133,7 +133,7 @@ func (this *Room) PlayerHandleEnd(uid string, handle *pb.CatchbugsHandleEndReq)
card []*pb.DBCatchBugsCard
)
this.handleplayers++
if this.data.Red.Info.Uid == uid {
if uid == this.data.Red.Info.Uid {
this.handleplayer = this.data.Blue.Info.Uid
} else {
this.handleplayer = this.data.Red.Info.Uid
@ -141,35 +141,7 @@ func (this *Room) PlayerHandleEnd(uid string, handle *pb.CatchbugsHandleEndReq)
state := this.checkGameOver()
if state == 3 {
winuid := ""
if len(this.data.Red.Cards) > len(this.data.Blue.Cards) {
winuid = this.data.Red.Info.Uid
this.data.Red.Score = int32(len(this.data.Red.Cards) * 4)
this.data.Blue.Score = int32(len(this.data.Blue.Cards))
} else if len(this.data.Red.Cards) < len(this.data.Blue.Cards) {
winuid = this.data.Blue.Info.Uid
this.data.Blue.Score = int32(len(this.data.Blue.Cards) * 4)
this.data.Red.Score = int32(len(this.data.Red.Cards))
} else {
this.data.Red.Score = int32(len(this.data.Red.Cards) * 2)
this.data.Blue.Score = int32(len(this.data.Blue.Cards) * 2)
}
this.data.Red.Integral += this.data.Red.Score
this.data.Blue.Integral += this.data.Blue.Score
this.module.model.Change(this.data.Red.Info.Uid, map[string]interface{}{
"integral": this.data.Red.Integral,
})
if !this.data.Blue.Isai {
this.module.model.Change(this.data.Blue.Info.Uid, map[string]interface{}{
"integral": this.data.Blue.Integral,
})
}
this.SendAllSessions("gameover", &pb.CatchbugsGameOverPush{
Winuid: winuid,
Redintegral: this.data.Red.Integral,
Blueintegral: this.data.Blue.Integral,
}, true)
this.gameover()
} else {
if state == 2 { //需要补拍
this.ReplenishCard()
@ -182,55 +154,62 @@ func (this *Room) PlayerHandleEnd(uid string, handle *pb.CatchbugsHandleEndReq)
} else {
if this.handleplayers == 2 {
this.round++
if this.round == 3 {
this.ReplenishCard()
card = this.data.Card
this.SendAllSessions("tableschange", &pb.CatchbugsTablesChangePush{
Changetype: 1,
Card: card,
}, false)
}
if this.round%this.conf.Round == 0 { //触发技能
switch this.data.Rules.Skill {
case 1:
this.data.Card = Skill1Effect(this.data.Card)
this.handleplayers = 0
if this.round < 6 {
if this.round == 3 {
this.ReplenishCard()
card = this.data.Card
this.SendAllSessions("tableschange", &pb.CatchbugsTablesChangePush{
Changetype: 0,
Changetype: 1,
Card: card,
}, false)
break
case 2:
this.data.Card = Skill2Effect(this.data.Card)
card = this.data.Card
this.SendAllSessions("tableschange", &pb.CatchbugsTablesChangePush{
Changetype: 0,
Card: card,
}, false)
break
case 4:
this.data.Card = Skill4Effect(this.data.Card)
card = this.data.Card
this.SendAllSessions("tableschange", &pb.CatchbugsTablesChangePush{
Changetype: 0,
Card: card,
}, false)
break
}
if this.round%this.conf.Round == 0 { //触发技能
switch this.data.Rules.Skill {
case 1:
this.data.Card = Skill1Effect(this.data.Card)
card = this.data.Card
this.SendAllSessions("tableschange", &pb.CatchbugsTablesChangePush{
Changetype: 0,
Card: card,
}, false)
break
case 2:
this.data.Card = Skill2Effect(this.data.Card)
card = this.data.Card
this.SendAllSessions("tableschange", &pb.CatchbugsTablesChangePush{
Changetype: 0,
Card: card,
}, false)
break
case 4:
this.data.Card = Skill4Effect(this.data.Card)
card = this.data.Card
this.SendAllSessions("tableschange", &pb.CatchbugsTablesChangePush{
Changetype: 0,
Card: card,
}, false)
break
}
}
this.SendAllSessions("roundend", &pb.CatchbugsRoundEndPush{}, true)
} else {
this.gameover()
}
this.SendAllSessions("roundend", &pb.CatchbugsRoundEndPush{}, true)
} else {
this.SendAllSessions("roundend", &pb.CatchbugsRoundEndPush{}, true)
}
}
}
return
}
//检测游戏是否结束
//检测游戏是否结束 1 正常 2 补拍 3结束
func (this *Room) checkGameOver() (state int32) {
if this.round >= 6 {
state = 3
return
}
for _, v := range this.data.Card {
if !v.Isopen {
state = 1
@ -323,6 +302,7 @@ func (this *Room) AiHandleByOpenCard() {
})
this.aihandlenumber++
if this.aihandlenumber >= int32(len(this.aihandlecards)) {
time.Sleep(time.Second)
this.PlayerHandleEnd(this.data.Blue.Info.Uid, &pb.CatchbugsHandleEndReq{
Roomid: this.data.Rid,
})
@ -330,6 +310,38 @@ func (this *Room) AiHandleByOpenCard() {
}
func (this *Room) gameover() {
winuid := ""
if len(this.data.Red.Cards) > len(this.data.Blue.Cards) {
winuid = this.data.Red.Info.Uid
this.data.Red.Score = int32(len(this.data.Red.Cards) * 4)
this.data.Blue.Score = int32(len(this.data.Blue.Cards))
} else if len(this.data.Red.Cards) < len(this.data.Blue.Cards) {
winuid = this.data.Blue.Info.Uid
this.data.Blue.Score = int32(len(this.data.Blue.Cards) * 4)
this.data.Red.Score = int32(len(this.data.Red.Cards))
} else {
this.data.Red.Score = int32(len(this.data.Red.Cards) * 2)
this.data.Blue.Score = int32(len(this.data.Blue.Cards) * 2)
}
this.data.Red.Integral += this.data.Red.Score
this.data.Blue.Integral += this.data.Blue.Score
this.module.model.Change(this.data.Red.Info.Uid, map[string]interface{}{
"integral": this.data.Red.Integral,
})
if !this.data.Blue.Isai {
this.module.model.Change(this.data.Blue.Info.Uid, map[string]interface{}{
"integral": this.data.Blue.Integral,
})
}
this.SendAllSessions("gameover", &pb.CatchbugsGameOverPush{
Winuid: winuid,
Redintegral: this.data.Red.Integral,
Blueintegral: this.data.Blue.Integral,
}, true)
}
//技能效果1 随机2x2的区域 旋转
func Skill1Effect(cards []*pb.DBCatchBugsCard) (cardsTemp []*pb.DBCatchBugsCard) {
var (