rubywarrior-i18n 0.0.2

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 (122) hide show
  1. data/CHANGELOG.rdoc +38 -0
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +44 -0
  4. data/LICENSE +20 -0
  5. data/README.md +199 -0
  6. data/Rakefile +17 -0
  7. data/bin/rubywarrior +5 -0
  8. data/features/command_options.feature +46 -0
  9. data/features/levels.feature +71 -0
  10. data/features/profiles.feature +56 -0
  11. data/features/step_definitions/common_steps.rb +19 -0
  12. data/features/step_definitions/interaction_steps.rb +65 -0
  13. data/features/support/env.rb +12 -0
  14. data/features/support/mockio.rb +57 -0
  15. data/features/towers.feature +14 -0
  16. data/i18n/en.yml +232 -0
  17. data/i18n/es.yml +233 -0
  18. data/lib/ruby_warrior.rb +53 -0
  19. data/lib/ruby_warrior/abilities/attack.rb +25 -0
  20. data/lib/ruby_warrior/abilities/base.rb +44 -0
  21. data/lib/ruby_warrior/abilities/bind.rb +20 -0
  22. data/lib/ruby_warrior/abilities/detonate.rb +34 -0
  23. data/lib/ruby_warrior/abilities/direction_of.rb +13 -0
  24. data/lib/ruby_warrior/abilities/direction_of_stairs.rb +13 -0
  25. data/lib/ruby_warrior/abilities/distance_of.rb +13 -0
  26. data/lib/ruby_warrior/abilities/explode.rb +28 -0
  27. data/lib/ruby_warrior/abilities/feel.rb +14 -0
  28. data/lib/ruby_warrior/abilities/form.rb +25 -0
  29. data/lib/ruby_warrior/abilities/health.rb +13 -0
  30. data/lib/ruby_warrior/abilities/listen.rb +15 -0
  31. data/lib/ruby_warrior/abilities/look.rb +16 -0
  32. data/lib/ruby_warrior/abilities/pivot.rb +17 -0
  33. data/lib/ruby_warrior/abilities/rescue.rb +24 -0
  34. data/lib/ruby_warrior/abilities/rest.rb +20 -0
  35. data/lib/ruby_warrior/abilities/shoot.rb +24 -0
  36. data/lib/ruby_warrior/abilities/walk.rb +21 -0
  37. data/lib/ruby_warrior/config.rb +22 -0
  38. data/lib/ruby_warrior/core_additions.rb +29 -0
  39. data/lib/ruby_warrior/floor.rb +71 -0
  40. data/lib/ruby_warrior/game.rb +209 -0
  41. data/lib/ruby_warrior/level.rb +123 -0
  42. data/lib/ruby_warrior/level_loader.rb +56 -0
  43. data/lib/ruby_warrior/player_generator.rb +41 -0
  44. data/lib/ruby_warrior/position.rb +82 -0
  45. data/lib/ruby_warrior/profile.rb +120 -0
  46. data/lib/ruby_warrior/runner.rb +34 -0
  47. data/lib/ruby_warrior/space.rb +71 -0
  48. data/lib/ruby_warrior/tower.rb +14 -0
  49. data/lib/ruby_warrior/turn.rb +38 -0
  50. data/lib/ruby_warrior/ui.rb +54 -0
  51. data/lib/ruby_warrior/units/archer.rb +34 -0
  52. data/lib/ruby_warrior/units/base.rb +100 -0
  53. data/lib/ruby_warrior/units/captive.rb +17 -0
  54. data/lib/ruby_warrior/units/golem.rb +20 -0
  55. data/lib/ruby_warrior/units/sludge.rb +30 -0
  56. data/lib/ruby_warrior/units/thick_sludge.rb +13 -0
  57. data/lib/ruby_warrior/units/warrior.rb +73 -0
  58. data/lib/ruby_warrior/units/wizard.rb +34 -0
  59. data/lib/ruby_warrior/version.rb +3 -0
  60. data/spec/fixtures/short-tower/level_001.rb +15 -0
  61. data/spec/fixtures/short-tower/level_002.rb +15 -0
  62. data/spec/fixtures/walking_player.rb +5 -0
  63. data/spec/ruby_warrior/abilities/attack_spec.rb +51 -0
  64. data/spec/ruby_warrior/abilities/base_spec.rb +38 -0
  65. data/spec/ruby_warrior/abilities/bind_spec.rb +19 -0
  66. data/spec/ruby_warrior/abilities/direction_of_spec.rb +13 -0
  67. data/spec/ruby_warrior/abilities/direction_of_stairs_spec.rb +13 -0
  68. data/spec/ruby_warrior/abilities/distance_of_spec.rb +13 -0
  69. data/spec/ruby_warrior/abilities/explode_spec.rb +32 -0
  70. data/spec/ruby_warrior/abilities/feel_spec.rb +13 -0
  71. data/spec/ruby_warrior/abilities/form_spec.rb +48 -0
  72. data/spec/ruby_warrior/abilities/health_spec.rb +13 -0
  73. data/spec/ruby_warrior/abilities/listen_spec.rb +17 -0
  74. data/spec/ruby_warrior/abilities/look_spec.rb +15 -0
  75. data/spec/ruby_warrior/abilities/pivot_spec.rb +18 -0
  76. data/spec/ruby_warrior/abilities/rescue_spec.rb +40 -0
  77. data/spec/ruby_warrior/abilities/rest_spec.rb +29 -0
  78. data/spec/ruby_warrior/abilities/shoot_spec.rb +22 -0
  79. data/spec/ruby_warrior/abilities/throw_spec.rb +46 -0
  80. data/spec/ruby_warrior/abilities/walk_spec.rb +25 -0
  81. data/spec/ruby_warrior/core_additions_spec.rb +7 -0
  82. data/spec/ruby_warrior/floor_spec.rb +81 -0
  83. data/spec/ruby_warrior/game_spec.rb +119 -0
  84. data/spec/ruby_warrior/level_loader_spec.rb +54 -0
  85. data/spec/ruby_warrior/level_spec.rb +203 -0
  86. data/spec/ruby_warrior/player_generator_spec.rb +12 -0
  87. data/spec/ruby_warrior/position_spec.rb +108 -0
  88. data/spec/ruby_warrior/profile_spec.rb +171 -0
  89. data/spec/ruby_warrior/space_spec.rb +190 -0
  90. data/spec/ruby_warrior/tower_spec.rb +15 -0
  91. data/spec/ruby_warrior/turn_spec.rb +42 -0
  92. data/spec/ruby_warrior/ui_spec.rb +93 -0
  93. data/spec/ruby_warrior/units/archer_spec.rb +23 -0
  94. data/spec/ruby_warrior/units/base_spec.rb +133 -0
  95. data/spec/ruby_warrior/units/captive_spec.rb +23 -0
  96. data/spec/ruby_warrior/units/golem_spec.rb +28 -0
  97. data/spec/ruby_warrior/units/sludge_spec.rb +27 -0
  98. data/spec/ruby_warrior/units/thick_sludge_spec.rb +19 -0
  99. data/spec/ruby_warrior/units/warrior_spec.rb +65 -0
  100. data/spec/ruby_warrior/units/wizard_spec.rb +23 -0
  101. data/spec/spec_helper.rb +10 -0
  102. data/templates/README.erb +33 -0
  103. data/templates/player.rb +5 -0
  104. data/towers/beginner/level_001.rb +18 -0
  105. data/towers/beginner/level_002.rb +19 -0
  106. data/towers/beginner/level_003.rb +23 -0
  107. data/towers/beginner/level_004.rb +20 -0
  108. data/towers/beginner/level_005.rb +24 -0
  109. data/towers/beginner/level_006.rb +21 -0
  110. data/towers/beginner/level_007.rb +20 -0
  111. data/towers/beginner/level_008.rb +23 -0
  112. data/towers/beginner/level_009.rb +22 -0
  113. data/towers/intermediate/level_001.rb +20 -0
  114. data/towers/intermediate/level_002.rb +22 -0
  115. data/towers/intermediate/level_003.rb +25 -0
  116. data/towers/intermediate/level_004.rb +26 -0
  117. data/towers/intermediate/level_005.rb +21 -0
  118. data/towers/intermediate/level_006.rb +25 -0
  119. data/towers/intermediate/level_007.rb +27 -0
  120. data/towers/intermediate/level_008.rb +25 -0
  121. data/towers/intermediate/level_009.rb +33 -0
  122. metadata +226 -0
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe RubyWarrior::Units::Wizard do
4
+ before(:each) do
5
+ @wizard = RubyWarrior::Units::Wizard.new
6
+ end
7
+
8
+ it "should have look and shoot abilities" do
9
+ @wizard.abilities.keys.to_set.should == [:shoot!, :look].to_set
10
+ end
11
+
12
+ it "should have shoot power of 11" do
13
+ @wizard.shoot_power.should == 11
14
+ end
15
+
16
+ it "should have 3 max health" do
17
+ @wizard.max_health.should == 3
18
+ end
19
+
20
+ it "should appear as w on map" do
21
+ @wizard.character.should == "w"
22
+ end
23
+ end
@@ -0,0 +1,10 @@
1
+ require 'rubygems'
2
+ require 'rspec'
3
+ require File.dirname(__FILE__) + '/../lib/ruby_warrior'
4
+
5
+ RSpec.configure do |config|
6
+ config.mock_with :mocha
7
+ config.before(:each) do
8
+ RubyWarrior::Config.reset
9
+ end
10
+ end
@@ -0,0 +1,33 @@
1
+ <%= R18n.t.level.level.capitalize %> <%= level.number %>
2
+
3
+ <%= level.description %>
4
+
5
+ <%= R18n.t.tip.capitalize %>: <%= level.tip %>
6
+
7
+ <%= level.floor.character -%>
8
+
9
+ > = <%= R18n.t.stairs.stairs.capitalize %>
10
+ <%- for unit in level.floor.unique_units -%>
11
+ <%= unit.character %> = <%= unit.name %> (<%= unit.max_health %> <%= R18n.t.hp %>)
12
+ <%- end -%>
13
+
14
+
15
+ <%= R18n.t.warrior.abilities %>:
16
+ <%- level.warrior.abilities.each do |name, ability| -%>
17
+
18
+ warrior.<%= name %>
19
+ <%= ability.description %>
20
+ <%- end -%>
21
+ <%- if level.warrior.has_golem? -%>
22
+
23
+
24
+ <% R18n.t.golem.abilities %>:
25
+ <%- level.warrior.base_golem.abilities.each do |name, ability| -%>
26
+
27
+ golem.<%= name %>
28
+ <%= ability.description %>
29
+ <%- end -%>
30
+ <%- end -%>
31
+
32
+
33
+ <%= R18n.t.when_you_are_done_run_rubywarrior %>
@@ -0,0 +1,5 @@
1
+ class Player
2
+ def play_turn(warrior)
3
+ # add your code here
4
+ end
5
+ end
@@ -0,0 +1,18 @@
1
+ # --------
2
+ # |@ >|
3
+ # --------
4
+
5
+ t = R18n.t.towers.beginner.level_001
6
+
7
+ description "#{t.description}"
8
+ tip "#{t.tip}"
9
+
10
+
11
+ time_bonus 15
12
+ ace_score 10
13
+ size 8, 1
14
+ stairs 7, 0
15
+
16
+ warrior 0, 0, :east do |u|
17
+ u.add_abilities :walk!
18
+ end
@@ -0,0 +1,19 @@
1
+ # --------
2
+ # |@ s >|
3
+ # --------
4
+ t = R18n.t.towers.beginner.level_002
5
+
6
+ description "#{t.description}"
7
+ tip "#{t.tip}"
8
+ clue "#{t.clue}"
9
+
10
+ time_bonus 20
11
+ ace_score 26
12
+ size 8, 1
13
+ stairs 7, 0
14
+
15
+ warrior 0, 0, :east do |u|
16
+ u.add_abilities :feel, :attack!
17
+ end
18
+
19
+ unit :sludge, 4, 0, :west
@@ -0,0 +1,23 @@
1
+ # ---------
2
+ # |@ s ss s>|
3
+ # ---------
4
+
5
+ t = R18n.t.towers.beginner.level_003
6
+
7
+ description "#{t.description}"
8
+ tip "#{t.tip}"
9
+ clue "#{t.clue}"
10
+
11
+ time_bonus 35
12
+ ace_score 71
13
+ size 9, 1
14
+ stairs 8, 0
15
+
16
+ warrior 0, 0, :east do |u|
17
+ u.add_abilities :health, :rest!
18
+ end
19
+
20
+ unit :sludge, 2, 0, :west
21
+ unit :sludge, 4, 0, :west
22
+ unit :sludge, 5, 0, :west
23
+ unit :sludge, 7, 0, :west
@@ -0,0 +1,20 @@
1
+ # -------
2
+ # |@ Sa S>|
3
+ # -------
4
+
5
+ t = R18n.t.towers.beginner.level_004
6
+
7
+ description "#{t.description}"
8
+ tip "#{t.tip}"
9
+ clue "#{t.clue}"
10
+
11
+ time_bonus 45
12
+ ace_score 90
13
+ size 7, 1
14
+ stairs 6, 0
15
+
16
+ warrior 0, 0, :east
17
+
18
+ unit :thick_sludge, 2, 0, :west
19
+ unit :archer, 3, 0, :west
20
+ unit :thick_sludge, 5, 0, :west
@@ -0,0 +1,24 @@
1
+ # -------
2
+ # |@ CaaSC|
3
+ # -------
4
+
5
+ t = R18n.t.towers.beginner.level_005
6
+
7
+ description "#{t.description}"
8
+ tip "#{t.tip}"
9
+ clue "#{t.clue}"
10
+
11
+ time_bonus 45
12
+ ace_score 123
13
+ size 7, 1
14
+ stairs 6, 0
15
+
16
+ warrior 0, 0, :east do |u|
17
+ u.add_abilities :rescue!
18
+ end
19
+
20
+ unit :captive, 2, 0, :west
21
+ unit :archer, 3, 0, :west
22
+ unit :archer, 4, 0, :west
23
+ unit :thick_sludge, 5, 0, :west
24
+ unit :captive, 6, 0, :west
@@ -0,0 +1,21 @@
1
+ # --------
2
+ # |C @ S aa|
3
+ # --------
4
+
5
+ t = R18n.t.towers.beginner.level_006
6
+
7
+ description "#{t.description}"
8
+ tip "#{t.tip}"
9
+ clue "#{t.clue}"
10
+
11
+ time_bonus 55
12
+ ace_score 105
13
+ size 8, 1
14
+ stairs 7, 0
15
+
16
+ warrior 2, 0, :east
17
+
18
+ unit :captive, 0, 0, :east
19
+ unit :thick_sludge, 4, 0, :west
20
+ unit :archer, 6, 0, :west
21
+ unit :archer, 7, 0, :west
@@ -0,0 +1,20 @@
1
+ # ------
2
+ # |>a S @|
3
+ # ------
4
+
5
+ t = R18n.t.towers.beginner.level_007
6
+
7
+ description "#{t.description}"
8
+ tip "#{t.tip}"
9
+
10
+ time_bonus 30
11
+ ace_score 50
12
+ size 6, 1
13
+ stairs 0, 0
14
+
15
+ warrior 5, 0, :east do |u|
16
+ u.add_abilities :pivot!
17
+ end
18
+
19
+ unit :archer, 1, 0, :east
20
+ unit :thick_sludge, 3, 0, :east
@@ -0,0 +1,23 @@
1
+ # -------
2
+ # |@ Cww>|
3
+ # -------
4
+
5
+ t = R18n.t.towers.beginner.level_008
6
+
7
+ description "#{t.description}"
8
+ tip "#{t.tip}"
9
+ clue "#{t.clue}"
10
+
11
+ time_bonus 20
12
+ ace_score 46
13
+ size 6, 1
14
+ stairs 5, 0
15
+
16
+ warrior 0, 0, :east do |u|
17
+ u.add_abilities :look
18
+ u.add_abilities :shoot!
19
+ end
20
+
21
+ unit :captive, 2, 0, :west
22
+ unit :wizard, 3, 0, :west
23
+ unit :wizard, 4, 0, :west
@@ -0,0 +1,22 @@
1
+ # -----------
2
+ # |>Ca @ S wC|
3
+ # -----------
4
+
5
+ t = R18n.t.towers.beginner.level_009
6
+
7
+ description "#{t.description}"
8
+ tip "#{t.tip}"
9
+ clue "#{t.clue}"
10
+
11
+ time_bonus 40
12
+ ace_score 100
13
+ size 11, 1
14
+ stairs 0, 0
15
+
16
+ warrior 5, 0, :east
17
+
18
+ unit :captive, 1, 0, :east
19
+ unit :archer, 2, 0, :east
20
+ unit :thick_sludge, 7, 0, :west
21
+ unit :wizard, 9, 0, :west
22
+ unit :captive, 10, 0, :west
@@ -0,0 +1,20 @@
1
+ # ------
2
+ # | |
3
+ # |@ |
4
+ # | |
5
+ # | > |
6
+ # ------
7
+
8
+ t = R18n.t.towers.intermediate.level_001
9
+
10
+ description t.description
11
+ tip t.tip
12
+
13
+ time_bonus 20
14
+ ace_score 19
15
+ size 6, 4
16
+ stairs 2, 3
17
+
18
+ warrior 0, 1, :east do |u|
19
+ u.add_abilities :walk!, :feel, :direction_of_stairs
20
+ end
@@ -0,0 +1,22 @@
1
+ # ----
2
+ # |@s |
3
+ # | sS>|
4
+ # ----
5
+
6
+ t = R18n.t.towers.intermediate.level_002
7
+
8
+ description t.description
9
+ tip t.tip
10
+ clue t.clue
11
+
12
+ time_bonus 40
13
+ ace_score 84
14
+ size 4, 2
15
+ stairs 3, 1
16
+
17
+ warrior 0, 0, :east do |u|
18
+ u.add_abilities :attack!, :health, :rest!
19
+ end
20
+ unit :sludge, 1, 0, :west
21
+ unit :thick_sludge, 2, 1, :west
22
+ unit :sludge, 1, 1, :north
@@ -0,0 +1,25 @@
1
+ # ---
2
+ # |>s |
3
+ # |s@s|
4
+ # | C |
5
+ # ---
6
+
7
+ t = R18n.t.towers.intermediate.level_003
8
+
9
+ description t.description
10
+ tip t.tip
11
+ clue t.clue
12
+
13
+ time_bonus 50
14
+ ace_score 101
15
+ size 3, 3
16
+ stairs 0, 0
17
+
18
+ warrior 1, 1, :east do |u|
19
+ u.add_abilities :rescue!, :bind!
20
+ end
21
+
22
+ unit :sludge, 1, 0, :west
23
+ unit :captive, 1, 2, :west
24
+ unit :sludge, 0, 1, :west
25
+ unit :sludge, 2, 1, :west
@@ -0,0 +1,26 @@
1
+ # ----
2
+ # |C s |
3
+ # | @ S|
4
+ # |C s>|
5
+ # ----
6
+
7
+ t = R18n.t.towers.intermediate.level_004
8
+
9
+ description t.description
10
+ tip t.tip
11
+ clue t.clue
12
+
13
+ time_bonus 55
14
+ ace_score 144
15
+ size 4, 3
16
+ stairs 3, 2
17
+
18
+ warrior 1, 1, :east do |u|
19
+ u.add_abilities :listen, :direction_of
20
+ end
21
+
22
+ unit :captive, 0, 0, :east
23
+ unit :captive, 0, 2, :east
24
+ unit :sludge, 2, 0, :south
25
+ unit :thick_sludge, 3, 1, :west
26
+ unit :sludge, 2, 2, :north
@@ -0,0 +1,21 @@
1
+ # -----
2
+ # | S|
3
+ # |@> SC|
4
+ # -----
5
+
6
+ t = R18n.t.towers.intermediate.level_005
7
+
8
+ description t.description
9
+ tip t.tip
10
+ clue t.clue
11
+
12
+ time_bonus 45
13
+ ace_score 107
14
+ size 5, 2
15
+ stairs 1, 1
16
+
17
+ warrior 0, 1, :east
18
+
19
+ unit :thick_sludge, 4, 0, :west
20
+ unit :thick_sludge, 3, 1, :north
21
+ unit :captive, 4, 1, :west
@@ -0,0 +1,25 @@
1
+ # ------
2
+ # |Cs >|
3
+ # |@ sC |
4
+ # ------
5
+
6
+ t = R18n.t.towers.intermediate.level_006
7
+
8
+ description t.description
9
+ tip t.tip
10
+ clue t.clue
11
+
12
+ time_bonus 50
13
+ ace_score 108
14
+ size 6, 2
15
+ stairs 5, 0
16
+
17
+ warrior 0, 1, :east
18
+
19
+ unit :sludge, 1, 0, :west
20
+ unit :sludge, 3, 1, :west
21
+ unit :captive, 0, 0, :west
22
+ unit :captive, 4, 1, :west do |u|
23
+ u.add_abilities :explode!
24
+ u.abilities[:explode!].time = 7
25
+ end
@@ -0,0 +1,27 @@
1
+ # -----
2
+ # | sC >|
3
+ # |@ s C|
4
+ # | s |
5
+ # -----
6
+
7
+ t = R18n.t.towers.intermediate.level_007
8
+
9
+ description t.description
10
+ tip t.tip
11
+ clue t.clue
12
+
13
+ time_bonus 70
14
+ ace_score 134
15
+ size 5, 3
16
+ stairs 4, 0
17
+
18
+ warrior 0, 1, :east
19
+
20
+ unit :sludge, 1, 0, :south
21
+ unit :sludge, 1, 2, :north
22
+ unit :sludge, 2, 1, :west
23
+ unit :captive, 4, 1, :west do |u|
24
+ u.add_abilities :explode!
25
+ u.abilities[:explode!].time = 10
26
+ end
27
+ unit :captive, 2, 0, :west