Tags: ultimate-dominion/ultimate-dominion
Tags
fix: add forge clean to deploy scripts + dirty-tree guard for production Deploy scripts (deploy:testnet, deploy:mainnet, deploy:mainnet:fresh) now run `forge clean` before building. Pre-deploy check rejects production deploys from dirty working trees. Prevents stale bytecode deploys that caused the 2026-04-03 multi-day outage. Also includes deploy artifacts from the production recovery deploy. Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
chore: bump indexer to 0.2.1 for prod deploy Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
feat: L20 balance tuning — cross-stat gates, AGI caps, Z2 weapons Combat constants (overrides.ts, sim-only — deploy separately): - attackModifier: 1.0 → 1.1 (STR per-hit premium) - evasionCap: 35% → 30%, doubleStrikeCap: 40% → 30% - magicResistPerInt: 3 → 2, magicResistCap: 40% → 30% - Cleric Blessing: self_buff → damage_buff Z2 weapons (journey-z2.ts): - Cross-stat gates on pure weapons: R1=0, R2=+5, R3=+6, R4=+7 - STR R4 nerfed 9-14 → 9-13, AGI R4 nerfed 7-13 → 7-12 - INT R4 restored 10-15 + 8 HP (tank-buster identity) - 3 new R4 hybrid epics: Galeforce Spear (STR/AGI), Stormcaller Bow (AGI/INT), Peakfire Scepter (STR/INT) - Peakfire Wraith breath cooldown 2 → 3 (fixes ROG-S L19 floor) Loader flee fix re-applied: Smoke Bomb/Flashpowder detected by name before effect loop (was misclassified as tradeoff_buff). Sim results: STR 50.2% / AGI 51.0% / INT 49.2% PvP. PvE: STR 87.2% / AGI 90.0% / INT 88.1%. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
feat: NPC narrative system + quest chain UI for Z2 Wire NpcDialogueModal to NPC dialogue/examine buttons (previously dead), add atmospheric flavor text for all 6 NPCs (state-aware by quest progress), add CurrentObjectiveHud above TileDetailsPanel, and highlight active fragment chain with gold accent border. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
fix: restore original function names in WorldBossSystem Only the table import should be V2, not the function names. The replace_all mangled trySpawnWorldBosses, onWorldBossDeath, etc. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
fix: add death check for upfront spell damage in StatusEffect combat … …path (#316) StatusEffect branch in CombatSystem applied upfront spell damage (via _calculateStatusEffect) but never checked if it killed the defender. PhysicalDamage and MagicDamage branches both had `if (currentHp <= 0) defenderDied = true` but StatusEffect was missing it entirely. This caused damage_debuff spells (Soul Drain, Marked Shot, Expose Weakness, Entangle) to bring enemies to 0 HP without triggering the death flag, creating unkillable zombie enemies that fight forever. Co-authored-by: Claude Opus 4.6 (1M context) <[email protected]>
feat: Z2 economy sim — gear decay, gold sinks, inflation modeling Add --economy flag to journey-z2.ts with full gold flow model: - Per-level income (kills + vendor drops) vs costs (repairs, consumables) - Gear degradation: battle-based, 2 durability/fight, 8% repair rate - Three play modes: farming (profitable), progression (negative), boss (expensive) - Per-archetype repair costs from actual equipped gear values - Pure vs hybrid repair gradient (marketplace demand driver) - Guild tax model: 10% PvE income → treasury, 80% burned, free repairs perk - Marketplace income from R3+ drops (3x/8x base price, 66%/5% sell rate) - Speculative holder absorption (at 0, ready for real data) - Inflation projections at configurable DAU (--dau=N) - Sink coverage + repair rate sensitivity analysis - 8-check health validation, all passing at 100 DAU Extract economy.ts with pure functions for testability. 44 tests covering all formulas + economic design invariants. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
fix: effect-sync now updates mismatched effects, not just missing ones Previously effect-sync --update could only create new effects. Existing effects with stat mismatches required manual setRecord calls. Now it generates writeOps for mismatched StatusEffectStats/Validity/Targeting. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
feat: add total-supply and circulating-supply API endpoints Plain-text endpoints for CoinGecko token listing. Reads from Gold ERC20 on Base via RPC. Circulating supply excludes team treasury held in the World contract. 5-min cache. Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
PreviousNext