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​