Surprised no one else has commented, as it's one of the more ambitious mods I've seen on here since I joined.
Honestly - it isn't especially ambitious. The implementation is a textbox use-case for
@ModGuy's lProxy class. The only real challenge is tracing the SDT source code, and that's challenging only because it's undocumented -- the actual code structure is straightforward.
Maybe put this in Loader Imports to make it easier to find?
It's currently included in the
Resource Manager.
I intend to publish stuff via the RM rather than creating new threads (or bumping old ones) because I see it as a more effective way of reaching users.
That's just personal preference though; it's
not a site rule and other modders are free to do their own thing.
Anyways, from my perspective, the "hitbox" felt a little unforgiving. If she was tilted up at all or the angle of the animtools position had the guy aimed upward in relation to her, the strands weren't registering.
Hmmm, that's tricky. If there's a
timing problem (e.g.
perfectly-aimed strands are being ignored during certain intervals) then I can increase the tolerance of the code
-- to allow absorption during teeth clench, for example. Errors or inconsistencies in
spatial behaviour (e.g.
perfectly-aimed strands are being ignored if they fall at an oblique angle, or if they hit the wrong part of the tongue) are tougher, because the collision-checking code is almost "too simple to fail."
I will include a less accurate (more generous) collision-detection option in the next version. Let me know if the problem persists (and ideally - whether the problem occurs under
each of the two collision-checking systems).
-Add in some options in a settings file to allow strands to be absorbed while she's swallowing/talking/teeth clenched/whether or not her tongue is out.
Ha!
This is exactly why modders need feedback. I was so focused on
"what makes sense w/r/t the simulated scene?" that I ignored the question of
"is the result actually interesting or enjoyable w/r/t the gameplay experience?"
The requested options
will be included in the next version.
Also, while outside of the scope of this mod, it could work a lot better in dialogues if someone like Sby could change cum_in_mouth lines to be able to interrupt others like the way cum_on_face lines currently can.
Definitely out-of-scope, but
it should be trivial to implement. The only catch is that the code (
obj.dialogue.Dialogue::buildState)
already seems to do this. CUM_ON_FACE, CUM_IN_EYE, CUM_IN_THROAT, CUM_IN_MOUTH lines all have priority and should be able to interrupt lines of other types (but cannot interrupt the CUM_ lines themselves, for obvious reasons).
So I'll ask you to
test it thoroughly (e.g. by writing a 60-second GENERAL line and then attempting to interrupt it with a well-aimed ejaculation) and then post a new
Loader Request thread if necessary. Please note that DialogueActions presumably uses more complex logic for priority and interruption. If the non-interruption thing is
specific to DialogueActions then
feel free to create the new thread anyways, but be sure to
explain the scope of the fix that you're looking for.
Like you mentioned, the lower lip isn't quite registering perfectly, but that's not the main issue. The main issue comes from long strands. Short strands register about 90% of the time, but longer ones are completely inconsistent.
...
The best/most elegant solution would be to have it possible to have the aim 'corrected', as in if the initial hit doesn't register, the strand can still register in the mouth midway through. But then suddenly the game's having to check whether or not a strand is registering multiple times per strand rather than once, so I imagine it would be extremely difficult/impossible to implement.
There's not too much additional difficulty in coding this -- the game needs to check every link within the strand
anyways. For example - a midpoint link might collide with a clothing layer,
even if the frontal links have already struck (and been anchored to) the skin.
The tricky part is that the absorption-in-the-mouth outcome actually
kills strandLinks instead of anchoring them. When this happens to the frontal strandLinks, we're simply left with a shorter strand. The remainder of the strand will continue on its ballistic trajectory -- it might end up in the mouth, or it might splatter somewhere else.
If we kill links in the middle of the strand, then we've necessarily created
two separate strands. The
behavior is less predictable (the strands might suddenly "twist" or "bounce" in mid-air due to the missing gravitational/elastic influence of the lost neighbors), and there's a much
greater risk of bugs (e.g. nullReference or arrayIndexOutOfBounds exceptions). There's also
greater complexity and risk of incompatibility w/r/t similar mods. Anything which generates drool/spit/cum strands (such as the "lactation" feature of sby's breastExpansionPlus mod) might suddenly crash if used in conjunction with this mod.
I'll look into it, but I'm not making any promises yet.
Other than that, the mod works pretty functionally if you use it in conjunction with morecumstrandsV4 and set all strands to be short in length. Maybe combine those settings into the mod if you decide to optimize/rerelease it?
I'll keep this in mind, but I'm definitely hoping to avoid it.
The mods are functionally distinct.
@ModGuy gave us the tools to write and publish mods separately while still allowing them to cooperate cleanly at runtime. I think that it would be silly to publish mods in a
merged format; I'd rather just
suggest that users download both and use them in conjunction.