Remove the Delay Advancements modification.

While implementationally it's very simple, the feedback so far (minimal as it may be) has been negative due to the side effects on existing gameplay mechanics:
* Delaying advancement until the next time it's the advancing unit's side's turn gives enemies a much larger window to kill the unit to prevent it from leveling up.
* The majority of units don't have multiple advancement options, so delaying their advancement as well isn't helpful.

Additionally, leaving this in for 1.16 would mean that it would not be possible to remove it in 1.17 or later without breaking any replays that did use it.
This commit is contained in:
Pentarctagon 2021-01-20 23:49:36 -06:00 committed by Pentarctagon
parent bbcf9db1b5
commit 53f9dbb51a
3 changed files with 0 additions and 24 deletions

View file

@ -1,5 +0,0 @@
[modification]
id = "delay_advancements"
name = _ "Delay Advancements"
type = "hybrid"
[/modification]

View file

@ -522,18 +522,6 @@ void play_controller::do_init_side()
// Make sure vision is accurate.
actions::clear_shroud(current_side(), true);
{
const auto& active_mods = get_saved_game().classification().active_mods;
bool delay_advancements
= std::find(active_mods.begin(), active_mods.end(), "delay_advancements") != active_mods.end();
for(unit& u : resources::gameboard->units()) {
if(delay_advancements && u.side() == current_side()) {
advance_unit_at(u.get_location());
}
}
}
init_side_end();
check_victory();
sync.do_final_checkup();

View file

@ -36,13 +36,6 @@ bool will_certainly_advance(const unit_map::iterator &u)
if(!u.valid()) {
return false;
}
if(resources::controller) {
const auto& active_mods = resources::controller->get_saved_game().classification().active_mods;
bool delay_advancements = std::find(active_mods.begin(), active_mods.end(), "delay_advancements") != active_mods.end();
if(delay_advancements && resources::controller->current_side() != u->side()) {
return false;
}
}
return u->advances() && number_of_possible_advances(*u) > 0;
}