diff --git a/src/cthulhu/speech_generator.py b/src/cthulhu/speech_generator.py index 0b533e1..9b96d79 100644 --- a/src/cthulhu/speech_generator.py +++ b/src/cthulhu/speech_generator.py @@ -748,15 +748,20 @@ class SpeechGenerator(generator.Generator): method for scripts to call. """ generated = self._generateRoleName(obj, **args) - if generated: - return generated[0] - - return "" + return self._getFirstString(generated) def getName(self, obj, **args): generated = self._generateName(obj, **args) - if generated: - return generated[0] + return self._getFirstString(generated) + + def _getFirstString(self, generated): + for item in generated or []: + if isinstance(item, str): + return item + if isinstance(item, list): + nestedString = self._getFirstString(item) + if nestedString: + return nestedString return ""