diff options
-rw-r--r-- | play.js | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -1232,6 +1232,7 @@ function elector_majority() { function count_victory_markers(pow) { let n = view.vp[pow] + if (pow === P_PRUSSIA) { n += view.vp[SET_ASIDE_PRUSSIA] if (view.flags & F_SILESIA_ANNEXED) ++n @@ -1253,11 +1254,19 @@ function count_victory_markers(pow) { if (view.victory[i+1] === pow) ++n - // count retroactive markers for display (except 4 special electoral colleges) - for (let i = 0; i < view.retro.length; i += 2) - if (!set_has(all_elector_fortresses, view.retro[i])) - if (actual_retro_power(view.retro[i], view.retro[i+1]) === pow) - ++n + // count retroactive markers for display + map_for_each(view.retro, (s, retro_pow) => { + // ignore 4 special electoral colleges (these markers do not affect the pool) + if (set_has(all_elector_fortresses, s)) + return + + let old_pow = map_get(view.victory, s, -1) + let new_pow = actual_retro_power(s, retro_pow) + + // only count markers that would be put out (not those that would be removed) + if (new_pow === pow && new_pow !== old_pow) + ++n + }) return n } |