gemwarrior 0.9.33 → 0.9.34

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 43ca88b5006faf19bff1e6d1ffb9f05d8b882de6
4
- data.tar.gz: 46ed917818ee4cdff4a53b7c672a2ce02269ed9f
3
+ metadata.gz: 523d98df545f5eaf8a9279b406d78dbfef8f24e3
4
+ data.tar.gz: bebad9e25fd49e38414971b4a00eae814ad47f30
5
5
  SHA512:
6
- metadata.gz: 260bda072394723244614a23f014daebbe428ffc40a7fcd0ee55a88f2bb5444c7cda3571c9c5858d9b2a445228c0958d3bdcb9c50dcf23f7ecc449d9a7f32192
7
- data.tar.gz: e6530a704db9743f72e056d481db1681c63be07f6a3d90425959bd9ab10296ffa570c72d47da3fc30a294eeeed13d7b737c4da767c3181a3179b5bf5a4a18323
6
+ metadata.gz: 0af08ecba64189fd0d0584e2083784aecca10fc9a19e988d986e4d7415f2867f3b129c9631db7377496b4d7819e5647e43ed49c4f3f59991c6877844e2f86d57
7
+ data.tar.gz: dc352fd0e448a78e6441a78601694a744afae6f3a3b62e18e2a9249bffe95d19bbff2d5ad40e762ca8593a40e956f59dc65f63b6684a3e57affed7bab024182e
@@ -925,6 +925,8 @@
925
925
  east: true
926
926
  south: true
927
927
  west: false
928
+ items:
929
+ - WareHawker
928
930
 
929
931
  -
930
932
  name: 'Spinelia (Southeast)'
@@ -181,7 +181,15 @@ module Gemwarrior
181
181
  else
182
182
  if entity.eql?(monster)
183
183
  # base attack range
184
- atk_range = player.atk_lo..player.atk_hi
184
+ base_atk_lo = player.atk_lo
185
+ base_atk_hi = player.atk_hi
186
+
187
+ if player.has_weapon_equipped?
188
+ base_atk_lo += player.inventory.weapon.atk_lo
189
+ base_atk_hi += player.inventory.weapon.atk_hi
190
+ end
191
+
192
+ atk_range = base_atk_lo..base_atk_hi
185
193
 
186
194
  # beast mode modifier
187
195
  if player.beast_mode
@@ -8,8 +8,8 @@ module Gemwarrior
8
8
  def initialize
9
9
  self.name = 'dagger'
10
10
  self.description = 'Flint that has been sharpened to a point, attached to a block of smooth granite by thin rope. Truly a work of art.'
11
- self.atk_lo = 2
12
- self.atk_hi = 4
11
+ self.atk_lo = 1
12
+ self.atk_hi = 3
13
13
  self.takeable = true
14
14
  self.useable = false
15
15
  self.equippable = true
@@ -8,8 +8,8 @@ module Gemwarrior
8
8
  def initialize
9
9
  self.name = 'gun'
10
10
  self.description = 'Pew pew goes this firearm, you suspect.'
11
- self.atk_lo = 3
12
- self.atk_hi = 5
11
+ self.atk_lo = 2
12
+ self.atk_hi = 4
13
13
  self.takeable = true
14
14
  self.useable = true
15
15
  self.equippable = true
@@ -17,7 +17,7 @@ module Gemwarrior
17
17
  end
18
18
 
19
19
  def use(player = nil)
20
- puts 'You pull the trigger on the gun, but realize there are no bullets in it. So, it does not do much except cause a barely audible *click* sound.'
20
+ puts 'You pull the trigger on the gun, but it does not fire. An inscription on the barrel reads: "Only shoots when pointed at a monster." How safe!'
21
21
  { type: nil, data: nil }
22
22
  end
23
23
  end
@@ -0,0 +1,25 @@
1
+ # lib/gemwarrior/entities/items/mace.rb
2
+ # Item::Mace
3
+
4
+ require_relative '../item'
5
+
6
+ module Gemwarrior
7
+ class Mace < Item
8
+ def initialize
9
+ self.name = 'mace'
10
+ self.description = 'Sharp spikes atop a steel ball, affixed to a sturdy wooden handle. You could do damage with this.'
11
+ self.atk_lo = 4
12
+ self.atk_hi = 6
13
+ self.takeable = true
14
+ self.useable = true
15
+ self.consumable = false
16
+ self.equippable = true
17
+ self.equipped = false
18
+ end
19
+
20
+ def use(player = nil)
21
+ puts 'You swing the mace around a few times, really testing out its smashability.'
22
+ { type: nil, data: nil }
23
+ end
24
+ end
25
+ end
@@ -8,8 +8,8 @@ module Gemwarrior
8
8
  def initialize
9
9
  self.name = 'opalaser'
10
10
  self.description = 'Gleaming with supernatural light, this object feels alien, yet familiar.'
11
- self.atk_lo = 10
12
- self.atk_hi = 12
11
+ self.atk_lo = 9
12
+ self.atk_hi = 11
13
13
  self.takeable = true
14
14
  self.useable = true
15
15
  self.equippable = true
@@ -8,6 +8,8 @@ require_relative 'dagger'
8
8
  module Gemwarrior
9
9
  class SmallHole < Item
10
10
  # CONSTANTS
11
+ PRICE_HERB = 10
12
+ PRICE_DAGGER = 150
11
13
  PLAYER_ROX_INSUFFICIENT = '>> "Pity. You are a bit short on funds to purchase that item."'
12
14
  PLAYER_ITEMS_ADDITIONAL = '>> "Anything else?"'
13
15
  PLAYER_COMMAND_INVALID = '>> "Huh?"'
@@ -25,25 +27,26 @@ module Gemwarrior
25
27
 
26
28
  def use(player = nil)
27
29
  puts 'You lower yourself to the ground and attempt to peer in the hole in the wall. Just as you begin to think this is a fruitless endeavor, a pair of bright, beady eyes manifest, and an unexpectedly low voice begins speaking to you:'
28
-
30
+ puts
31
+
29
32
  rat_shop(player)
30
33
  end
31
-
34
+
32
35
  def reuse(player = nil)
33
36
  rat_shop(player)
34
37
  end
35
-
38
+
36
39
  def rat_shop(player)
37
40
  items_purchased = []
38
-
41
+
39
42
  puts '>> "Hello, wanderer. Welcome to my establishment, as it were. Are you in need of anything?"'
40
43
  puts
41
44
  puts 'The creature gently shoves a small slip of paper out of his hole and towards you. You take a peek and notice it has a list of things with prices on it.'
42
45
  puts
43
46
  puts 'Rockney\'s Hole in the Wall'
44
47
  puts '--------------------------'
45
- puts '(1) Herb - 10 rox'
46
- puts '(2) Dagger - 150 rox'
48
+ puts "(1) Herb - #{PRICE_HERB} rox"
49
+ puts "(2) Dagger - #{PRICE_DAGGER} rox"
47
50
  puts
48
51
  puts '>> "What are you in need of?"'
49
52
 
@@ -51,9 +54,10 @@ module Gemwarrior
51
54
  puts ' 1 - Herb'
52
55
  puts ' 2 - Dagger'
53
56
  puts ' x - leave'
54
-
57
+ print 'Option? '
58
+
55
59
  choice = gets.chomp!
56
-
60
+
57
61
  case choice
58
62
  when '1'
59
63
  if player.rox >= 10
@@ -0,0 +1,25 @@
1
+ # lib/gemwarrior/entities/items/spear.rb
2
+ # Item::Spear
3
+
4
+ require_relative '../item'
5
+
6
+ module Gemwarrior
7
+ class Spear < Item
8
+ def initialize
9
+ self.name = 'spear'
10
+ self.description = 'Sharp spikes atop a steel ball, affixed to a sturdy wooden handle. You could do damage with this.'
11
+ self.atk_lo = 3
12
+ self.atk_hi = 7
13
+ self.takeable = true
14
+ self.useable = true
15
+ self.consumable = false
16
+ self.equippable = true
17
+ self.equipped = false
18
+ end
19
+
20
+ def use(player = nil)
21
+ puts 'This spear does, indeed, appear to strike fear upon that which is near.'
22
+ { type: nil, data: nil }
23
+ end
24
+ end
25
+ end
@@ -8,8 +8,8 @@ module Gemwarrior
8
8
  def initialize
9
9
  self.name = 'stone'
10
10
  self.description = 'A small, sharp mega pebble, suitable for tossing in amusement, and perhaps combat.'
11
- self.atk_lo = 2
12
- self.atk_hi = 3
11
+ self.atk_lo = 1
12
+ self.atk_hi = 2
13
13
  self.takeable = true
14
14
  self.useable = false
15
15
  self.equippable = true
@@ -0,0 +1,91 @@
1
+ # lib/gemwarrior/entities/items/ware_hawker.rb
2
+ # Item::WareHawker
3
+
4
+ require_relative '../item'
5
+ require_relative 'herb'
6
+ require_relative 'dagger'
7
+
8
+ module Gemwarrior
9
+ class WareHawker < Item
10
+ # CONSTANTS
11
+ PRICE_MACE = 200
12
+ PRICE_SPEAR = 250
13
+ PLAYER_ROX_INSUFFICIENT = '>> "Are you seriously wasting my time? You are testing me, human."'
14
+ PLAYER_ITEMS_ADDITIONAL = '>> "Will there be something else?"'
15
+ PLAYER_COMMAND_INVALID = '>> "That means nothing to me."'
16
+
17
+ def initialize
18
+ self.name = 'ware_hawker'
19
+ self.description = 'A literal anthropomorphic hawk has set up shop behind a crudely-made table. Some wares are scattered atop its surface, seemingly within anyone\'s grasp, but the hawk\'s piercing eyes seem to belie this observation.'
20
+ self.atk_lo = nil
21
+ self.atk_hi = nil
22
+ self.takeable = false
23
+ self.useable = true
24
+ self.equippable = false
25
+ self.equipped = false
26
+ end
27
+
28
+ def use(player = nil)
29
+ puts 'You greet the hawk, mentioning that you are interested in the objects presented. The hawk speaks in a beautiful, yet commanding, tone:'
30
+ puts
31
+
32
+ hawk_shop(player)
33
+ end
34
+
35
+ def reuse(player = nil)
36
+ hawk_shop(player)
37
+ end
38
+
39
+ def hawk_shop(player)
40
+ items_purchased = []
41
+
42
+ puts '>> "I hope you have rox, human. My time is amenable to business transactions, not idle chit chat. What do you want?"'
43
+ puts
44
+ puts 'A feathered arm quickly moves across the table in an arc suggesting to you that a choice is to be made. Each object has a price tag underneath it, painstakingly written in ink.'
45
+ puts
46
+ puts "(1) Mace - #{PRICE_MACE} rox"
47
+ puts "(2) Spear - #{PRICE_SPEAR} rox"
48
+ puts
49
+ puts '>> "Choose. Now.'
50
+
51
+ loop do
52
+ puts ' 1 - Mace'
53
+ puts ' 2 - Spear'
54
+ puts ' x - leave'
55
+ print 'Option? '
56
+ choice = gets.chomp!
57
+
58
+ case choice
59
+ when '1'
60
+ if player.rox >= PRICE_MACE
61
+ player.rox -= PRICE_MACE
62
+ items_purchased.push(Mace.new)
63
+ puts '>> "Yes, fine."'
64
+ puts PLAYER_ITEMS_ADDITIONAL
65
+ next
66
+ else
67
+ puts PLAYER_ROX_INSUFFICIENT
68
+ next
69
+ end
70
+ when '2'
71
+ if player.rox >= PRICE_SPEAR
72
+ player.rox -= PRICE_SPEAR
73
+ items_purchased.push(Spear.new)
74
+ puts '>> "Hmph. Very well, then."'
75
+ puts PLAYER_ITEMS_ADDITIONAL
76
+ next
77
+ else
78
+ puts PLAYER_ROX_INSUFFICIENT
79
+ next
80
+ end
81
+ when 'x'
82
+ puts '>> "Our business is complete then."'
83
+ return { type: 'purchase', data: items_purchased }
84
+ else
85
+ puts PLAYER_COMMAND_INVALID
86
+ next
87
+ end
88
+ end
89
+ end
90
+ end
91
+ end
@@ -66,10 +66,12 @@ module Gemwarrior
66
66
  end
67
67
 
68
68
  weapon_slot = ''
69
+ atk_lo = self.atk_lo
70
+ atk_hi = self.atk_hi
69
71
  if has_weapon_equipped?
70
72
  weapon_slot = inventory.weapon.name
71
- self.atk_lo = inventory.weapon.atk_lo
72
- self.atk_hi = inventory.weapon.atk_hi
73
+ atk_lo += inventory.weapon.atk_lo
74
+ atk_hi += inventory.weapon.atk_hi
73
75
  else
74
76
  weapon_slot = '(unarmed)'
75
77
  end
@@ -86,7 +88,7 @@ module Gemwarrior
86
88
  self_text << "LEVEL : #{self.level}\n"
87
89
  self_text << "EXPERIENCE: #{self.xp}\n"
88
90
  self_text << "HIT POINTS: #{self.hp_cur}/#{self.hp_max}\n"
89
- self_text << "ATTACK : #{self.atk_lo}-#{self.atk_hi}\n"
91
+ self_text << "ATTACK : #{atk_lo}-#{atk_hi}\n"
90
92
  self_text << "DEXTERITY : #{self.dexterity}\n"
91
93
  self_text << "DEFENSE : #{self.defense}\n"
92
94
  self_text << "ABILITIES : #{abilities}\n"
@@ -2,5 +2,5 @@
2
2
  # Version of Gem Warrior
3
3
 
4
4
  module Gemwarrior
5
- VERSION = '0.9.33'
5
+ VERSION = '0.9.34'
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gemwarrior
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.33
4
+ version: 0.9.34
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Chadwick
@@ -252,6 +252,7 @@ files:
252
252
  - lib/gemwarrior/entities/items/keystone.rb
253
253
  - lib/gemwarrior/entities/items/ladder.rb
254
254
  - lib/gemwarrior/entities/items/letter.rb
255
+ - lib/gemwarrior/entities/items/mace.rb
255
256
  - lib/gemwarrior/entities/items/map.rb
256
257
  - lib/gemwarrior/entities/items/massive_door.rb
257
258
  - lib/gemwarrior/entities/items/opalaser.rb
@@ -261,12 +262,14 @@ files:
261
262
  - lib/gemwarrior/entities/items/small_hole.rb
262
263
  - lib/gemwarrior/entities/items/snowman.rb
263
264
  - lib/gemwarrior/entities/items/sparklything.rb
265
+ - lib/gemwarrior/entities/items/spear.rb
264
266
  - lib/gemwarrior/entities/items/stalactite.rb
265
267
  - lib/gemwarrior/entities/items/stone.rb
266
268
  - lib/gemwarrior/entities/items/stonemite.rb
267
269
  - lib/gemwarrior/entities/items/tent.rb
268
270
  - lib/gemwarrior/entities/items/throne.rb
269
271
  - lib/gemwarrior/entities/items/tree.rb
272
+ - lib/gemwarrior/entities/items/ware_hawker.rb
270
273
  - lib/gemwarrior/entities/items/waterfall.rb
271
274
  - lib/gemwarrior/entities/location.rb
272
275
  - lib/gemwarrior/entities/monster.rb