gemwarrior 0.7.3 → 0.7.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d91e48c65260ba5b61f52b93ad8eea2b45fe8c18
4
- data.tar.gz: cb95d7af28130ed0b74ad1f5f36d2c8d010f7244
3
+ metadata.gz: 1d645e9d63d18268d68ccb530aceedce650f68b3
4
+ data.tar.gz: 6285dd9e0779230fedb17edf536342af39d28ab7
5
5
  SHA512:
6
- metadata.gz: 76d5776994978dbd5a4bd076ec5adb99e05f0ef1a6c047d570a0da16e8291e4483ad7577b4740c9ee6d68bb9aa5f4220526d49bc0cc2ab8e6c1455efb1063bda
7
- data.tar.gz: 7d42296d573a9d911a8a49a6485c95b24cf0e8648899264c391d6394369a43f4042000a93c9f00a61d9f7cdbcdb221b197d468603686db1eccb3b20cf3ba0d40
6
+ metadata.gz: ae8f0babc3338425030bb6d22cd1fda25efedabb9f3b6d548b8290142e2c3d2c62a64f4682dfbf0c78856b048f0cdb103fddf9a853eeeb9189a36f2e2bf45965
7
+ data.tar.gz: 971d03ca009d04fa82f732964512bd3a4f1225cfb921e5ffeeea07b058ce3e9e0984bc94c153939bdb9cc8e7505a72205e2db49e64148535c0c29a066dbde35a
data/.gitignore CHANGED
@@ -7,3 +7,5 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ *.gct
11
+ /img/
data/bin/gemwarrior CHANGED
File without changes
@@ -22,7 +22,7 @@ module Gemwarrior
22
22
 
23
23
  Animation::run({ :phrase => '*** SHOOOOOM ***' })
24
24
 
25
- {:type => 'move', :data => 'Sky Tower (Entrance)'}
25
+ {:type => 'move', :data => 'Rock Quarry'}
26
26
  end
27
27
  end
28
28
  end
@@ -0,0 +1,19 @@
1
+ # lib/gemwarrior/entities/items/keystone.rb
2
+ # Item::Keystone
3
+
4
+ require_relative '../item'
5
+
6
+ module Gemwarrior
7
+ class Keystone < Item
8
+ def initialize
9
+ self.name = 'keystone'
10
+ self.description = 'Certainly greater than the sum of its parts, this smallish stone glows faintly and feels slick to the touch.'
11
+ self.atk_lo = nil
12
+ self.atk_hi = nil
13
+ self.takeable = true
14
+ self.useable = false
15
+ self.equippable = false
16
+ self.equipped = false
17
+ end
18
+ end
19
+ end
@@ -6,14 +6,27 @@ require_relative '../item'
6
6
  module Gemwarrior
7
7
  class MassiveDoor < Item
8
8
  def initialize
9
- self.name = 'massive door'
10
- self.description = 'Translucent, but not transparent, this door constructed of condensed water vapor is like nothing you have ever seen.'
9
+ self.name = 'massive_door'
10
+ self.description = 'Translucent, but not transparent, this door constructed of condensed water vapor is like nothing you have ever seen. It has no keyhole, but it does have a stone-shaped depression floating centrally within it.'
11
11
  self.atk_lo = nil
12
12
  self.atk_hi = nil
13
13
  self.takeable = false
14
- self.useable = false
14
+ self.useable = true
15
15
  self.equippable = false
16
16
  self.equipped = false
17
17
  end
18
+
19
+ def use(inventory = nil)
20
+ puts 'You attempt to open the seriously massive door that separates you from Emerald himself.'
21
+ if inventory.has_item?('keystone')
22
+ puts 'The keystone in your inventory glows as you approach the incredibly titanic-sized door, so you naturally pull it out and thrust it into the stone-shaped depression within the cloudy obstruction. The door "opens" in a way and you can now pass through.'
23
+ puts
24
+ {:type => 'move', :data => 'Sky Tower (Throne Room)'}
25
+ else
26
+ puts 'Your hand just goes right through the astonishingly gigantic door, but the rest of your body does not. A moment later, your hand is shoved backwards by some unknown force, and you remain where you were before your unsuccessful attempt.'
27
+ puts
28
+ {:type => nil, :data => nil}
29
+ end
30
+ end
18
31
  end
19
32
  end
@@ -22,7 +22,7 @@ module Gemwarrior
22
22
 
23
23
  Animation::run({ :phrase => '*** WHOOOOOSH ***' })
24
24
 
25
- {:type => 'move', :data => 'Sky Tower (Foyer)'}
25
+ {:type => 'move', :data => 'Sky Tower (Entryway)'}
26
26
  end
27
27
  end
28
28
  end
@@ -7,36 +7,38 @@ module Gemwarrior
7
7
  class Evaluator
8
8
  # CONSTANTS
9
9
  ## MESSAGES
10
- PROGRAM_NAME = 'Gem Warrior'
11
- QUIT_MESSAGE = 'Thanks for playing the game. Until next time...'.colorize(:yellow)
12
- RESUME_MESSAGE = 'Back to adventuring!'.colorize(:green)
13
- SEPARATOR = '=========================================================================='
10
+ PROGRAM_NAME = 'Gem Warrior'
11
+ QUIT_MESSAGE = 'Thanks for playing the game. Until next time...'.colorize(:yellow)
12
+ RESUME_MESSAGE = 'Back to adventuring!'.colorize(:green)
13
+ SEPARATOR = '=========================================================================='
14
14
 
15
- GO_PARAMS = 'Options: north, east, south, west'
16
- CHANGE_PARAMS = 'Options: name'
17
- DEBUG_LIST_PARAMS = 'Options: monsters, items, locations'
18
- DEBUG_STAT_PARAMS = 'Options: atk_lo, atk_hi, strength, dexterity'
15
+ GO_PARAMS = 'Options: north, east, south, west'
16
+ CHANGE_PARAMS = 'Options: name'
17
+ DEBUG_LIST_PARAMS = 'Options: monsters, items, locations'
18
+ DEBUG_STAT_PARAMS = 'Options: atk_lo, atk_hi, strength, dexterity'
19
19
 
20
20
  ## ERRORS
21
- ERROR_COMMAND_INVALID = 'That is not something the game yet understands.'
21
+ ERROR_COMMAND_INVALID = 'That is not something the game yet understands.'
22
22
 
23
- ERROR_GO_PARAM_MISSING = 'Just wander aimlessly? A direction would be nice.'
24
- ERROR_GO_PARAM_INVALID = 'The place in that direction is far, far, FAR too dangerous. You should try a different way.'
25
- ERROR_ATTACK_PARAM_MISSING = 'You cannot just "attack". You gotta choose something to attack.'
26
- ERROR_ATTACK_PARAM_INVALID = 'That monster does not exist here or can\'t be attacked.'
27
- ERROR_TAKE_PARAM_MISSING = 'You cannot just "take". You gotta choose something to take.'
28
- ERROR_USE_PARAM_MISSING = 'You cannot just "use". You gotta choose something to use.'
29
- ERROR_USE_PARAM_INVALID = 'You cannot use that, as it does not exist here or in your inventory.'
30
- ERROR_USE_PARAM_UNUSEABLE = 'That object is not useable.'
31
- ERROR_DROP_PARAM_MISSING = 'You cannot just "drop". You gotta choose something to drop.'
32
- ERROR_EQUIP_PARAM_MISSING = 'You cannot just "equip". You gotta choose something to equip.'
33
- ERROR_UNEQUIP_PARAM_MISSING = 'You cannot just "unequip". You gotta choose something to unequip.'
34
- ERROR_CHANGE_PARAM_MISSING = 'You cannot just "change". You gotta choose something to change.'
35
- ERROR_CHANGE_PARAM_INVALID = 'You cannot change that...yet.'
36
- ERROR_LIST_PARAM_MISSING = 'You cannot just "list". You gotta choose something to list.'
37
- ERROR_LIST_PARAM_INVALID = 'You cannot list that...yet.'
38
- ERROR_DEBUG_STAT_PARAM_MISSING = 'You cannot just "change stats". You gotta choose a stat to change.'
39
- ERROR_DEBUG_STAT_PARAM_INVALID = 'You cannot change that stat...yet.'
23
+ ERROR_GO_PARAM_MISSING = 'Just wander aimlessly? A direction would be nice.'
24
+ ERROR_GO_PARAM_INVALID = 'The place in that direction is far, far, FAR too dangerous. You should try a different way.'
25
+ ERROR_ATTACK_PARAM_MISSING = 'You cannot just "attack". You gotta choose something to attack.'
26
+ ERROR_ATTACK_PARAM_INVALID = 'That monster does not exist here or can\'t be attacked.'
27
+ ERROR_TAKE_PARAM_MISSING = 'You cannot just "take". You gotta choose something to take.'
28
+ ERROR_USE_PARAM_MISSING = 'You cannot just "use". You gotta choose something to use.'
29
+ ERROR_USE_PARAM_INVALID = 'You cannot use that, as it does not exist here or in your inventory.'
30
+ ERROR_USE_PARAM_UNUSEABLE = 'That object is not useable.'
31
+ ERROR_DROP_PARAM_MISSING = 'You cannot just "drop". You gotta choose something to drop.'
32
+ ERROR_EQUIP_PARAM_MISSING = 'You cannot just "equip". You gotta choose something to equip.'
33
+ ERROR_UNEQUIP_PARAM_MISSING = 'You cannot just "unequip". You gotta choose something to unequip.'
34
+ ERROR_CHANGE_PARAM_MISSING = 'You cannot just "change". You gotta choose something to change.'
35
+ ERROR_CHANGE_PARAM_INVALID = 'You cannot change that...yet.'
36
+ ERROR_LIST_PARAM_MISSING = 'You cannot just "list". You gotta choose something to list.'
37
+ ERROR_LIST_PARAM_INVALID = 'You cannot list that...yet.'
38
+ ERROR_DEBUG_STAT_PARAM_MISSING = 'You cannot just "change stats". You gotta choose a stat to change.'
39
+ ERROR_DEBUG_STAT_PARAM_INVALID = 'You cannot change that stat...yet.'
40
+ ERROR_DEBUG_TELEPORT_PARAMS_MISSING = 'You cannot just "teleport". You gotta choose somewhere to teleport to.'
41
+ ERROR_DEBUG_TELEPORT_PARAMS_INVALID = 'You cannot teleport there...yet.'
40
42
 
41
43
  attr_accessor :world,
42
44
  :commands, :aliases, :extras, :cmd_descriptions,
@@ -45,15 +47,16 @@ module Gemwarrior
45
47
  def initialize(world)
46
48
  self.world = world
47
49
 
48
- self.devcommands = %w(god beast list vars map stat)
49
- self.devaliases = %w(gd bs ls v m s)
50
+ self.devcommands = %w(god beast list vars map stat teleport)
51
+ self.devaliases = %w(gd bs ls v m s tp)
50
52
  self.devcmd_descriptions = [
51
53
  'Toggle god mode (i.e. invincible)',
52
54
  'Toggle beast mode (i.e. super strength)',
53
55
  'List all instances of a specific entity type',
54
56
  'List all the variables in the world',
55
57
  'Show a map of the world',
56
- 'Change player stat'
58
+ 'Change player stat',
59
+ 'Teleport to coordinates (5 0) or location name (\'Home\')'
57
60
  ]
58
61
 
59
62
  self.commands = %w(character inventory rest look take use drop equip unequip go attack change help quit quit!)
@@ -160,6 +163,26 @@ module Gemwarrior
160
163
  return ERROR_DEBUG_STAT_PARAM_INVALID
161
164
  end
162
165
  end
166
+ when 'teleport', 'tp'
167
+ if param1.nil?
168
+ return ERROR_DEBUG_TELEPORT_PARAMS_MISSING
169
+ else
170
+ if (param1.to_i.to_s == param1) && (param2.to_i.to_s == param2)
171
+ world.player.cur_coords = {:x => param1.to_i, :y => param2.to_i}
172
+ else
173
+ locations = []
174
+ world.locations.each do |l|
175
+ locations << l.name.downcase
176
+ end
177
+ if locations.include?(param1.downcase)
178
+ world.player.cur_coords = world.location_coords_by_name(param1)
179
+ else
180
+ return ERROR_DEBUG_TELEPORT_PARAMS_INVALID
181
+ end
182
+ end
183
+ Animation::run({:phrase => '** TELEPORT! **', :speed => :insane})
184
+ return world.describe(world.location_by_coords(world.player.cur_coords))
185
+ end
163
186
  end
164
187
  end
165
188
 
@@ -199,7 +222,7 @@ module Gemwarrior
199
222
  location_inventory.each do |i|
200
223
  if i.name.eql?(item_name)
201
224
  if i.useable
202
- result = i.use
225
+ result = i.use(world.player.inventory)
203
226
  else
204
227
  return ERROR_USE_PARAM_UNUSEABLE
205
228
  end
@@ -211,7 +234,7 @@ module Gemwarrior
211
234
  player_inventory.each do |i|
212
235
  if i.name.eql?(item_name)
213
236
  if i.useable
214
- result = i.use
237
+ result = i.use(world.player.inventory)
215
238
  else
216
239
  return ERROR_USE_PARAM_UNUSEABLE
217
240
  end
@@ -29,8 +29,12 @@ module Gemwarrior
29
29
  end
30
30
  end
31
31
 
32
+ def has_item?(item_name)
33
+ items.map(&:name).include?(item_name)
34
+ end
35
+
32
36
  def describe_item(item_name)
33
- if items.map(&:name).include?(item_name)
37
+ if has_item?(item_name)
34
38
  items.each do |i|
35
39
  if i.name.eql?(item_name)
36
40
  return i.description
@@ -42,7 +46,7 @@ module Gemwarrior
42
46
  end
43
47
 
44
48
  def equip_item(item_name)
45
- if items.map(&:name).include?(item_name)
49
+ if has_item?(item_name)
46
50
  items.each do |i|
47
51
  if i.name.eql?(item_name)
48
52
  if i.equippable
@@ -60,7 +64,7 @@ module Gemwarrior
60
64
  end
61
65
 
62
66
  def unequip_item(item_name)
63
- if items.map(&:name).include?(item_name)
67
+ if has_item?(item_name)
64
68
  items.each do |i|
65
69
  if i.name.eql?(item_name)
66
70
  if i.equippable
@@ -93,7 +97,7 @@ module Gemwarrior
93
97
  end
94
98
 
95
99
  def remove_item(item_name)
96
- if items.map(&:name).include?(item_name)
100
+ if has_item?(item_name)
97
101
  items.reject! { |item| item.name == item_name }
98
102
  return "The #{item_name} has been thrown on the ground, but far out of reach, and you're much too lazy to go get it now, so it's as good as gone."
99
103
  else
@@ -2,5 +2,5 @@
2
2
  # Version of Gem Warrior
3
3
 
4
4
  module Gemwarrior
5
- VERSION = "0.7.3"
5
+ VERSION = "0.7.4"
6
6
  end
@@ -123,7 +123,7 @@ module Gemwarrior
123
123
 
124
124
  def location_coords_by_name(name)
125
125
  locations.each do |l|
126
- if l.name.eql? name
126
+ if l.name.downcase.eql?(name.downcase)
127
127
  return l.coords
128
128
  end
129
129
  end
@@ -312,20 +312,53 @@ module Gemwarrior
312
312
  })
313
313
  )
314
314
  locations.push(Location.new({
315
- :name => 'Forest',
315
+ :name => 'Forest (Southeast)',
316
316
  :description => 'Trees exist here, in droves.',
317
317
  :coords => {:x => 4, :y => 0},
318
- :locs_connected => {:north => false, :east => true, :south => false, :west => true},
318
+ :locs_connected => {:north => true, :east => true, :south => false, :west => false},
319
319
  :danger_level => :low,
320
320
  :monster_level_range => 1..3,
321
- :items => [Feather.new, Tree.new],
321
+ :items => [Tree.new],
322
+ :bosses_abounding => []
323
+ })
324
+ )
325
+ locations.push(Location.new({
326
+ :name => 'Forest (Northeast)',
327
+ :description => 'You see much foliage.',
328
+ :coords => {:x => 4, :y => 1},
329
+ :locs_connected => {:north => false, :east => false, :south => true, :west => true},
330
+ :danger_level => :low,
331
+ :monster_level_range => 1..3,
332
+ :items => [],
333
+ :bosses_abounding => []
334
+ })
335
+ )
336
+ locations.push(Location.new({
337
+ :name => 'Forest (Northwest)',
338
+ :description => 'The amount of leaves and branches and trunks you can see boggles the mind.',
339
+ :coords => {:x => 3, :y => 1},
340
+ :locs_connected => {:north => false, :east => true, :south => true, :west => false},
341
+ :danger_level => :low,
342
+ :monster_level_range => 1..3,
343
+ :items => [Feather.new],
344
+ :bosses_abounding => []
345
+ })
346
+ )
347
+ locations.push(Location.new({
348
+ :name => 'Forest (Southwest)',
349
+ :description => 'While you continue to be impressed at the sheer size of this forest, a clearing appears to open up to the west.',
350
+ :coords => {:x => 3, :y => 0},
351
+ :locs_connected => {:north => true, :east => false, :south => false, :west => true},
352
+ :danger_level => :low,
353
+ :monster_level_range => 1..3,
354
+ :items => [],
322
355
  :bosses_abounding => []
323
356
  })
324
357
  )
325
358
  locations.push(Location.new({
326
359
  :name => 'Pain Desert (Southeast)',
327
360
  :description => 'Horrible terribleness emanates from this desolate land of unkind misery.',
328
- :coords => {:x => 3, :y => 0},
361
+ :coords => {:x => 2, :y => 0},
329
362
  :locs_connected => {:north => true, :east => true, :south => false, :west => true},
330
363
  :danger_level => :assured,
331
364
  :monster_level_range => 5..20,
@@ -334,9 +367,9 @@ module Gemwarrior
334
367
  })
335
368
  )
336
369
  locations.push(Location.new({
337
- :name => 'Pain Desert (Northeast)',
370
+ :name => 'Pain Desert (East)',
338
371
  :description => 'Horrible terribleness emanates from this desolate land of unkind misery.',
339
- :coords => {:x => 3, :y => 1},
372
+ :coords => {:x => 2, :y => 1},
340
373
  :locs_connected => {:north => false, :east => false, :south => true, :west => true},
341
374
  :danger_level => :assured,
342
375
  :monster_level_range => 5..20,
@@ -344,10 +377,43 @@ module Gemwarrior
344
377
  :bosses_abounding => [Garynetty.new]
345
378
  })
346
379
  )
380
+ locations.push(Location.new({
381
+ :name => 'Pain Desert (Central)',
382
+ :description => 'Horrible terribleness emanates from this desolate land of unkind misery.',
383
+ :coords => {:x => 1, :y => 1},
384
+ :locs_connected => {:north => true, :east => true, :south => true, :west => true},
385
+ :danger_level => :assured,
386
+ :monster_level_range => 5..20,
387
+ :items => [],
388
+ :bosses_abounding => [Garynetty.new]
389
+ })
390
+ )
391
+ locations.push(Location.new({
392
+ :name => 'Pain Desert (South)',
393
+ :description => 'Horrible terribleness emanates from this desolate land of unkind misery.',
394
+ :coords => {:x => 1, :y => 0},
395
+ :locs_connected => {:north => true, :east => true, :south => false, :west => false},
396
+ :danger_level => :assured,
397
+ :monster_level_range => 5..20,
398
+ :items => [],
399
+ :bosses_abounding => [Garynetty.new]
400
+ })
401
+ )
402
+ locations.push(Location.new({
403
+ :name => 'Pain Desert (West)',
404
+ :description => 'Horrible terribleness emanates from this desolate land of unkind misery.',
405
+ :coords => {:x => 0, :y => 1},
406
+ :locs_connected => {:north => true, :east => true, :south => false, :west => false},
407
+ :danger_level => :assured,
408
+ :monster_level_range => 5..20,
409
+ :items => [],
410
+ :bosses_abounding => [Garynetty.new]
411
+ })
412
+ )
347
413
  locations.push(Location.new({
348
414
  :name => 'Pain Desert (Northwest)',
349
415
  :description => 'Horrible terribleness emanates from this desolate land of unkind misery.',
350
- :coords => {:x => 2, :y => 1},
416
+ :coords => {:x => 0, :y => 2},
351
417
  :locs_connected => {:north => false, :east => true, :south => true, :west => false},
352
418
  :danger_level => :assured,
353
419
  :monster_level_range => 5..20,
@@ -356,10 +422,10 @@ module Gemwarrior
356
422
  })
357
423
  )
358
424
  locations.push(Location.new({
359
- :name => 'Pain Desert (Southwest)',
425
+ :name => 'Pain Desert (North)',
360
426
  :description => 'Horrible terribleness emanates from this desolate land of unkind misery.',
361
- :coords => {:x => 2, :y => 0},
362
- :locs_connected => {:north => true, :east => true, :south => false, :west => false},
427
+ :coords => {:x => 1, :y => 2},
428
+ :locs_connected => {:north => false, :east => false, :south => true, :west => true},
363
429
  :danger_level => :assured,
364
430
  :monster_level_range => 5..20,
365
431
  :items => [],
@@ -367,8 +433,8 @@ module Gemwarrior
367
433
  })
368
434
  )
369
435
  locations.push(Location.new({
370
- :name => 'Plains',
371
- :description => 'A lot of grass and nothing, but you see a mysterious tower further north, and your home to the south.',
436
+ :name => 'Plains (Outskirts)',
437
+ :description => 'A lot of grass and nothing, stretching out northward.',
372
438
  :coords => {:x => 5, :y => 1},
373
439
  :locs_connected => {:north => true, :east => false, :south => true, :west => false},
374
440
  :danger_level => :low,
@@ -378,10 +444,76 @@ module Gemwarrior
378
444
  })
379
445
  )
380
446
  locations.push(Location.new({
381
- :name => 'Sky Tower (Entrance)',
382
- :description => 'The craziest guy that ever existed is inside the towering structure before you.',
447
+ :name => 'Plains (Fields)',
448
+ :description => 'Now you\'re plum in the middle of rolling fields.',
383
449
  :coords => {:x => 5, :y => 2},
384
- :locs_connected => {:north => false, :east => false, :south => true, :west => false},
450
+ :locs_connected => {:north => true, :east => false, :south => true, :west => false},
451
+ :danger_level => :low,
452
+ :monster_level_range => 2..3,
453
+ :items => [],
454
+ :bosses_abounding => []
455
+ })
456
+ )
457
+ locations.push(Location.new({
458
+ :name => 'Plains (South of River)',
459
+ :description => 'A raging river borders the northern side of this bucolic vista.',
460
+ :coords => {:x => 5, :y => 3},
461
+ :locs_connected => {:north => false, :east => false, :south => true, :west => true},
462
+ :danger_level => :low,
463
+ :monster_level_range => 2..3,
464
+ :items => [],
465
+ :bosses_abounding => []
466
+ })
467
+ )
468
+ locations.push(Location.new({
469
+ :name => 'Plains (South of Bridge)',
470
+ :description => 'To the north of these fields lies a bridge that may be crossable.',
471
+ :coords => {:x => 4, :y => 3},
472
+ :locs_connected => {:north => true, :east => true, :south => false, :west => true},
473
+ :danger_level => :low,
474
+ :monster_level_range => 2..3,
475
+ :items => [],
476
+ :bosses_abounding => []
477
+ })
478
+ )
479
+ locations.push(Location.new({
480
+ :name => 'Plains (Hut)',
481
+ :description => 'A straw hut sits alone, curiously, in a patch of grass, sticks, and straw.',
482
+ :coords => {:x => 3, :y => 3},
483
+ :locs_connected => {:north => false, :east => true, :south => false, :west => false},
484
+ :danger_level => :none,
485
+ :monster_level_range => nil,
486
+ :items => [],
487
+ :bosses_abounding => []
488
+ })
489
+ )
490
+ locations.push(Location.new({
491
+ :name => 'River Bridge',
492
+ :description => 'Sturdy and safe, this bridge will get you across the otherwise unpassable river you see below.',
493
+ :coords => {:x => 4, :y => 4},
494
+ :locs_connected => {:north => true, :east => false, :south => true, :west => false},
495
+ :danger_level => :moderate,
496
+ :monster_level_range => 3..5,
497
+ :items => [],
498
+ :bosses_abounding => []
499
+ })
500
+ )
501
+ locations.push(Location.new({
502
+ :name => 'Plains (North of Bridge)',
503
+ :description => 'North of the river feels similar to south of the river, as you continue to be surrounded by grass and grass and, well, grass.',
504
+ :coords => {:x => 4, :y => 5},
505
+ :locs_connected => {:north => false, :east => false, :south => true, :west => true},
506
+ :danger_level => :low,
507
+ :monster_level_range => 2..3,
508
+ :items => [],
509
+ :bosses_abounding => []
510
+ })
511
+ )
512
+ locations.push(Location.new({
513
+ :name => 'Rock Quarry',
514
+ :description => 'Piles of rocks, both big and small, are placed here and there, a testament to someone\'s surely back-breaking labor.',
515
+ :coords => {:x => 3, :y => 5},
516
+ :locs_connected => {:north => false, :east => true, :south => false, :west => false},
385
517
  :danger_level => :moderate,
386
518
  :monster_level_range => 3..4,
387
519
  :items => [Gun.new, TowerSwitch.new],
@@ -389,9 +521,9 @@ module Gemwarrior
389
521
  })
390
522
  )
391
523
  locations.push(Location.new({
392
- :name => 'Sky Tower (Foyer)',
524
+ :name => 'Sky Tower (Entryway)',
393
525
  :description => 'You feel unsettled as you gaze upon the wondrous proportions of Emerald\'s home.',
394
- :coords => {:x => 5, :y => 4},
526
+ :coords => {:x => 8, :y => 6},
395
527
  :locs_connected => {:north => true, :east => true, :south => false, :west => true},
396
528
  :danger_level => :moderate,
397
529
  :monster_level_range => 3..4,
@@ -402,18 +534,18 @@ module Gemwarrior
402
534
  locations.push(Location.new({
403
535
  :name => 'Sky Tower (Cloud Garden)',
404
536
  :description => 'A perfectly-maintained array of wispy flowers and other ethereal plantlife contained within a cumulonimbus barrier.',
405
- :coords => {:x => 5, :y => 5},
537
+ :coords => {:x => 8, :y => 7},
406
538
  :locs_connected => {:north => false, :east => false, :south => true, :west => false},
407
539
  :danger_level => :moderate,
408
540
  :monster_level_range => 3..4,
409
- :items => [Flower.new],
541
+ :items => [Flower.new, Keystone.new],
410
542
  :bosses_abounding => []
411
543
  })
412
544
  )
413
545
  locations.push(Location.new({
414
546
  :name => 'Sky Tower (Armory)',
415
547
  :description => 'Weapons of all kinds litter the ground and are hung on hooks from the wall. Tower assailants beware/rejoice!',
416
- :coords => {:x => 4, :y => 4},
548
+ :coords => {:x => 7, :y => 6},
417
549
  :locs_connected => {:north => true, :east => true, :south => false, :west => false},
418
550
  :danger_level => :moderate,
419
551
  :monster_level_range => 3..4,
@@ -424,7 +556,7 @@ module Gemwarrior
424
556
  locations.push(Location.new({
425
557
  :name => 'Sky Tower (West Hallway)',
426
558
  :description => 'The hallway seems to stretch on for days.',
427
- :coords => {:x => 4, :y => 5},
559
+ :coords => {:x => 7, :y => 7},
428
560
  :locs_connected => {:north => true, :east => false, :south => true, :west => false},
429
561
  :danger_level => :moderate,
430
562
  :monster_level_range => 3..4,
@@ -435,7 +567,7 @@ module Gemwarrior
435
567
  locations.push(Location.new({
436
568
  :name => 'Sky Tower (Waterfalls)',
437
569
  :description => 'The seemingly neverending deluge of water causes this room to be quite loud, yet pretty.',
438
- :coords => {:x => 4, :y => 6},
570
+ :coords => {:x => 7, :y => 8},
439
571
  :locs_connected => {:north => true, :east => true, :south => false, :west => false},
440
572
  :danger_level => :moderate,
441
573
  :monster_level_range => 3..4,
@@ -445,9 +577,9 @@ module Gemwarrior
445
577
  )
446
578
  locations.push(Location.new({
447
579
  :name => 'Sky Tower (Massive Door)',
448
- :description => 'Before you lies a massive collection of cumulus clouds that form into a door, beyond which may well be your doom.',
449
- :coords => {:x => 5, :y => 6},
450
- :locs_connected => {:north => true, :east => true, :south => false, :west => true},
580
+ :description => 'Before you lies a massive collection of cumulus clouds that form into a seemingly impenetrable door, beyond which may well be your doom.',
581
+ :coords => {:x => 8, :y => 8},
582
+ :locs_connected => {:north => false, :east => true, :south => false, :west => true},
451
583
  :danger_level => :moderate,
452
584
  :monster_level_range => 4..5,
453
585
  :items => [MassiveDoor.new],
@@ -457,7 +589,7 @@ module Gemwarrior
457
589
  locations.push(Location.new({
458
590
  :name => 'Sky Tower (Throne Room)',
459
591
  :description => 'There, on a mighty seat made of broken dreams, sits Emerald himself, staring at you coldly, silently.',
460
- :coords => {:x => 5, :y => 7},
592
+ :coords => {:x => 8, :y => 9},
461
593
  :locs_connected => {:north => false, :east => false, :south => true, :west => false},
462
594
  :danger_level => :high,
463
595
  :monster_level_range => 5..7,
@@ -468,7 +600,7 @@ module Gemwarrior
468
600
  locations.push(Location.new({
469
601
  :name => 'Sky Tower (Lounge)',
470
602
  :description => 'Nothing but a simple couch, which looks very comfortable, exists in this corner of the tower.',
471
- :coords => {:x => 6, :y => 6},
603
+ :coords => {:x => 9, :y => 8},
472
604
  :locs_connected => {:north => false, :east => false, :south => true, :west => true},
473
605
  :danger_level => :moderate,
474
606
  :monster_level_range => 3..4,
@@ -479,7 +611,7 @@ module Gemwarrior
479
611
  locations.push(Location.new({
480
612
  :name => 'Sky Tower (East Hallway)',
481
613
  :description => 'Longish and neverending is what you might say about this stretch of the tower.',
482
- :coords => {:x => 6, :y => 5},
614
+ :coords => {:x => 9, :y => 7},
483
615
  :locs_connected => {:north => true, :east => false, :south => true, :west => false},
484
616
  :danger_level => :moderate,
485
617
  :monster_level_range => 3..4,
@@ -490,7 +622,7 @@ module Gemwarrior
490
622
  locations.push(Location.new({
491
623
  :name => 'Sky Tower (Kitchen)',
492
624
  :description => 'This kitchen looks well-used, as appliances abound, and leftover food sits atop counters.',
493
- :coords => {:x => 6, :y => 4},
625
+ :coords => {:x => 9, :y => 6},
494
626
  :locs_connected => {:north => true, :east => false, :south => false, :west => true},
495
627
  :danger_level => :moderate,
496
628
  :monster_level_range => 3..4,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemwarrior
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Chadwick
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-15 00:00:00.000000000 Z
11
+ date: 2015-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: os
@@ -187,6 +187,7 @@ files:
187
187
  - lib/gemwarrior/entities/items/flower.rb
188
188
  - lib/gemwarrior/entities/items/gun.rb
189
189
  - lib/gemwarrior/entities/items/herb.rb
190
+ - lib/gemwarrior/entities/items/keystone.rb
190
191
  - lib/gemwarrior/entities/items/massive_door.rb
191
192
  - lib/gemwarrior/entities/items/sparklything.rb
192
193
  - lib/gemwarrior/entities/items/stalactite.rb
@@ -242,8 +243,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
242
243
  version: '0'
243
244
  requirements: []
244
245
  rubyforge_project:
245
- rubygems_version: 2.4.6
246
+ rubygems_version: 2.4.8
246
247
  signing_key:
247
248
  specification_version: 4
248
249
  summary: RPG as RubyGem
249
- test_files: []
250
+ test_files:
251
+ - spec/rubywarrior_spec.rb
252
+ - spec/spec_helper.rb