Hi there! First of all, I love these scripts and they are actually what made me install python on my computer, which led me to learn the language, so thanks! Secondly, I'm not sure if I'm correct, but I seem to have noticed a minor quirk in the code for creature name generation. In sphal_data.py, the following code exists to pick the creature's symbol and word:
#We pick a beast type, and a random word assocaited with a random symbol
self.creature_type = random.choice(creature_words)
self.creature_symbol = random.choice(self.symbols.keys())
#(COMMENTED OUT)self.creature_adjective = random.choice(self.symbols[random.choice(self.symbols.keys())])
self.creature_adjective = random.choice(words.keys())
It seemed odd to me that the first comment implied the word would be related to the symbol, but when it picked the word, it simply chose a random word from 'words', which contains all words found in the language_words raws, as I believe from looking at the code. Even the commented out line makes no reference to the above self.creature_symbol, but rather makes the same random selection a second time, choosing ANOTHER random symbol and NOT assigning it to the creature, only using it to choose a word. When I added print functions to test if generated beasts' symbols and words had anything to do with each other, I saw that most of the words were not listed in the chosen symbol's [S_WORD] list.
Sorry if that was long-winded and/or horribly wrong and I'm being an idiot, but acting under the assumption that creatures were supposed to have adjectives related to their symbols (and the further assumption that this was not what was happening), I edited the above code to this:
#We pick a beast type, and a random word assocaited with a random symbol
self.creature_type = random.choice(creature_words)
self.creature_symbol = random.choice(self.symbols.keys())
self.creature_adjective = random.choice(self.symbols[self.creature_symbol])
With print statements in beast_myth.py, I checked each creature as it was generated and got things like this (creature printed, then symbol, then word):
ALLIGATOR_MAN_CRYPT (NAME_BUILDING_TOMB, CRYPT)
APE_DUSK (OLD, DUSK)
MANTICORE_HILL (NAME_HILLS, HILL)
MARE_CRUEL (EVIL, CRUEL)
GIANT_MARE_CRUEL
HOG_WAY (NAME_ROAD, WAY)
ZEBRA_MAN_WORLD (NAME_REGION, WORLD)
COBRA_HILL (NAME_HILLS, HILL)
GIANT_COBRA_HILL
TIKBALANG_ROSE (ROMANTIC, ROSE)
So it looks like things are working properly!
Also, Knight Otu, I'd love to extend these scripts if I can get your permission to do so. I'm not sure whether it'll actually get done, or whether I'll post them, but if I do I'll credit you, Sphalerite and anyone else to whom credit is due. Thank you!