aboutsummaryrefslogtreecommitdiff
path: root/internal/game/cmd_bank.go
diff options
context:
space:
mode:
authorhistoria <[not public]>2026-09-16 19:57:45 -0400
committerhistoria <[not public]>2026-09-16 19:57:45 -0400
commit6ef40a5739f1723ec26cc32dfc48fe764f776dca (patch)
treee215a4dc96ea639bcea07bb589aae3e31c3609bb /internal/game/cmd_bank.go
parent1dad15698845d370e998f7cc5feb8aece3fab58f (diff)
downloadthehouseoficarus-6ef40a5739f1723ec26cc32dfc48fe764f776dca.tar.gz
fix: durable payouts survive journal failure, cap bank withdrawals, hash passwords off the owner loop.
Diffstat (limited to 'internal/game/cmd_bank.go')
-rw-r--r--internal/game/cmd_bank.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/internal/game/cmd_bank.go b/internal/game/cmd_bank.go
index 8da6e89..264bab2 100644
--- a/internal/game/cmd_bank.go
+++ b/internal/game/cmd_bank.go
@@ -390,6 +390,12 @@ func (g *Game) doBankWithdrawCredits(sess *net.Session, parts []string) {
sess.WriteLine("You don't have that many banked credits.")
return
}
+ // The withdrawal must respect the shared economy cap: banked credits
+ // are not part of the on-hand balance, so the sum can exceed it.
+ if _, capErr := addCreditsChecked(p.Credits, amount); capErr != nil {
+ sess.WriteLine("Your wallet cannot hold that many credits.")
+ return
+ }
p.BankedCredits -= amount
p.Credits += amount
g.saveCharacter(p)