Skip to main content

Baccarat (BACCARAT)

Game Code

  • GameType: BACCARAT
  • Value: 16

Game Description

Baccarat data format has shoes, with 4-6 cards each for banker and player initial and draw positions, using playing card type (POKERCARD). When player hand cards are revealed, the left banker/player Normal/Extra card positions (BANKER/PLAYER) in the round data will be updated, and operators will be notified through the data push interface.

Baccarat Subtypes

SubtypeDescription
BACCARAT_CLASSICClassic Baccarat
BACCARAT_TRADITIONALTraditional Baccarat
BACCARAT_SPEEDSpeed Baccarat
BACCARAT_PEEKPeek Baccarat
BACCARAT_FORTUNEFortune Baccarat
BACCARAT_BLOCKCHAINBlockchain Baccarat
BACCARAT_SPEED_BLOCKCHAINBlockchain Speed Baccarat
BACCARAT_PEEK_BLOCKCHAINBlockchain Peek Baccarat

Used Seats & Resources

SeatResourceDescription
pbGames.FlowSeat_PLAYERpbBaccarat.ResourceType_NORMALCurrent round result, player initial cards
pbGames.FlowSeat_PLAYERpbBaccarat.ResourceType_EXTRACurrent round result, player draw cards
pbGames.FlowSeat_BANKERpbBaccarat.ResourceType_NORMALCurrent round result, banker initial cards
pbGames.FlowSeat_BANKERpbBaccarat.ResourceType_EXTRACurrent round result, banker draw cards

Playing Card Specific Cards

Spade CardsHeart CardsClub CardsDiamond CardsDescription
SPADE_AHEART_ACLUB_ADIAMOND_A1 point
SPADE_2HEART_2CLUB_2DIAMOND_22 points
SPADE_3HEART_3CLUB_3DIAMOND_33 points
SPADE_4HEART_4CLUB_4DIAMOND_44 points
SPADE_5HEART_5CLUB_5DIAMOND_55 points
SPADE_6HEART_6CLUB_6DIAMOND_66 points
SPADE_7HEART_7CLUB_7DIAMOND_77 points
SPADE_8HEART_8CLUB_8DIAMOND_88 points
SPADE_9HEART_9CLUB_9DIAMOND_99 points
SPADE_10HEART_10CLUB_10DIAMOND_1010 points
SPADE_JHEART_JCLUB_JDIAMOND_J11 points
SPADE_QHEART_QCLUB_QDIAMOND_Q12 points
SPADE_KHEART_KCLUB_KDIAMOND_K13 points

Execution Steps (Classic, Fortune, Speed, Traditional)

Data is written to recorder.process after each step

OrderStepDescription
1Step_ROUND_STARTRound start (NOTIFY_ROUND_START)
2Step_ROUND_BETStart betting (NOTIFY_ROUND_BET)
Duration: betting seconds
ex Duration: 45 = 45 seconds
3Step_NO_MORE_BETStop betting (NOTIFY_ROUND_NO_MORE_BET)
Duration: betting seconds
ex Duration: 45 = 45 seconds
4Step_SHOW_PLAYER_1Reveal player hand card 1 NOTIFY_ROUND_STEP (get reveal result)
5Step_SHOW_BANKER_1Reveal banker hand card 1 NOTIFY_ROUND_STEP (get reveal result)
6Step_SHOW_PLAYER_2Reveal player hand card 2 NOTIFY_ROUND_STEP (get reveal result)
7Step_SHOW_BANKER_2Reveal banker hand card 2 NOTIFY_ROUND_STEP (get reveal result)
8Step_DEAL_PLAYER_EXTRAReveal player draw card NOTIFY_ROUND_STEP (get reveal result)
9Step_DEAL_BANKER_EXTRAReveal banker draw card NOTIFY_ROUND_STEP (get result)
10Step_DEALER_CONFIRMDealer confirmation phase NOTIFY_ROUND_STEP
11Step_ROUND_FINISHEDRound end, send NOTIFY_ROUND_FINISH notification for settlement

Execution Steps (Peek)

Data is written to recorder.process after each step

OrderStepDescription
1Step_ROUND_STARTRound start (NOTIFY_ROUND_START)
2Step_ROUND_BETStart betting send NOTIFY_ROUND_BET notification
Duration: betting seconds
ex Duration: 45 = 45 seconds
3Step_NO_MORE_BETStop betting NOTIFY_ROUND_NO_MORE_BET notification
Duration: betting seconds
ex Duration: 45 = 45 seconds
4Step_PEEK_NORMALPeek field initial cards NOTIFY_ROUND_STEP (get reveal result)
Duration: peek time
5Step_PEEK_SHOW_NORMALReveal field initial cards NOTIFY_ROUND_STEP (get reveal result)
6Step_PEEK_DEAL_PLAYER_EXTRAPeek player draw card NOTIFY_ROUND_STEP (get reveal result)
Duration: peek time
7Step_PEEK_SHOW_PLAYER_EXTRAReveal player draw card NOTIFY_ROUND_STEP
8Step_PEEK_DEAL_BANKER_EXTRAPeek banker draw card NOTIFY_ROUND_STEP (get reveal result)
Duration: peek time
9Step_PEEK_SHOW_BANKER_EXTRAReveal banker draw card NOTIFY_ROUND_STEP
10Step_DEALER_CONFIRMDealer confirmation phase NOTIFY_ROUND_STEP
11Step_ROUND_FINISHEDRound end, send NOTIFY_ROUND_FINISH notification event

Execution Steps (Electronic Type)

Data is written to recorder.process after each step

OrderStepDescription
1Step_ROUND_STARTRound start (NOTIFY_ROUND_START)
2Step_DEAL_PLAYER_1Deal player hand card 1 NOTIFY_ROUND_STEP (electronic type pre-deals face-down cards)
3Step_DEAL_BANKER_1Deal banker hand card 1 NOTIFY_ROUND_STEP (electronic type pre-deals face-down cards)
4Step_DEAL_PLAYER_2Deal player hand card 2 NOTIFY_ROUND_STEP (electronic type pre-deals face-down cards)
5Step_DEAL_BANKER_2Deal banker hand card 2 NOTIFY_ROUND_STEP (electronic type pre-deals face-down cards)
6Step_ROUND_BETStart betting (NOTIFY_ROUND_BET)
Duration: betting seconds
ex Duration: 45 = 45 seconds
7Step_NO_MORE_BETStop betting (NOTIFY_ROUND_NO_MORE_BET)
Duration: betting seconds
ex Duration: 45 = 45 seconds
8Step_SHOW_PLAYER_1Reveal player hand card 1 NOTIFY_ROUND_STEP (get reveal result)
9Step_SHOW_BANKER_1Reveal banker hand card 1 NOTIFY_ROUND_STEP (get reveal result)
10Step_SHOW_PLAYER_2Reveal player hand card 2 NOTIFY_ROUND_STEP (get reveal result)
11Step_SHOW_BANKER_2Reveal banker hand card 2 NOTIFY_ROUND_STEP (get reveal result)
12Step_DEAL_PLAYER_EXTRAReveal player draw card NOTIFY_ROUND_STEP (get reveal result)
13Step_DEAL_BANKER_EXTRAReveal banker draw card NOTIFY_ROUND_STEP (get result)
14Step_DEALER_CONFIRMDealer confirmation phase NOTIFY_ROUND_STEP
15Step_ROUND_FINISHEDRound end, send NOTIFY_ROUND_FINISH notification for settlement

Game Event Notifications

Table Event Notifications (provider parsing)

Event TypeDescription
GameNotifyType_NOTIFY_GAME_PROVIDE_STATE_CHANGETable status change
GameNotifyType_NOTIFY_GAME_DEALER_LOGINDealer login code name related
GameNotifyType_NOTIFY_GAME_DEALER_LOGOUTDealer logout code name related
GameNotifyType_NOTIFY_GAME_CHANGING_SHOEChange shoe
GameNotifyType_NOTIFY_GAME_CAPTUREThumbnail image used for dealer photo

Table Shift Round Event Notifications (ShiftRecord parsing)

Event TypeDescription
GameNotifyType_NOTIFY_SHIFT_STARTShift start
GameNotifyType_NOTIFY_SHIFT_ENDShift end

Table Shift Round Event Notifications (ShoeRecord parsing)

Event TypeDescription
GameNotifyType_NOTIFY_SHOE_STARTShoe number start
GameNotifyType_NOTIFY_SHOE_ENDShoe number end
Event TypeDescription
GameNotifyType_NOTIFY_ROUND_STARTNotify game start (can use start betting beginning, can ignore)
GameNotifyType_NOTIFY_ROUND_BETNotify game start betting
GameNotifyType_NOTIFY_ROUND_NO_MORE_BETNotify game stop betting
GameNotifyType_NOTIFY_ROUND_STEPNotify game round history
GameNotifyType_NOTIFY_ROUND_FINISHNotify game round result
GameNotifyType_NOTIFY_ROUND_CANCELNotify game round cancel
GameNotifyType_NOTIFY_ROUND_PLAYBACKNotify game round replay video URL
GameNotifyType_NOTIFY_ROUND_CANCEL_AFTER_ROUNDPost-round cancel result
GameNotifyType_NOTIFY_ROUND_MODIFY_AFTER_ROUNDPost-round modify card face result
GameNotifyType_NOTIFY_ROUND_FINISH_AFTER_ROUNDInput result through backend

Parse Card Face Example

Parse roundRecord based on GameNotifyType_NOTIFY_ROUND_STEP event to get which cards are currently revealed on the field

import (
pbBaccarat "github.com/wecasino/wecasino-proto/pbgo/games/baccarat"
pbRecorder "github.com/wecasino/wecasino-proto/pbgo/recorder"
)

func ParseRoundCardsIndex(ctx context.Context, round *pbRecorder.RoundRecord) (b1, b2, b3, p1, p2, p3 string) {
banker := round.Seats[int32(pbGames.FlowSeat_BANKER)]
bankerNormal := banker.GetCards()[int32(pbBaccarat.ResourceType_NORMAL)].GetList()
if len(bankerNormal) > 0 {
b1 = bankerNormal[0].GetCode()
}
if len(bankerNormal) > 1 {
b2 = bankerNormal[1].GetCode()
}
bankerExtra := banker.GetCards()[int32(pbBaccarat.ResourceType_EXTRA)].GetList()
if len(bankerExtra) > 0 {
b3 = bankerExtra[0].GetCode()
}

player := round.Seats[int32(pbGames.FlowSeat_PLAYER)]
playerNormal := player.GetCards()[int32(pbBaccarat.ResourceType_NORMAL)].GetList()
if len(playerNormal) > 0 {
p1 = playerNormal[0].GetCode()
}
if len(playerNormal) > 1 {
p2 = playerNormal[1].GetCode()
}
playerExtra := player.GetCards()[int32(pbBaccarat.ResourceType_EXTRA)].GetList()
if len(playerExtra) > 0 {
p3 = playerExtra[0].GetCode()
}
return
}

Fortune Number Description

The roundRecord attribute has FortuneRate showing card corresponding multiplier, announced when betting stops. If there are corresponding fortune cards on the field, adjust payout according to game rules.

Example: map["CLUB_J":2 "DIAMOND_8":8 "HEART_3":3 "HEART_Q":2]

Parse Example