The same change was not and must not be done in the reverse case. It
should be and is possible to mark an already completed objective as
failed.
Consider a case where a player is supposed to capture, but not destroy,
a building. He captures it, the objective is complete. However, later
in the game that building gets destroyed. In this case, the objective
should be changed to failed.
* Surrendering is now possible even in maps that do not use
ConquestVictoryConditions.
* The Surrender button is greyed out instead of hidden when it cannot be
used.
Objectives can be either primary or secondary objectives. Primary ones
influence the outcome of the game. If all primary objectives are
completed the game is won, and lost when any of them fails.
Objectives can be added at any stage during the game, allowing to react
dynamically to game events.
The objectives backend only contains the information about the
objectives themselves. It does not check if objectives are completed or
failed. Instead, the state of objectives must be manually marked. The
backend, however, does check whether the game is won or lost.