Open AnthonyChenevier opened 6 months ago
I haven't seen anyone tie prerequisites to a precept before. Perhaps the easier path is to create a meme that requires the vat-growth-preferred precept and also allows a new vatshock-reduction ritual reward. Or even better, just tack this on to Transhumanism, which already unlocks the vat precept. More Ritual Rewards mod is a great example of adding ritual rewards requiring certain memes!
The good thing about precepts is that they are optional unless tied to a meme, which afaik 'vat-preferred' isn't (allowing for a more customised experience). I must admit that I haven't started coding the ritual stuff yet, as it may be unnecessary for the first public release. I'll keep this comment in mind when I dive into it :)
So there appears to be some issue with how the verses are called when overclocked growth vats reach 100%. I dont know if it has to do with vanilla expanded nutrient paste, or some other mod.
@Dragoonin Sorry I'm not sure what you mean by 'verses' - a typo or am I missing something? I've had a look at the paste mod and can see it adds pipe functionality to the growth vats - this may be the cause. If you have a log that might help me track it down.
Cheers for the report in any case!
Edit: Did a quick test with the nutrient paste pipes hooked up and used debug tools to age a kid up and they exited the vat just fine. Think I need more info to track this bug down.
@AnthonyChenevier Here is my save. I apologize I mean when the Hediff Overlocked Vat Learning reaches 100% it causes massive lag.
Log list - https://gist.github.com/HugsLibRecordKeeper/fc1bdc76e282717b99f17a284af2e9ad
Specific Error Rimworld throws shown in Dev mode -
Exception ticking GrowthVat6117337 (at (149, 0, 188)): System.NullReferenceException: Object reference not set to an instance of an object. [Ref B1FB747] at RimWorld.LearningUtility.LearningRateFactor (Verse.Pawn pawn) [0x00015] in <2a40c3593b334f29ac3cb3d32d652351>:0 at GrowthVatsOverclocked.VatExtensions.HediffComp_OverclockedVatLearning.LearnMode (RimWorld.Pawn_SkillTracker skillTracker, GrowthVatsOverclocked.Data.LearningMode mode) [0x00052] in <6fbb1fdc98364812ab5af83f3f1ceac2>:0 at GrowthVatsOverclocked.VatExtensions.HediffComp_OverclockedVatLearning.Learn () [0x0006a] in <6fbb1fdc98364812ab5af83f3f1ceac2>:0
1 PerformanceOptimizer.Optimization_FasterGetCompReplacement:Transpiler(IEnumerable
1 instructions, MethodBase method)
at GrowthVatsOverclocked.ClassExtensions.Hediff_VatLearning_HarmonyPatch.Learn_Prefix (Verse.Hediff_VatLearning __instance) [0x0001d] in <6fbb1fdc98364812ab5af83f3f1ceac2>:0 1 PerformanceOptimizer.Optimization_FasterGetCompReplacement:Transpiler(IEnumerable
1 instructions, MethodBase method)
at Verse.Hediff_VatLearning.Learn () [0x0000e] in <2a40c3593b334f29ac3cb3d32d652351>:0 I apologize if it's a issue with it being too modded. I also decided to see what would happen if I left enhanced learning on my growth vats with enhanced vat learning and it did not add more traits choices or more passion points and choices.
@Dragoonin: From your error report it looks to be coming from the Performance Optimiser mod - It seems that any Harmony transpiler patch on growth vats messes with my mod's functionality in some way - seems to be a common cause of a lot of my most recent bug reports. I'll look into it further over the weekend.
'Vatshock' is a new hediff that represents the long-term effects of vat-growth on pawn psychology. It is broken into 2 phases: 'Vatgrowth Exposure' & 'Vatshock'.
Vatgrowth Exposure
Vatgrowth Exposure refers to the 'strength' of the vatgrowth process used over the applicable life-stages of the pawn (0-18yo). Using vats in their vanilla configuration with no vat-juice still does expose pawns to this hediff, but it is tuned so that it is the safest option and won't progress to full vatshock (or may still, but extremely rarely - this is something that needs tuning).
Using a higher resolution learning suite adds more stress, to the point where pawns may develop full-blown vatshock. Using Vat-juice to accelerate growth speed also magnifies the effect, so that if both high-res learning and vat-juice are used on a pawn they have a very high chance of suffering from full vatshock unless preventative steps are taken to reduce the effect.
New Feature: Vat Timers
This is where the vat timers functionality become important - if pawns are getting high vatgrowth exposure then they can be set to leave their vats and return after a set time. This gives players a chance to reapply vat-juice drugs, and more importantly - spend time in the real world conversing with friends and family and performing learning activities.
The amount of time needed for this will depend on the growth vat regime the pawn has, and will require players change timers as needed to ensure healthy pawns - OR NOT, it's your game, torture 'em if that's your thing - there are some benefits as explained below.
Vatshock
Vatshock is analogous to Shellshock or PTSD, but for pawns who have suffered from the shock of having their physical and psychological growth accelerated beyond normal means in a simulated environment then being dumped into the real world - Think Neo leaving his pod in 'The Matrix' after a lifetime of simulation - it wasn't pretty.
Vatshock should need increasing levels of management to overcome if players are pumping vat-juice and running high-quality vat simulations - there is a cost to getting high-quality/fast-grown pawns!
Ideology impact
Ideology already has an effect on parent moods depending on the type of training used on their child and precepts like growth vats preferred and child labour. Beyond that I am looking to implement a ritual that can be selected for your ideology if vat-growth preferred is selected that causes a massive drop in vatgrowth exposure - possibly meaning only a single instance of this ritual is required at the right time to mitigate all negative effects of vatgrowth on all attendees - The Matrix 2's Drum Rave kinda thing.