diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2023-11-17 17:00:30 +0100 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2023-11-17 17:00:30 +0100 |
commit | fcf6ba4f7962f893e44aa9f3c515a64efd0c0232 (patch) | |
tree | 621e10ac8652df6c14c5f3fe05066153718562e4 | |
parent | a8be09ab04e4c29e6ce032dffcde0c134cc74382 (diff) | |
download | colonial-twilight-fcf6ba4f7962f893e44aa9f3c515a64efd0c0232.zip colonial-twilight-fcf6ba4f7962f893e44aa9f3c515a64efd0c0232.tar.gz |
FLNBotRules : fix attack_priority
-rw-r--r-- | lib/colonial_twilight/fln_bot_rules.rb | 8 | ||||
-rw-r--r-- | spec/fln_bot_rules_spec.rb | 17 |
2 files changed, 16 insertions, 9 deletions
diff --git a/lib/colonial_twilight/fln_bot_rules.rb b/lib/colonial_twilight/fln_bot_rules.rb index 8f0f37a..30fe9ec 100644 --- a/lib/colonial_twilight/fln_bot_rules.rb +++ b/lib/colonial_twilight/fln_bot_rules.rb @@ -230,7 +230,7 @@ module ColonialTwilight def may_ambush_1_in?(space) # do not expose a base r = may_ambush_in?(space) && (space.fln_bases.zero? ? true : space.guerrillas > 1) - dbg " may_attack_1_in : #{space.name}", r + dbg " may_ambush_1_in : #{space.name}", r r end @@ -242,9 +242,9 @@ module ColonialTwilight end def attack_priority(spaces) - # GOV bases -> French Troops -> French Police -> most pieces - f = _filter(spaces) { |s| s.gov_bases.positive? } - f = _filter(f) { |s| s.french_troops.positive? } + # remove priority GOV bases -> French Troops -> French Police -> most pieces + f = _filter(spaces) { |s| s.gov_bases.positive? && s.troops.zero? && s.police.zero? } + f = _filter(f) { |s| s.french_troops.positive? && s.police.zero? } f = _filter(f) { |s| s.french_police.positive? } _max(f, :gov) end diff --git a/spec/fln_bot_rules_spec.rb b/spec/fln_bot_rules_spec.rb index 6140f68..981e46c 100644 --- a/spec/fln_bot_rules_spec.rb +++ b/spec/fln_bot_rules_spec.rb @@ -721,16 +721,16 @@ describe ColonialTwilight::FLNBotRules do end it 'attack priority french troops' do - a = Sector.new(gov_bases: 2) - b = Sector.new(gov_bases: 2, french_troops: 2) - c = Sector.new(gov_bases: 2, french_troops: 1) + a = Sector.new(gov_bases: 2, algerian_troops: 6) + b = Sector.new(gov_bases: 3, french_troops: 2) + c = Sector.new(gov_bases: 3, french_troops: 1) expect(@rules.attack_priority([a, b, c])[0]).to be b end it 'attack priority french police' do - a = Sector.new(gov_bases: 2, french_troops: 2) + a = Sector.new(gov_bases: 1, french_troops: 3, algerian_police: 6) b = Sector.new(gov_bases: 2, french_troops: 2, french_police: 2) - c = Sector.new(gov_bases: 2, french_troops: 2, french_police: 1) + c = Sector.new(gov_bases: 3, french_troops: 1, french_police: 1) expect(@rules.attack_priority([a, b, c])[0]).to be b end @@ -747,6 +747,13 @@ describe ColonialTwilight::FLNBotRules do c = Sector.new(gov_bases: 2, french_troops: 2, french_police: 2) expect(@rules.attack_priority([a, b, c])[0]).to be b end + + it 'attack priority gov most pieces, french police' do + a = Sector.new(gov_bases: 2, french_troops: 2, french_police: 2) + b = Sector.new(gov_bases: 2, french_troops: 2, french_police: 3) + c = Sector.new(gov_bases: 2, french_troops: 2, french_police: 2) + expect(@rules.attack_priority([a, b, c])[0]).to be b + end end describe '8.1.2 Procedure Guidelines' do |