aboutsummaryrefslogtreecommitdiff
path: root/internal/game/casino.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/game/casino.go')
-rw-r--r--internal/game/casino.go21
1 files changed, 18 insertions, 3 deletions
diff --git a/internal/game/casino.go b/internal/game/casino.go
index b15c965..8238b7c 100644
--- a/internal/game/casino.go
+++ b/internal/game/casino.go
@@ -546,7 +546,7 @@ func (g *Game) CasinoTick() {
func (g *Game) emitCasinoEvents(events []casino.Event) {
for _, event := range events {
- if event.Message == "" && event.PrivateMessage == "" && event.Menu == nil && event.Snapshot == nil {
+ if event.Message == "" && event.PrivateMessage == "" && event.Menu == nil && event.Snapshot == nil && len(event.Settlement) == 0 {
continue
}
category := event.Color
@@ -583,7 +583,7 @@ func (g *Game) emitCasinoEvents(events []casino.Event) {
if text == "" {
text = event.Message
}
- if text == "" && event.Menu == nil && event.Snapshot == nil {
+ if text == "" && event.Menu == nil && event.Snapshot == nil && len(event.Settlement) == 0 {
continue
}
g.charsMu.Lock()
@@ -595,10 +595,25 @@ func (g *Game) emitCasinoEvents(events []casino.Event) {
privateMessage := g.casinoPrivateMessage(sess, category, event.Menu, g.casinoTimeText(text))
privateMessage = g.renderCasinoMessage(sess, category, event.Menu, privateMessage)
rendered := g.renderCasinoSnapshot(sess, event.Snapshot)
+ if len(event.Settlement) > 0 {
+ receipt := renderCasinoSettlement(event.Settlement, sess.Player.OptionBool("unicode"), func(tag, text string) string { return g.colorize(sess, tag, text) })
+ if event.SettlementNote != "" {
+ receipt += "\n" + g.casinoProse(sess, "casino_warning", event.SettlementNote)
+ }
+ // Reveal first, then the receipt, then the next-action menu. A
+ // settlement's legacy prose is only a non-UI fallback, not a second payout.
+ rendered = composeTableThenReminder(rendered, receipt)
+ if event.Menu == nil {
+ privateMessage = ""
+ }
+ }
if reminder, ok := g.casinoBoardReminder(sess, category, event.Menu, event.Snapshot, g.casinoTimeText(text)); ok {
privateMessage = composeTableThenReminder(rendered, reminder)
} else if rendered != "" {
- privateMessage += "\n" + rendered
+ if privateMessage != "" {
+ privateMessage += "\n"
+ }
+ privateMessage += rendered
}
if event.ShowBalance {
privateMessage += "\n" + g.casinoBalance(sess)