gemwarrior 0.14.6 → 0.14.7
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 +29 -26
- data/lib/gemwarrior/entities/location.rb +5 -1
- data/lib/gemwarrior/evaluator.rb +10 -1
- data/lib/gemwarrior/game.rb +2 -0
- data/lib/gemwarrior/repl.rb +10 -5
- data/lib/gemwarrior/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 08d2a9ec1dc8918cdae9406a4f763ba1d5ec2061
|
4
|
+
data.tar.gz: 29756295507196dc1b0b2df0f36a8c04eec65230
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38454c0717ce69f971ebbea780444b0c56dede944f085d911d2ffbe353afc46052cee5b54267b538eb1e912e202a5f7473e7a65e3d695bcd2e87315b5dee627d
|
7
|
+
data.tar.gz: 49c8ea652e0f8676663a693741aee7056fa0b5b01cc4dd08527101050ad97d996abedf97e31203e3cdf81a7d497ad9e6e9f2d34a0bbb8a6f3dda04e9a34f8f8e
|
data/bin/gemwarrior
CHANGED
@@ -20,33 +20,31 @@ GW_DEFAULT_WORLD_BIN = File.expand_path('../../data/default_world.bin', __FILE_
|
|
20
20
|
GW_DEFAULT_WRAP_WIDTH = 80
|
21
21
|
|
22
22
|
def parse_options_cli
|
23
|
+
# default options
|
23
24
|
options = {
|
24
|
-
beast_mode:
|
25
|
-
debug_mode:
|
26
|
-
god_mode:
|
27
|
-
new_skip:
|
28
|
-
resume_skip:
|
29
|
-
sound_enabled:
|
30
|
-
sound_system:
|
31
|
-
sound_volume:
|
32
|
-
use_wordnik:
|
33
|
-
|
25
|
+
beast_mode: false,
|
26
|
+
debug_mode: false,
|
27
|
+
god_mode: false,
|
28
|
+
new_skip: false,
|
29
|
+
resume_skip: false,
|
30
|
+
sound_enabled: false,
|
31
|
+
sound_system: 'bloops',
|
32
|
+
sound_volume: 0.3,
|
33
|
+
use_wordnik: false,
|
34
|
+
fight_completion: false,
|
35
|
+
extra_command: nil
|
34
36
|
}
|
35
37
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
options[:sound_enabled] = sound_enabled_option
|
45
|
-
options[:sound_system] = sound_system_selected
|
46
|
-
options[:sound_volume] = sound_volume_option
|
47
|
-
options[:use_wordnik] = use_wordnik_option
|
38
|
+
# options file has next precedence
|
39
|
+
unless (opts_file = read_options_file).nil?
|
40
|
+
options[:sound_enabled] = (opts_file[:sound_enabled].eql?('false') ? false : true) if opts_file[:sound_enabled]
|
41
|
+
options[:sound_system] = (opts_file[:sound_system].eql?('false') ? false : true) if opts_file[:sound_system]
|
42
|
+
options[:sound_volume] = (opts_file[:sound_volume].to_f) if opts_file[:sound_volume]
|
43
|
+
options[:use_wordnik] = (opts_file[:use_wordnik].eql?('false') ? false : true) if opts_file[:use_wordnik]
|
44
|
+
options[:fight_completion] = (opts_file[:fight_completion].eql?('false') ? false : true) if opts_file[:fight_completion]
|
48
45
|
end
|
49
46
|
|
47
|
+
# command line has next precedence
|
50
48
|
optparse = OptionParser.new do |opts|
|
51
49
|
opts.on('-b', '--beast', 'Enable debug[beastmode]') do
|
52
50
|
options[:beast_mode] = true
|
@@ -81,6 +79,10 @@ def parse_options_cli
|
|
81
79
|
options[:use_wordnik] = true
|
82
80
|
end
|
83
81
|
|
82
|
+
opts.on('-f', '--fight-completion', 'Fighting without specifying an enemy will attack first one it finds') do
|
83
|
+
options[:fight_completion] = false
|
84
|
+
end
|
85
|
+
|
84
86
|
opts.on('-x', '--extra COMMAND,PARAM1,PARAM2,PARAM3', String, 'Run a command, with optional params, immediately upon beginning the game') do |xc|
|
85
87
|
options[:extra_command] = xc.gsub(',',' ')
|
86
88
|
end
|
@@ -103,13 +105,14 @@ end
|
|
103
105
|
|
104
106
|
def read_options_file
|
105
107
|
if File.exist?(GameOptions.data['options_file_path'])
|
106
|
-
options =
|
108
|
+
options = {}
|
107
109
|
File.open(GameOptions.data['options_file_path']).readlines.each do |line|
|
108
|
-
|
110
|
+
kv = line.chomp.split(':')
|
111
|
+
options[kv[0].to_sym] = kv[1]
|
109
112
|
end
|
110
113
|
|
111
114
|
# check for null
|
112
|
-
return options[
|
115
|
+
return options[:sound_enabled] ? options : nil
|
113
116
|
end
|
114
117
|
nil
|
115
118
|
end
|
@@ -118,7 +121,7 @@ def init_config
|
|
118
121
|
Dir.mkdir(GW_HOME) unless Dir.exist?(GW_HOME)
|
119
122
|
|
120
123
|
sound_system_default = OS.windows? ? 'win32-sound' : 'bloops'
|
121
|
-
|
124
|
+
|
122
125
|
GameOptions.add 'sound_system', sound_system_default
|
123
126
|
GameOptions.add 'save_file_mode', 'Y'
|
124
127
|
GameOptions.add 'default_world_path_yaml', GW_DEFAULT_WORLD_YAML
|
@@ -32,7 +32,7 @@ module Gemwarrior
|
|
32
32
|
self.monster_level_range = options.fetch(:monster_level_range)
|
33
33
|
self.items = options.fetch(:items)
|
34
34
|
self.monsters_abounding = options.fetch(:monsters_abounding)
|
35
|
-
self.bosses_abounding = options.fetch
|
35
|
+
self.bosses_abounding = options.fetch(:bosses_abounding)
|
36
36
|
self.checked_for_monsters = false
|
37
37
|
self.visited = false
|
38
38
|
end
|
@@ -60,6 +60,10 @@ module Gemwarrior
|
|
60
60
|
self.items.map{|i| i.name.downcase}.include?(item_name.downcase)
|
61
61
|
end
|
62
62
|
|
63
|
+
def has_any_monsters?
|
64
|
+
monsters_abounding.length > 0
|
65
|
+
end
|
66
|
+
|
63
67
|
def has_monster?(monster_name)
|
64
68
|
monsters_abounding.map{|m| m.name.downcase}.include?(monster_name.downcase)
|
65
69
|
end
|
data/lib/gemwarrior/evaluator.rb
CHANGED
@@ -642,7 +642,16 @@ module Gemwarrior
|
|
642
642
|
end
|
643
643
|
when 'attack', 'a', 'fight', 'f'
|
644
644
|
if param1.nil?
|
645
|
-
|
645
|
+
if GameOptions.data['fight_completion']
|
646
|
+
if player_cur_location.has_any_monsters?
|
647
|
+
monster_param = player_cur_location.monsters_abounding[0].name
|
648
|
+
self.parse("attack #{monster_param}")
|
649
|
+
else
|
650
|
+
ERROR_ATTACK_PARAM_INVALID
|
651
|
+
end
|
652
|
+
else
|
653
|
+
ERROR_ATTACK_PARAM_MISSING
|
654
|
+
end
|
646
655
|
else
|
647
656
|
monster_name = param1
|
648
657
|
if world.has_monster_to_attack?(monster_name)
|
data/lib/gemwarrior/game.rb
CHANGED
@@ -41,6 +41,7 @@ module Gemwarrior
|
|
41
41
|
GameOptions.add 'sound_system', options.fetch(:sound_system)
|
42
42
|
GameOptions.add 'sound_volume', options.fetch(:sound_volume)
|
43
43
|
GameOptions.add 'use_wordnik', options.fetch(:use_wordnik)
|
44
|
+
GameOptions.add 'fight_completion', options.fetch(:fight_completion)
|
44
45
|
|
45
46
|
# add classes for creatures, monsters, people, items, weapons, and armor to game
|
46
47
|
# also add them to the global GameAssets
|
@@ -107,6 +108,7 @@ module Gemwarrior
|
|
107
108
|
f.puts "sound_system:#{GameOptions.data['sound_system']}"
|
108
109
|
f.puts "sound_volume:#{GameOptions.data['sound_volume']}"
|
109
110
|
f.puts "use_wordnik:#{GameOptions.data['use_wordnik']}"
|
111
|
+
f.puts "fight_completion:#{GameOptions.data['fight_completion']}"
|
110
112
|
end
|
111
113
|
end
|
112
114
|
|
data/lib/gemwarrior/repl.rb
CHANGED
@@ -242,12 +242,13 @@ module Gemwarrior
|
|
242
242
|
puts 'Gem Warrior General Options'.colorize(:yellow)
|
243
243
|
puts '================================='.colorize(:yellow)
|
244
244
|
puts
|
245
|
-
puts 'Change several sound
|
245
|
+
puts 'Change several sound options, whether Wordnik is used to generate more dynamic descriptors of entities (valid WORDNIK_API_KEY environment variable must be set), and if attack/fight commands need to have a target or not (if enabled, will attack first monster in vicinty).'
|
246
246
|
puts
|
247
|
-
puts " (1) SOUND ENABLED
|
248
|
-
puts " (2) SOUND SYSTEM
|
249
|
-
puts " (3) SOUND VOLUME
|
250
|
-
puts " (4) USE WORDNIK
|
247
|
+
puts " (1) SOUND ENABLED : #{GameOptions.data['sound_enabled']}"
|
248
|
+
puts " (2) SOUND SYSTEM : #{GameOptions.data['sound_system']}"
|
249
|
+
puts " (3) SOUND VOLUME : #{GameOptions.data['sound_volume']}"
|
250
|
+
puts " (4) USE WORDNIK : #{GameOptions.data['use_wordnik']}"
|
251
|
+
puts " (5) FIGHT COMPLETION : #{GameOptions.data['fight_completion']}"
|
251
252
|
puts
|
252
253
|
puts '================================='.colorize(:yellow)
|
253
254
|
puts
|
@@ -282,6 +283,10 @@ module Gemwarrior
|
|
282
283
|
print answer
|
283
284
|
GameOptions.data['use_wordnik'] = !GameOptions.data['use_wordnik']
|
284
285
|
print_options
|
286
|
+
when '5'
|
287
|
+
print answer
|
288
|
+
GameOptions.data['fight_completion'] = !GameOptions.data['fight_completion']
|
289
|
+
print_options
|
285
290
|
else
|
286
291
|
print answer
|
287
292
|
return
|
data/lib/gemwarrior/version.rb
CHANGED