ruby_armor 0.0.3alpha → 0.0.4alpha

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.
data/bin/ruby_armor CHANGED
@@ -1,3 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "ruby_armor"
3
+ # For running from the gem, so path will already be set.
4
+
5
+ require "ruby_armor"
6
+
7
+ RubyArmor::Window.new.show unless defined? Ocra
@@ -0,0 +1,5 @@
1
+ ---
2
+
3
+ :description: This is the config file for RubyArmor and does not affect the game in any way if using RubyWarrior natively.
4
+ :turn_delay: 0.5 # seconds
5
+ :warrior_class: :valkyrie # :valkyrie, :mercenary, :monk, :burglar
@@ -0,0 +1,38 @@
1
+ module RubyArmor
2
+ class BaseUserData
3
+ #include Log
4
+
5
+ def initialize(user_file, default_file)
6
+ @user_file = user_file
7
+
8
+ @data = if File.exists?(@user_file)
9
+ begin
10
+ YAML.load_file @user_file
11
+ rescue Psych::SyntaxError #log.warn { "Failed to load #{@user_file}; cleared settings" }
12
+
13
+ {}
14
+ end
15
+ else
16
+ {}
17
+ end
18
+
19
+ @data = YAML.load_file(default_file).deep_merge @data
20
+
21
+ #log.info { "Read and merged user data:\n#{@data}" }
22
+
23
+ save
24
+ end
25
+
26
+ protected
27
+ def data; @data; end
28
+
29
+ protected
30
+ def save
31
+ FileUtils.mkdir_p File.dirname(@user_file)
32
+
33
+ File.open(@user_file, "w") {|f| YAML.dump(@data, f) }
34
+
35
+ #log.info { "Saved #{File.basename(@user_file)}" }
36
+ end
37
+ end
38
+ end
@@ -1,11 +1,15 @@
1
1
  module RubyArmor
2
2
  class ChooseProfile < Fidgit::GuiState
3
+ DEFAULT_WARRIOR_CLASS = :valkyrie
4
+
3
5
  def setup
4
6
  super
5
7
 
6
8
  # Create the game.
7
9
  @game = RubyWarrior::Game.new
8
10
 
11
+ warrior_sprites = SpriteSheet.new "warriors.png", Play::SPRITE_WIDTH, Play::SPRITE_HEIGHT, 4
12
+
9
13
  vertical align_h: :center, spacing: 50 do
10
14
  label "RubyArmor", align: :center, font_height: 120, padding_top: 50
11
15
 
@@ -13,44 +17,73 @@ module RubyArmor
13
17
 
14
18
  # Use existing profile.
15
19
  vertical padding: 0, align_h: :center do
16
- @game.profiles.each do |profile|
17
- title = "#{profile.warrior_name.ljust(20)} #{profile.tower.name.rjust(12)}:#{profile.level_number} #{profile.score.to_s.rjust(5)}"
18
- tip = "Play as #{profile.warrior_name} - #{profile.tower.name} - level #{profile.level_number} - score #{profile.score}"
19
- # Can be disabled because of a bug in RubyWarrior paths.
20
- button title, button_options.merge(tip: tip, enabled: File.directory?(profile.tower_path)) do
21
- play profile
20
+ scroll_window height: 200, width: 460 do
21
+ @game.profiles.each do |profile|
22
+ config = WarriorConfig.new profile
23
+
24
+ title = "#{profile.warrior_name.ljust(20)} #{profile.tower.name.rjust(12)}:#{profile.level_number} #{profile.score.to_s.rjust(5)}"
25
+ tip = "Play as #{profile.warrior_name} the #{config.warrior_class.capitalize} - #{profile.tower.name} - level #{profile.level_number} - score #{profile.score}"
26
+
27
+ # Can be disabled because of a bug in RubyWarrior paths.
28
+ button title, button_options.merge(tip: tip, enabled: File.directory?(profile.tower_path),
29
+ icon: warrior_sprites[0, Play::WARRIORS[config.warrior_class]], icon_options: { factor: 2 }) do
30
+ play profile, config
31
+ end
22
32
  end
23
33
  end
24
34
  end
25
35
 
26
36
  # Option to create a new profile.
27
- horizontal align: :center, padding: 0 do
28
- @new_name = text_area width: 300, max_height: 60, font_height: 24 do |_, text|
29
- duplicate = @game.profiles.any? {|p| p.warrior_name.downcase == text.downcase }
30
- @new_profile_button.enabled = !(text.empty? or duplicate)
37
+ vertical padding: 0, align: :center do
38
+ horizontal align: :center, padding: 0 do
39
+ @new_name = text_area width: 300, height: 35, font_height: 24 do |_, text|
40
+ duplicate = @game.profiles.any? {|p| p.warrior_name.downcase == text.downcase }
41
+ @new_profile_button.enabled = !(text.empty? or duplicate)
42
+ end
43
+
44
+ @new_profile_button = button "New", button_options.merge(width: 90, tip: "Create a new profile") do
45
+ play *new_profile(@new_name.text)
46
+ end
47
+
48
+ new_name = File.basename File.expand_path("~")
49
+ new_name = "Player" if new_name.empty?
50
+ @new_name.text = new_name
31
51
  end
32
52
 
33
- @new_profile_button = button "New", button_options.merge(width: 90, tip: "Create a new profile") do
34
- play new_profile(@new_name.text)
53
+ # Choose class; just cosmetic.
54
+ @warrior_class = group align_h: :center do
55
+ horizontal padding: 0, align_h: :center do
56
+ Play::WARRIORS.each do |warrior, row|
57
+ radio_button "", warrior, tip: "Play as a #{warrior.capitalize} (The difference between classes is purely cosmetic!)",
58
+ :icon => warrior_sprites[0, row], :icon_options => { :factor => 4 }
59
+ end
60
+ end
35
61
  end
36
62
 
37
- new_name = File.basename File.expand_path("~")
38
- new_name = "Player" if new_name.empty?
39
- @new_name.text = new_name
63
+ @warrior_class.value = DEFAULT_WARRIOR_CLASS
40
64
  end
41
65
  end
42
66
  end
43
67
 
44
- def play(profile)
68
+ def finalize
69
+ super
70
+ container.clear
71
+ end
72
+
73
+ def play(profile, config)
45
74
  @game.instance_variable_set :@profile, profile
46
- push_game_state Play.new(@game)
75
+ push_game_state Play.new(@game, config)
47
76
  end
48
77
 
49
78
  def new_profile(name)
50
79
  new_profile = RubyWarrior::Profile.new
51
80
  new_profile.tower_path = @game.towers[0].path
52
81
  new_profile.warrior_name = name
53
- new_profile
82
+
83
+ config = WarriorConfig.new new_profile
84
+ config.warrior_class = @warrior_class.value
85
+
86
+ [new_profile, config]
54
87
  end
55
88
  end
56
89
  end
@@ -7,6 +7,22 @@ module RubyArmor
7
7
  SPRITE_OFFSET_X, SPRITE_OFFSET_Y = 64, 64
8
8
  SPRITE_SCALE = 5
9
9
 
10
+ # Sprites to show based on player facing.
11
+ FACINGS = {
12
+ :east => 0,
13
+ :south => 1,
14
+ :west => 2,
15
+ :north => 3,
16
+ }
17
+
18
+ # Rows in the warriors.png to use for each warrior type.
19
+ WARRIORS = {
20
+ :valkyrie => 0,
21
+ :mercenary => 1,
22
+ :monk => 2,
23
+ :burglar => 3,
24
+ }
25
+
10
26
  ENEMY_TYPES = [
11
27
  RubyWarrior::Units::Wizard,
12
28
  RubyWarrior::Units::ThickSludge,
@@ -23,8 +39,8 @@ module RubyArmor
23
39
 
24
40
  trait :timer
25
41
 
26
- def initialize(game)
27
- @game = game
42
+ def initialize(game, config)
43
+ @game, @config = game, config
28
44
  super()
29
45
  end
30
46
 
@@ -34,9 +50,12 @@ module RubyArmor
34
50
  RubyWarrior::UI.proxy = self
35
51
 
36
52
  @tiles = SpriteSheet.new "tiles.png", TILE_WIDTH, TILE_HEIGHT, 8
37
- @sprites = SpriteSheet.new "characters.png", SPRITE_WIDTH, SPRITE_HEIGHT, 4
53
+ @warrior_sprites = SpriteSheet.new "warriors.png", SPRITE_WIDTH, SPRITE_HEIGHT, 4
54
+ @mob_sprites = SpriteSheet.new "mobs.png", SPRITE_WIDTH, SPRITE_HEIGHT, 4
38
55
  @max_turns = 100 # Just to recognise a stalemate ;)
39
56
 
57
+ on_input(:escape) { pop_game_state }
58
+
40
59
  vertical spacing: 0, padding: 10 do
41
60
  horizontal padding: 0, height: $window.height * 0.5, width: 780 do
42
61
  # Space for the game graphics.
@@ -44,26 +63,32 @@ module RubyArmor
44
63
 
45
64
  vertical padding: 0, height: $window.height * 0.5, width: 100 do
46
65
  # Labels at top-right.
47
- @tower_label = label ""
48
- @level_label = label "Level:"
49
- @turn_label = label "Turn:"
50
- @health_label = label "Health:"
66
+ @tower_label = label "", tip: "Each tower has a different difficulty level"
67
+ @level_label = label "Level:", tip: "Each tower contains 9 levels"
68
+ @turn_label = label "Turn:", tip: "Current turn; starvation at #{@max_turns} to avoid endless games"
69
+ @health_label = label "Health:", tip: "The warrior's remaining health; death occurs at 0"
51
70
 
52
71
  # Buttons underneath them.
53
- button_options = { :width => 70, :justify => :center, shortcut: :auto, border_thickness: 0, }
54
- @start_button = button "Start", button_options do
72
+ button_options = {
73
+ :width => 70,
74
+ :justify => :center,
75
+ shortcut: :auto,
76
+ shortcut_color: Color.rgb(150, 255, 0),
77
+ border_thickness: 0,
78
+ }
79
+ @start_button = button "Start", button_options.merge(tip: "Start running player.rb in this level") do
55
80
  start_level
56
81
  end
57
82
 
58
- @reset_button = button "Reset", button_options do
83
+ @reset_button = button "Reset", button_options.merge(tip: "Restart the level") do
59
84
  prepare_level
60
85
  end
61
86
 
62
- @hint_button = button "Hint", button_options do
87
+ @hint_button = button "Hint", button_options.merge(tip: "Get hint on how best to approach the level") do
63
88
  message replace_syntax(level.tip)
64
89
  end
65
90
 
66
- @continue_button = button "Continue", button_options do
91
+ @continue_button = button "Continue", button_options.merge(tip: "Climb up the stairs to the next level") do
67
92
  @game.prepare_next_level
68
93
  prepare_level
69
94
  end
@@ -71,11 +96,13 @@ module RubyArmor
71
96
  # Choose turn-duration with a slider.
72
97
  horizontal padding: 0, spacing: 0 do
73
98
  @turn_duration_label = label "", font_height: 12
74
- @turn_duration_slider = slider width: 55, range: 0..1000, tip: "Turn duration (ms)" do |_, value|
75
- @turn_duration = value * 0.001
99
+ @turn_duration_slider = slider width: 55, range: 0..1000,
100
+ tip: "Turn duration (ms)" do |_, value|
101
+ @config.turn_delay = value * 0.001
76
102
  @turn_duration_label.text = "%4dms" % value.to_s
77
103
  end
78
- @turn_duration_slider.value = 500
104
+
105
+ @turn_duration_slider.value = (@config.turn_delay * 1000).round
79
106
  end
80
107
  end
81
108
  end
@@ -94,7 +121,7 @@ module RubyArmor
94
121
  # Default editor for Windows.
95
122
  ENV['EDITOR'] = "notepad" if Gem.win_platform? and ENV['EDITOR'].nil?
96
123
 
97
- tip = ENV['EDITOR'] ? "Edit file in #{ ENV['EDITOR']}" : "ENV['EDITOR'] not set"
124
+ tip = ENV['EDITOR'] ? "Edit file in #{ENV['EDITOR']} (set ENV['EDITOR'] to use a different editor)" : "ENV['EDITOR'] not set"
98
125
  button "edit", tip: tip, enabled: ENV['EDITOR'], font_height: 12, border_thickness: 0 do
99
126
  command = %<"#{ENV['EDITOR']}" "#{File.join(level.player_path, @tabs_group.value)}">
100
127
  $stdout.puts "SYSTEM: #{command}"
@@ -159,22 +186,30 @@ module RubyArmor
159
186
 
160
187
  # Continually poll the player code file to see when it is edited.
161
188
  stop_timer :refresh_code
162
- converted_line_endings = false
189
+ friendly_line_endings = false
163
190
  every(100, :name => :refresh_code) do
164
191
  begin
165
192
  player_file = File.join level.player_path, "player.rb"
166
193
  player_code = File.read player_file
167
- unless @code_display.stripped_text.strip == player_code.strip
194
+ stripped_code = player_code.strip
195
+ @loaded_code ||= ""
196
+ unless @loaded_code == stripped_code
197
+ $stdout.puts "Detected change in player.rb"
198
+
168
199
  # Rewrite file as Windows text file if it is the default (a unix file).
169
- if !converted_line_endings and Gem.win_platform? and
170
- (File.open(player_file, "rb", &:read).strip == player_code.strip)
200
+ # If the file loaded in binary == the code loaded as text, then the file
201
+ # must have Unix endings (\n => same as a text file in memory) rather than
202
+ # Windows endings (\r\n => different than text file in memory).
203
+ if !friendly_line_endings and Gem.win_platform? and
204
+ (File.open(player_file, "rb", &:read).strip == stripped_code)
171
205
 
172
206
  File.open(player_file, "w") {|f| f.puts player_code }
173
207
  $stdout.puts "Converted to Windows line endings: #{player_file}"
174
208
  end
175
- converted_line_endings = true # Either will have or don't need to.
209
+ friendly_line_endings = true # Either will have or don't need to.
176
210
 
177
- @code_display.text = player_code
211
+ @code_display.text = stripped_code
212
+ @loaded_code = stripped_code
178
213
  prepare_level
179
214
  end
180
215
  rescue Errno::ENOENT
@@ -182,7 +217,7 @@ module RubyArmor
182
217
  end
183
218
  end
184
219
 
185
- @_level = profile.current_level
220
+ @level = profile.current_level # Need to store this because it gets forgotten by the profile/game :(
186
221
  @turn = 0
187
222
  @playing = false
188
223
  level.load_level
@@ -217,7 +252,7 @@ module RubyArmor
217
252
  @reset_button.enabled = true
218
253
  @start_button.enabled = false
219
254
  @playing = true
220
- @take_next_turn_at = Time.now + @turn_duration
255
+ @take_next_turn_at = Time.now + @config.turn_delay
221
256
  refresh_labels
222
257
  end
223
258
 
@@ -240,17 +275,18 @@ module RubyArmor
240
275
  @warrior_pattern ||= /([@G])/ # Player and golem
241
276
 
242
277
  # Used in log.
243
- string.gsub(/\|(.*)\|/i) {|c|
244
- c.gsub(@enemy_pattern, '<c=ff0000>\1</c>')
245
- .gsub(@friend_pattern, '<c=00dd00>\1</c>')
246
- .gsub(@warrior_pattern, '<c=aaaaff>\1</c>')
278
+ string.gsub(/\|.*\|/i) {|c|
279
+ c = c.gsub @enemy_pattern, '<c=ff0000>\1</c>'
280
+ c.gsub! @friend_pattern, '<c=00dd00>\1</c>'
281
+ c.gsub! @warrior_pattern, '<c=aaaaff>\1</c>'
282
+ c.gsub '|', '<c=777777>|</c>'
247
283
  }
248
284
  .gsub(/^(#{profile.warrior_name}.*)/, '<c=aaaaff>\1</c>') # Player doing stuff.
249
- .gsub(/(\-{3,}| \| )/, '<c=777777>\1</c>') # Walls.
285
+ .gsub(/(\-{3,})/, '<c=777777>\1</c>') # Walls.
250
286
  end
251
287
 
252
288
  def profile; @game.profile; end
253
- def level; @_level; end
289
+ def level; @level; end
254
290
  def floor; level.floor; end
255
291
 
256
292
  def play_turn
@@ -268,7 +304,7 @@ module RubyArmor
268
304
  @turn += 1
269
305
  level.time_bonus -= 1 if level.time_bonus > 0
270
306
 
271
- @take_next_turn_at = Time.now + @turn_duration
307
+ @take_next_turn_at = Time.now + @config.turn_delay
272
308
 
273
309
  refresh_labels
274
310
 
@@ -297,11 +333,15 @@ module RubyArmor
297
333
  self.puts
298
334
  self.puts exception.backtrace.join("\n")
299
335
 
300
- exception.message =~ /:(\d+):/
301
- exception_line = $1.to_i - 1
302
- code_lines = @code_display.text.split "\n"
303
- code_lines[exception_line] = "<c=ff0000>#{code_lines[exception_line]}</c>"
304
- @code_display.text = code_lines.join "\n"
336
+ # TODO: Make this work without it raising exceptions in Fidgit :(
337
+ #exception.message =~ /:(\d+):/
338
+ #exception_line = $1.to_i - 1
339
+ #code_lines = @code_display.text.split "\n"
340
+ #code_lines[exception_line] = "<c=ff0000>{code_lines[exception_line]}</c>"
341
+ #@code_display.text = code_lines.join "\n"
342
+
343
+ @start_button.enabled = false
344
+
305
345
  @exception = exception
306
346
  end
307
347
 
@@ -354,19 +394,19 @@ module RubyArmor
354
394
  floor.units.each do |unit|
355
395
  sprite = case unit
356
396
  when RubyWarrior::Units::Warrior
357
- @sprites[0, 0]
397
+ @warrior_sprites[FACINGS[unit.position.direction], WARRIORS[@config.warrior_class]]
358
398
  when RubyWarrior::Units::Wizard
359
- @sprites[0, 1]
399
+ @mob_sprites[0, 1]
360
400
  when RubyWarrior::Units::ThickSludge
361
- @sprites[2, 1]
401
+ @mob_sprites[2, 1]
362
402
  when RubyWarrior::Units::Sludge
363
- @sprites[1, 1]
403
+ @mob_sprites[1, 1]
364
404
  when RubyWarrior::Units::Archer
365
- @sprites[3, 1]
405
+ @mob_sprites[3, 1]
366
406
  when RubyWarrior::Units::Captive
367
- @sprites[0, 2]
407
+ @mob_sprites[0, 2]
368
408
  when RubyWarrior::Units::Golem
369
- @sprites[1, 2]
409
+ @mob_sprites[1, 2]
370
410
  else
371
411
  raise "unknown unit: #{unit.class}"
372
412
  end
@@ -374,7 +414,7 @@ module RubyArmor
374
414
  sprite.draw unit.position.x * SPRITE_WIDTH, unit.position.y * SPRITE_HEIGHT, unit.position.y
375
415
 
376
416
  if unit.bound?
377
- @sprites[2, 2].draw unit.position.x * SPRITE_WIDTH, unit.position.y * SPRITE_HEIGHT, unit.position.y
417
+ @mob_sprites[2, 2].draw unit.position.x * SPRITE_WIDTH, unit.position.y * SPRITE_HEIGHT, unit.position.y
378
418
  end
379
419
  end
380
420
  end
@@ -1,3 +1,3 @@
1
1
  module RubyArmor
2
- VERSION = "0.0.3alpha"
2
+ VERSION = "0.0.4alpha"
3
3
  end
@@ -0,0 +1,24 @@
1
+ require_relative "base_user_data"
2
+
3
+ module RubyArmor
4
+ class WarriorConfig < BaseUserData
5
+ DEFAULT_CONFIG = File.expand_path "../../../config/default_config.yml", __FILE__
6
+ CONFIG_FILE = "ruby_armour.yml"
7
+
8
+ def initialize(profile)
9
+ super File.join(profile.player_path, CONFIG_FILE), DEFAULT_CONFIG
10
+ end
11
+
12
+ def turn_delay; data[:turn_delay]; end
13
+ def turn_delay=(delay)
14
+ data[:turn_delay] = delay
15
+ save
16
+ end
17
+
18
+ def warrior_class; data[:warrior_class]; end
19
+ def warrior_class=(warrior_class)
20
+ data[:warrior_class] = warrior_class
21
+ save
22
+ end
23
+ end
24
+ end
data/lib/ruby_armor.rb CHANGED
@@ -21,6 +21,7 @@ require "ruby_armor/sprite_sheet"
21
21
  require "ruby_armor/states/choose_profile"
22
22
  require "ruby_armor/states/play"
23
23
  require "ruby_armor/window"
24
+ require "ruby_armor/warrior_config"
24
25
 
25
26
  ROOT_PATH = File.expand_path('../../', __FILE__)
26
27
 
@@ -33,5 +34,3 @@ Font.autoload_dirs.unshift File.join(media_dir, 'fonts')
33
34
 
34
35
  Fidgit::Element.schema.merge_schema! YAML.load(File.read(File.expand_path('config/gui/schema.yml', ROOT_PATH)))
35
36
 
36
- RubyArmor::Window.new.show
37
-
Binary file
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_armor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3alpha
4
+ version: 0.0.4alpha
5
5
  prerelease: 5
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-25 00:00:00.000000000 Z
12
+ date: 2012-02-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rubywarrior
16
- requirement: &28574112 !ruby/object:Gem::Requirement
16
+ requirement: &25413276 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.1.2
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *28574112
24
+ version_requirements: *25413276
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: gosu
27
- requirement: &28573560 !ruby/object:Gem::Requirement
27
+ requirement: &25412196 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.7.41
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *28573560
35
+ version_requirements: *25412196
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: chingu
38
- requirement: &28573128 !ruby/object:Gem::Requirement
38
+ requirement: &25411440 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,18 +43,29 @@ dependencies:
43
43
  version: 0.9rc7
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *28573128
46
+ version_requirements: *25411440
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: fidgit
49
- requirement: &28572804 !ruby/object:Gem::Requirement
49
+ requirement: &25409844 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: 0.2.1
54
+ version: 0.2.2
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *28572804
57
+ version_requirements: *25409844
58
+ - !ruby/object:Gem::Dependency
59
+ name: releasy
60
+ requirement: &25406592 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 0.2.2
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *25406592
58
69
  description:
59
70
  email:
60
71
  - bil.bagpuss@gmail.com
@@ -63,7 +74,9 @@ executables:
63
74
  extensions: []
64
75
  extra_rdoc_files: []
65
76
  files:
77
+ - config/default_config.yml
66
78
  - config/gui/schema.yml
79
+ - lib/ruby_armor/base_user_data.rb
67
80
  - lib/ruby_armor/floating_text.rb
68
81
  - lib/ruby_armor/ruby_warrior_ext/abilities/rest.rb
69
82
  - lib/ruby_armor/ruby_warrior_ext/position.rb
@@ -73,12 +86,14 @@ files:
73
86
  - lib/ruby_armor/states/choose_profile.rb
74
87
  - lib/ruby_armor/states/play.rb
75
88
  - lib/ruby_armor/version.rb
89
+ - lib/ruby_armor/warrior_config.rb
76
90
  - lib/ruby_armor/window.rb
77
91
  - lib/ruby_armor.rb
78
92
  - media/fonts/Licence.txt
79
93
  - media/fonts/ProggyCleanSZ.ttf
80
- - media/images/characters.png
94
+ - media/images/mobs.png
81
95
  - media/images/tiles.png
96
+ - media/images/warriors.png
82
97
  - README.md
83
98
  - bin/ruby_armor
84
99
  homepage: http://spooner.github.com/libraries/ruby_armor/
@@ -96,7 +111,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
111
  version: '0'
97
112
  segments:
98
113
  - 0
99
- hash: 39949075
114
+ hash: -574849791
100
115
  required_rubygems_version: !ruby/object:Gem::Requirement
101
116
  none: false
102
117
  requirements:
Binary file