summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2023-11-17 17:00:30 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2023-11-17 17:00:30 +0100
commitfcf6ba4f7962f893e44aa9f3c515a64efd0c0232 (patch)
tree621e10ac8652df6c14c5f3fe05066153718562e4
parenta8be09ab04e4c29e6ce032dffcde0c134cc74382 (diff)
downloadcolonial-twilight-fcf6ba4f7962f893e44aa9f3c515a64efd0c0232.zip
colonial-twilight-fcf6ba4f7962f893e44aa9f3c515a64efd0c0232.tar.gz
FLNBotRules : fix attack_priority
-rw-r--r--lib/colonial_twilight/fln_bot_rules.rb8
-rw-r--r--spec/fln_bot_rules_spec.rb17
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