Patrefans
vrengames from patreon
vrengames patreon

Lab Rats 2 v0.47.0 Release! Get it Here!

🕑 Added 2021-12-01 15:07:32 +0000 UTC

Comments

Vren

Fixed up all of the bugs you reported, thank you a ton for the detailed write up. In 99% of cases I went with your fix as written or nearly identically. For the Jennifer seduce event I've added a Person.get_next_destination() function, so you can check where a person will move on their next action. Useful for crises like this that are suppose to happen at the "start" of a turn instead of the default "end" of a turn.

The serum_trade_ui does not have scroll bars again. This is a pain for adding serums to a contract. EDIT: I commented out the ysize statement for the child frame of the viewport and I was able to get scrollbars. Not pretty, but it at least allows me to work with all my serums. Comment out serum_trade_ui.rpy line 16 # ysize 800

Serum attention updates do not lower the attention if removing a high attention trait while designing a serum. SerumDesign.rpy update_attention function lines 117-120 Original Code: def update_attention(self): for trait in self.traits + self.side_effects: if trait.attention > self.attention: self.attention = trait.attention My Fix: def update_attention(self): highest_trait_attention = 0 for trait in self.traits + self.side_effects: if trait.attention > highest_trait_attention: highest_trait_attention = trait.attention self.attention = highest_trait_attention

The futuristic serum test subject conditions stated by the head researcher do not match what is actually in the code. Head researcher says: Sluttiness 40+ and Obedience 120+ Code says: core_slut_required = 50, obedience_required = 130

Right now Dikdok never stops showing a new video and always gives locked clarity. I think just a line to reset the flag was missed, as with the following change it works as I would expect. role_dikdok.rpy view_dikdok label line 43+ current: $ the_person.event_triggers_dict["dikdok_force_video"] = False $ rand_num = renpy.random.randint(0,3) with added line: $ the_person.event_triggers_dict["dikdok_force_video"] = False $ the_person.event_triggers_dict["dikdok_generate_video"] = False $ rand_num = renpy.random.randint(0,3)

Stable Income goal fix Business.rpy sell_serum function line 550 ish add this line after the other listener_system.fire_event call: self.listener_system.fire_event("serums_sold_value", amount = sales_value) Liquidity goal does not appear any more. The funds check function has an error that always stops the goal from being valid (any number other than 0 is True). goals.rpy bank_account_size_valid_function lines 119-120 def bank_account_size_valid_function(the_goal, the_difficulty): if mc.business.has_funds(500) + (500*the_difficulty): return False should be something like if mc.business.has_funds(500 + 500*the_difficulty): return False

Stable Income goal fix In the meantime, I think you can fix this by inserting one line to the sell_serum function if you want to do it in the current version. Business.rpy sell_serum function line 550 ish add this line after the other listener_system.fire_event call: self.listener_system.fire_event("serums_sold_value", amount = sales_value) I also found the Liquidity goal does not appear any more. The funds check function has an error that always stops the goal from being valid (any number other than 0 is True). goals.rpy bank_account_size_valid_function lines 119-120 def bank_account_size_valid_function(the_goal, the_difficulty): if mc.business.has_funds(500) + (500*the_difficulty): return False should be something like if mc.business.has_funds(500 + 500*the_difficulty): return False

Production lines not being added by Production Line Expansion policies Not sure why a while loop was used here particularly in the original code, but I made the following changes to get this working. This fix will not help if you already bought the policies. serum_policies.rpy add_production_lines function lines 142 - 144 def add_production_lines(amount): while x in range(0,amount): mc.business.production_lines.append(ProductionLine()) changed to: def add_production_lines(amount): for x in range(amount): mc.business.production_lines.append(ProductionLine(mc.business.inventory))

Production lines not being added by Production Line Expansion policies Not sure why a while loop was used here particularly in the original code, but I made the following changes to get this working. This fix will not help if you already bought the policies. serum_policies.rpy add_production_lines function lines 142 - 144 def add_production_lines(amount): while x in range(0,amount): mc.business.production_lines.append(ProductionLine()) changed to: def add_production_lines(amount): for x in range(amount): mc.business.production_lines.append(ProductionLine(mc.business.inventory))

Copied from another post of mine to try to put everything in one place: I think finding new clients is WAY too effective right now, with initial stats being able to get 900+ clients per turn. This means it is really easy to keep aspect price up at the base price. I think the issue is the sale_progress function: Business.rpy line 500ish sale_progress function amount_increased = ((3*cha) + (focus) + (2*skill)) * (self.team_effectiveness) * (1+(slut_modifier*0.01)) should probably be amount_increased = ((3*cha) + (focus) + (2*skill)) * (self.team_effectiveness/100.0) * (1+(slut_modifier*0.01))

There are still a couple issues with Lily's quests and a bunch with Stephanie/Mom vaginal taboo quest. Issue with buying a pi-phone for Lily Oral taboo quest. Stops the buy the pi-phone action from appearing. role_sister_taboo_quests.py line 39: return should be: return True The Lily Anal Taboo quest check back in never completes the taboo quest. I think this is the right fix based on the mom completion event? role_sister_taboo_quests.rpy line 591+ label sister_anal_taboo_break_revisit_complete(the_person): mc.name "So, I got you those pictures with [mom.title]." insert the 2 lines label sister_anal_taboo_break_revisit_complete(the_person): $ the_person.event_triggers_dict["sister_anal_quest_active"] = False $ the_person.event_triggers_dict["anal_revisit_complete"] = True mc.name "So, I got you those pictures with [mom.title]." Issues with Mom vaginal taboo quest: This one has a few problems with it, and the last one I'm not sure how to fix it, but it also doesn't wholly break the quest if it isn't fixed. role_mother_taboo_quests.rpy line 92 mom_vaginal_quest_2_requirement elif the_person.event_triggers_dict.get("mom_vaginal_quest_progress", 0) == 1: should be elif not the_person.event_triggers_dict.get("mom_vaginal_quest_progress", 0) == 1: role_mother_taboo_quests.rpy lines 809-810 mom_vaginal_taboo_break_revisit_quest_2 $ decision_event = Action("make a decision", mom_vaginal_quest_3_requirement, "mom_vaginal_quest_3", args = the_person, requirement_args = [the_person, day + renpy.random(1,3)]) $ mc.business.mandatory_crises_list(decision_event) should be $ decision_event = Action("make a decision", mom_vaginal_quest_3_requirement, "mom_vaginal_quest_3", args = the_person, requirement_args = [the_person, day + renpy.random.randint(1,3)]) $ mc.business.mandatory_crises_list.append(decision_event) role_mother_taboo_quests.rpy line 924 mom_vaginal_quest_3 insert $ mc.end_text_convo() to end the text conversation so it should look like: "Don't reply.": "You shrug and put your phone back in your pocket." $ mc.end_text_convo() $ seduce_action = Action("Seduce my son.", mom_vaginal_quest_complete_requirement, "mom_vaginal_taboo_break_revisit_complete") The last issue is the seduce text to the mc triggers on time advance when Mom is in her bedroom, but then she always moves out of her bedroom in the following turn. So you can never immediately go complete the quest. Not sure how this should be fixed right now as it may require changing how the text action is triggered or merging the text event with the actual seduce event instead of making them separate. For now if you just wait until Mom is in her bedroom again and then walk in, the event will trigger as long as there are no competing events (like Mom is sleeping). Also, not related to the original issue, but there were a couple typos I noticed: role_mother_taboo_quests.rpy line 785 $ bedroom.actions.append(Action("CHeck " + the_person.title + "'s advice post.", mom_vaginal_quest_2_requirement, "mom_vaginal_taboo_break_revisit_quest_2", args = the_person, requirement_args = the_person)) CHeck -> Check role_mother_taboo_quests.rpy line 707 and 762 707: mc.name "I hope you can find the advince you need [the_person.title]." 762: "You restore the most recent page. It's a post by \"UncertainMommy\", asking for advince. You take a moment to read through it." advince -> advice

Unpaid internship requirement salary check is not checking for 0 salary. punishments.rpy line 1048 elif the_person.salary < 0: should be elif the_person.salary <= 0:

Resetting arousal in run_orgasm isn't working now. The if reset_arousal statement is indented one too many and is under the trance check instead of the function generally. Person.rpy run_orgasm function line 2000ish On another note for this function, the fire_event parameter is unused and all orgasms fire the "girl_climax" event. Should all orgasms count to the goals? I noticed last version as well that the climax cycler allowed easy completion of the Shiver goal in later game, but I'm not sure if this was intended and can't remember if it always worked that way.

This issue is caused by a small bug that I think got overlooked when fixing the rest. Issue with buying a pi-phone for Lily Oral taboo quest. Stops the buy the pi-phone action from appearing. role_sister_taboo_quests.py sister_oral_quest_2_requirement line 39: return should be: return True

EDIT: I'm making this post as my bug report thread to avoid cluttering up all the comments. I'll make a reply post here for each section of bugs I find from now on.

I do like the changes as it makes me try to come up with new serum combinations where before I always went for the same few traits for most of early to mid game, but I think there is some polish and play testing needed before it can be really good. I'm a little concerned that there are a couple bugs making things easier with the new system, and once they are fixed the difficulty may go up a lot, especially in early game if you have some bad luck. 1. I think finding new clients is WAY too effective right now, with initial stats being able to get 900+ clients per turn. This means it is really easy to keep aspect price up at the base price. I think the issue is the sale_progress function: Business.rpy line 500ish sale_progress function amount_increased = ((3*cha) + (focus) + (2*skill)) * (self.team_effectiveness) * (1+(slut_modifier*0.01)) should probably be amount_increased = ((3*cha) + (focus) + (2*skill)) * (self.team_effectiveness/100.0) * (1+(slut_modifier*0.01)) 2. The daily aspect price change isn't working so the base aspect price stays at 10 with 200% aspect desire. I discuss the issue in another comment, so I won't repeat here. If this is fixed I can see some people getting a few days of bad luck that shift prices down enough that, combined with the above fix, makes selling their initial serums quickly stop being cost effective. This results in either progress getting slowed WAY down, or bankruptcy with no good way to avoid it. This could also cause the prices to stay low for a long time, as the function that shifts the prices has no logic that causes a trend back to the default price. I'd recommend adding a small (something like $0.01-$0.10 a day?) shift that goes back to default aspect price similar to how happiness works but a lot slower. This would avoid some consecutive bad luck being an influence for possibly the whole game, which seems like something that would not be enjoyable for a lot of people. I personally like the idea of fluctating prices, but it will increase the amount of micro-management needed. The above problem could be handled by doing contracts since those don't depend on the fluctuating aspect prices, however I see one issue with contracts and it affects early game especially badly. There are a lot of contracts that are impossible to complete. Tier 0 is really bad with this since it is so limited in traits and all tier 0 contracts will require 0 attention serums. This will probably be hard to fix unless you start adding new traits that basically do nothing but act as aspect boosters for the troublesome aspects (mental >1 and any sexual since all sexual traits generate attention). I'm not happy with this fix idea, but don't have a better one in mind, since culling contracts based on possible trait combinations seems like it might be too complicated or easy to end up with problems as traits get changed. EDIT: After designing more serums and looking at the code, I realised I misunderstood how attention works. It's not additive, but whatever trait has the highest attention is the attention for the serum in total. This makes things a lot easier than I thought. However, this still causes problems for any contract with a sexual aspect requirement and 0 attention requirement. Also, the update attention function should probably add logic to reduce the serum attention value if removing a high attention trait, as it doesn't do that now.

The daily aspect price variance isn't working right now. The issue is in Business.rpy run_day function line 200 ish for aspect in [self.mental_aspect_price, self.physical_aspect_price, self.sexual_aspect_price, self.medical_aspect_price]: aspect += ((renpy.random.random()-0.5)*2) * self.aspect_price_daily_variance The for loop list of aspects only copies the integer values, it does not reference the original location. "aspect += change_value" just creates a new local variable with no reference to the original place to put it. For an explanation I recommend looking at the answer for the stack overflow question "Do Python for loops work by reference?" Something like "mc.business.aspect += change_value" would work since it reassigns the object property rather than a local variable, but isn't usable with the for loop list. EDIT: The fix I'm using now is to stick the price adjustment code in a function instead of a for loop and just call it for each aspect price. Something like: self.mental_aspect_price = self.adjust_aspect_price(self.mental_aspect_price) with adjust_aspect_price containing the for loop code and returning the adjusted price back. However, I'm sure there are a number of other, possibly better ways to do this.

Xador

If there was a way to have Attention and Contract Status listed on main screen in the Clarity/Energy/Arousal area it would be my only suggestion at this time. Also making the Lobby of the business into the MC office where you have a list of every task listed to keep from switching screens would be a huge efficiency saver. The only tasks I would keep needing to “be” in the department is actively researching or producing. Adjusting research projects can be justified through sending an email, ordering supplies would be placing an online order, adjusting company policies are company newsletter, adjusting production of serums sending a memo, hiring is done in the office because that’s where interviews typically occur. I’m probably forgetting a couple but this would save time to keep everything from feeling like you have to micromanage. I can spend Early Morning at any point in the game and in a few minutes do everything I need done. This could be expanded even further if you hire a secretary, let’s say Jennifer for example as I loathe her boss or Rebecca? in there, that way you could “call” the secretary on your phone from wherever and do these basic tasks wherever you are. The update is good but I think doing some of these things would make a Huge difference.

Xador

Much appreciated.

Shinnjin

All of that information is under the marketing department, so you have to go there and choose "sell serum" to get a read on those things.

Xador

So where are the contracts as well as how do you see how much Attention you have at any given time? I must be missing it somewhere.

Togashi Jack

So, I'm just going to take a moment to say that last month when the serum selling was being reworked there were a lot of concerned comments about how this could effect grind, that things would be too difficult, convoluted, or just take too long. For those people, I'm happy to say that this has not been my experience with this update. Rework seems nice, having an Auto-Sell option means you don't ever actually need to work in Marketing at the beginning of the game, freeing you up for other stuff, and while contracts are a neat bonus, for anyone that doesn't enjoy them, or doesn't want to micromanage, they're something that can safely be ignored without slowing everything else down. The only thing that I can think of at this point is that the Attention mechanic might need some looking into. Either it drops off too quickly, or the business upgrades counteract it too well. I've only ever been hit once by the inspector, and after that was able to buy all of the upgrades and more or less ignore that mechanic in its entirety.

Shinnjin

Found a bug: I have bought all "production line" improvements but I still only have 2 lines to produce serums.

SomebodyElse

I'm not sure I'm a fan of how the serum traits are displayed in their current form - one option is suggest is sorting/grouping by type of serum where applicable. For example grouping the Production or Suggestion traits as you'll only need them once per serum. I'd also like to see more per turn effects available as opposed to just On Apply effects

Shinnjin

I found an error while chatting with the city inspector during the first raid: [code] I'm sorry, but an uncaught exception occurred. While running game code: File "game/script.rpy", line 258, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 138, in script call call advance_time from _call_advance_time_5 File "game/script.rpy", line 421, in script call $ crisis.call_action() File "game/major_game_classes/business_related/Attention_Events.rpy", line 44, in script python: File "game/major_game_classes/business_related/Attention_Events.rpy", line 54, in if an_attention_event.is_action_enabled(city_rep): File "game/major_game_classes/game_logic/Action.rpy", line 61, in is_action_enabled requirement_return = self.check_requirement(extra_args) File "game/major_game_classes/game_logic/Action.rpy", line 58, in check_requirement return self.requirement(*extra_args) File "game/major_game_classes/business_related/Attention_Events.rpy", line 22, in attention_seize_research_requirement if design.is_researched: AttributeError: 'SerumDesign' object has no attribute 'is_researched' -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 258, in script call $ picked_option.call_action() File "game/general_actions/location_actions/business_actions.rpy", line 138, in script call call advance_time from _call_advance_time_5 File "game/script.rpy", line 421, in script call $ crisis.call_action() File "game/major_game_classes/business_related/Attention_Events.rpy", line 44, in script python: File "renpy/ast.py", line 923, in execute renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store) File "renpy/python.py", line 2235, in py_exec_bytecode exec(bytecode, globals, locals) File "game/major_game_classes/business_related/Attention_Events.rpy", line 54, in if an_attention_event.is_action_enabled(city_rep): File "game/major_game_classes/game_logic/Action.rpy", line 61, in is_action_enabled requirement_return = self.check_requirement(extra_args) File "game/major_game_classes/game_logic/Action.rpy", line 58, in check_requirement return self.requirement(*extra_args) File "game/major_game_classes/business_related/Attention_Events.rpy", line 22, in attention_seize_research_requirement if design.is_researched: AttributeError: 'SerumDesign' object has no attribute 'is_researched' Windows-10-10.0.19041 Ren'Py 7.4.8.1895 Lab Rats 2 - Down to Business v0.47.0 Thu Dec 2 09:33:54 2021 [/code]

Togashi Jack

Confirming Shinnjin's post. If more than $1200, there is no purchase option, if less than $1200, purchase option is greyed out. With Mom's forum post, doesn't seem there's anywhere where I can go to edit things or otherwise keep track of it and continuing to use her computer just gets sex toy adds

Shinnjin

I'm having an issue: When buying a phone for Lily; If I have <$1200, it will show me the phone but greyed out; If I have >$1200, it won't show the phone at all...

Scott S.

I don't know about a list, but other than Jennifer and Lily, Emily comes along later in the game if you advance serum design far enough to meet Nora. Alexa you can meet downtown right away and asks you if you want to get coffee. There's also a somewhat randomized character (boss's daughter) you can meet while doing work-related quests for Jennifer. The gentlemen's club quest starts when Rebecca asks you to find out where her daughter is going, but you can find it on your own by exploring downtown (might only be in the evening). I may be forgetting some, but that's off the top of my head.

Is there a list of quests available anywhere and just how to trigger them? I've seen references to characters and other quests that I can't seem to figure out how to trigger.

Vren

Noted, I'll have that fixed up for the next version.

Vren

Both have been fixed and should be working properly now.

Togashi Jack

Stable Income goal has become broken with the change to how Serums are sold and does not progress either with Auto-Sell, or with manually selling Serum

Scott S.

Are all of Lily's taboo quests fixed in this version? I couldn't complete either the new phone or the 10 serum dose quests in v0.46.1. The 10 serum dose quest actually got activated twice because I had selected the same response. You could bypass them by continuing to break taboo normally, but they cluttered up the menus.


More Creators