gemwarrior 0.8.1 → 0.8.2

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: 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