feat(warbow): 1×–50× steal band + anchor-derived PvP costs (#366, #367) #542

Merged
PlasticDigits merged 1 commit from fix/366-367-warbow-band-and-anchor-pricing into main 2026-07-13 09:24:04 +00:00
PlasticDigits commented 2026-07-11 01:54:56 +00:00 (Migrated from gitlab.com)

Summary

  • #366: Widen WarBow steal BP band from 2×–10× to inclusive 1×–50× (WARBOW_STEAL_VICTIM_MIN_MULT / MAX_MULT). Equal-BP steals allowed; higher-BP attackers still cannot drain underdogs.
  • #367: Replace fixed steal/guard/revenge DOUB constants with view getters from epoch charm anchor (÷5 / ÷2 / ÷5). Bypass stays 50_000e18. Prices computed after autoroll; 10%/day charm growth does not move WarBow costs.
  • Frontend, bots, sims, docs, invariants, play skill, and guardrails updated; ABIs regenerated for new constants.

Test plan

  • cd contracts && forge test --match-test warbow_ — PASS (43)
  • Restest key band/price cases — PASS (10)
  • cd frontend && npm run typecheck + targeted Vitest — PASS (85)
  • cd simulations && python3 -m pytest tests/test_ecostrategy.py — PASS
  • bots/timearena test_warbow_setup.py — PASS
  • Stale 2×–10× / hardcoded WARBOW_*_DOUB_WAD sweep — clean
  • Manual Anvil: equal-BP steal + cost pills 200/500/200 at 1000e18 anchor (manual QA §366/367)
  • Live deploy: UUPS upgrade TimeArena implementation (no storage layout change)

Invariants / docs

Closes #366 #367

## Summary - **#366:** Widen WarBow steal BP band from 2×–10× to inclusive **1×–50×** (`WARBOW_STEAL_VICTIM_MIN_MULT` / `MAX_MULT`). Equal-BP steals allowed; higher-BP attackers still cannot drain underdogs. - **#367:** Replace fixed steal/guard/revenge DOUB constants with view getters from **epoch charm anchor** (`÷5` / `÷2` / `÷5`). Bypass stays **50_000e18**. Prices computed after autoroll; 10%/day charm growth does not move WarBow costs. - Frontend, bots, sims, docs, invariants, play skill, and guardrails updated; ABIs regenerated for new constants. ## Test plan - [x] `cd contracts && forge test --match-test warbow_` — PASS (43) - [x] Restest key band/price cases — PASS (10) - [x] `cd frontend && npm run typecheck` + targeted Vitest — PASS (85) - [x] `cd simulations && python3 -m pytest tests/test_ecostrategy.py` — PASS - [x] `bots/timearena` `test_warbow_setup.py` — PASS - [x] Stale `2×–10×` / hardcoded `WARBOW_*_DOUB_WAD` sweep — clean - [ ] Manual Anvil: equal-BP steal + cost pills 200/500/200 at 1000e18 anchor ([manual QA §366/367](docs/testing/manual-qa-checklists.md#manual-qa-issue-366-367)) - [ ] Live deploy: UUPS upgrade `TimeArena` implementation (no storage layout change) ## Invariants / docs - `INV-TIME-ARENA-WARBOW-STEAL-BAND`, `INV-TIME-ARENA-WARBOW-DOUB`, `INV-TIME-ARENA-WARBOW-REVERT-MATRIX` - [`PARAMETERS.md`](contracts/PARAMETERS.md) · [`arena-v2.md`](docs/product/arena-v2.md) · [`play-time-arena-warbow`](skills/play-time-arena-warbow/SKILL.md) · guardrails §6e Closes #366 #367
PlasticDigits (Migrated from gitlab.com) merged commit 8cc66b98d3 into main 2026-07-13 09:24:04 +00:00
PlasticDigits commented 2026-07-13 09:24:05 +00:00 (Migrated from gitlab.com)

mentioned in commit 8cc66b98d3

mentioned in commit 8cc66b98d3c1af029084b76605aa0070fcf9d4c2
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/yieldomega!542
No description provided.