Ok.. nothing works for me after sync/update.. where is the tagger ?
It's where we test all the unfinished stuff. You should be able to get as far as the mainscreen, it will be there next to the guild and forest walkabout.
==============================================================
What is the syntax for checking several traits at the same time in girlsmeets?
For example, if a girl has either Tomboy or Energetic (or both)?
Is it correct?
That's correct, bits written be my (unless someone deleted them) use:
elif ct("Tomboy", "Energetic"):
But it's the same thing.
==============================================================
nm lol it use plain or
if girlfolder.endswith(".json") or girlfolder.endswith(".xml") or girlfolder.startswith("data"):
This one should be:
if girlfolder.endswith((".json", ".xml")) or girlfolder.startswith("data"):
but I am not sure what you're checking here. If you want to know if it's a folder or a file, use: if os.path.isdir(girlfolder):l if you want to get the data files, use and instead of or.
==============================================================
if "Tomboy" in chr.traits:
$g(choice(["...","<Is she drooling?...>","<The dead look in her eyes isn't reassuring...>"]))
elif ct("Energetic"):
$rc("...no...", "...later...maybe...")
elif ct("Tomboy") or ct("Energetic"): not needed as the 2 line above are doing the same unless you want combined response unlike the coder chosed to in this case
$rc("Uhuhu⪠I won't tell you~ ⪠","I'm not going to tell you~ ","It's a secret! ")
elif ct("Tomboy") and ct("Energetic"): AND example to check need for both
This one depends on the text. This order obviously doesn't make any sense as the latter two will never be run.
if ct("Tomboy") and ct("Energetic"):
elif ct("Tomboy"):
elif ct("Energetic")
if ct("Tomboy", "Energetic") is meaningless in this context since there are checks for both individually.
==============================================================
Looks like there are too many if and elif operators.
For example, if we have shy energetic girl, and shy is always goes first in the girlsmeets rpy, doesn't it mean that we'll never see energetic lines?
Same goes for many other cases. Shouldn't lines be a bit more random? Like, sometimes shy, sometimes energetic?
I proposed writing some generic responses for traits and pick randomly without if/elif operations (like getting an intersection of texts for available and girls traits and pick one at random) but it didn't take. But they'll still see it with different girl that has just on of those traits... For now we should add texts, it's never too late to add advanced conditioning of any sorts.
But even as it is now, it's pretty good. Better might be the enemy of good, advanced conditioning requires advanced code that will not be decipherable to a lot of people. Event if we strip it down to a dict of "traits": "texts" and write any sorts of conditioning, it will no longer be an example of how girlsmeets can be coded for unique girls by modders.
Basically, if after a release when we add a modding guide to the game, there'd be noone who wants to take a stab at it, we can say "fuck it" and do whatever we like with that code. At the moment it may not be perfect but it's very humanly readable and understandable.
I've written it to work exactly like that on purpose.
Yeap, the more you randomize the responses and still willing to do this on purpose, the more complicated the code will get.
Nah, I undersstand why you did it. Some traits are stronger than others.
However, there are some lines that I'd like to use randomly. I wonder if there is a less cumbersome syntax than dice after every trait (we have about 80 btw, should I use dice (1.25) or something?
).
Well... the easiest way would be something like this:
options = {
"ct('Shy')" = ["Text 1", "Text 2", "Text 3"],
"(ct('Kuudere') and chr.occupation == 'Warrior') or (chr.status != 'slave' and chr.charisma > 1000000000)" = ["Text 1", "Text 2"]
}
replies = list()
for i in options:
if bool(eval(i)):
replies.extend(options[i])
if replies:
$ rc(*replies)
else:
$ rc("Generic reply if all else fails 1", "Generic reply if all else fails 2", "etc...")
This isn't tested but I seen no reason for it not to work.
*You can put any conditions into the evaluation key.
**You do not have to rename options/replies for every label, this process will be too swift to ruin user experience so keep to the same definitions.
***You can do all sorts of if/elif forks before you run the replies/options code. It can also be placed inside of any if/elif if you so please to be run separately for warriors, separately for strippers and etc. Basically, it's the creators whit more than anything else, any kind of code can be written and simplified towards a great deal of convenience in use.
=================================================================
Dunno, the best I was able to come up with (with a help from Xela) is that "about her" option that works by adding all possible responses to a list (after choosing a one text randomly first), and then randomly select one from that list. (some actually have a dice too)
I didn't cared about it much since, I was just adding texts from time to time.
Yeah, without resorting to insanity and over-complicate things, that is prolly the best way. The code above does the same with with potentially more favorable syntax.
There is something what I would like to ask about.
I have 2 personalities temporally removed because the traits I build them upon first changed, and I'm not sure on what condition I should display them (combination of traits most likely).
Any ideas?
Dark's good with traits

And so are you by the way! Instead of keeping so many texts out of the damned game, bring the traits back

Also, we also have iteractions, look into of they could, at least partly be combined with the girlsmeets? I mean there are bound to be some labels that would be valid even after a girl started working for you...
**Another option is to allow free girls that are working for you to wonder off in the city and block interactions with them. Same for the slaves, use whatever can be used in future st to interact with them. I feel like there should be a better way to handle this than we do atm, but haven't looked at girlsmeets/interactions for too long to know what that might be.