Add action economy split and cross-plugin chat level lookup (Adventure 2.5 steps 1-2)

Action economy: replace single daily action with 1 combat + 3 harvest
actions per day. Holidays grant +1 to each bucket. Rest consumes all
remaining actions. Arena remains outside both buckets.

- Add CombatActionsUsed/HarvestActionsUsed counters to AdventureCharacter
- Add CanDoCombat/CanDoHarvest/AllActionsUsed/HasActedToday helpers
- Update all 14 ActionTakenToday check sites across adventure, scheduler,
  babysit, twinbee, events, and render
- Morning DM shows action budget and grays out exhausted categories
- Activity resolution checks per-bucket availability before proceeding
- Midnight reset zeros both counters
- Post-action nudge shows remaining actions instead of holiday prompt

Cross-plugin lookup: export XPPlugin.GetLevel(), wire into AdventurePlugin
via p.chatLevel(userID) for upcoming chat level perks.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
prosolis
2026-04-08 15:24:49 -07:00
parent f57dcd93a5
commit 7e4fbe5ec8
10 changed files with 203 additions and 126 deletions

View File

@@ -276,7 +276,8 @@ func (p *AdventurePlugin) runBabysitDaily(char *AdventureCharacter) {
// No treasure drops during babysitting
result.TreasureFound = nil
// Mark action taken
// Mark action taken (babysit always uses a harvest action)
char.HarvestActionsUsed++
char.ActionTakenToday = true
char.LastActionDate = time.Now().UTC().Format("2006-01-02")