rubywarrior 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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