Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

I've had a look at the way that base Strive handles this and there isn't an easy fix. There are assumptions in a few places which were correct for Vanilla which are no longer correct with Cowgirl anal. It could be changed so givers could also get the enjoys anal trait, but the way the speach works with enjoys anal, it assumes they want to be receiving.

The fix for this could nearly be it's own mod with the changing how "enjoys anal" works and adding in an "enjoys oral". I don't think I'm going to look at this any more myself, I haven't done much with this mod for ages now besides update it to be compatibable with the new versions of Strive.

(3 edits) (+1)

Actually, thanks! Your reply combined with full night's sleep made me realize I've been looking at completely wrong place. I got so fixated on Cowgirl Anal positions being expansion material that I forgot the original code. And it's now fixed. It's not pretty, but it works and even without extra lines. I just turned this

if lastaction.scene.code in sceneref.analcategories && (lastaction.takers.has(self) || lastaction.scene.code == 'doubledildoass'):

into this

if lastaction.scene.code in sceneref.analcategories && (lastaction.takers.has(self) || lastaction.scene.code == 'doubledildoass' || lastaction.scene.code == 'cowgirlanal' || lastaction.scene.code == 'revcowgirlanal'):

It's a good reminder that taking a break beats banging your head against the wall ten times out of ten. Which I'm sure to forget. Again.

EDIT: It's still not flawless though, as one might guess. If you have your willy in someone's bum in Cowgirl Anal position, you soon get a craving for having one in yours too. To each their own, I guess. It's not too bad of a workaround, but as such it doesn't really work with what I'm trying to create. I'm pretty sure the problem lies with the lastaction.takers -part but for some reason I haven't been able to come up with a givers-equivalent of it. I'm already ashamed of how simple the solution must be, but it still eludes me.

Assuming you have added all the action codes to analcategories:

if lastaction.scene.code in sceneref.analcategories && ((lastaction.takers.has(self) != lastaction.scene.code in ['cowgirlanal','revcowgirlanal']) || lastaction.scene.code == 'doubledildoass'):

Otherwise:

if (lastaction.scene.code in sceneref.analcategories && (lastaction.takers.has(self) || lastaction.scene.code == 'doubledildoass')) || (lastaction.givers.has(self) && lastaction.scene.code in ['cowgirlanal','revcowgirlanal']):
(1 edit)

I have added the actions. With your code no one gets Enjoy Anal in Cowgirl Anal positions, which was the case already to begin with. With my code both parties can get it. So the solution is somewhere in the middle.

I've switched my attention from categories to tags and it has... kind of worked? I'm now in a situation where there's a clear distinction between performer and receiver, but the trait is always awarded to the wrong party. If I wasn't so bloody obsessive, I'd take another break.

if lastaction.scene.givertags.has('oral') || lastaction.scene.takertags.has('mouth'):

With this, the game picks up positions where either someone uses their mouth or their mouth is used by someone. But the trait never goes to the person whose mouth is in question, but always to the opposite side.

EDIT: Got it! I found the reason why I can't get the person using their mouth to get the new trait. Enjoy Anal, which I copied and edited for my purpose, is under func orgasm() so getting the trait is checked when an orgasm occurs. Since oral actions are tagged as "noorgasm", you never get an orgasm from them and therefore never get the trait. I just need to place the trait somewhere else and/or edit it so you can get it from someone else's orgasm.

I created an amalgam of your line and mine. The result is absolutely horrible to look at, but it works. I probably should try to squeeze it in a bit, but I'm tempted to leave it as it is and just forget the whole ordeal.

if (lastaction.scene.code in sceneref.analcategories && lastaction.takers.has(self) != lastaction.scene.code in ['cowgirlanal','revcowgirlanal']) || (lastaction.givers.has(self) && (lastaction.scene.code == 'doubledildoass' || lastaction.scene.code == 'cowgirlanal' || lastaction.scene.code == 'revcowgirlanal')):

Your condition has changed 'doubledildoass' to only be able to grant Enjoys Anal for the giver and not the taker.

If a single line is too complicated you can break it down into nested if statements.

Also, if that condition works for the cowgirl anal positions, but my code did not then I suspect that those action codes are not included in analcategories, as that is the difference between those two conditions(besides double dildo). While you have explicitly checked for the member being apart of the givers group, it is redundant as the first part already handles that condition with the expectation that the code will be in analcategories. The reason for that is simple, a person cannot orgasm outside of an action so the person must either be a giver or a taker in the last processed action. Thus the != handles both the givers for the cowgirl actions and takers for all the rest of the actions. 

This is how my var analcategories looks like, see for yourself.

var analcategories = ['assfingering','rimjob','missionaryanal','doggyanal','lotusanal','revlotusanal','doubledildoass','inserttaila','analvibrator','enemaplug','insertinturnsass','cowgirlanal','revcowgirlanal']

My code is a mess, I know, but it works. With it implemented, I had two slaves have sex in Cowgirl Anal position while entranced. As result, the slave who was riding did get the trait but the slave being ridden did not. Just how I wanted it to be and exact opposite to how it originally worked. 

In my code the slave getting the orgasm gets the trait IF they are the receiving party of any anal activity EXCEPT in Cowgirl Anal or Rev. Cowgirl Anal, OR if they are the performing party in Double Dildo Anal, Cowgirl Anal or Rev. Cowgirl Anal. Double Dildo Anal is already included in analcategories, so it's on both sides of the line. So, just like it's supposed to be.

Indeed I overlooked that 'doubleanaldildo' was in anal categories already. I guess that's what I get for constructing code based on truth tables but not ever testing it.