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 +4 -4
- data/bin/gemwarrior +5 -1
- data/gemwarrior.gemspec +3 -3
- data/lib/gemwarrior/entities/player.rb +8 -3
- data/lib/gemwarrior/evaluator.rb +1 -1
- data/lib/gemwarrior/game.rb +3 -0
- data/lib/gemwarrior/misc/animation.rb +1 -1
- data/lib/gemwarrior/misc/music.rb +36 -0
- data/lib/gemwarrior/misc/version.rb +2 -2
- data/lib/gemwarrior/misc/wordlist.rb +2 -2
- data/lib/gemwarrior/repl.rb +6 -0
- data/lib/gemwarrior/world.rb +1 -1
- metadata +18 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b3c563f75f5ead6dc58429b57c95030fe5b13418
|
4
|
+
data.tar.gz: dccefd704798d1a4a3fb8c95c765483b6cda5335
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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
|
data/lib/gemwarrior/evaluator.rb
CHANGED
@@ -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
|
data/lib/gemwarrior/game.rb
CHANGED
@@ -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,
|
@@ -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
|
data/lib/gemwarrior/repl.rb
CHANGED
@@ -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
|
data/lib/gemwarrior/world.rb
CHANGED
@@ -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.
|
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.
|
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.
|
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
|