HOME / CHANGELOG / v2.7.0

Release notes

v2.7.0

PUBLISHED: 23 June 2026

v2.7.0 - Combat Modernization

This release ships the combat modernization compatibility release. It moves live combat, equipment, NPC, OLC, protocol, save/load, simulator, and diagnostic surfaces to modern combat fields and vocabulary while retaining legacy readers and compatibility mirrors for the follow-up 8E removal branch.

Highlights

  • Reworked combat around modern Accuracy, Expertise, Attack Power, and Armor Rating fields.
  • Added normalized combat table handling for miss/evasion and Armor Rating mitigation telemetry.
  • Migrated object equipment applies, Mobile OLC, area save output, NPC construction, summons, clones, quest mobs, and diagnostics to modern combat stat naming/conversion paths.
  • Updated player, pet, and mount saves to write modern combat fields and rebuild derived Armor Rating from equipment and affects after load.
  • Refreshed score, attribute, identify, compare, loot, crafting, GMCP/MSDP, and combat simulator output with modern stat names.
  • Retained reusable audit scripts with ignored outputs under reports/.
  • Consolidated feature docs into docs/changes/v2.7.0-TODO.md.

Validation

  • make
  • make test_combat_state test_combat_round test_combat_special test_combat_multi
  • python3 scripts/equipment-combat-audit.py --area-dir area --fail-on-legacy
  • python3 scripts/npc-combat-audit.py --area-dir area
  • python3 scripts/phase8c-validation.py --trials 1000
  • Cold boot from area/ using ../src/low
  • sh scripts/smoke-test.sh

Deferred

Phase 8E will remove legacy pfile readers, fallback conversions, compatibility mirror writes, legacy runtime fields/constants, remaining APPLY_HITROLL/APPLY_DAMROLL/APPLY_AC paths, and legacy positional mobile area fields.