joleo9 Posted April 8, 2024 Posted April 8, 2024 21 hours ago, Skömer said: depends on what you want It seems like Licentia Labs includes all of this mod's features, but I've seen stuff about it being out of date, so I want to know if Licentia Labs will cause me problems.
NuttySquabble Posted April 28, 2024 Author Posted April 28, 2024 (edited) I just posted a new, experimental release of Dyspareunia for RimWorld 1.5 and the unstable version of RJW (taken from Discord). Â This is a beta release, barely tested and may contain bugs. Use at your own risk. Support is generally not provided until a stable version of RJW is released. Â RimWorld 1.3 - 1.4 are also supported but will not be updated any more. Â Get it here, Edited May 10, 2024 by NuttySquabble 3
Poranya Posted May 29, 2024 Posted May 29, 2024 It works perfectly for me with only one exception, whenever they do fisting the damage is always applied to the male pawn, even if he is the one getting his hands dirty. If it's two females then none of them is getting damaged. Â Seems like a one line of code type of fix, so I thought I'd point it out.
NuttySquabble Posted June 2, 2024 Author Posted June 2, 2024 On 5/29/2024 at 5:41 PM, napoleon000 said: It works perfectly for me with only one exception, whenever they do fisting the damage is always applied to the male pawn, even if he is the one getting his hands dirty. If it's two females then none of them is getting damaged. Â Seems like a one line of code type of fix, so I thought I'd point it out. I'll check it, thanks for reporting.
Hurrdurrjohn Posted September 3, 2024 Posted September 3, 2024 On 6/2/2024 at 6:09 PM, NuttySquabble said: I'll check it, thanks for reporting. Unfortunately, I've found another bug.  Transplanting a sexual organ (a default RimJobworld feature) in place of a destroyed one does not do anything. For example I've had a pawn with a destroyed anus. Harvested another from a different pawn, installed it into the new one (successfully) but the organ remains destroyed and nothing's changed.Â
TeH_Dav Posted September 27, 2024 Posted September 27, 2024 6 hours ago, Cunnysioure said: Is this Mod still being updated? Last I tried, this mod is not compatible with the 5.5 version of RJW. Setting aside the fact that almost all features of this mod are in other RJW mods, it isn't really necessary anymore. At least from what I've seen, I could be wrong.
Cunnysioure Posted September 28, 2024 Posted September 28, 2024 (edited) 17 hours ago, TeH_Dav said: Last I tried, this mod is not compatible with the 5.5 version of RJW. Setting aside the fact that almost all features of this mod are in other RJW mods, it isn't really necessary anymore. At least from what I've seen, I could be wrong. True there's other mods like LL that has features like this mod and more, but i want the simplicity of this mod, but since the author of this mod has gone radio silent, i wanna be sure if this mod is still being maintained. Edited September 28, 2024 by Cunnysioure 1
NuttySquabble Posted October 13, 2024 Author Posted October 13, 2024 I haven't been playing RimWorld for a while and didn't even know about RJW 5.5. Dyspareunia will be updated, but I don't know how much needs to be changed, so no ETA. 3
NuttySquabble Posted October 17, 2024 Author Posted October 17, 2024 An experimental version of Dyspareunia for RJW 5.5 is available for download here. I only briefly tested it, so there may be bugs. 5
Cunnysioure Posted October 18, 2024 Posted October 18, 2024 11 hours ago, NuttySquabble said: An experimental version of Dyspareunia for RJW 5.5 is available for download here. I only briefly tested it, so there may be bugs. Yo author, everything seems to working fine when i try the experimental version, no error ,nothing unusual, its good to have you back man, il comment again if i encounter a bug in the experimental version.
DukeElToro Posted October 25, 2024 Posted October 25, 2024 6 hours ago, NuttySquabble said: Dyspareunia currently doesn't take into account RJW's girth and length calculations, which are quite complex and don't really work well with how Dys is balanced. The overall size (technically, severity property) is used instead. Maybe I'll change that eventually, but I haven't found a simple way to do it without risking to fuck things up. Why not just increase severity of organ and let RJW recalculate lenght and girth? Â Â Â Â Â Â Â HediffComp_SexPart hediffComp = organ.TryGetComp<HediffComp_SexPart>(); Â Â Â Â Â Â hediffComp.UpdateSeverity(stretch);
NuttySquabble Posted October 25, 2024 Author Posted October 25, 2024 Version 1.4 with support for RJW 5.5 is officially out! Â New in this version: - Natural contraction: Parts (vaginas and anuses) now contract to their original size by default. It can be overriden in the settings. - Contraction is now a little bit (20%) faster - Changed settings layout a bit - Contraction functionality is now implemented with a HediffComp, which should work faster and have better compatibility than the old system 2
NuttySquabble Posted October 25, 2024 Author Posted October 25, 2024 1 hour ago, DukeElToro said: Why not just increase severity of organ and let RJW recalculate lenght and girth? Â Â Â Â Â Â Â HediffComp_SexPart hediffComp = organ.TryGetComp<HediffComp_SexPart>(); Â Â Â Â Â Â hediffComp.UpdateSeverity(stretch); Dyspareunia actually does increase (and decrease on stretching) the severity of the organ using vanilla methods. But RJW does some weird black magic with severity, which I haven't quite understood yet.
DukeElToro Posted October 25, 2024 Posted October 25, 2024 29 minutes ago, NuttySquabble said: Dyspareunia actually does increase (and decrease on stretching) the severity of the organ using vanilla methods. But RJW does some weird black magic with severity, which I haven't quite understood yet. Without UpdateSeverity lengt and girth of part will not be updated, this could cause some issues wiht other mods. Â Â Â Â Â Â public static void StretchOrgan(Hediff organ, float amount) Â Â Â Â { Â Â Â Â Â Â if (amount <= 0) Â Â Â Â Â Â Â Â return; Â Â Â Â Â Â float stretch = organ.Severity + amount / organ.Part.def.hitPoints * Mod.Settings.stretchFactor; Â Â Â Â Â Â Dyspareunia.Log($"Stretching {organ.def} (severity {organ.Severity:F2}) by {stretch:F2}"); Â Â Â Â Â Â HediffComp_SexPart hediffComp = organ.TryGetComp<HediffComp_SexPart>(); Â Â Â Â Â Â hediffComp.UpdateSeverity(stretch); Â Â Â Â }
DukeElToro Posted October 25, 2024 Posted October 25, 2024 I actaully was planning to post here my working fork (Without contraction), but i've seen that you are active, so just commented on 😃
NuttySquabble Posted October 27, 2024 Author Posted October 27, 2024 15 hours ago, DukeElToro said: Without UpdateSeverity lengt and girth of part will not be updated, this could cause some issues wiht other mods. Â Â Â Â Â Â public static void StretchOrgan(Hediff organ, float amount) Â Â Â Â { Â Â Â Â Â Â if (amount <= 0) Â Â Â Â Â Â Â Â return; Â Â Â Â Â Â float stretch = organ.Severity + amount / organ.Part.def.hitPoints * Mod.Settings.stretchFactor; Â Â Â Â Â Â Dyspareunia.Log($"Stretching {organ.def} (severity {organ.Severity:F2}) by {stretch:F2}"); Â Â Â Â Â Â HediffComp_SexPart hediffComp = organ.TryGetComp<HediffComp_SexPart>(); Â Â Â Â Â Â hediffComp.UpdateSeverity(stretch); Â Â Â Â } One problem there is that contraction is now done via a HediffComp, which doesn't change Severity directly. Instead, it modifies a variable that vanilla code then adds to Severity. So the moment of Severity change is not controlled by me, and I can't call UpdateSeverity from RJW. So I have to either change Severity manually in my HediffComp, which may be bad for compatibility with vanilla or other mods, or I can ignore RJW and stick with the vanilla architecture. Both options are not ideal.
DukeElToro Posted October 29, 2024 Posted October 29, 2024 On 10/27/2024 at 2:02 PM, NuttySquabble said: One problem there is that contraction is now done via a HediffComp, which doesn't change Severity directly. Instead, it modifies a variable that vanilla code then adds to Severity. So the moment of Severity change is not controlled by me, and I can't call UpdateSeverity from RJW. So I have to either change Severity manually in my HediffComp, which may be bad for compatibility with vanilla or other mods, or I can ignore RJW and stick with the vanilla architecture. Both options are not ideal. Don't forget, that this is mod FOR rjw.
NuttySquabble Posted October 29, 2024 Author Posted October 29, 2024 It is, but RJW's approach to sizes is obscure and half-baked. I think (and hope) it will change in the future. I don't want Dyspareunia to break each time they tweak the code or create incompatibilities with 3rd party mods that will be hard to trace.
Skömer Posted October 29, 2024 Posted October 29, 2024 5 hours ago, NuttySquabble said: It is, but RJW's approach to sizes is obscure and half-baked. I think (and hope) it will change in the future. I don't want Dyspareunia to break each time they tweak the code or create incompatibilities with 3rd party mods that will be hard to trace. Every part has a fixed size, and depending on the size of the body its attached to it becomes small large, towering, tight... thats the basic premise since ~1.1(?)
NuttySquabble Posted November 2, 2024 Author Posted November 2, 2024 On 10/29/2024 at 5:41 PM, Skömer said: Every part has a fixed size, and depending on the size of the body its attached to it becomes small large, towering, tight... thats the basic premise since ~1.1(?) What I'm talking about is the relationship between values like Severity, Size, forcedSize and baseSize, where some are scaled with body size, others aren't, some change as the pawn grows, others stay the same or are only used in specific situations, Some properties, like BodySizeFactor are private (and therefore, although I technically can just copy the code, I shouldn't assume that it won't abruptly change in another release). Then there are also sizeMultiplier and sizeProfile in the Def.  Of these all, Severity seems to be the most universal value (each hediff has it), which stays the same during the pawn's life, has minimum and (soft) maximum values, can be manipulated using vanilla methods and is understood by all other mods. So Dyspareunia has used this field from day 1.  I'm not sure that calling UpdateSeverity is a good solution either. It changes the baseSize, which shouldn't be changed under normal circumstances (according to the source code comment, it is the "absolute base size when part created"). Moreover, if forcedSize is used, the Severity will not actually be updated, which makes no sense for Dyspareunia (yet, baseSize will still change). So it creates lots of side effects that I don't need and that may break things somewhere down the road. And, like I said earlier, it only works when I change Severity directly, which I don't do for contracting (because I use severityAdjustment value instead).
aaelina Posted November 4, 2024 Posted November 4, 2024 On 11/2/2024 at 11:45 PM, NuttySquabble said: What I'm talking about is the relationship between values like Severity, Size, forcedSize and baseSize, where some are scaled with body size, others aren't, some change as the pawn grows, others stay the same or are only used in specific situations, Some properties, like BodySizeFactor are private (and therefore, although I technically can just copy the code, I shouldn't assume that it won't abruptly change in another release). Then there are also sizeMultiplier and sizeProfile in the Def.  Of these all, Severity seems to be the most universal value (each hediff has it), which stays the same during the pawn's life, has minimum and (soft) maximum values, can be manipulated using vanilla methods and is understood by all other mods. So Dyspareunia has used this field from day 1.  I'm not sure that calling UpdateSeverity is a good solution either. It changes the baseSize, which shouldn't be changed under normal circumstances (according to the source code comment, it is the "absolute base size when part created"). Moreover, if forcedSize is used, the Severity will not actually be updated, which makes no sense for Dyspareunia (yet, baseSize will still change). So it creates lots of side effects that I don't need and that may break things somewhere down the road. And, like I said earlier, it only works when I change Severity directly, which I don't do for contracting (because I use severityAdjustment value instead). Made some changes in this department since it was basically broken, currently in Dev branch https://gitgud.io/Ed86/rjw/-/merge_requests/317  Changing severity directly will result in a desync with the internal state, I added methods to alter severity however you need while keeping baseSize in sync. Can basically ignore the Size/baseSize nonsense now if you want. Also added methods to easily do something like: alter severity to result in exactly 1cm gain in girth (PartSizeCalculator.Modify). HMU for questions, or just join the RJW discord.
NuttySquabble Posted November 23, 2024 Author Posted November 23, 2024 On 11/4/2024 at 2:02 PM, aaelina said: Made some changes in this department since it was basically broken, currently in Dev branch https://gitgud.io/Ed86/rjw/-/merge_requests/317  Changing severity directly will result in a desync with the internal state, I added methods to alter severity however you need while keeping baseSize in sync. Can basically ignore the Size/baseSize nonsense now if you want. Also added methods to easily do something like: alter severity to result in exactly 1cm gain in girth (PartSizeCalculator.Modify). HMU for questions, or just join the RJW discord. Thanks, will check it out.
McflurryButtz Posted November 25, 2024 Posted November 25, 2024 Quick question, does the type of penis affect outcomes like barbed, knotted, or ovipositor?
NuttySquabble Posted December 5, 2024 Author Posted December 5, 2024 On 11/25/2024 at 3:03 AM, McflurryButtz said: Quick question, does the type of penis affect outcomes like barbed, knotted, or ovipositor? Yes, it does. Certain types of genitals increase or decrease various types of damage (e.g. barbed increases rubbing damage if I remember correctly). 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now