gemwarrior 0.15.5 → 0.15.10
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/.gitignore +3 -1
- data/README.md +44 -44
- data/bin/gemwarrior +6 -5
- data/data/default_world.yaml +66 -66
- data/data/fantasy_names.yaml +4223 -4223
- data/gemwarrior.gemspec +44 -43
- data/lib/gemwarrior/entities/entity.rb +1 -0
- data/lib/gemwarrior/entities/item.rb +3 -3
- data/lib/gemwarrior/entities/items/apple.rb +11 -0
- data/lib/gemwarrior/entities/items/cup.rb +5 -0
- data/lib/gemwarrior/entities/items/dehumidifier.rb +6 -1
- data/lib/gemwarrior/entities/items/feather.rb +5 -0
- data/lib/gemwarrior/entities/items/flower.rb +5 -0
- data/lib/gemwarrior/entities/items/keystone.rb +5 -0
- data/lib/gemwarrior/entities/items/pedestal.rb +20 -20
- data/lib/gemwarrior/entities/items/stonemite.rb +5 -0
- data/lib/gemwarrior/entities/people/arena_master.rb +49 -49
- data/lib/gemwarrior/entities/people/rockney.rb +2 -2
- data/lib/gemwarrior/entities/people/ware_hawker.rb +3 -3
- data/lib/gemwarrior/entities/person.rb +3 -2
- data/lib/gemwarrior/entities/player.rb +15 -11
- data/lib/gemwarrior/entities/weapon.rb +1 -1
- data/lib/gemwarrior/evaluator.rb +4 -3
- data/lib/gemwarrior/inventory.rb +11 -5
- data/lib/gemwarrior/misc/audio.rb +65 -36
- data/lib/gemwarrior/misc/audio_cues.rb +71 -7
- data/lib/gemwarrior/misc/bloops_cues.rb +63 -5
- data/lib/gemwarrior/repl.rb +131 -17
- data/lib/gemwarrior/version.rb +1 -1
- data/tests/test-save-load/save.conf +2 -2
- metadata +22 -8
@@ -66,7 +66,7 @@ module Gemwarrior
|
|
66
66
|
weapon_slot = self.inventory.weapon.name
|
67
67
|
net_atk_lo = base_atk_lo + self.inventory.weapon.atk_lo
|
68
68
|
net_atk_hi = base_atk_hi + self.inventory.weapon.atk_hi
|
69
|
-
net_dexterity =
|
69
|
+
net_dexterity = base_dexterity + self.inventory.weapon.dex_mod
|
70
70
|
end
|
71
71
|
|
72
72
|
# juice the armor display
|
@@ -104,7 +104,7 @@ module Gemwarrior
|
|
104
104
|
self_text << "ABILITIES :"
|
105
105
|
self_text << "#{abilities}"
|
106
106
|
self_text << "INVENTORY : #{self.inventory.contents}\n"
|
107
|
-
|
107
|
+
|
108
108
|
if GameOptions.data['debug_mode']
|
109
109
|
self_text << "\n"
|
110
110
|
self_text << "[DEBUG STUFF]\n"
|
@@ -126,7 +126,7 @@ module Gemwarrior
|
|
126
126
|
self_text << "\n\n"
|
127
127
|
|
128
128
|
self_text << "[#{"Current Status".colorize(:yellow)}]\nBreathing, non-naked, with a #{self.face.colorize(:yellow)} face, #{self.hands.colorize(:yellow)} hands, and feeling, generally, #{self.mood.colorize(:yellow)}."
|
129
|
-
|
129
|
+
|
130
130
|
self_text << "\n"
|
131
131
|
end
|
132
132
|
|
@@ -210,41 +210,45 @@ module Gemwarrior
|
|
210
210
|
|
211
211
|
def list_inventory
|
212
212
|
inventory.list_contents
|
213
|
-
end
|
213
|
+
end
|
214
214
|
|
215
215
|
def go(world, direction)
|
216
216
|
case direction
|
217
217
|
when 'north', 'n'
|
218
218
|
self.cur_coords = {
|
219
|
-
x: cur_coords[:x],
|
219
|
+
x: cur_coords[:x],
|
220
220
|
y: cur_coords[:y]+1,
|
221
221
|
z: cur_coords[:z]
|
222
222
|
}
|
223
|
+
direction_cue = :player_travel_north
|
223
224
|
direction_text = '^^^'
|
224
225
|
when 'east', 'e'
|
225
226
|
self.cur_coords = {
|
226
|
-
x: cur_coords[:x]+1,
|
227
|
+
x: cur_coords[:x]+1,
|
227
228
|
y: cur_coords[:y],
|
228
229
|
z: cur_coords[:z]
|
229
230
|
}
|
231
|
+
direction_cue = :player_travel_east
|
230
232
|
direction_text = '>>>'
|
231
233
|
when 'south', 's'
|
232
234
|
self.cur_coords = {
|
233
|
-
x: cur_coords[:x],
|
235
|
+
x: cur_coords[:x],
|
234
236
|
y: cur_coords[:y]-1,
|
235
237
|
z: cur_coords[:z]
|
236
238
|
}
|
239
|
+
direction_cue = :player_travel_south
|
237
240
|
direction_text = 'vvv'
|
238
241
|
when 'west', 'w'
|
239
242
|
self.cur_coords = {
|
240
|
-
x: cur_coords[:x]-1,
|
243
|
+
x: cur_coords[:x]-1,
|
241
244
|
y: cur_coords[:y],
|
242
245
|
z: cur_coords[:z]
|
243
246
|
}
|
247
|
+
direction_cue = :player_travel_west
|
244
248
|
direction_text = '<<<'
|
245
249
|
end
|
246
250
|
world.location_by_coords(self.cur_coords).visited = true
|
247
|
-
print_traveling_text(direction_text)
|
251
|
+
print_traveling_text(direction_cue, direction_text)
|
248
252
|
|
249
253
|
# stats
|
250
254
|
self.movements_made += 1
|
@@ -365,8 +369,8 @@ module Gemwarrior
|
|
365
369
|
return 'death'
|
366
370
|
end
|
367
371
|
|
368
|
-
def print_traveling_text(direction_text)
|
369
|
-
Audio.play_synth(
|
372
|
+
def print_traveling_text(direction_cue, direction_text)
|
373
|
+
Audio.play_synth(direction_cue)
|
370
374
|
Animation.run(phrase: "* #{direction_text} *", oneline: false)
|
371
375
|
end
|
372
376
|
|
data/lib/gemwarrior/evaluator.rb
CHANGED
@@ -80,8 +80,8 @@ module Gemwarrior
|
|
80
80
|
'Rest, but ensure battle for testing'
|
81
81
|
]
|
82
82
|
|
83
|
-
self.commands = %w(character look rest take talk inventory use drop equip unequip go north east south west attack breakthru change version checkupdate help quit quit!)
|
84
|
-
self.aliases = %w(c l r t tk i u d eq ue g n e s w a br ch v cu h q qq)
|
83
|
+
self.commands = %w(character look rest take talk inventory use open drop equip unequip go north east south west attack breakthru change version checkupdate help quit quit!)
|
84
|
+
self.aliases = %w(c l r t tk i u o d eq ue g n e s w a br ch v cu h q qq)
|
85
85
|
self.extras = %w(exit exit! x xx fight f ? ?? ???)
|
86
86
|
self.cmd_descriptions = [
|
87
87
|
'Display character information',
|
@@ -91,6 +91,7 @@ module Gemwarrior
|
|
91
91
|
'Talk to person',
|
92
92
|
'Look in your inventory',
|
93
93
|
'Use item (in inventory or environment)',
|
94
|
+
'Open item (in inventory or environment)',
|
94
95
|
'Drop item',
|
95
96
|
'Equip item',
|
96
97
|
'Unequip item',
|
@@ -463,7 +464,7 @@ module Gemwarrior
|
|
463
464
|
end
|
464
465
|
end
|
465
466
|
end
|
466
|
-
when 'use', 'u'
|
467
|
+
when 'use', 'u', 'open', 'o'
|
467
468
|
if param1.nil?
|
468
469
|
ERROR_USE_PARAM_MISSING
|
469
470
|
else
|
data/lib/gemwarrior/inventory.rb
CHANGED
@@ -26,6 +26,14 @@ module Gemwarrior
|
|
26
26
|
self.armor = armor
|
27
27
|
end
|
28
28
|
|
29
|
+
def an_words
|
30
|
+
['herb']
|
31
|
+
end
|
32
|
+
|
33
|
+
def article_chooser(word)
|
34
|
+
(VOWELS.include?(word.to_s[0]) or an_words.include?(word.to_s)) ? 'an' : 'a'
|
35
|
+
end
|
36
|
+
|
29
37
|
def is_empty?
|
30
38
|
self.items.nil? || self.items.empty?
|
31
39
|
end
|
@@ -89,8 +97,7 @@ module Gemwarrior
|
|
89
97
|
if q > 1
|
90
98
|
return "You have #{q} #{i.to_s.colorize(:yellow)}#{'s'.colorize(:yellow)}."
|
91
99
|
else
|
92
|
-
|
93
|
-
return "You have #{article} #{i.to_s.colorize(:yellow)}."
|
100
|
+
return "You have #{self.article_chooser(i)} #{i.to_s.colorize(:yellow)}."
|
94
101
|
end
|
95
102
|
# multiple items? return array of strings to mush together
|
96
103
|
else
|
@@ -100,8 +107,7 @@ module Gemwarrior
|
|
100
107
|
if q > 1
|
101
108
|
item_arr.push("#{q} #{i.to_s.colorize(:yellow)}#{'s'.colorize(:yellow)}")
|
102
109
|
else
|
103
|
-
|
104
|
-
item_arr.push("#{article} #{i.to_s.colorize(:yellow)}")
|
110
|
+
item_arr.push("#{self.article_chooser(i)} #{i.to_s.colorize(:yellow)}")
|
105
111
|
end
|
106
112
|
end
|
107
113
|
|
@@ -159,7 +165,7 @@ module Gemwarrior
|
|
159
165
|
return "The #{i.name.colorize(:yellow)} has taken charge, and been equipped."
|
160
166
|
elsif i.is_armor
|
161
167
|
self.armor = i
|
162
|
-
return "The #{i.name.colorize(:yellow)} has fortified, and
|
168
|
+
return "The #{i.name.colorize(:yellow)} has fortified you, and been equipped."
|
163
169
|
end
|
164
170
|
else
|
165
171
|
return ERROR_ITEM_EQUIP_NONARMAMENT
|
@@ -7,25 +7,43 @@ require_relative '../game_options'
|
|
7
7
|
|
8
8
|
module Gemwarrior
|
9
9
|
module Audio
|
10
|
+
# CONSTANTS
|
11
|
+
ERROR_SOUND_NOT_ENABLED = 'Sound is disabled! Enable in main options to hear sound.'
|
12
|
+
|
10
13
|
def self.init
|
11
14
|
if GameOptions.data['sound_system'].eql?('win32-sound')
|
12
15
|
begin
|
13
16
|
require 'win32/sound'
|
14
|
-
rescue
|
17
|
+
rescue
|
15
18
|
GameOptions.data['errors'] = "#{GameOptions.data['sound_system']} could not be loaded. You may need to run 'gem install #{GameOptions.data['sound_system']}'. Silence for now."
|
16
19
|
end
|
17
20
|
elsif GameOptions.data['sound_system'].eql?('feep')
|
18
21
|
begin
|
19
22
|
require 'feep'
|
20
|
-
rescue
|
23
|
+
rescue
|
21
24
|
GameOptions.data['errors'] = "#{GameOptions.data['sound_system']} could not be loaded. You may need to run 'gem install #{GameOptions.data['sound_system']}'. Silence for now."
|
22
25
|
end
|
23
26
|
elsif GameOptions.data['sound_system'].eql?('bloops')
|
24
27
|
begin
|
25
28
|
require 'bloops'
|
26
|
-
rescue
|
29
|
+
rescue
|
27
30
|
GameOptions.data['errors'] = "#{GameOptions.data['sound_system']} could not be loaded. You may need to run 'gem install #{GameOptions.data['sound_system']}aphone'. Silence for now."
|
28
31
|
end
|
32
|
+
else
|
33
|
+
GameOptions.data['errors'] = "'#{GameOptions.data['sound_system']}' is not a valid sound system. Audio subsystem load failed."
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def self.get_cues
|
38
|
+
if GameOptions.data['sound_enabled']
|
39
|
+
case GameOptions.data['sound_system']
|
40
|
+
when 'win32-sound', 'feep'
|
41
|
+
require_relative 'audio_cues'
|
42
|
+
AudioCues.cues
|
43
|
+
when 'bloops'
|
44
|
+
require_relative 'bloops_cues'
|
45
|
+
BloopsCues.cues
|
46
|
+
end
|
29
47
|
end
|
30
48
|
end
|
31
49
|
|
@@ -35,19 +53,23 @@ module Gemwarrior
|
|
35
53
|
when 'win32-sound'
|
36
54
|
require_relative 'audio_cues'
|
37
55
|
require_relative 'musical_notes'
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
threads
|
43
|
-
|
56
|
+
|
57
|
+
if AudioCues.cues[audio_cue_symbol]
|
58
|
+
Thread.start do
|
59
|
+
AudioCues.cues[audio_cue_symbol][:synth].each do |seq|
|
60
|
+
threads = []
|
61
|
+
seq[:frequencies].split(',').each do |note|
|
62
|
+
threads << Thread.new do
|
63
|
+
Win32::Sound::play_freq(Notes::NOTE_FREQ[note], seq[:duration], GameOptions.data['sound_volume'])
|
64
|
+
end
|
44
65
|
end
|
66
|
+
threads.each { |th| th.join }
|
45
67
|
end
|
46
|
-
threads.each { |th| th.join }
|
47
68
|
end
|
48
69
|
end
|
49
70
|
when 'feep'
|
50
71
|
require_relative 'audio_cues'
|
72
|
+
|
51
73
|
feep_defaults = {
|
52
74
|
frequencies: '440',
|
53
75
|
waveform: 'sine',
|
@@ -56,43 +78,50 @@ module Gemwarrior
|
|
56
78
|
notext: true
|
57
79
|
}
|
58
80
|
|
59
|
-
|
60
|
-
|
61
|
-
|
81
|
+
if AudioCues.cues[audio_cue_symbol]
|
82
|
+
Thread.start do
|
83
|
+
AudioCues.cues[audio_cue_symbol][:synth].each do |seq|
|
84
|
+
seq = feep_defaults.merge(seq)
|
62
85
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
86
|
+
Feep::Base.new({
|
87
|
+
freq_or_note: seq[:frequencies],
|
88
|
+
waveform: seq[:waveform],
|
89
|
+
volume: seq[:volume],
|
90
|
+
duration: seq[:duration],
|
91
|
+
notext: seq[:notext]
|
92
|
+
})
|
93
|
+
end
|
70
94
|
end
|
71
95
|
end
|
72
96
|
when 'bloops'
|
73
97
|
require_relative 'bloops_cues'
|
74
|
-
Thread.start do
|
75
|
-
BloopsCues.cues[audio_cue_symbol][:synth].each do |seq|
|
76
|
-
threads = []
|
77
98
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
99
|
+
if BloopsCues.cues[audio_cue_symbol]
|
100
|
+
Thread.start do
|
101
|
+
BloopsCues.cues[audio_cue_symbol][:synth].each do |seq|
|
102
|
+
threads = []
|
103
|
+
|
104
|
+
seq.each do |note|
|
105
|
+
threads << Thread.new do
|
106
|
+
b = Bloops.new
|
107
|
+
b.tempo = 240
|
108
|
+
snd = b.sound Bloops::SQUARE
|
109
|
+
snd.punch = GameOptions.data['sound_volume']/2
|
110
|
+
snd.sustain = 0.7
|
111
|
+
snd.decay = 0.2
|
112
|
+
b.tune snd, note[1]
|
113
|
+
b.play
|
114
|
+
sleep 0.1 while !b.stopped?
|
115
|
+
end
|
89
116
|
end
|
90
|
-
end
|
91
117
|
|
92
|
-
|
118
|
+
threads.each { |th| th.join }
|
119
|
+
end
|
93
120
|
end
|
94
121
|
end
|
95
122
|
end
|
123
|
+
else
|
124
|
+
GameOptions.data['errors'] = ERROR_SOUND_NOT_ENABLED
|
96
125
|
end
|
97
126
|
end
|
98
127
|
|
@@ -7,7 +7,7 @@ module Gemwarrior
|
|
7
7
|
@@cues ||= {}
|
8
8
|
@@cues[key] = val
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
def self.cues
|
12
12
|
@@cues ||= {}
|
13
13
|
end
|
@@ -33,7 +33,7 @@ module Gemwarrior
|
|
33
33
|
],
|
34
34
|
sample: 'bg1.wav'
|
35
35
|
}
|
36
|
-
|
36
|
+
|
37
37
|
self.add :battle_start, {
|
38
38
|
synth: [
|
39
39
|
{ frequencies: 'G4', duration: 50 },
|
@@ -93,15 +93,17 @@ module Gemwarrior
|
|
93
93
|
|
94
94
|
self.add :intro, {
|
95
95
|
synth: [
|
96
|
-
{ frequencies: '
|
97
|
-
{ frequencies: 'D3,A4', duration:
|
98
|
-
{ frequencies: 'E3,B4', duration:
|
99
|
-
{ frequencies: 'F3,C5', duration:
|
96
|
+
{ frequencies: 'C4,G4', duration: 350 },
|
97
|
+
{ frequencies: 'D3,A4', duration: 85 },
|
98
|
+
{ frequencies: 'E3,B4', duration: 85 },
|
99
|
+
{ frequencies: 'F3,C5', duration: 170 },
|
100
|
+
{ frequencies: 'F3,C5', duration: 170 },
|
101
|
+
{ frequencies: 'F3,C5', duration: 170 },
|
100
102
|
{ frequencies: 'G3,B4,D5', duration: 350 }
|
101
103
|
],
|
102
104
|
sample: 'intro.wav'
|
103
105
|
}
|
104
|
-
|
106
|
+
|
105
107
|
self.add :player_level_up, {
|
106
108
|
synth: [
|
107
109
|
{ frequencies: 'D4,A4,D5,A5,D6', duration: 100 },
|
@@ -129,6 +131,68 @@ module Gemwarrior
|
|
129
131
|
sample: 'player_travel.wav'
|
130
132
|
}
|
131
133
|
|
134
|
+
self.add :player_travel_east, {
|
135
|
+
synth: [
|
136
|
+
{ frequencies: 'E4', duration: 75 },
|
137
|
+
{ frequencies: 'G4', duration: 75 },
|
138
|
+
{ frequencies: 'E4', duration: 75 }
|
139
|
+
],
|
140
|
+
sample: 'player_travel_east.wav'
|
141
|
+
}
|
142
|
+
|
143
|
+
self.add :player_travel_north, {
|
144
|
+
synth: [
|
145
|
+
{ frequencies: 'C4', duration: 75 },
|
146
|
+
{ frequencies: 'D4', duration: 75 },
|
147
|
+
{ frequencies: 'E4', duration: 75 }
|
148
|
+
],
|
149
|
+
sample: 'player_travel_north.wav'
|
150
|
+
}
|
151
|
+
|
152
|
+
self.add :player_travel_south, {
|
153
|
+
synth: [
|
154
|
+
{ frequencies: 'E4', duration: 75 },
|
155
|
+
{ frequencies: 'D4', duration: 75 },
|
156
|
+
{ frequencies: 'C4', duration: 75 }
|
157
|
+
],
|
158
|
+
sample: 'player_travel_south.wav'
|
159
|
+
}
|
160
|
+
|
161
|
+
self.add :player_travel_west, {
|
162
|
+
synth: [
|
163
|
+
{ frequencies: 'C4', duration: 75 },
|
164
|
+
{ frequencies: 'A3', duration: 75 },
|
165
|
+
{ frequencies: 'C4', duration: 75 }
|
166
|
+
],
|
167
|
+
sample: 'player_travel_west.wav'
|
168
|
+
}
|
169
|
+
|
170
|
+
self.add :resume_game, {
|
171
|
+
synth: [
|
172
|
+
{ frequencies: 'C4', duration: 75 },
|
173
|
+
{ frequencies: 'D4', duration: 75 },
|
174
|
+
{ frequencies: 'E4', duration: 75 },
|
175
|
+
{ frequencies: 'F#4', duration: 75 },
|
176
|
+
{ frequencies: 'G#4', duration: 75 },
|
177
|
+
{ frequencies: 'A#4', duration: 75 },
|
178
|
+
{ frequencies: 'C5', duration: 75 },
|
179
|
+
{ frequencies: 'D5', duration: 75 },
|
180
|
+
{ frequencies: 'E5', duration: 75 },
|
181
|
+
{ frequencies: 'F#5', duration: 75 }
|
182
|
+
],
|
183
|
+
sample: 'test.wav'
|
184
|
+
}
|
185
|
+
|
186
|
+
self.add :test, {
|
187
|
+
synth: [
|
188
|
+
{ frequencies: 'F4', duration: 75 },
|
189
|
+
{ frequencies: 'E5', duration: 75 },
|
190
|
+
{ frequencies: 'C5', duration: 75 },
|
191
|
+
{ frequencies: 'E5', duration: 75 }
|
192
|
+
],
|
193
|
+
sample: 'test.wav'
|
194
|
+
}
|
195
|
+
|
132
196
|
self.add :uncover_secret, {
|
133
197
|
synth: [
|
134
198
|
{ frequencies: 'F5', duration: 150 },
|
@@ -7,7 +7,7 @@ module Gemwarrior
|
|
7
7
|
@@cues ||= {}
|
8
8
|
@@cues[key] = val
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
def self.cues
|
12
12
|
@@cues ||= {}
|
13
13
|
end
|
@@ -33,7 +33,7 @@ module Gemwarrior
|
|
33
33
|
],
|
34
34
|
sample: 'bg1.wav'
|
35
35
|
}
|
36
|
-
|
36
|
+
|
37
37
|
self.add :battle_start, {
|
38
38
|
synth: [
|
39
39
|
{ s1: '16:G4' },
|
@@ -93,15 +93,17 @@ module Gemwarrior
|
|
93
93
|
|
94
94
|
self.add :intro, {
|
95
95
|
synth: [
|
96
|
-
{ s1: '
|
96
|
+
{ s1: '4:C4', s2: '4:G4' },
|
97
97
|
{ s1: '16:D3', s2: '16:A4' },
|
98
98
|
{ s1: '16:E3', s2: '16:B4' },
|
99
|
-
{ s1: '
|
99
|
+
{ s1: '8:F3', s2: '8:C5' },
|
100
|
+
{ s1: '8:F3', s2: '8:C5' },
|
101
|
+
{ s1: '8:F3', s2: '8:C5' },
|
100
102
|
{ s1: '4:G3', s2: '4:B4', s3: '4:D5' }
|
101
103
|
],
|
102
104
|
sample: 'intro.wav'
|
103
105
|
}
|
104
|
-
|
106
|
+
|
105
107
|
self.add :player_level_up, {
|
106
108
|
synth: [
|
107
109
|
{ s1: '8:D4', s2: '8:A4', s3: '8:D5', s4: '8:A5', s5: '8:D6' },
|
@@ -129,6 +131,62 @@ module Gemwarrior
|
|
129
131
|
sample: 'player_travel.wav'
|
130
132
|
}
|
131
133
|
|
134
|
+
self.add :player_travel_east, {
|
135
|
+
synth: [
|
136
|
+
{ s1: '16:E4' },
|
137
|
+
{ s1: '16:G4' },
|
138
|
+
{ s1: '16:E4' }
|
139
|
+
],
|
140
|
+
sample: 'player_travel_east.wav'
|
141
|
+
}
|
142
|
+
|
143
|
+
self.add :player_travel_north, {
|
144
|
+
synth: [
|
145
|
+
{ s1: '16:C4' },
|
146
|
+
{ s1: '16:D4' },
|
147
|
+
{ s1: '16:E4' }
|
148
|
+
],
|
149
|
+
sample: 'player_travel_north.wav'
|
150
|
+
}
|
151
|
+
|
152
|
+
self.add :player_travel_south, {
|
153
|
+
synth: [
|
154
|
+
{ s1: '16:E4' },
|
155
|
+
{ s1: '16:D4' },
|
156
|
+
{ s1: '16:C4' }
|
157
|
+
],
|
158
|
+
sample: 'player_travel_south.wav'
|
159
|
+
}
|
160
|
+
|
161
|
+
self.add :player_travel_west, {
|
162
|
+
synth: [
|
163
|
+
{ s1: '16:C4' },
|
164
|
+
{ s1: '16:A4' },
|
165
|
+
{ s1: '16:C4' }
|
166
|
+
],
|
167
|
+
sample: 'player_travel_west.wav'
|
168
|
+
}
|
169
|
+
|
170
|
+
self.add :resume_game, {
|
171
|
+
synth: [
|
172
|
+
{ s1: '16:C4' },
|
173
|
+
{ s1: '16:D4' },
|
174
|
+
{ s1: '16:E4' },
|
175
|
+
{ s1: '8:F#4' }
|
176
|
+
],
|
177
|
+
sample: 'test.wav'
|
178
|
+
}
|
179
|
+
|
180
|
+
self.add :test, {
|
181
|
+
synth: [
|
182
|
+
{ s1: '4:F4' },
|
183
|
+
{ s1: '4:E5' },
|
184
|
+
{ s1: '4:C5' },
|
185
|
+
{ s1: '4:E5' }
|
186
|
+
],
|
187
|
+
sample: 'test.wav'
|
188
|
+
}
|
189
|
+
|
132
190
|
self.add :uncover_secret, {
|
133
191
|
synth: [
|
134
192
|
{ s1: '8:F5' },
|