Magefall Changelog & Improvements (quick internal recap)
Updated Feb 09, 2026

What changed lately

This page is a “fake-but-useful” dev-facing changelog you can drop into your project as a living history. It summarizes the recent feature work we’ve been doing: War Council, battle reports, UI fixes, and world expansion.

Project
Magefall (browser strategy / turn-based land conquest)
Theme
Dark medieval arc-mage vibe • land is the scoreboard
Current focus
Combat readability, war logging, world expansion, and stability-first iteration

Leaderboard Accuracy + Momentum

Feb 12, 2026 Magefall • Home Page + Retention

Highlights

  • Homepage high scores fixed: land is now counted from land_parcels (source of truth) and power uses the same computed model as the in-game dashboard.
  • API leaderboard fixed: /api/leaderboard.php matches the same land/power logic so your dashboard table and home page never disagree.
  • Land sync: player land_owned is auto-synchronized from parcels on state refresh, preventing drift bugs.
  • Momentum: first login of the day grants a small (capped) bundle of turns/gold/mana and a random Council boon that appears under Active Effects.
  • How To Play updated: new Momentum + Council sections and clarified that Land is the primary scoreboard.

Mobile-Friendly UI + Admin Balance Controls

Feb 10, 2026 Magefall • UX + Balance

Highlights

  • Mobile responsive: navigation and panels now reflow cleanly on phones; tables scroll instead of breaking layout.
  • Spell cooldowns: spells support an optional CD (turns) that only applies after casting. Fire Siege now has CD 10.
  • Scalable land stolen: land stolen on victory is controlled by war_land_steal_max in the Admin panel.
  • Economy knobs: tax income and key building costs/effects are now admin-tunable.

Combat Tuning + Realm Vibe + Battle Fatigue

Feb 10, 2026 Magefall • Combat

Highlights

  • Combat knobs: max rounds, morale break, defense weighting, rank penalty and randomness are all adjustable in Admin.
  • Realm Vibe card: dashboard now shows a quick realm snapshot (activity, tension, land claim rate).
  • Battle fatigue (UPDATED): now supports a burst window via war_fatigue_attack_threshold (default 3 attacks) and a rest duration via war_fatigue_turns (default 3 turns). Set threshold 0 to apply fatigue after every attack.
  • Attacker-only bonus land: victory bonus land from the unclaimed pool is now awarded only when the attacker wins (defenders no longer gain free land for a successful defense).

War Rewards & Report Quality (Bonus Land + Captured Buildings)

Feb 09, 2026 Magefall • Live Patch

Highlights

  • Victory Bonus Land: increased to +10 when unclaimed realm land exists (does not come from the defender).
  • Captured Buildings: when land is stolen, any buildings on those parcels are now reported as spoils.
  • Report Header Clarity: battle report summary now calls out bonus land earned (separately from stolen land).
  • Clickable Usernames: attacker/defender names in war reports link to the War page with target pre-filled (retaliation-friendly).

Files touched

  • war.php, battle_reports.php, api/war_plan.php (war rewards + report data)
  • assets/magefall.css (username link readability)
  • how_to_play.php (updated rules + spoils explanation)

Notes

  • Stolen land reduces the defender's holdings; bonus land comes from the unclaimed realm pool only.
  • If a parcel with buildings changes ownership, those buildings are treated as captured and are summarized in the report.

Subtle UI Polish (Readability-First)

Feb 09, 2026 Magefall • Live Patch

Highlights

  • Improved contrast and hover/focus states for clickable player names in reports (easier to read on all backgrounds).
  • Added keyboard focus styling for buttons to keep the UI crisp and accessible.

World Expansion: 50×50 Land Parcels

Feb 03, 2026 Magefall • Internal Changelog

Highlights

  • Introduced a controlled world expansion step from 10×10 (100 tiles) to 50×50 (2,500 tiles).
  • Added a one-time seeding utility to safely backfill missing parcels without duplicating existing tiles.
  • Improved explore flow messaging when the world is fully claimed (actionable hint instead of silent failure).

Files touched

  • tools/seed_land.php (new)
  • api/explore.php (updated)
  • sql/ (optional seed/notes depending on deploy)

Notes

  • Seeder supports query params like ?size=50 and optional dry-run mode.
  • Designed to be removed or access-restricted after running in production.

Battle Reports & War UI Polish

Feb 03, 2026 Magefall • Internal Changelog

Highlights

  • Added a Dashboard navigation button for War Reports (battle logs).
  • Implemented battle_reports.php to list recent wars and display full detail views.
  • Finished War page report linking: after an attack resolves, users can click into the full report by battle_id.

Files touched

  • battle_reports.php (new)
  • dashboard.php (updated nav/button)
  • war.php (report button + formatting improvements)
  • api/war_plan.php (assumed existing; integrated result shape)

Notes

  • Report page supports both list mode and detail mode via ?id=###.
  • Detail view includes winner, land stolen, power deltas, losses, and event-style breakdowns when present.

War Council Page Stabilization

Feb 02, 2026 Magefall • Internal Changelog

Highlights

  • Aligned war.php with dashboard styling (card layout, chips, and consistent buttons).
  • Fixed roster loading by matching API state shape (army.roster, player fields, power_breakdown.total).
  • Added selection preview: units/power/spells recap before commit.

Files touched

  • war.php (rebuilt for API compatibility)
  • api/state.php (referenced by war.php; unchanged)

Notes

  • Focus was preventing the ‘lost cards / broken layout’ issue caused by missing JS data keys.
  • Spell system remains placeholders (pipeline for real effects is prepared).

Recruitment, Power, and Leaderboard Direction

Feb 01, 2026 Magefall • Internal Changelog

Highlights

  • Militia recruitment now contributes to a player’s total power (tracked + reflected in UI).
  • Confirmed leaderboard ranking is based on land (intentional design choice: ‘battle for land’).
  • Kept power as a meaningful stat for battles without making it the primary win condition on the board.

Files touched

  • api/recruit.php (logic improvements; exact file name may vary)
  • dashboard.php (stat chips / display consistency)

Notes

  • Power is treated as combat leverage; land remains the strategic victory metric.

UI Readability Fix: Unit Dropdown Contrast

Feb 01, 2026 Magefall • Internal Changelog

Highlights

  • Fixed white-on-white unit dropdown rendering by styling select/input and option elements.
  • Standardized dropdown visuals to match Magefall dark theme and improve legibility.

Files touched

  • assets/magefall.css (select/input/option rules)
  • dashboard.php (ensure select has class='input')

Notes

  • Browsers often render