DialogueActions v4.09 dev version 4 is on bitbucket, with the first set of Him features.
@WeeWillie hope this is enough for what you need right now...
Pim_gd / SDTDialogueActions / Downloads — Bitbucket
Changelog:
- Added default value for [PUSSYDRIP_<durationInFrames>] trigger, which is 50 frames because that's what the masturbation has been using.
- Added da.him.body.gender {read and write} - Controls his body type. Values are "Male" and "Female".
- Added da.him.body.skin {read and write} - Controls his skin type. Values are, for the Male body, "Light" and "Dark"; for the Female body, "Light", "Pale", "Tan" and "Dark".
- Added da.him.body.balls {read and write} - Controls his balls type. Values are "None" and "Normal".
- Added da.him.body.balls.size {read and write} - Controls his balls size. Values range from 0.5 to 1.3, but mods may alter the minimum and maximum sizes.
- Added da.him.body.breasts {read and write} - Controls his breast size. Values range from 1 to 149, but for the Male body, the value is always 0 since there are no breasts.
- Added da.him.ejaculating {read only} - Whether he's currently ejaculating. Values are "true" and "false".
What's left is penis handling. That's penis width, length and type for him and her. As well as RGB for the strapon. Then after that every thing just needs to be updated in the DialogueChecker and there's full support (well, unless I forgot something, which I probably did...) for all the sliders and buttons in the bottom menu in dialogues. Seems like something that should have been done earlier, instead of constantly adding features here and there.
Also the code needs cleaning, as usual. Right now there's all these weird files handling one thing or another ("HerTriggers" and "HimTriggers" have duplicated code) and you can't find crap (because "PenisTriggers" is what contains [SHOW_BALLS] etc, but "HimTriggers" contains da.him.body.balls.size).
So restructuring the code might make it easier for people (that includes me) to find things in DialogueActions. I might also make it easier later on to add variables via the mod api - take a look at this:
private function calculateNewValue(getter:FunctionObject, newValue:*):Number {
var newVal:Number = 0;
if (newValue is Number) {
if (newValue < 0) {
newVal = getter.call() + newValue;
} else {
newVal = newValue;
}
} else if (newValue is String && !isNaN(Number(newValue))) {
if ((newValue as String).charAt(0) == "-" || (newValue as String).charAt(0) == "+" ) {
newVal = getter.call() + Number(newValue);
} else {
newVal = Number(newValue);
}
} else {
return NaN;
}
return newVal;
}
What this does is, well, lemme show case an example...
public function setHerBreastSize(value:*):void {
var newVal:Number = calculateNewValue(new FunctionObject(getHerBreastSize, this, []), value);
if (isNaN(newVal)) {
m.displayMessageRed("da.her.body.breasts attempted set to " + value + ", unable to identify value as numeric");
return;
}
newVal = Math.min(newVal, 149);
newVal = Math.max(newVal, 0);
g.characterControl.setBreasts(newVal);
g.strandControl.checkElementAnchors(g.her.torso.midLayer.rightBreast); //This is included in the "breastSliderRelease" handler...
g.inGameMenu.updateBreastSlider();
}
This is the code that handles da.her.body.breasts, and allows you to {"set":{"da.her.body.breasts":"+20"}}.
If I can expose that "calculateNewValue" in some fancy wrapper, modders could register bounded properties with plus and minus support (so you can, I dunno, increase the delay on your more triggers animation by 5 more seconds?), in a single line, instead of having to do all of that crap themselves (which they'd be likely to, well, not do).
In other news, I had a talk with
@Slingerbult earlier (or not, but then I'm getting people mixed up) about allowing buttons to be interruptible. Cum lines currently interrupt active lines, in that she will stop talking when cum lands on her face and will switch to a cum_on_face line. With this change, you could have buttons that have direct effect, instead of making the user guess as to whether they actually pressed the button. But that's something for v4.10, I think.