diff --git a/src/pregmod/widgets/pregmodWidgets.tw b/src/pregmod/widgets/pregmodWidgets.tw index ae8d24df58f0c9c9d8ff2258a9b95dc3eeff3694..93b2f10a13bb336af061c7906a146bb81f640a80 100644 --- a/src/pregmod/widgets/pregmodWidgets.tw +++ b/src/pregmod/widgets/pregmodWidgets.tw @@ -1205,20 +1205,38 @@ extremely pale -5 <<widget "ParentNames">> <<set _currentSlaveNames = $slaves.map(s => s.slaveName)>> -<<set _sanityCheck = '>>', /* to appease sanityCheck */ - $args[1].slaveName = generateName($args[0].nationality, $args[1].race, $args[1].genes === "XY", sn => !_currentSlaveNames.includes(sn))>> -<<if !$args[1].slaveName>> - /* we ran out of names ... How? */ - <<set _maxTries = 10>> - <<for _maxTries > 0 && !$args[1].slaveName>> - <<set _continentNationality = hashChoice($nationalities)>> - <<set _sanityCheck = '>>', /* to appease sanityCheck */ - $args[1].slaveName = generateName(_continentNationality, $args[1].race, $args[1].genes === "XY", sn => !_currentSlaveNames.includes(sn))>> - <</for>> -<</if>> -<<if !$args[1].slaveName>> - /* give up, duplicate name is fine I guess */ - <<set $args[1].slaveName = generateName($args[0].nationality, $args[1].race, $args[1].genes === "XY")>> +<<if $allowMaleSlaveNames>> + <<set _sanityCheck = '>>', /* to appease sanityCheck */ + $args[1].slaveName = generateName($args[0].nationality, $args[1].race, $args[1].genes === "XY", sn => !_currentSlaveNames.includes(sn))>> + <<if !$args[1].slaveName>> + /* we ran out of names ... How? */ + <<set _maxTries = 10>> + <<for _maxTries > 0 && !$args[1].slaveName>> + <<set _continentNationality = hashChoice($nationalities)>> + <<set _sanityCheck = '>>', /* to appease sanityCheck */ + $args[1].slaveName = generateName(_continentNationality, $args[1].race, $args[1].genes === "XY", sn => !_currentSlaveNames.includes(sn))>> + <</for>> + <</if>> + <<if !$args[1].slaveName>> + /* give up, duplicate name is fine I guess */ + <<set $args[1].slaveName = generateName($args[0].nationality, $args[1].race, $args[1].genes === "XY")>> + <</if>> +<<else>> + <<set _sanityCheck = '>>', /* to appease sanityCheck */ + $args[1].slaveName = generateName($args[0].nationality, $args[1].race, false, sn => !_currentSlaveNames.includes(sn))>> + <<if !$args[1].slaveName>> + /* we ran out of names ... How? */ + <<set _maxTries = 10>> + <<for _maxTries > 0 && !$args[1].slaveName>> + <<set _continentNationality = hashChoice($nationalities)>> + <<set _sanityCheck = '>>', /* to appease sanityCheck */ + $args[1].slaveName = generateName(_continentNationality, $args[1].race, false, sn => !_currentSlaveNames.includes(sn))>> + <</for>> + <</if>> + <<if !$args[1].slaveName>> + /* give up, duplicate name is fine I guess */ + <<set $args[1].slaveName = generateName($args[0].nationality, $args[1].race, false)>> + <</if>> <</if>> <<unset _currentSlaveNames, _maxTries, _continentNationality>> <</widget>>