Hello,
Sorry if this was dealt with somewhere, but I could not find my two problems using the search engine.
I've discovered the game a few weeks ago and I have been blocked by one thing that forced me to use a cheat mod to get the diamons: no matter how many times I go to the Waterfalls and look around, the event that grants access to the diamond mine is never triggered. Any idea what can be the problem?
Another strange bug is that I cannot have one of the girls in the farm trained in the correct facility. She is the fifth in the list (of 12) and I assigned her to the Workshop because she has a weakness for machines. But, ever since I assigned four women to the Monster Pen (out of twelve, I have in fact seven that have a weakness for monsters) and the game had to rearrange them to distribute evenly between the facilities, this girl can never get to the Workshop, despite the others being affected correctly (and, ironically, this means she is the fourth in the facility she gets sent to, which should not be possible, if I understand thing correctly). So, here again, has anyone any idea about how I could solve this?
And since I did not want to come empty-handed, and because my interest was piqued over several things, here are a few contributions (I only checked the first, since it is the only actual bug).
So, first, the partially solved bug: I realised after a while that my girls never got involved in bisexual sex. After searching through the code, I realised that it is simply because, on line 568 of BKendday.rpy, "bisexual" is written with an upper-case B. Ever since I changed it to the lower case, I have girls working in tandem with a customer.
However, I have not understood enough how worked the various functions of Step 10 in BKfunctions (in the definition of perform() ) to correct the text: the second girl is not mentioned at the start, but the plural pronoun is used nevertheless for what the customer asks (leading to sentences like "A carpenter was looking for a Tame girl. He was elated to meet Lyuky. He asks
them to give service."). Only after this use of the plural, when the result is given, do we actually learn there were two girls (and who was the second one).
And now, two complete contributions.
First, I found it irritating that the girls could never get with more than three guys. I mean, come on, even in the "group" pictures, many involve more than that. I changed this by adding a little bit of code to BKendday.rpy. After line 560 (dealing with the third male participant to the orgy, I added this:
(I put it in "quotes" instead of "code" to make the message more easily readable)
## May bring in up to 4 more customers. In order to generate more variety, 4-men orgies will occur only four out of five times, and the 7-men orgies will only occur one out of five times (if they are even possible).
test = dice(5)
if girl.has_perk("Orgy") and (girl.get_stat("service") + girl.get_stat("sex") + girl.get_stat("anal") + girl.get_stat("fetish")) >= 450 and cust_list.index(cust) < len(cust_list)-3 and test > 1:
if girl.get_effect("special", "orgy") != 1.0:
customers.append(cust_list[cust_list.index(cust)+3])
if girl.has_perk("Orgy") and (girl.get_stat("service") + girl.get_stat("sex") + girl.get_stat("anal") + girl.get_stat("fetish")) >= 500 and cust_list.index(cust) < len(cust_list)-4 and test > 2:
if girl.get_effect("special", "orgy") != 1.0:
customers.append(cust_list[cust_list.index(cust)+4])
if girl.has_perk("Orgy") and (girl.get_stat("service") + girl.get_stat("sex") + girl.get_stat("anal") + girl.get_stat("fetish")) >= 550 and cust_list.index(cust) < len(cust_list)-5 and test > 3:
if girl.get_effect("special", "orgy") != 1.0:
customers.append(cust_list[cust_list.index(cust)+5])
if girl.has_perk("Orgy") and (girl.get_stat("service") + girl.get_stat("sex") + girl.get_stat("anal") + girl.get_stat("fetish")) >= 600 and cust_list.index(cust) < len(cust_list)-6 and test > 4:
if girl.get_effect("special", "orgy") != 1.0:
customers.append(cust_list[cust_list.index(cust)+6])
It would be easy to change the various get_stat with job_level and use other thresholds (probably something like 3, 5, 7 and 9), but I felt it was best to use the stats for this to allow more variety between the girls (the job levels, being limited to 4 stars—I don't want the 7-men gang bang being only available to X ranks—would make it far more rank-dependant, whereas the sex stats could open it earlier with the right training and developments, so more in the hands of the player).
Another thing I added, completely this time, is a variation of the thief encounter. I will probably extend it to the gambling encounter when she cannot pay: in this universe, where slavery can be used to cover debts, it would probably also be used as a punishment for crimes like theft. As such, I was frustrated when the MC could fuck the thief queen, but not use her in the brothel. On the other hand, I did not want for her to become a full-time resident (it was more fun). So, I devised a new possible outcome of the fight where the player can choose not to have her fucked by the MC, but forced to work for one night in the brothel. And to become a recurring feature afterwards.
I did not go through the whole details of the girls' performances with her, not only because I am not knowledgeable enough about the code, but also because I think she was supposed to be a fast addition, a reputation and gold bonus to occur occasionally.
The first code must be inserted into BKcity_events.rpy to replace the code from line 3592 to line 3594 (actually, those two lines are simply indented once more, but I think it's easier to replace them, and it makes my code clearer her
):
if brothel.level >= 3:
menu:
"Fuck her yourself":
you "Follow me, then."
$ sex = "strength"
"Make her work in your brothel tonight":
if hasattr(MC, 'thief_queen'):
$ MC.thief_queen.conscripted = True
else:
$ MC.thief_queen = get_girls(1, free=True)[0]
$ MC.thief_queen.brothel_visits = 0
$ MC.thief_queen.conscripted = True
$ MC.thief_queen.addicted = False
"[MC.thief_queen.fullname] will work tonight at your brothel."
else:
you "Follow me, then."
$ sex = "strength"
The second code must be inserted into BKendday at line 417 (well, before "CUSTOMERS AND GIRLS INTERACT") :
#### THIEF QUEEN GANG BANG ####
## Prepare
python:
if MC.thief_queen.addicted == True and MC.thief_queen.conscripted == False:
d = dice(30)
if d < (brothel.bedroom_type.level + brothel.level):
MC.thief_queen.conscripted = True
if MC.thief_queen.conscripted:
MC.thief_queen.conscripted = False
if MC.thief_queen.brothel_visits <= 5:
MC.thief_queen.brothel_visits += 1
d = dice(6)
roll = roll_dict[d]
# Calculate score and get result
score = d + 1 + MC.thief_queen.brothel_visits + brothel.level
for k in sorted(result_dict):
if score >= k:
result = result_dict[k]
if (result == "good"):
brothel.change_rep(+1)
gold_index = 80
elif (result == "very good"):
brothel.change_rep(+2)
gold_index = 100
elif (result == "perfect"):
brothel.change_rep(+3)
gold_index = 125
else:
brothel.change_rep(0)
gold_index = 60
# Compose description
# cust_names = and_text([c.name.lower() for c in customers]) ; a list of customers could be established.
gang_bang = dice(4) + 4 + MC.thief_queen.brothel_visits
customers = str(gang_bang) + " customers"
girl_names = and_text([MC.thief_queen.name])
cust_pronoun = "They"
cust_verb = "were"
girl_pronoun = "her"
if MC.thief_queen.addicted == False:
if MC.thief_queen.brothel_visits == 1:
suffix = "st"
elif MC.thief_queen.brothel_visits == 2:
suffix = "nd"
elif MC.thief_queen.brothel_visits == 3:
suffix = "rd"
else:
suffix = "th"
text_descript = "The Thief Queen works for you for the [MC.thief_queen.brothel_visits][suffix] time. " + customers + " participate to her gang bang."
else:
text_descript = "The Thief Queen was horny and decided to come and work for you again. " + customers + " participate to her gang bang."
if MC.thief_queen.brothel_visits >= 5 and MC.thief_queen.addicted == False:
MC.thief_queen.addicted = True
text_descript += "She realised that she liked this. From now on, there is a good chance she will show up again."
text_descript += perform_job_dict["roll_" + roll] % girl_names
text_descript += perform_job_dict["group_" + result] % girl_names
text_descript = "{size=18}" + text_descript # Done last as to not change the log text size
# Compose right text (changes)
text_changes = "\n\nRoll: " + "{image=" + "img_dice" + str(d) + "}"
text_changes += "\nSkill bonus: " + plus_text(MC.thief_queen.brothel_visits)
text_changes += "\n\n{b}Final result{/b}: " + str(score) + "\n({color=" + result_colors[result] + "}" + result + "{/color})\n"
gold_revenue = gold_index * gang_bang
log.gold_made += gold_revenue
text_changes += "\n" + stat_increase_dict["gold"] % str(gold_revenue)
# Choose pic
and_tags = []
not_tags = ["monster", "beast"] # Monster and beast pictures are not displayed during normal sex
and_tags = "naked"
act = "sex"
work_pic = MC.thief_queen.get_pic(perform_job_dict["group_tags"], perform_job_dict[act + "_tags"])
if not work_pic and act in all_sex_acts: # Defaults to sex if a picture hasn't been found
work_pic = MC.thief_queen.get_pic("sex")
if not work_pic and act in all_sex_acts: # Defaults to naked if a sex picture hasn't been found
work_pic = MC.thief_queen.get_pic("naked")
if not work_pic: # Defaults to profile if no other picture has been found
work_pic = MC.thief_queen.get_pic("profile", and_tags = and_tags, not_tags = not_tags)
ev_sound = None
perform_events.append(Event(pic = work_pic, char = MC.thief_queen.char, text = text_descript, changes = text_changes, sound = ev_sound, type = "Normal"))
Of course, the various values (how many men in the gang bang, the number of events before she gets addicted, the dice roll to have her coming back) can be modified depending on one's preferences.
I tested all these, and they are simple enough that there should not be any bug, but the code could probably optimised (I'm not a pro with Python, far from it).
I hope you find it interesting (and that someone can answer my questions at the start).