Where is the code that gives a character their name? I can't seem to lay my hands on anything that looks like it actually makes use of those name lists, but they're clearly working (I keep getting "Joesph", one of the reasons I want to change them), so what am I missing? I want to change how the game chooses names and surnames (based on ages as well as races, so it's easier for me to tell human children and teens apart from adults... and I might switch name lists based on class as well). (I've already managed some build-it-yourself elven surnames, but the code wound up in an unusual place 'cuz I couldn't figure out how to reference names.gd. Also, fairies are about to get super trendy weird baby names, lol.)
Also, how would I reference the race of the captive, in a "thugs" or "wolves with person" type encounter? I wound up having it describe the captive using the race of the first thug -- whoops! Dunno if there's any way to do this.
On the up side, I've finally gotten past the annoying-troubleshooting phase of the descriptions and dialogue, and those are working well; I've even split up the responses to a request for intimacy, so that we don't get a "meek nod" response from every possible character -- the request phrasing differs based on traits (Subs and Doms, slutty/pervy types, masochists, passive, etc.), and the reactions differ as well, and there's a different threshold by having various traits give a multiplier to either the Lust or the Resistance (e.g. Subs, Masochists, and Likes It Rough bump up the Lust part of the calculation, while Doms and Spoiled bump up the resistance, and at least one trait increases both). Also, people who could get pregnant are a little more reluctant. And because it's a multiplier instead of an addition/subtraction, it effectively increases the effect of the existing add/sub lines. I'll need to refine it a bit (having a Passive character just shrug and go along with it despite being fairly rebellious was not very immersive, but I could change that by changing the threshold a bit and rephrasing the "acceptance").
Anyway, now I've moved on to refining the Encounters. My Wimborn Outskirts now has random washerwomen, kids running around, and bullies that specifically target a child (or occasionally a teen) or a cat-girl or cat-boy, so it feels a bit more lively. Frostborn Outskirts and the Forest both have people gathering firewood. I hope to eventually dig into the code enough to change how many steps an area takes and how much energy it costs per step, so that there's more encounters for the same amount of energy.
One thing I've noticed is that the "bound tightly to prevent escape" stuff also shows up for the captive that was being bullied/attacked, which makes no sense. Haven't yet figured out how to distinguish between the two types in code such that the captive gets a different description and it doesn't sound like I randomly tied up the person I've just rescued.
By the way, how would I go about making it that I can release captives in the wild in order to reuse that rope? I once did this sort of thing and wound up with a phantom rope causing crash errors IIRC. But there's plenty of times when I've got a passel of midling captives and I run across the type I'd really like to catch, but I'm out of rope; it seems like releasing a captive would get me that rope, but that's not how it works and it bugs me.
P.S. While trying to learn some of the string handling in Godot/GDScript, I noticed that "finds" is not the best choice when trying to see if a string merely contains a substring (e.g. "Beastkin" or "Halfkin"). I wound up with some errors using "contains" and eventually hit on:
if "Beast" in person.race
Anyway, is there any reason to favor "person.race.find("Beast") > 0" over "if X in string"?
Also, I've completely forgotten how to look up what sort of code (which edition of GDScript?) this game is using.