summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/colonial_twilight/forces.rb7
-rw-r--r--lib/colonial_twilight/spaces.rb4
-rw-r--r--spec/forces_spec.rb8
-rw-r--r--spec/spaces_spec.rb6
4 files changed, 25 insertions, 0 deletions
diff --git a/lib/colonial_twilight/forces.rb b/lib/colonial_twilight/forces.rb
index f2b4149..6d26dea 100644
--- a/lib/colonial_twilight/forces.rb
+++ b/lib/colonial_twilight/forces.rb
@@ -119,6 +119,13 @@ module ColonialTwilight
update_control
end
+ def activate(num)
+ raise "can't activate #{num}" if @fln_underground < num
+
+ @fln_underground -= num
+ @fln_active += num
+ end
+
private
def add_base(type, num = 1)
diff --git a/lib/colonial_twilight/spaces.rb b/lib/colonial_twilight/spaces.rb
index d85954f..83d9082 100644
--- a/lib/colonial_twilight/spaces.rb
+++ b/lib/colonial_twilight/spaces.rb
@@ -177,6 +177,10 @@ module ColonialTwilight
raise "unknown shift direction : #{towards}"
end
end
+
+ def activate(num)
+ @forces.activate(num)
+ end
end
class City < Sector
diff --git a/spec/forces_spec.rb b/spec/forces_spec.rb
index ce6316f..110139e 100644
--- a/spec/forces_spec.rb
+++ b/spec/forces_spec.rb
@@ -132,6 +132,14 @@ describe ColonialTwilight::Forces do
expect { @f.add :wrong, 1 }.to raise_error(Exception)
end
+ it 'activate raise' do
+ expect { @f.activate(7) }.to raise_error(Exception)
+ end
+
+ it 'activate' do
+ expect(@f.activate(6)).to eq 13
+ end
+
it 'data' do
d = @f.data
@data.keys do |k, v|
diff --git a/spec/spaces_spec.rb b/spec/spaces_spec.rb
index e1d75ca..0e05707 100644
--- a/spec/spaces_spec.rb
+++ b/spec/spaces_spec.rb
@@ -136,6 +136,12 @@ describe ColonialTwilight::Sector do
expect(@s.resettled?).to be true
expect(@s.pop).to eq 0
end
+
+ it 'activate' do
+ @s.add :fln_active, 1
+ @s.add :fln_underground, 2
+ expect(@s.activate(2)).to eq 3
+ end
end
describe ColonialTwilight::City do