I downloaded the mods looked through the code and it doesn't fix the issues I am wanting fixed.
They do add some nice features and so on but it doesn't fix the issue of bad use of random.
I actually spent a little time and improved it on my own. This was on version 31.1. Here are a few of the fixes not all.
But this shit can be fixed far better with a little work if the developer just bothered to think about it. Clearly it isn't that hard to do.
script.rpy file at line 1735
I created exceptions for opinions of HR work, research work ... and so on to modify the low value in the opinion the hire their skill in the field the less chance of getting a low value
Code:
lowl = -2
if the_opinion_key == "HR work":
lowl = skill_list[0]/2
if the_opinion_key == "marketing work":
lowl = skill_list[1]/2
if the_opinion_key == "research work":
lowl = skill_list[2]/2
if the_opinion_key == "production work":
lowl = skill_list[3]/2
if the_opinion_key == "supply work":
lowl = skill_list[4]/2
if the_opinion_key == "working":
lowl = 0
if the_opinion_key == "work uniforms":
lowl = 0
degree = renpy.random.randint(lowl,2)
same file line 3510 I flipped the random skill and stat and then made skills dependent on stats.
Code:
if stat_array is None:
stat_array = [renpy.random.randint(1,stat_cap),renpy.random.randint(1,stat_cap),renpy.random.randint(1,stat_cap)]
if skill_array is None:
skill_array = [renpy.random.randint(1,stat_array[0]),renpy.random.randint(1,stat_array[0]),renpy.random.randint(1,stat_array[1]),renpy.random.randint(1,stat_array[2]),renpy.random.randint(1,stat_array[2])]
random_lists.rpy line 433 I modified the body list into a weighted body selection
Code:
list_of_body_types = []
list_of_body_types.append(["thin_body",75])
list_of_body_types.append(["standard_body",20])
list_of_body_types.append(["curvy_body",5])
def get_random_body_type():
return get_random_from_weighted_list(list_of_body_types)
However, if it was done correctly the hiring process would be more like real life you get in a selection of people who know what the job is they are applying for and have skills related to it at various levels and the rest of the stuff would be more randomized.
Oh and his personality crap he's created such as introverts liking research and out going people not is utter horse shit.
Any researcher that can't socialize well has hell getting funding thus wouldn't last long or would end up in shit jobs unless they have someone watching out for them. That doesn't happen a hell of a lot.
I haven't messed with that part yet but clearly I need to because even with the changes I make I keep getting characters that hate the only fucking job they are good at. The chances of finding someone who is even moderately good at research sucks ass. The reason being is those stupid personality traits are used to override the generated values at some point.
Not sure yet how I am going to deal with them. some of the stuff is good with it such as the opinion changes regarding sex and changes in dialog but the fact he has it over write the other stuff is just stupid.
One of the issues with modding his code is that stuff I showed above is different from the way first time I modified it because he changed his code and the way he is doing it. Honestly, the code change is an improvement in that it is more efficient than before but he still could very well easily connected them together as you see and it only to minimal changes. It makes sense to do that. A person with an IQ of 70 is never going to be a neural surgeon no matter how long they study. Not unless someone chances brain and manages to raise their IQ up. A person who can't run will never run hurdles or pole vault. A person's capabilities generally dictate the jobs they have available to them. In general the people like doing stuff they are better at doing not always but in most cases. There are people who like a challenge more than they care about being good or great at something.
The code above has a number of good results from it. You end up paying less generally for a person who can do a job. Also you can find some one who can fill the job much much faster. They might not be the perfect person but at least they aren't going to quit the same week.
I went through and tested it by modifying the hiring screen to show the hidden values and indicate they are hidden. This way i could see the types of characters generated. This is only a cheap partial fix but still a massive improvement over the base game.
Update:
I went ahead and simply removed the work related opinions from the general and special personalities. That's pretty much has it fixed for the skill and stats and stuff making sense. There is a chance the person will end up liking or loving something aren't that good at but that's an easy fix but doesn't cause any negative issues if it isn't reduced. If I wanted to fix it I would modify the upper bound by setting it to 2*skill/skillcap.
Update 2:
Ok, I think this will be the last basic improvement. Turns out he created a bunch of default characters to repay patrion donators. Frankly, if I was them I would be pretty insulted. Here is why not a single one of them is usable. He typed in random stat and skill values that don't align and their assigned personalities and likes and dislikes that are predetermined contradict the skills.
So the only purpose they serve is to clog up the hiring process and make it worse. There is a 1 in 5 chance a premade character will be selected each time a new character is being picked. You could technically end up with more than 2 in a group of 10 candidates and more than one of them of the same type.
Worse yet they don't go the fuck away from what I can tell so you can have the opportunity to hire their clone later on.
The solution to this issue was simple go under the make_person() function and Hash out (#) the split line and the if statement leading to get_premade_characer(). You have to leave return_character = None alone though. You'll find this in the script.rpy file around line 3378
Lastly made a change to script.rpy line 3478 added in a loop to ensure useless characters with very low stats were not created. It so any with stats that add up to less than 6 are re-rolled and those with 2 ones are also re-rolled.
Yes, it's a bit more work than I want to do on something that isn't my own project. But this should be an easy one time fix for the developer. He knows his own code hopefully better than I do.
I included the modified files for 32.2 if anyone wants to try them out. fore warning I also modified the hire screen so I could see the opinions the hidden ones have the word hidden beside them. You can fix that back the change is around line 7581 in script.rpy
just unzip it into the game directory let it replace the files.
I'd suggest making a separate copy of the game so if you don't like the changes you can go back to what you had.