summaryrefslogtreecommitdiffstats
path: root/spec/mock_board.rb
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2023-10-23 19:08:21 +0200
committerJérémy Zurcher <jeremy@asynk.ch>2023-10-23 19:08:21 +0200
commit8b34966151c15a4fb022a6205c8143b90f38f625 (patch)
treeb222351dad7761c7364298044f246b062244730d /spec/mock_board.rb
parent6822431aa1d93a11a8ab266284783814747721f3 (diff)
downloadcolonial-twilight-8b34966151c15a4fb022a6205c8143b90f38f625.zip
colonial-twilight-8b34966151c15a4fb022a6205c8143b90f38f625.tar.gz
FLNRules : use mock Board and Sector
Diffstat (limited to 'spec/mock_board.rb')
-rw-r--r--spec/mock_board.rb82
1 files changed, 82 insertions, 0 deletions
diff --git a/spec/mock_board.rb b/spec/mock_board.rb
new file mode 100644
index 0000000..18dad5b
--- /dev/null
+++ b/spec/mock_board.rb
@@ -0,0 +1,82 @@
+# frozen_string_literal: true
+
+class Sector
+ attr_reader :name
+ attr_writer :data
+
+ def initialize(data = { name: 'sector', pop: 0, fln_bases: 0, fln_active: 0, fln_underground: 0, gov_cubes: 0, independent: true, support: false, terror: false })
+ @name = data[:name] || 'sector'
+ @data = data
+ end
+
+ def sector?
+ @name == 'sector'
+ end
+
+ def city?
+ @name == 'city'
+ end
+
+ def country?
+ @name == 'country'
+ end
+
+ def max_bases
+ 3
+ end
+
+ def independent?
+ @data[:independent]
+ end
+
+ def support?
+ @data[:support]
+ end
+
+ def terror?
+ @data[:terror]
+ end
+
+ def pop
+ @data[:pop] || 0
+ end
+
+ def guerrillas
+ fln_active + fln_underground
+ end
+
+ def fln_bases
+ @data[:fln_bases] || 0
+ end
+
+ def fln_active
+ @data[:fln_active] || 0
+ end
+
+ def fln_underground
+ @data[:fln_underground] || 0
+ end
+
+ def gov_cubes
+ @data[:gov_cubes] || 0
+ end
+end
+
+class Board
+ attr_reader :sector
+ attr_accessor :fln_resources, :available_fln_bases
+
+ def initialize
+ @fln_resources = 0
+ @available_fln_bases = 1
+ @sector = Sector.new
+ end
+
+ def has(&block)
+ block.call(@sector)
+ end
+
+ def count(&block)
+ block.call(@sector)
+ end
+end