上传房间处理
This commit is contained in:
parent
232dc9d051
commit
a28d16b1b9
@ -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 (
|
||||
|
Loading…
Reference in New Issue
Block a user