gemwarrior 0.7.2 → 0.7.3
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 +1 -1
- data/lib/gemwarrior/game.rb +2 -0
- data/lib/gemwarrior/misc/version.rb +1 -1
- data/lib/gemwarrior/misc/wordlist.rb +74 -49
- data/lib/gemwarrior/repl.rb +3 -3
- data/lib/gemwarrior/world.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: d91e48c65260ba5b61f52b93ad8eea2b45fe8c18
|
4
|
+
data.tar.gz: cb95d7af28130ed0b74ad1f5f36d2c8d010f7244
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 76d5776994978dbd5a4bd076ec5adb99e05f0ef1a6c047d570a0da16e8291e4483ad7577b4740c9ee6d68bb9aa5f4220526d49bc0cc2ab8e6c1455efb1063bda
|
7
|
+
data.tar.gz: 7d42296d573a9d911a8a49a6485c95b24cf0e8648899264c391d6394369a43f4042000a93c9f00a61d9f7cdbcdb221b197d468603686db1eccb3b20cf3ba0d40
|
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}
|
11
|
+
options = {:debug_mode => false, :god_mode => false, :beast_mode => false, :use_wordnik => false}
|
12
12
|
|
13
13
|
optparse = OptionParser.new do |opts|
|
14
14
|
opts.on('-v', '--version', 'Display version number and exit') do
|
@@ -27,6 +27,10 @@ def parse_options
|
|
27
27
|
opts.on('-b', '--beast', 'Set beastmode to true on load') do
|
28
28
|
options[:beast_mode] = true
|
29
29
|
end
|
30
|
+
|
31
|
+
opts.on('-w', '--wordnik', 'Use Wordnik to generate more diverse, dynamic descriptors of entities') do
|
32
|
+
options[:use_wordnik] = true
|
33
|
+
end
|
30
34
|
end
|
31
35
|
|
32
36
|
optparse.parse!()
|
data/gemwarrior.gemspec
CHANGED
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.add_runtime_dependency 'json', '~> 1.8.2'
|
26
26
|
spec.add_runtime_dependency 'colorize', '~> 0.7.7'
|
27
27
|
|
28
|
-
#spec.add_runtime_dependency 'feep', '~> 0.0
|
28
|
+
#spec.add_runtime_dependency 'feep', '~> 0.1.0'
|
29
29
|
#spec.add_runtime_dependency 'wordnik', '~> 4.12'
|
30
30
|
|
31
31
|
spec.add_development_dependency 'pry-byebug', '~> 3.0'
|
data/lib/gemwarrior/game.rb
CHANGED
@@ -31,6 +31,8 @@ module Gemwarrior
|
|
31
31
|
start_stats = PlayerLevels::get_level_stats(1)
|
32
32
|
|
33
33
|
world.debug_mode = options.fetch(:debug_mode)
|
34
|
+
world.use_wordnik = options.fetch(:use_wordnik)
|
35
|
+
|
34
36
|
world.player = Player.new({
|
35
37
|
:description => PLAYER_DESC_DEFAULT,
|
36
38
|
:level => start_stats[:level],
|
@@ -6,25 +6,33 @@ require 'json'
|
|
6
6
|
|
7
7
|
module Gemwarrior
|
8
8
|
class WordList
|
9
|
-
|
9
|
+
STATIC_ADJECTIVE_VALUES_VALUES = [
|
10
|
+
'5 o\'clock-shadowed', 'angry', 'aristocratic', 'calm', 'choice', 'clinical', 'cracked', 'depressed', 'dingy', 'excited', 'ginormous', 'handsome', 'hydrothermal', 'lackadaisical', 'man-sized', 'moist', 'non-venomous', 'picaresque', 'positive', 'relaxed', 'ruddy', 'smooth', 'shocked', 'sticky', 'tense', 'tingly', 'tired', 'toneless', 'unpolished', 'worn'
|
11
|
+
]
|
12
|
+
STATIC_NOUN_VALUES = [
|
13
|
+
'arrestor', 'blockhead', 'busker', 'candlestick', 'cigarette', 'clavinet', 'cursor', 'degeneration', 'devotchka', 'drive', 'earthquake', 'genie', 'granddaddy', 'haunter', 'heater', 'locality', 'nitrogen', 'quitter', 'raccoon', 'radish', 'recession', 'sheepdog', 'smorgasbord', 'softener', 'sphere', 'stage-hand', 'tsunami', 'tuber', 'whatsit', 'zillionaire'
|
14
|
+
]
|
15
|
+
STATIC_NOUN_PLURAL_VALUES = [
|
16
|
+
'abutments', 'asterisms', 'bains', 'blebs', 'blowholes', 'chapes', 'civility', 'crocuses', 'dancers', 'deniers', 'diastoles', 'dinges', 'dualism', 'ebullitions', 'extremities', 'fingering', 'gabardines', 'gullets', 'knops', 'nooks', 'payments', 'phaetons', 'scalawags', 'snickers', 'specters', 'splats', 'squiggles', 'thalamuses', 'wallets', 'xylophones'
|
17
|
+
]
|
18
|
+
STATIC_VERB_VALUES = [
|
19
|
+
'accentuate', 'accompany', 'blatter', 'bully', 'collide', 'crusade', 'disallow', 'entitle', 'infest', 'lateral', 'micturate', 'mourn', 'munge', 'numb', 'outdraw', 'overstep', 'plummet', 'refill', 'refurnish', 'reroute', 'rumple', 'scupper', 'smoosh', 'spifflicate', 'straighten', 'synthesize', 'terrorize', 'unshift', 'vociferate'
|
20
|
+
]
|
10
21
|
|
11
|
-
attr_accessor :type, :limit, :words, :error
|
22
|
+
attr_accessor :use_wordnik, :type, :limit, :words, :error
|
12
23
|
|
13
|
-
def initialize(type, limit = 10)
|
14
|
-
self.
|
15
|
-
self.
|
16
|
-
self.
|
17
|
-
self.
|
24
|
+
def initialize(use_wordnik = false, type = 'noun', limit = 10)
|
25
|
+
self.use_wordnik = use_wordnik
|
26
|
+
self.type = type
|
27
|
+
self.limit = limit
|
28
|
+
self.words = populate_words(type, limit)
|
29
|
+
self.error = nil
|
18
30
|
end
|
19
31
|
|
20
32
|
def get_random_value
|
21
33
|
random_value = words[rand(0..limit)]
|
22
34
|
|
23
|
-
|
24
|
-
get_random_value
|
25
|
-
else
|
26
|
-
return random_value
|
27
|
-
end
|
35
|
+
return random_value.nil? ? get_random_value : random_value
|
28
36
|
end
|
29
37
|
|
30
38
|
def list_words
|
@@ -37,51 +45,68 @@ module Gemwarrior
|
|
37
45
|
url = 'http://api.wordnik.com:80/v4/words.json/randomWords'
|
38
46
|
api_key = ENV['WORDNIK_API_KEY']
|
39
47
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
return get_static_values
|
44
|
-
end
|
45
|
-
|
46
|
-
json_return = HTTP.get(
|
47
|
-
url,
|
48
|
-
:params => {
|
49
|
-
:hasDictionaryDef => true,
|
50
|
-
:includePartOfSpeech => type,
|
51
|
-
:minCorpusCount => 1,
|
52
|
-
:maxCorpusCount => -1,
|
53
|
-
:minDictionaryCount => 1,
|
54
|
-
:maxDictionaryCount => -1,
|
55
|
-
:minLength => 5,
|
56
|
-
:maxLength => 12,
|
57
|
-
:sortBy => 'alpha',
|
58
|
-
:sortOrder => 'asc',
|
59
|
-
:limit => limit,
|
60
|
-
:api_key => api_key
|
61
|
-
}
|
62
|
-
)
|
63
|
-
|
64
|
-
json_data = JSON.parse(json_return.to_s)
|
65
|
-
|
66
|
-
if json_data.include?('type') && json_data.include?('message')
|
67
|
-
error = "wordnik #{json_data['type']}: #{json_data['message']}"
|
68
|
-
return get_static_values
|
69
|
-
else
|
70
|
-
word_list = []
|
71
|
-
json_data.map {|j| word_list.push(j['word'])}
|
72
|
-
if word_list.length > 0
|
73
|
-
return word_list
|
48
|
+
unless api_key.nil? || use_wordnik == false
|
49
|
+
case type
|
50
|
+
when 'noun', 'noun-plural', 'adjective', 'verb'
|
74
51
|
else
|
75
|
-
error = '
|
52
|
+
error = 'invalid wordlist type'
|
53
|
+
return
|
54
|
+
end
|
55
|
+
|
56
|
+
json_return = HTTP.get(
|
57
|
+
url,
|
58
|
+
:params => {
|
59
|
+
:hasDictionaryDef => true,
|
60
|
+
:includePartOfSpeech => type,
|
61
|
+
:minCorpusCount => 1,
|
62
|
+
:maxCorpusCount => -1,
|
63
|
+
:minDictionaryCount => 1,
|
64
|
+
:maxDictionaryCount => -1,
|
65
|
+
:minLength => 5,
|
66
|
+
:maxLength => 12,
|
67
|
+
:sortBy => 'alpha',
|
68
|
+
:sortOrder => 'asc',
|
69
|
+
:limit => limit,
|
70
|
+
:api_key => api_key
|
71
|
+
}
|
72
|
+
)
|
73
|
+
|
74
|
+
json_data = JSON.parse(json_return.to_s)
|
75
|
+
|
76
|
+
if json_data.include?('type') && json_data.include?('message')
|
77
|
+
error = "wordnik #{json_data['type']}: #{json_data['message']}"
|
76
78
|
return get_static_values
|
79
|
+
else
|
80
|
+
word_list = []
|
81
|
+
json_data.map {|j| word_list.push(j['word'])}
|
82
|
+
if word_list.length > 0
|
83
|
+
return word_list
|
84
|
+
else
|
85
|
+
error = 'Empty array from Wordnik'
|
86
|
+
return get_static_values(type)
|
87
|
+
end
|
77
88
|
end
|
78
89
|
end
|
90
|
+
|
91
|
+
return get_static_values(type)
|
79
92
|
end
|
80
93
|
|
81
|
-
def get_static_values
|
94
|
+
def get_static_values(type = nil)
|
82
95
|
static_values = []
|
83
96
|
0.upto(10) do
|
84
|
-
|
97
|
+
case type
|
98
|
+
when 'noun'
|
99
|
+
static_values.push(STATIC_NOUN_VALUES[rand(0..STATIC_NOUN_VALUES.length-1)])
|
100
|
+
when 'noun-plural'
|
101
|
+
static_values.push(STATIC_NOUN_PLURAL_VALUES[rand(0..STATIC_NOUN_PLURAL_VALUES.length-1)])
|
102
|
+
when 'adjective'
|
103
|
+
static_values.push(STATIC_ADJECTIVE_VALUES[rand(0..STATIC_ADJECTIVE_VALUES.length-1)])
|
104
|
+
when 'verb'
|
105
|
+
static_values.push(STATIC_VERB_VALUES[rand(0..STATIC_VERB_VALUES.length-1)])
|
106
|
+
else
|
107
|
+
error = 'invalid wordlist type'
|
108
|
+
return
|
109
|
+
end
|
85
110
|
end
|
86
111
|
return static_values
|
87
112
|
end
|
data/lib/gemwarrior/repl.rb
CHANGED
@@ -65,9 +65,9 @@ module Gemwarrior
|
|
65
65
|
end
|
66
66
|
|
67
67
|
def print_fortune
|
68
|
-
noun1_values = WordList.new('noun-plural')
|
69
|
-
noun2_values = WordList.new('noun-plural')
|
70
|
-
noun3_values = WordList.new('noun-plural')
|
68
|
+
noun1_values = WordList.new(world.use_wordnik, 'noun-plural')
|
69
|
+
noun2_values = WordList.new(world.use_wordnik, 'noun-plural')
|
70
|
+
noun3_values = WordList.new(world.use_wordnik, 'noun-plural')
|
71
71
|
|
72
72
|
puts "* Remember: #{noun1_values.get_random_value} and #{noun2_values.get_random_value} are the key to #{noun3_values.get_random_value} *\n\n"
|
73
73
|
end
|
data/lib/gemwarrior/world.rb
CHANGED
@@ -15,7 +15,7 @@ module Gemwarrior
|
|
15
15
|
ERROR_LIST_PARAM_INVALID = 'That is not something that can be listed.'
|
16
16
|
ERROR_LOCATION_DESCRIBE_ENTITY_INVALID = 'You do not see that here.'
|
17
17
|
|
18
|
-
attr_accessor :monsters, :locations, :player, :debug_mode
|
18
|
+
attr_accessor :monsters, :locations, :player, :debug_mode, :use_wordnik
|
19
19
|
|
20
20
|
def initialize
|
21
21
|
self.monsters = init_monsters
|