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