1.4.5.9
--------
**Improvement: square ``space`` counted per alliance**
- **Before**: Capacity was shared by all sides; enemy siege filling a square blocked friendly melee/cavalry from entering.
- **Now**: Each alliance has its own budget up to ``square_width``; enemy occupancy does not use your budget. E.g. with ``square_width 12``, each side may field twelve ``space 1`` units. Allies share one budget.
- **Code**: ``worldroom.py`` (``used_square_space`` / ``have_enough_square_space``); train/spawn call sites pass the player.
- **Docs**: ``res/rules.txt``, ``mod/modding.rst``, player manuals, release notes.
- **Tests**: ``test_unit_square_space.py``, ``test_train_square_space.py``.
**Fix: gathered resources stored without a warehouse**
- **Symptom**: After gathering, workers could add resources to the stockpile even with no town hall / lumber mill / other storage building present.
- **Cause**: Land ``bring_back`` still called ``_store_cargo()`` when ``nearest_warehouse`` returned none. In 1.3.8.1 cargo was cleared and the order failed; a later rewrite incorrectly stored instead.
- **Fix**: Without a warehouse, do not store; keep cargo, notify ``order_impossible`` once, and stop. Delivery resumes after a warehouse is built.
- **Code**: ``worldorders/gathering.py``.
- **Tests**: ``test_gather_requires_warehouse.py``.
code:
https://github.com/tuohai/soundrts-ultimate-versiongame:
https://github.com/tuohai/soundrts-ultimate-version/releases/tag/1.4.5.9