gemwarrior 0.8.1 → 0.8.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7d9ee449614471055090e892a1df42560c7aa007
4
- data.tar.gz: 965e2ba208c084fa2a09560264bc2fc93681c85d
3
+ metadata.gz: b3c563f75f5ead6dc58429b57c95030fe5b13418
4
+ data.tar.gz: dccefd704798d1a4a3fb8c95c765483b6cda5335
5
5
  SHA512:
6
- metadata.gz: 13103d68009ab62661164fecacd8f959034078e069ce3e150935fc275659fcab5c7450a4b6496078d092f6da88731205b17301b0a11357e28a2851e41af4d0a5
7
- data.tar.gz: 65b36061328f65a994f5e58fb8321a3b9b97e25aa3e5105c580751555aacb03282ad3513a965b3bde0fa662c5021e11460fef3766834b46e29c1a06b74c15cf5
6
+ metadata.gz: 38d67f40be64e86fee9037aa59aaea3fbe5af4f03a041094a97d3129d2ebd80ea4900a70b91f3d2c3a9192e0b20a3d848eec071159c63d9c6d63368a6ca26758
7
+ data.tar.gz: c1111660e8ba6251c208804c84c784ca23ac2465b78c015def3978d2fc66afd127ddf77761e0dd482fd4a1b28ccfecabbffdb8f14d07dfe7d53f9c0119928e05
data/bin/gemwarrior CHANGED
@@ -8,7 +8,7 @@ require_relative '../lib/gemwarrior/game'
8
8
  GAME_NAME = "Gem Warrior"
9
9
 
10
10
  def parse_options
11
- options = {:debug_mode => false, :god_mode => false, :beast_mode => false, :use_wordnik => false}
11
+ options = {:debug_mode => false, :god_mode => false, :beast_mode => false, :use_wordnik => false, :sound => false}
12
12
 
13
13
  optparse = OptionParser.new do |opts|
14
14
  opts.on('-v', '--version', 'Display version number and exit') do
@@ -31,6 +31,10 @@ def parse_options
31
31
  opts.on('-w', '--wordnik', 'Use Wordnik to generate more diverse, dynamic descriptors of entities') do
32
32
  options[:use_wordnik] = true
33
33
  end
34
+
35
+ opts.on('-s', '--sound', 'Turn sound on') do
36
+ options[:sound] = true
37
+ end
34
38
  end
35
39
 
36
40
  optparse.parse!()
data/gemwarrior.gemspec CHANGED
@@ -20,13 +20,13 @@ Gem::Specification.new do |spec|
20
20
  spec.license = 'MIT'
21
21
 
22
22
  spec.add_runtime_dependency 'os', '~> 0.9', '>= 0.9.6'
23
- spec.add_runtime_dependency 'matrext', '~> 0.4.7'
23
+ spec.add_runtime_dependency 'matrext', '~> 0.4.8'
24
24
  spec.add_runtime_dependency 'http', '~> 0.8.10'
25
25
  spec.add_runtime_dependency 'json', '~> 1.8.2'
26
26
  spec.add_runtime_dependency 'colorize', '~> 0.7.7'
27
+ spec.add_runtime_dependency 'feep', '~> 0.1.3'
28
+
27
29
  #spec.add_runtime_dependency 'hr', '~> 0.0.1'
28
-
29
- #spec.add_runtime_dependency 'feep', '~> 0.1.0'
30
30
  #spec.add_runtime_dependency 'wordnik', '~> 4.12'
31
31
 
32
32
  spec.add_development_dependency 'pry-byebug', '~> 3.0'
@@ -142,7 +142,7 @@ module Gemwarrior
142
142
  inventory.list_contents
143
143
  end
144
144
 
145
- def go(locations, direction)
145
+ def go(locations, direction, sound)
146
146
  case direction
147
147
  when 'north', 'n'
148
148
  self.cur_coords = {
@@ -173,7 +173,7 @@ module Gemwarrior
173
173
  }
174
174
  direction_text = '<<<'
175
175
  end
176
- print_traveling_text(direction_text)
176
+ print_traveling_text(direction_text, sound)
177
177
  end
178
178
 
179
179
  def attack(world, monster)
@@ -217,8 +217,13 @@ module Gemwarrior
217
217
  end
218
218
 
219
219
  # TRAVEL
220
- def print_traveling_text(direction_text)
220
+ def print_traveling_text(direction_text, sound)
221
221
  Animation::run({:oneline => false, :phrase => "* #{direction_text} *"})
222
+ if sound
223
+ Music::cue([
224
+ {:freq_or_note => 'C3,E3'}
225
+ ])
226
+ end
222
227
  end
223
228
 
224
229
  # CHARACTER
@@ -347,7 +347,7 @@ module Gemwarrior
347
347
  else
348
348
  direction = param1
349
349
  if world.can_move?(direction)
350
- world.player.go(world.locations, param1)
350
+ world.player.go(world.locations, param1, world.sound)
351
351
  world.location_by_coords(world.player.cur_coords).checked_for_monsters = false
352
352
  world.describe(world.location_by_coords(world.player.cur_coords))
353
353
  else
@@ -3,10 +3,12 @@
3
3
 
4
4
  require 'colorize'
5
5
  require 'matrext'
6
+ require 'feep'
6
7
 
7
8
  require_relative 'entities/player'
8
9
  require_relative 'misc/player_levels'
9
10
  require_relative 'misc/animation'
11
+ require_relative 'misc/music'
10
12
  require_relative 'world'
11
13
  require_relative 'evaluator'
12
14
  require_relative 'repl'
@@ -32,6 +34,7 @@ module Gemwarrior
32
34
 
33
35
  world.debug_mode = options.fetch(:debug_mode)
34
36
  world.use_wordnik = options.fetch(:use_wordnik)
37
+ world.sound = options.fetch(:sound)
35
38
 
36
39
  world.player = Player.new({
37
40
  :description => PLAYER_DESC_DEFAULT,
@@ -1,4 +1,4 @@
1
- # lib/gemwarrior/animation.rb
1
+ # lib/gemwarrior/misc/animation.rb
2
2
  # Animation routine
3
3
 
4
4
  module Gemwarrior
@@ -0,0 +1,36 @@
1
+ # lib/gemwarrior/misc/music.rb
2
+ # Music cue
3
+
4
+ module Gemwarrior
5
+ module Music
6
+ def self.cue(sequence)
7
+ defaults = {
8
+ :freq_or_note => 440,
9
+ :waveform => 'saw',
10
+ :volume => 0.5,
11
+ :duration => 500,
12
+ :notext => true
13
+ }
14
+
15
+ th = Thread.new do
16
+ sequence.each do |note|
17
+ note_to_play = note[:freq_or_note]
18
+ waveform = note[:waveform].nil? ? defaults[:waveform] : note[:waveform]
19
+ volume = note[:volume].nil? ? defaults[:volume] : note[:volume]
20
+ duration = note[:duration].nil? ? defaults[:duration] : note[:duration]
21
+ notext = note[:notext].nil? ? defaults[:notext] : note[:notext]
22
+
23
+ Feep::Base.new({
24
+ :freq_or_note => note_to_play,
25
+ :waveform => waveform,
26
+ :volume => volume,
27
+ :duration => duration,
28
+ :notext => notext
29
+ })
30
+ end
31
+ end
32
+
33
+ return th.join
34
+ end
35
+ end
36
+ end
@@ -1,6 +1,6 @@
1
- # lib/gemwarrior/version.rb
1
+ # lib/gemwarrior/misc/version.rb
2
2
  # Version of Gem Warrior
3
3
 
4
4
  module Gemwarrior
5
- VERSION = "0.8.1"
5
+ VERSION = "0.8.2"
6
6
  end
@@ -1,4 +1,4 @@
1
- # lib/gemwarrior/wordlist.rb
1
+ # lib/gemwarrior/misc/wordlist.rb
2
2
  # List of words for flavor text, hopefully randomized from Wordnik
3
3
 
4
4
  require 'http'
@@ -112,4 +112,4 @@ module Gemwarrior
112
112
  end
113
113
 
114
114
  end
115
- end
115
+ end
@@ -53,6 +53,12 @@ module Gemwarrior
53
53
  puts "/-+-+-+ +-+-+-+-+-+-+-\\".colorize(:yellow)
54
54
  puts '|G|E|M| |W|A|R|R|I|O|R|'.colorize(:yellow)
55
55
  puts "\\-+-+-+ +-+-+-+-+-+-+-/".colorize(:yellow)
56
+
57
+ if world.sound
58
+ Music::cue([
59
+ {:freq_or_note => 'A3,E4,C#5,F#5', :duration => 1000}
60
+ ])
61
+ end
56
62
  end
57
63
 
58
64
  def print_splash_message
@@ -17,7 +17,7 @@ module Gemwarrior
17
17
  ERROR_LIST_PARAM_INVALID = 'That is not something that can be listed.'
18
18
  ERROR_LOCATION_DESCRIBE_ENTITY_INVALID = 'You do not see that here.'
19
19
 
20
- attr_accessor :monsters, :locations, :player, :debug_mode, :use_wordnik
20
+ attr_accessor :monsters, :locations, :player, :debug_mode, :use_wordnik, :sound
21
21
 
22
22
  def initialize
23
23
  self.monsters = init_monsters
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.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Chadwick
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 0.4.7
39
+ version: 0.4.8
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: 0.4.7
46
+ version: 0.4.8
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: http
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -86,6 +86,20 @@ dependencies:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
88
  version: 0.7.7
89
+ - !ruby/object:Gem::Dependency
90
+ name: feep
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 0.1.3
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 0.1.3
89
103
  - !ruby/object:Gem::Dependency
90
104
  name: pry-byebug
91
105
  requirement: !ruby/object:Gem::Requirement
@@ -226,6 +240,7 @@ files:
226
240
  - lib/gemwarrior/game.rb
227
241
  - lib/gemwarrior/inventory.rb
228
242
  - lib/gemwarrior/misc/animation.rb
243
+ - lib/gemwarrior/misc/music.rb
229
244
  - lib/gemwarrior/misc/player_levels.rb
230
245
  - lib/gemwarrior/misc/version.rb
231
246
  - lib/gemwarrior/misc/wordlist.rb