rubywarrior 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +7 -0
  2. data/{CHANGELOG.rdoc → CHANGELOG.md} +21 -3
  3. data/Gemfile +10 -0
  4. data/Gemfile.lock +55 -0
  5. data/LICENSE +4 -4
  6. data/{README.rdoc → README.md} +115 -93
  7. data/Rakefile +4 -9
  8. data/bin/rubywarrior +1 -1
  9. data/features/step_definitions/common_steps.rb +2 -2
  10. data/features/step_definitions/interaction_steps.rb +7 -7
  11. data/features/support/env.rb +1 -1
  12. data/lib/ruby_warrior/game.rb +5 -3
  13. data/lib/ruby_warrior/level.rb +5 -1
  14. data/lib/ruby_warrior/player_generator.rb +3 -3
  15. data/lib/ruby_warrior/profile.rb +1 -1
  16. data/lib/ruby_warrior/tower.rb +1 -1
  17. data/rubywarrior.gemspec +16 -0
  18. data/spec/ruby_warrior/abilities/attack_spec.rb +10 -10
  19. data/spec/ruby_warrior/abilities/base_spec.rb +19 -19
  20. data/spec/ruby_warrior/abilities/bind_spec.rb +5 -5
  21. data/spec/ruby_warrior/abilities/direction_of_spec.rb +3 -3
  22. data/spec/ruby_warrior/abilities/direction_of_stairs_spec.rb +3 -3
  23. data/spec/ruby_warrior/abilities/distance_of_spec.rb +3 -3
  24. data/spec/ruby_warrior/abilities/explode_spec.rb +7 -7
  25. data/spec/ruby_warrior/abilities/feel_spec.rb +1 -1
  26. data/spec/ruby_warrior/abilities/form_spec.rb +14 -14
  27. data/spec/ruby_warrior/abilities/health_spec.rb +3 -3
  28. data/spec/ruby_warrior/abilities/listen_spec.rb +3 -3
  29. data/spec/ruby_warrior/abilities/look_spec.rb +3 -3
  30. data/spec/ruby_warrior/abilities/pivot_spec.rb +1 -1
  31. data/spec/ruby_warrior/abilities/rescue_spec.rb +8 -8
  32. data/spec/ruby_warrior/abilities/rest_spec.rb +7 -7
  33. data/spec/ruby_warrior/abilities/shoot_spec.rb +4 -4
  34. data/spec/ruby_warrior/abilities/throw_spec.rb +10 -10
  35. data/spec/ruby_warrior/abilities/walk_spec.rb +5 -5
  36. data/spec/ruby_warrior/core_additions_spec.rb +2 -2
  37. data/spec/ruby_warrior/floor_spec.rb +27 -27
  38. data/spec/ruby_warrior/game_spec.rb +36 -36
  39. data/spec/ruby_warrior/level_loader_spec.rb +19 -19
  40. data/spec/ruby_warrior/level_spec.rb +57 -57
  41. data/spec/ruby_warrior/player_generator_spec.rb +3 -3
  42. data/spec/ruby_warrior/position_spec.rb +43 -43
  43. data/spec/ruby_warrior/profile_spec.rb +59 -59
  44. data/spec/ruby_warrior/space_spec.rb +71 -71
  45. data/spec/ruby_warrior/tower_spec.rb +5 -5
  46. data/spec/ruby_warrior/turn_spec.rb +13 -13
  47. data/spec/ruby_warrior/ui_spec.rb +32 -32
  48. data/spec/ruby_warrior/units/archer_spec.rb +9 -9
  49. data/spec/ruby_warrior/units/base_spec.rb +42 -42
  50. data/spec/ruby_warrior/units/captive_spec.rb +9 -9
  51. data/spec/ruby_warrior/units/golem_spec.rb +9 -9
  52. data/spec/ruby_warrior/units/sludge_spec.rb +11 -11
  53. data/spec/ruby_warrior/units/thick_sludge_spec.rb +7 -7
  54. data/spec/ruby_warrior/units/warrior_spec.rb +23 -23
  55. data/spec/ruby_warrior/units/wizard_spec.rb +9 -9
  56. data/spec/spec_helper.rb +3 -2
  57. data/towers/beginner/level_002.rb +1 -1
  58. data/towers/beginner/level_003.rb +1 -1
  59. data/towers/beginner/level_005.rb +2 -2
  60. data/towers/beginner/level_006.rb +2 -2
  61. data/towers/intermediate/level_002.rb +1 -1
  62. data/towers/intermediate/level_003.rb +2 -2
  63. metadata +47 -67
@@ -1,31 +1,31 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyWarrior::Turn do
4
4
  describe "with actions" do
5
5
  before(:each) do
6
6
  @turn = RubyWarrior::Turn.new({:walk! => nil, :attack! => nil})
7
7
  end
8
-
8
+
9
9
  it "should have no action performed at first" do
10
- @turn.action.should be_nil
10
+ expect(@turn.action).to be_nil
11
11
  end
12
-
12
+
13
13
  it "should be able to perform action and recall it" do
14
14
  @turn.walk!
15
- @turn.action.should == [:walk!]
15
+ expect(@turn.action).to eq([:walk!])
16
16
  end
17
-
17
+
18
18
  it "should include arguments passed to action" do
19
19
  @turn.walk! :forward
20
- @turn.action.should == [:walk!, :forward]
20
+ expect(@turn.action).to eq([:walk!, :forward])
21
21
  end
22
-
22
+
23
23
  it "should not be able to call multiple actions per turn" do
24
24
  @turn.walk! :forward
25
- lambda { @turn.attack! }.should raise_error
25
+ expect { @turn.attack! }.to raise_error("Only one action can be performed per turn.")
26
26
  end
27
27
  end
28
-
28
+
29
29
  describe "with senses" do
30
30
  before(:each) do
31
31
  @feel = RubyWarrior::Abilities::Feel.new(Object.new)
@@ -33,10 +33,10 @@ describe RubyWarrior::Turn do
33
33
  @feel.stubs(:space).with(:backward).returns(Object.new)
34
34
  @turn = RubyWarrior::Turn.new({:feel => @feel})
35
35
  end
36
-
36
+
37
37
  it "should be able to call sense with any argument and return expected results" do
38
- @turn.feel.should == @feel.perform
39
- @turn.feel(:backward).should == @feel.perform(:backward)
38
+ expect(@turn.feel).to eq(@feel.perform)
39
+ expect(@turn.feel(:backward)).to eq(@feel.perform(:backward))
40
40
  end
41
41
  end
42
42
  end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyWarrior::UI do
4
4
  before(:each) do
@@ -9,82 +9,82 @@ describe RubyWarrior::UI do
9
9
  @config.out_stream = @out
10
10
  @config.in_stream = @in
11
11
  end
12
-
12
+
13
13
  it "should add puts to out stream" do
14
14
  @ui.puts "hello"
15
- @out.string.should == "hello\n"
15
+ expect(@out.string).to eq("hello\n")
16
16
  end
17
-
17
+
18
18
  it "should add print to out stream without newline" do
19
19
  @ui.print "hello"
20
- @out.string.should == "hello"
20
+ expect(@out.string).to eq("hello")
21
21
  end
22
-
22
+
23
23
  it "should fetch gets from in stream" do
24
24
  @in.puts "bar"
25
25
  @in.rewind
26
- @ui.gets.should == "bar\n"
26
+ expect(@ui.gets).to eq("bar\n")
27
27
  end
28
-
28
+
29
29
  it "should gets should return empty string if no input" do
30
30
  @config.in_stream = nil
31
- @ui.gets.should == ""
31
+ expect(@ui.gets).to eq("")
32
32
  end
33
-
33
+
34
34
  it "should request text input" do
35
35
  @in.puts "bar"
36
36
  @in.rewind
37
- @ui.request("foo").should == "bar"
38
- @out.string.should == "foo"
37
+ expect(@ui.request("foo")).to eq("bar")
38
+ expect(@out.string).to eq("foo")
39
39
  end
40
-
40
+
41
41
  it "should ask for yes/no and return true when yes" do
42
42
  @ui.expects(:request).with('foo? [yn] ').returns('y')
43
- @ui.ask("foo?").should be_true
43
+ expect(@ui.ask("foo?")).to eq(true)
44
44
  end
45
-
45
+
46
46
  it "should ask for yes/no and return false when no" do
47
47
  @ui.stubs(:request).returns('n')
48
- @ui.ask("foo?").should be_false
48
+ expect(@ui.ask("foo?")).to eq(false)
49
49
  end
50
-
50
+
51
51
  it "should ask for yes/no and return false for any input" do
52
52
  @ui.stubs(:request).returns('aklhasdf')
53
- @ui.ask("foo?").should be_false
53
+ expect(@ui.ask("foo?")).to eq(false)
54
54
  end
55
-
55
+
56
56
  it "should present multiple options and return selected one" do
57
57
  @ui.expects(:request).with(includes('item')).returns('2')
58
- @ui.choose('item', [:foo, :bar, :test]).should == :bar
59
- @out.string.should include('[1] foo')
60
- @out.string.should include('[2] bar')
61
- @out.string.should include('[3] test')
58
+ expect(@ui.choose('item', [:foo, :bar, :test])).to eq(:bar)
59
+ expect(@out.string).to include('[1] foo')
60
+ expect(@out.string).to include('[2] bar')
61
+ expect(@out.string).to include('[3] test')
62
62
  end
63
-
63
+
64
64
  it "choose should accept array as option" do
65
65
  @ui.stubs(:request).returns('3')
66
- @ui.choose('item', [:foo, :bar, [:tower, 'easy']]).should == :tower
67
- @out.string.should include('[3] easy')
66
+ expect(@ui.choose('item', [:foo, :bar, [:tower, 'easy']])).to eq(:tower)
67
+ expect(@out.string).to include('[3] easy')
68
68
  end
69
-
69
+
70
70
  it "choose should return option without prompt if only one item" do
71
71
  @ui.expects(:puts).never
72
72
  @ui.expects(:gets).never
73
73
  @ui.stubs(:request).returns('3')
74
- @ui.choose('item', [:foo]).should == :foo
74
+ expect(@ui.choose('item', [:foo])).to eq(:foo)
75
75
  end
76
-
76
+
77
77
  it "choose should return first value in array of option if only on item" do
78
- @ui.choose('item', [[:foo, :bar]]).should == :foo
78
+ expect(@ui.choose('item', [[:foo, :bar]])).to eq(:foo)
79
79
  end
80
-
80
+
81
81
  it "should delay after puts when specified" do
82
82
  @config.delay = 1.3
83
83
  @ui.expects(:puts).with("foo")
84
84
  @ui.expects(:sleep).with(1.3)
85
85
  @ui.puts_with_delay("foo")
86
86
  end
87
-
87
+
88
88
  it "should not delay puts when delay isn't specified" do
89
89
  @ui.expects(:puts).with("foo")
90
90
  @ui.expects(:sleep).never
@@ -1,23 +1,23 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyWarrior::Units::Archer do
4
4
  before(:each) do
5
5
  @archer = RubyWarrior::Units::Archer.new
6
6
  end
7
-
7
+
8
8
  it "should have look and shoot abilities" do
9
- @archer.abilities.keys.to_set.should == [:shoot!, :look].to_set
9
+ expect(@archer.abilities.keys.to_set).to eq([:shoot!, :look].to_set)
10
10
  end
11
-
11
+
12
12
  it "should have shoot power of 3" do
13
- @archer.shoot_power.should == 3
13
+ expect(@archer.shoot_power).to eq(3)
14
14
  end
15
-
15
+
16
16
  it "should have 7 max health" do
17
- @archer.max_health.should == 7
17
+ expect(@archer.max_health).to eq(7)
18
18
  end
19
-
19
+
20
20
  it "should appear as a on map" do
21
- @archer.character.should == "a"
21
+ expect(@archer.character).to eq("a")
22
22
  end
23
23
  end
@@ -1,70 +1,70 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyWarrior::Units::Base do
4
4
  before(:each) do
5
5
  @unit = RubyWarrior::Units::Base.new
6
6
  end
7
-
7
+
8
8
  it "should have an attack power which defaults to zero" do
9
- @unit.attack_power.should be_zero
9
+ expect(@unit.attack_power).to be_zero
10
10
  end
11
-
11
+
12
12
  it "should consider itself dead when no position" do
13
- @unit.position.should be_nil
14
- @unit.should_not be_alive
13
+ expect(@unit.position).to be_nil
14
+ expect(@unit).to_not be_alive
15
15
  end
16
-
16
+
17
17
  it "should consider itself alive with position" do
18
18
  @unit.position = stub
19
- @unit.should be_alive
19
+ expect(@unit).to be_alive
20
20
  end
21
-
21
+
22
22
  it "should default max health to 10" do
23
- @unit.max_health.should be_zero
23
+ expect(@unit.max_health).to be_zero
24
24
  end
25
-
25
+
26
26
  it "should do nothing when earning points" do
27
- lambda { @unit.earn_points(10) }.should_not raise_error
27
+ expect { @unit.earn_points(10) }.to_not raise_error
28
28
  end
29
-
29
+
30
30
  it "should default health to max health" do
31
31
  @unit.stubs(:max_health).returns(10)
32
- @unit.health.should == 10
32
+ expect(@unit.health).to eq(10)
33
33
  end
34
-
34
+
35
35
  it "should subtract health when taking damage" do
36
36
  @unit.stubs(:max_health).returns(10)
37
37
  @unit.take_damage(3)
38
- @unit.health.should == 7
38
+ expect(@unit.health).to eq(7)
39
39
  end
40
-
40
+
41
41
  it "should do nothing when taking damage if health isn't set" do
42
- lambda { @unit.take_damage(3) }.should_not raise_error
42
+ expect { @unit.take_damage(3) }.to_not raise_error
43
43
  end
44
-
44
+
45
45
  it "should set position to nil when running out of health" do
46
46
  @unit.position = stub
47
47
  @unit.stubs(:max_health).returns(10)
48
48
  @unit.take_damage(10)
49
- @unit.position.should be_nil
49
+ expect(@unit.position).to be_nil
50
50
  end
51
-
51
+
52
52
  it "should print out line with name when speaking" do
53
53
  RubyWarrior::UI.expects(:puts_with_delay).with("Base foo")
54
54
  @unit.say "foo"
55
55
  end
56
-
56
+
57
57
  it "should return name in to_s" do
58
- @unit.name.should == 'Base'
59
- @unit.to_s.should == 'Base'
58
+ expect(@unit.name).to eq('Base')
59
+ expect(@unit.to_s).to eq('Base')
60
60
  end
61
-
61
+
62
62
  it "should prepare turn by calling play_turn with next turn object" do
63
63
  @unit.stubs(:next_turn).returns('next_turn')
64
64
  @unit.expects(:play_turn).with('next_turn')
65
65
  @unit.prepare_turn
66
66
  end
67
-
67
+
68
68
  it "should perform action when calling perform on turn" do
69
69
  @unit.position = stub
70
70
  RubyWarrior::Abilities::Walk.any_instance.expects(:perform).with(:backward)
@@ -74,7 +74,7 @@ describe RubyWarrior::Units::Base do
74
74
  @unit.prepare_turn
75
75
  @unit.perform_turn
76
76
  end
77
-
77
+
78
78
  it "should not perform action when dead (no position)" do
79
79
  @unit.position = nil
80
80
  RubyWarrior::Abilities::Walk.any_instance.stubs(:perform).raises("action should not be called")
@@ -84,42 +84,42 @@ describe RubyWarrior::Units::Base do
84
84
  @unit.prepare_turn
85
85
  @unit.perform_turn
86
86
  end
87
-
87
+
88
88
  it "should not raise an exception when calling perform_turn when there's no action" do
89
89
  @unit.prepare_turn
90
- lambda { @unit.perform_turn }.should_not raise_error
90
+ expect { @unit.perform_turn }.to_not raise_error
91
91
  end
92
-
92
+
93
93
  it "should pass abilities to new turn when calling next_turn" do
94
- RubyWarrior::Turn.expects(:new).with(:walk! => nil, :attack! => nil, :feel => nil).returns('turn')
94
+ RubyWarrior::Turn.expects(:new).with({:walk! => nil, :attack! => nil, :feel => nil}).returns('turn')
95
95
  @unit.stubs(:abilities).returns(:walk! => nil, :attack! => nil, :feel => nil)
96
- @unit.next_turn.should == 'turn'
96
+ expect(@unit.next_turn).to eq('turn')
97
97
  end
98
-
98
+
99
99
  it "should add ability" do
100
100
  RubyWarrior::Abilities::Walk.expects(:new).with(@unit).returns('walk')
101
101
  @unit.add_abilities(:walk!)
102
- @unit.abilities.should == { :walk! => 'walk' }
102
+ expect(@unit.abilities).to eq({ :walk! => 'walk' })
103
103
  end
104
-
104
+
105
105
  it "should appear as question mark on map" do
106
- @unit.character.should == "?"
106
+ expect(@unit.character).to eq("?")
107
107
  end
108
-
108
+
109
109
  it "should be released from bonds when taking damage" do
110
110
  @unit.stubs(:max_health).returns(10)
111
111
  @unit.bind
112
- @unit.should be_bound
112
+ expect(@unit).to be_bound
113
113
  @unit.take_damage(2)
114
- @unit.should_not be_bound
114
+ expect(@unit).to_not be_bound
115
115
  end
116
-
116
+
117
117
  it "should be released from bonds when calling release" do
118
118
  @unit.bind
119
119
  @unit.unbind
120
- @unit.should_not be_bound
120
+ expect(@unit).to_not be_bound
121
121
  end
122
-
122
+
123
123
  it "should not perform action when bound" do
124
124
  @unit.position = stub
125
125
  @unit.bind
@@ -1,23 +1,23 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyWarrior::Units::Captive do
4
4
  before(:each) do
5
5
  @captive = RubyWarrior::Units::Captive.new
6
6
  end
7
-
7
+
8
8
  it "should have 1 max health" do
9
- @captive.max_health.should == 1
9
+ expect(@captive.max_health).to eq(1)
10
10
  end
11
-
11
+
12
12
  it "should appear as C on map" do
13
- @captive.character.should == "C"
13
+ expect(@captive.character).to eq("C")
14
14
  end
15
-
15
+
16
16
  it "should be bound by default" do
17
- @captive.should be_bound
17
+ expect(@captive).to be_bound
18
18
  end
19
-
19
+
20
20
  it "should not have explode ability by default (this should be added when needed)" do
21
- @captive.abilities.should_not include(:explode!)
21
+ expect(@captive.abilities).to_not include(:explode!)
22
22
  end
23
23
  end
@@ -1,28 +1,28 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyWarrior::Units::Golem do
4
4
  before(:each) do
5
5
  @golem = RubyWarrior::Units::Golem.new
6
6
  end
7
-
7
+
8
8
  it "should execute turn proc when playing turn" do
9
9
  proc = Object.new
10
10
  proc.expects(:call).with(:turn)
11
11
  @golem.turn = proc
12
12
  @golem.play_turn(:turn)
13
13
  end
14
-
14
+
15
15
  it "should set max health and update current health" do
16
16
  @golem.max_health = 10
17
- @golem.max_health.should == 10
18
- @golem.health.should == 10
17
+ expect(@golem.max_health).to eq(10)
18
+ expect(@golem.health).to eq(10)
19
19
  end
20
-
20
+
21
21
  it "should have attack power of 3" do
22
- @golem.attack_power.should == 3
22
+ expect(@golem.attack_power).to eq(3)
23
23
  end
24
-
24
+
25
25
  it "should appear as G on map" do
26
- @golem.character.should == "G"
26
+ expect(@golem.character).to eq("G")
27
27
  end
28
28
  end
@@ -1,27 +1,27 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyWarrior::Units::Sludge do
4
4
  before(:each) do
5
5
  @sludge = RubyWarrior::Units::Sludge.new
6
6
  end
7
-
7
+
8
8
  it "should have attack action" do
9
- @sludge.abilities.keys.should include(:attack!)
9
+ expect(@sludge.abilities.keys).to include(:attack!)
10
10
  end
11
-
11
+
12
12
  it "should have feel sense" do
13
- @sludge.abilities.keys.should include(:feel)
13
+ expect(@sludge.abilities.keys).to include(:feel)
14
14
  end
15
-
15
+
16
16
  it "should have attack power of 3" do
17
- @sludge.attack_power.should == 3
17
+ expect(@sludge.attack_power).to eq(3)
18
18
  end
19
-
19
+
20
20
  it "should have 12 max health" do
21
- @sludge.max_health.should == 12
21
+ expect(@sludge.max_health).to eq(12)
22
22
  end
23
-
23
+
24
24
  it "should appear as s on map" do
25
- @sludge.character.should == "s"
25
+ expect(@sludge.character).to eq("s")
26
26
  end
27
27
  end
@@ -1,19 +1,19 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyWarrior::Units::ThickSludge do
4
4
  before(:each) do
5
5
  @sludge = RubyWarrior::Units::ThickSludge.new
6
6
  end
7
-
7
+
8
8
  it "should have 24 max health" do
9
- @sludge.max_health.should == 24
9
+ expect(@sludge.max_health).to eq(24)
10
10
  end
11
-
11
+
12
12
  it "should appear as S on map" do
13
- @sludge.character.should == "S"
13
+ expect(@sludge.character).to eq("S")
14
14
  end
15
-
15
+
16
16
  it "should have the name of 'Thick Sludge'" do
17
- @sludge.name.should == "Thick Sludge"
17
+ expect(@sludge.name).to eq("Thick Sludge")
18
18
  end
19
19
  end
@@ -1,4 +1,4 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  class Player
4
4
  def turn(warrior)
@@ -9,57 +9,57 @@ describe RubyWarrior::Units::Warrior do
9
9
  before(:each) do
10
10
  @warrior = RubyWarrior::Units::Warrior.new
11
11
  end
12
-
12
+
13
13
  it "should default name to warrior" do
14
- @warrior.name.should == "Warrior"
14
+ expect(@warrior.name).to eq("Warrior")
15
15
  @warrior.name = ''
16
- @warrior.name.should == "Warrior"
16
+ expect(@warrior.name).to eq("Warrior")
17
17
  end
18
-
18
+
19
19
  it "should be able to set name" do
20
20
  @warrior.name = "Joe"
21
- @warrior.name.should == "Joe"
22
- @warrior.to_s.should == "Joe"
21
+ expect(@warrior.name).to eq("Joe")
22
+ expect(@warrior.to_s).to eq("Joe")
23
23
  end
24
-
24
+
25
25
  it "should have 20 max health" do
26
- @warrior.max_health.should == 20
26
+ expect(@warrior.max_health).to eq(20)
27
27
  end
28
-
28
+
29
29
  it "should have 0 score at beginning and be able to earn points" do
30
- @warrior.score.should be_zero
30
+ expect(@warrior.score).to be_zero
31
31
  @warrior.earn_points(5)
32
- @warrior.score.should == 5
32
+ expect(@warrior.score).to eq(5)
33
33
  end
34
-
34
+
35
35
  it "should call player.play_turn and pass turn to player" do
36
36
  player = stub
37
37
  player.expects(:play_turn).with('turn')
38
38
  @warrior.stubs(:player).returns(player)
39
39
  @warrior.play_turn('turn')
40
40
  end
41
-
41
+
42
42
  it "should call Player.new the first time loading player, and return same object next time" do
43
43
  Player.expects(:new).returns('player').times(1)
44
44
  2.times do
45
- @warrior.player.should == 'player'
45
+ expect(@warrior.player).to eq('player')
46
46
  end
47
47
  end
48
-
48
+
49
49
  it "should have an attack power of 5" do
50
- @warrior.attack_power.should == 5
50
+ expect(@warrior.attack_power).to eq(5)
51
51
  end
52
-
52
+
53
53
  it "should have an shoot power of 3" do
54
- @warrior.shoot_power.should == 3
54
+ expect(@warrior.shoot_power).to eq(3)
55
55
  end
56
-
56
+
57
57
  it "should appear as @ on map" do
58
- @warrior.character.should == "@"
58
+ expect(@warrior.character).to eq("@")
59
59
  end
60
-
60
+
61
61
  it "should be able to add golem abilities which are used on base golem" do
62
62
  @warrior.add_golem_abilities :walk!
63
- @warrior.base_golem.abilities.keys.should == [:walk!]
63
+ expect(@warrior.base_golem.abilities.keys).to eq([:walk!])
64
64
  end
65
65
  end
@@ -1,23 +1,23 @@
1
- require File.dirname(__FILE__) + '/../../spec_helper'
1
+ require 'spec_helper'
2
2
 
3
3
  describe RubyWarrior::Units::Wizard do
4
4
  before(:each) do
5
5
  @wizard = RubyWarrior::Units::Wizard.new
6
6
  end
7
-
7
+
8
8
  it "should have look and shoot abilities" do
9
- @wizard.abilities.keys.to_set.should == [:shoot!, :look].to_set
9
+ expect(@wizard.abilities.keys.to_set).to eq([:shoot!, :look].to_set)
10
10
  end
11
-
11
+
12
12
  it "should have shoot power of 11" do
13
- @wizard.shoot_power.should == 11
13
+ expect(@wizard.shoot_power).to eq(11)
14
14
  end
15
-
15
+
16
16
  it "should have 3 max health" do
17
- @wizard.max_health.should == 3
17
+ expect(@wizard.max_health).to eq(3)
18
18
  end
19
-
19
+
20
20
  it "should appear as w on map" do
21
- @wizard.character.should == "w"
21
+ expect(@wizard.character).to eq("w")
22
22
  end
23
23
  end
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,11 @@
1
1
  require 'rubygems'
2
- require 'spec'
2
+ require 'rspec'
3
3
  require File.dirname(__FILE__) + '/../lib/ruby_warrior'
4
4
 
5
- Spec::Runner.configure do |config|
5
+ RSpec.configure do |config|
6
6
  config.mock_with :mocha
7
7
  config.before(:each) do
8
8
  RubyWarrior::Config.reset
9
9
  end
10
+ config.raise_errors_for_deprecations!
10
11
  end
@@ -3,7 +3,7 @@
3
3
  # --------
4
4
 
5
5
  description "It is too dark to see anything, but you smell sludge nearby."
6
- tip "Use warrior.feel.empty? to see if there's anything in front of you, and warrior.attack! to fight it. Remember, you can only do one action (ending in !) per turn."
6
+ tip "Use warrior.feel.empty? to see if there is anything in front of you, and warrior.attack! to fight it. Remember, you can only do one action (ending in !) per turn."
7
7
  clue "Add an if/else condition using warrior.feel.empty? to decide whether to warrior.attack! or warrior.walk!."
8
8
 
9
9
  time_bonus 20
@@ -4,7 +4,7 @@
4
4
 
5
5
  description "The air feels thicker than before. There must be a horde of sludge."
6
6
  tip "Be careful not to die! Use warrior.health to keep an eye on your health, and warrior.rest! to earn 10% of max health back."
7
- clue "When there's no enemy ahead of you, call warrior.rest! until health is full before walking forward."
7
+ clue "When there is no enemy ahead of you call warrior.rest! until health is full before walking forward."
8
8
 
9
9
  time_bonus 35
10
10
  ace_score 71