diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2023-10-23 19:08:21 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2023-10-23 19:08:21 +0200 |
commit | 8b34966151c15a4fb022a6205c8143b90f38f625 (patch) | |
tree | b222351dad7761c7364298044f246b062244730d /spec/mock_board.rb | |
parent | 6822431aa1d93a11a8ab266284783814747721f3 (diff) | |
download | colonial-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.rb | 82 |
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 |