Commit Graph

5 Commits

Author SHA1 Message Date
Claude
dfa7e00bd0 Merge origin/main into issue-3; bounce-fix 4: executable axe preparation, per-selected-row dynamic rates, drop-GP-zero (governor 10398, owner decision 10499)
- woodcutting-f2p.yaml v5: prepare state (a2-a9 check/withdraw/GE-buy/wait/collect/equip-or-carry/loadout -> travel), unobtainable axe -> failed (never complete), chopping->drop_logs gated to afk-xp, per-row chop/walk/respawn/log_price constants, mode rates = canonical top-row reference, woodcutting_fixtures (level-1 / level-50 quest+no-quest / level-70 / level-30 profiles), drop-mode realized GP 0
- schemas/entry.schema.json: ladder rows require per-row rate fields; model slimmed to drop/deposit/break; woodcutting_fixtures block added
- tools/validate.py: port woodcutting gates onto the economy validator (select_ladder_row + row_rates recompute fixtures at 27/28 capacity, drop-GP-zero gate, prepare/failed/drop-gating wiring checks); selftest now 55 checks
2026-08-29 04:53:03 -05:00
Claude
86c0c896d8 woodcutting-f2p: three explicit modes + corrected axe model (governor 10323 bounce-fix 3, owner decision 10288)
- fast-xp / afk-xp / banked-income modes with deterministic first-match
  ladders (no 'or'), level-1 fallbacks, pinned activity state
- axe model corrected: 41 Woodcutting to USE / 40 Attack to EQUIP;
  equip only when Attack permits, else carry the same axe — committed
  axe_examples incl. the 1-Attack/41-WC rune-axe carry case (owner)
- full per-mode lifecycle: prereqs, axe acquisition, initial inventory,
  travel, depletion/respawn, one chop attempt, inventory-full, complete
  dropping or banking route, breaks independent of incidental banking,
  recovery branches, completion
- per-mode worked examples: prep -> first full-inventory boundary ->
  first scheduled break -> resume (level-50 and level-70 pinned)
- realized rates: logs/hr = model chain (chop x capacity / cycle incl.
  walk/deposit or drop, x respawn duty x break duty); xp/gp derived
  and validator-enforced (axe_tiers / axe_examples / woodcutting_modes
  structured schema blocks + 16 committed selftest fixtures)
- wiki-verified axe table 2026-08-28; prices refreshed 2026-08-28
2026-08-28 04:21:31 -05:00
Claude
368734da65 codex: fix woodcutting-f2p entry per governor review (bounce fix attempt 2)
- Dragon Slayer I removed from accounts.requires_quest (empty for the
  base entry); it now gates ONLY the optional Maple tier (a1 tier gate,
  a2 maple route, idle transition)
- Dynamic inventory: no hardcoded 28-log assumption — equip the axe only
  when the Attack requirement is met (rune/gilded = 41), otherwise chop
  with the axe carried (27 log slots); inventory-full derived dynamically;
  banking deposits logs ONLY, axe preserved
- version 2 -> 3
2026-08-27 17:06:15 -05:00
Claude
8a8cc0d6b3 fix(codex): F2P maple path, XP/income mode, executable bank loop, combat gate (issue #3)
Governor-review bounce (PR #12) fixes on issue-3:

1. Maple IS F2P — restored as an optional level-45 tier. The only F2P
   maples are the 4 trees in the Corsair Cove Resource Area (requires
   Dragon Slayer I to enter), per the Free-to-play Woodcutting training
   guide and Maple tree page (members1=No @ Corsair Cove). Entry no
   longer labels Maple itself members-only; the quest gate is in
   accounts.requires_quest and the tier route table.

2. XP-versus-income mode is now explicit: state machine and a1 gate-tier
   take a mode parameter — XP mode stays on Willow (or Maple with Dragon
   Slayer I) after 60; income mode selects Yew at Edgeville. The guide:
   yew logs 'earn a profit' but 'it is recommended to cut willow or
   maple trees for experience'. Default is XP mode; income must be an
   explicit run parameter.

3. Bank loop is now executable and tier-specific: actions split into
   walk-to-bank (a5) + deposit-logs (a6) + walk-back-to-trees (a7), and
   the state machine pins chop -> walk_to_bank -> deposit_logs ->
   walk_back -> chop with dedicated states. Per-tier tree+bank routes
   (Lumbridge/Draynor/Edgeville/Corsair Cove) replace the hardcoded
   Draynor-for-everything; Yew is routed to Edgeville (guide: 'best
   place to chop yew trees is south of Edgeville bank').

4. Combat gate instead of a false no-combat claim: the Draynor willow
   spot sits between two aggressive level-7 Dark Wizards that attack
   players under combat 15 (Draynor Village wiki page). Accounts below
   combat 15 are routed to the single Edgeville willow (bank adjacent);
   relog/respawn N/A now scoped to the gated routes only, and the risk
   notes call out Draynor as a combat zone for low-level accounts.

Tests: python3 tools/validate.py -> 2 entries, 0 errors, 1 pre-existing
warning (researched flag on low-alch-f2p, owned by issue #5's PR);
merged-tree check (main 79cab78 + head) keeps the issue-6 catalog,
gate clean; git diff --check clean.
2026-08-27 12:55:50 -05:00
Claude
0ba4646296 codex: woodcutting (F2P) entry
Verified against OSRS wiki 2026-08-27 + live prices:
- F2P tree ladder: Tree 1/25xp, Oak 15/37.5xp, Willow 30/67.5xp,
  Yew 60/175xp (wiki tree-page infoboxes + F2P location lists)
- Issue draft corrected: '45 Pine' disproven (OSRS pines are scenery
  only, Pine tree page); level 45 is Maple (members) — noted in handoff
- F2P axes verified from wiki axe table + item pages: Bronze(1)..Rune(41)
  + Gilded(41) all F2P; Rune axe = best F2P; Dragon = members
- economy anchored on Draynor Village willows: live log sell prices
  (willow 21, yew 112), xp/hr grounded in wiki per-log XP (hourly
  rate explicitly flagged as estimate)
- bankside spot chosen per Oak/Willow/Yew page location lists; tree
  fall timers cited (willow 30s, yew 114s)
- N/A relog/respawn noted (no combat/death vector)

validate.py exit 0 (0 errors). Closes #3
2026-08-27 03:31:01 -05:00