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

Homepage Message Box Restored

2026-02-22 • Map-aligned warfare + frontline land capture

  • Wizard Summons Overhaul: Switching wizards no longer removes bound creatures (only cancels in-progress rituals). Each wizard now has three summon choices (low / mid / elite) with different costs and roles.
  • Frontline land capture: winning attacks now seize border parcels that touch your territory (no more random parcel theft). If you click an enemy border tile on the Map and attack, that exact tile is seized first (when possible).
  • Attack cost: standard attacks now cost 3 turns (was 10). UI updated.
  • Map modal HUD: Map view now shows key stats (turns/gold/mana/valor/power/land) so info isn’t hidden while scouting.
  • Bugfix: fixed an undefined variable in api/war_attack.php (kept consistent with adjacency rules).
Feb 19, 2026 Homepage Admin
  • Fixed the admin-edited Homepage • Beta Blue Box saving blank values (settings variables were not being read from the form), which caused the box to never render.
  • Homepage now treats an empty beta_note_enabled value as “unset” and falls back to showing the box by default (until explicitly disabled).
  • Restored a distinct transparent blue style for the homepage beta note (so it doesn’t blend in with other cards).
  • Added an optional SQL migration to expand game_settings.setting_value to TEXT so longer messages won’t be truncated.

Guild Leadership Controls

Feb 14, 2026 Guilds
  • Guild leaders can now Kick members directly from the Guild roster.
  • Kicked members are banned from rejoining that guild (the guild won’t appear in their join list).
  • Kicks are announced in guild chat for transparency.

Dashboard Help Tooltips + How To Play Rebuild

Feb 23, 2026 Magefall • UX + Onboarding

Highlights

  • Clickable “?” help icons added to major Dashboard cards (Turn Pool, Resources, Actions, Buildings, Wizards, Summons, Barracks, Research, War, Leaderboard). Each provides a short, goal-oriented tip explaining why that panel matters.
  • How To Play rebuilt from the ground up: a clear basics → mid-game → late-game progression, plus a 10‑minute starter plan and common mistakes section.

Files touched

  • dashboard.php (help tooltips UI + behavior)
  • how_to_play.php (full rewrite)

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 as a clean daily reward on first login.
  • How To Play updated: new Momentum section 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

Arcane Capacity + Summoned Creatures (Ritual System)

Feb 14, 2026 Magefall • Major Mechanics

Highlights

  • Obelisks now grant Arcane Capacity (a second capacity meter, similar to Supplies).
  • Added a Summoned Creatures panel on the Dashboard.
  • Your Active Wizard determines which creature you can summon: Green → Treant • Blue → Siren • Black → Reaper • White → Angel • Red → Dragon
  • Summoning is done via a ritual: it costs a large amount of Mana and takes several turns to complete. The ritual progresses as you spend turns on any actions.
  • Summons are real stacks in combat (auto-included when attacking and defending).
  • Wizard switching now costs 5 turns and breaks all current summoning bindings (ritual + summons).
  • Realm visibility: starting/completing rituals and Arcane over-cap collapses generate Realm Omens.

Risk / counterplay

  • Players can hoard multiple summons, but they are constrained by Arcane Capacity.
  • If you lose Obelisks, your Arcane Capacity can drop below your bound creatures. Excess summons collapse automatically (the most expensive bindings fail first).

Files touched

  • inc/summons.php (defs + capacity helpers)
  • inc/progress.php (ritual ticking + over-cap enforcement)
  • api/summons.php (start/cancel ritual)
  • api/state.php (arcane/summons/ritual/realm feed)
  • api/wizards.php (wizard switch costs 5 turns; resets bindings)
  • api/war_plan.php (summons join combat and persist casualties)
  • dashboard.php (Summoned Creatures UI + Realm Omens feed)