Fixes the majority of the warnings in issue #4166.
This class already shared copies of value_ between instances,
it seems to be the immutable design pattern so can share from
const to non-const instances safely.
Cherry-picking this to 1.14 needs a trivial conflict to be
resolved, the next line in the .cpp file has changed from
size_t in 1.14 to std::size_t in 1.15.
If all the dwarves are inside when the gate closes, don't say there were some lost outside.
Make the dialogue about the north and south side entrances only trigger once.
Closes issue 2a of #1584
Previously the warning was always given on turn 7. It will still trigger even
if the player has units ready to defend that crossing, because I think it's
better to show the message and let the player think "I'm already ready" than to
have it pop up once some fighting has already happened; and it seems easier to
test this logic than to test logic for not showing the message if the crossing
is currently guarded.
Also add a first_time_only=no to the check_income event, so that it can trigger
on turn 7 if it doesn't trigger on turn 6.
Changes:
S01: Objectives clarified.
S02: Objectives clarified.
S02: Up turn limit & enemy income so leveling objective is easier.
S03: Replace hard-coding of recruit with dynamic storing.
S05: Lower difficulty.
S06: Use all 6 permutations for temple contents.
S08: Fix OOS in replay of the scenario.
Misc: A few dialog, grammar and punctuation fixes.
:droid FULL will also set the side controller to AI, whereas ON only sets the proxy_controller.
This results in a situation where if an opponent leaves and is droided, the host will have vision to the side of the player who left.
This also results in the host *not* having vision to their original side again until it's their turn.
Fixes#3665
This removes unnecessary struct members that can be accessed directly from the team class and fixes an
issue where hidden teams could cause the Game Stats dialog to break when scrolling to leader (fixes#4029)
1. Allow carryover_percentage & carryover_add with
victory_when_enemies_defeated=no. Code from newfrenchy83
2. Allow use of current_time in [time_area].
This ensures the invalid characters are never saved internally in the first place, so this should
cover any case besides the aforementioned bug that might crop up.