CreatorsOk
vrengames
vrengames

patreon


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

Lab Rats 2 v0.47.0 is live! Get it here!

PC: Lab Rats 2 v0.47.0-PC
Mac: Lab Rats 2 v0.47.0-Mac
Android: Lab Rats 2 v0.47.0-Android 

Lab Rats 2 v0.47.0 is finished it's month of development and is ready for a week of public bug testing! This update was focused on redesigning the core business cycle of designing, researching, and selling mind and body altering drugs. Each serum you design now has a collection of aspects which determine it's price, what contracts it will satisfy, and how much attention it will draw to your business from the authorities!

There are two major changes to the business system of LR2: the addition of aspect points, and the addition of contracts. Aspect points are an abstracted description of why certain serum traits may be wanted and come in four varieties: Mental, Physical, Sexual, and Medical. Each aspect has a value on the open market, and the more you sell the less valuable it becomes. Your marketing employees can be put to work counteracting these effects, keeping the price relatively stable long term. The value of each serum is now determined by the sum of all of it's aspects. Contracts are special orders for serum designs with a specific combination of aspects. In exchange for these strict requirements contracts offer far more money than you would earn by selling your serum on the open market. Creating new designs to meet the demands of your clients is the best way to catapult yourself to wealth and influence.

Selling serum now generates attention for your business. Attention bleeds away slowly over time, but if it reaches it's maximum value the city will be forced to take action. This includes a visit from one of their representatives, who can levy one of a number of different punishments. These punishments include a monetary fine, seizing your current inventory of serum, or destroying some of your research. New business policies have been added to help you manage your Attention. Future updates will include ways to corrupt the city representative and, eventually, or the city council she represents

There are a ton of little changes and additions throughout the game as well. Any page that references serum traits or designs has been updated to display their aspects in a convenient way. The serum design and research screens can now have serum traits sorted by research tier, alphabetically, and their aspect values. A new event for your companies head researcher has been added to help ensure you can generate the Clarity you need for your early game research. And, lastly, a bunch of bugs that were stopping progress on some side quests have been quashed. 

Here's a changelog with some specifics (v0.46.1 to v0.47.0):

*CHANGES AND ADDITIONS*

- Serum traits now have a series of scores, representing their use in different fields.

- Added 4 serum trait aspects - Mental, Physical, Sexual, and Medical.

- Added flaw "aspect", added to serum by side effects.

- Added attention score to each serum trait. The attention score of a serum is equal to the highest in the design.

- Serum Deisgns now have aspect values equal to the sum of all of the traits they include.

- Serum Design values are now based on the sum of aspects they offer instead of a flat dollar value.

- Serum Aspect values fluctuate from week to week around a base value.

- Serum Aspect values decrease as you sell serum that include that aspect type.

- Added serum aspects to all existing traits. Higher tier traits and traits with higher attention have more aspects.

- Selling serum is now an instant action.

- Added Market Reach score. Raising market reach counteracts the aspect value decrease caused by selling serum.

- Reworked marketting work action. Now raises market reach.

- Added Contracts. Contracts offer much better per-aspect prices, but require a certain combination of aspects and limited flaws.

- Added Attention score. Raised when selling serum with an Attention trait higher than 0.

- Added Attention bleed

- Added attention events. When business attention reaches it's maximum number (default 100) you will have a visit from a city representative.

- Added five attention event variants. Potential results include fines, supply seizure, and research destruction.

- Added serum marketing screen, containing infromation about stock, contracts, aspect value, etc.

- Updated all trait tooltips to display aspect information.

- Updated serum design UI to display aspects.

- Updated serum design UI to allow you to sort by serum tier or specific aspects.

- Added serum production tier. Your lab may only produce serum designs with a tier equal or less than your current tier.

- Added business policy to raise serum production tier. Each tier adds increasingly greater static operating costs.

- Updated research UI to allow you to sort serum traits by tier or specific aspects.

- Updated a bunch of other screens to display aspects where useful.

- Added business policies to reduce the amount of attention generated when selling serum (3 tiers available.)

- Added business policy to increase max attention.

- Added business policy to increase attention bleed.

- Added city rep character. Shows up to your business each time you max out attention.

- Added basic framework for her interaction. Future updates will make corrupting her critical to managing attention.

- Added event for head researcher role when you are not resarching anything. Ensures access to some Clarity at the start of the game.


*BUG FIXES*

- Fixed Lily's oral taboo quest not being completeable.

- Fixed Iris not having a home set (and causing a crash after her introduction).

- Fixed some incorrectly flipped girlfriend/boyfriend references.

- Fixed some incorrect name references

- Fixed sluttiness penalty for cheating being inverted when they had a negative opinion of cheating.


Comments

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.

Vren

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.

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.

Xador

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.

Shinnjin

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.

Xador

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.

Togashi Jack

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

Shinnjin

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

SomebodyElse

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]

Shinnjin

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

Togashi Jack

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...

Shinnjin

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.

Scott S.

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.

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

Vren

Both have been fixed and should be working properly now.

Vren

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

Togashi Jack

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.

Scott S.


More Models and Creators