mirror of
https://github.com/prosolis/gogobee.git
synced 2026-07-15 08:32:41 +00:00
Rival System: - RPS-based duels between combat level 5+ players (best of 3, ties re-prompt) - Stakes scale with level, split 50/50 between winner and community pot - 3-4 day randomized challenge interval, 7-day same-pair cooldown - 24h response window with auto-forfeit - Full flavor text pools, character sheet integration, !adventure rivals Babysitting Service: - Weekly/monthly auto-play service targeting weakest skill - Babysitter rerolls death, claims items, credits gold and XP - Rivals automatically declined during service - End-of-service summary with diaper report Revive fixes: - On-demand revive in handleMenu, parseAndResolveChoice, handleStatus - Morning DM respawn check now runs before babysit interception - Players no longer stuck dead after DeadUntil expires mid-day Other changes: - Multilingual !define searches all DreamDict languages by default - TwinBee empty haul now shows "jackshit" instead of blank - Wordle solve payouts increased (e.g. 1-guess: €100 -> €500) - Per-message euro payouts doubled across all tiers - Audit fixes: user locks on RPS/babysit handlers, TOCTOU on gold transfers, dead code removal, deprecated strings.Title replaced, error logging on silent failures Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
38 lines
1.8 KiB
Go
38 lines
1.8 KiB
Go
package plugin
|
|
|
|
import "math/rand/v2"
|
|
|
|
// ── Babysitting Service Flavor Pools ────────────────────────────────────────
|
|
|
|
// babysitConfirmLines are shown on purchase confirmation.
|
|
var babysitConfirmLines = []string{
|
|
"Your adventurer is now in capable hands. Relatively speaking. We've done this before.",
|
|
"Service begins immediately. Go do whatever it is you do when you're not doing this.",
|
|
"Payment received. Your adventurer will be fine. Probably.",
|
|
"We've looked at your skill levels. We know what needs work. We'll handle it. You handle whatever you're handling.",
|
|
}
|
|
|
|
// babysitRivalRefusalLines are used when a rival showed up during babysitting.
|
|
// All lines use exactly two %s: (rival display name, date string).
|
|
var babysitRivalRefusalLines = []string{
|
|
"%s came by on %s with what appeared to be prepared remarks. They were turned away at the door. Their remarks went undelivered. This is probably for the best.",
|
|
"%s attempted to initiate a duel on %s. The babysitter informed them this was not possible. They stood there for a moment. Then left.",
|
|
"%s showed up on %s. The babysitter made them regret it in ways you could only dream of doing.",
|
|
}
|
|
|
|
// babysitDiaperLines appear once per summary, rotated.
|
|
var babysitDiaperLines = []string{
|
|
"The diapers have been handled. We don't discuss the diapers.",
|
|
"Diaper situation: resolved. No further details will be provided.",
|
|
"Standard diaper protocols were followed. The adventurer was cooperative. Mostly.",
|
|
"The diapers. They happened. They were handled. Moving on.",
|
|
}
|
|
|
|
// pickBabysitFlavor returns a random entry from the given pool.
|
|
func pickBabysitFlavor(pool []string) string {
|
|
if len(pool) == 0 {
|
|
return ""
|
|
}
|
|
return pool[rand.IntN(len(pool))]
|
|
}
|