HTML Hermaphrodity and the Mystery of the Missing Specimens [v0.22] [Fapforce5]

3.70 star(s) 14 Votes

phupdup

Well-Known Member
Oct 24, 2019
1,391
1,087
There's a scene in the sisters room after MC starts crossdressing where they propose going out after the MC has "prettied themselves" up. However MC can't go out with them even though they have managed to get mom to picnic with them in the park. I'm calling bullshit on the cl.appearance function that checks this in scripts/clothes.js. Here's the original code:

Code:
cl.appearance = function () {
    var thisBody = cl.appearanceBody();
    var thisClothes = cl.appearanceClothes();
    var returnVal;
   
    returnVal = thisClothes;
    if (thisBody === -1)
        returnVal = -1;
    else {
        if (thisClothes > thisBody)
            returnVal--;
        else if (thisClothes < thisBody)
            returnVal++;
        //console.log("total:" + returnVal, " - clothing: " + thisClothes + " - body: " + thisBody);
    }

    return returnVal;
};
TLDR version is that I hacked that function to be:

Code:
cl.appearance = function () {
    var thisBody = cl.appearanceBody();
    var thisClothes = cl.appearanceClothes();
    return Math.max(thisBody,thisClothes);
};
I've attached the updated clothes.js that you can extract from the zip archive and park in the scripts folder. Back to mansplaining....

The result is an integer that grows larger as the MC's body and clothing become more feminine. Anything less than 0 is man mode. The sisters check for greater than 1 before they will go out with MC. So 0 and 1 I guess are some sort of androgynous state?

Mom has MC go out and buy a polka dotted dress for a picnic in the park. Using this getup after MC started crossdressing in public only returns 1 when the MC uses it for the sister check. Manually calling cl.appearanceBody() in the console returns a 1, and cl.appearanceClothes() returns 2.

It's the if-then for clothes being more than body value that sabotages us. Why nerf the result by 1 when the clothes are more feminine than their body but juice by 1 when it's the other way around? We already have a hard cutoff return of -1 when MC may have forgotten to shave that week. Even that is probably body shaming the MC too much IRL.

Before messing with the function, I looked at clothes.js some more and found something to explain the number system:

Code:
cl.appearanceClothesx = function () {
    /*{ entry: -1, name: "Chubby" },
    { entry: 0, name: "Male" },
    { entry: 1, name: "Androgynous" },
    { entry: 2, name: "Cute" },
    { entry: 3, name: "Sexy" },
    { entry: 4, name: "Bimbo Slut" },
    { entry: 5, name: "Cum Dumpster" }*/
"Chubby" is more "Male" than someone who can crack walnuts with their thighs in what world? I have MC go into the closet to change into something a lot more sexy and then call cl.appearanceClothes() again. Still returns 2. So I call cl.appearanceClothesx() in the console to see a more detailed result and get:

Code:
clist: Object { top: "dress_red.png", panties: "panties_frilly.png", bra: "bra_frilly.png", … }
exp: "Dress: Sexy<br/>Bra: Sexy<br/>Panties: Sexy<br/>Clitty Not Locked<br/>Buttplug: None<br/>Socks: Sexy<br/>Shoes: Sexy<br/>"
val: 2
So no matter how hard the MC tried to tart herself up in sexy clothing, she still only rates as "Androgynous" because of body shaming. BULLSHIT!

Looking further into the body shaming bias here by calling cl.appearanceBodyExplain() in the console:

Code:
exp: "Hair: Sexy<br/>Makeup: Medium Black <br/>Lips: [Lipstick Bonus] Androgynous<br/>Chest: Male<br/>Ass: Male<br/>Cock: Monster Cock<br/>Body Hair: Sissy Smooth<br/>"
val: 1
There are many who would call that at least "Cute" and not just "Andogynous" so I'm calling bullshit on the rats nest of if-then code in this function because MC knows that Monster Cock is the best cock for everyone involved (girls and fellow sissies). Not everyone likes cow udder boobies and zip code sized glutes either so makeup, hair and lipstick here should have a helluva lot more sway in the results.
 
Last edited:

_FapForce5

Member
Sep 18, 2017
386
223
There's a scene in the sisters room after MC starts crossdressing where they propose going out after the MC has "prettied themselves" up. However MC can't go out with them even though they have managed to get mom to picnic with them in the park. I'm calling bullshit on the cl.appearance function that checks this in scripts/clothes.js. Here's the original code:

Code:
cl.appearance = function () {
    var thisBody = cl.appearanceBody();
    var thisClothes = cl.appearanceClothes();
    var returnVal;
  
    returnVal = thisClothes;
    if (thisBody === -1)
        returnVal = -1;
    else {
        if (thisClothes > thisBody)
            returnVal--;
        else if (thisClothes < thisBody)
            returnVal++;
        //console.log("total:" + returnVal, " - clothing: " + thisClothes + " - body: " + thisBody);
    }

    return returnVal;
};
TLDR version is that I hacked that function to be:

Code:
cl.appearance = function () {
    var thisBody = cl.appearanceBody();
    var thisClothes = cl.appearanceClothes();
    return Math.max(thisBody,thisClothes);
};
I've attached the updated clothes.js that you can extract from the zip archive and park in the scripts folder. Back to mansplaining....

The result is an integer that grows larger as the MC's body and clothing become more feminine. Anything less than 0 is man mode. The sisters check for greater than 1 before they will go out with MC. So 0 and 1 I guess are some sort of androgynous state?

Mom has MC go out and buy a polka dotted dress for a picnic in the park. Using this getup after MC started crossdressing in public only returns 1 when the MC uses it for the sister check. Manually calling cl.appearanceBody() in the console returns a 1, and cl.appearanceClothes() returns 2.

It's the if-then for clothes being more than body value that sabotages us. Why nerf the result by 1 when the clothes are more feminine than their body but juice by 1 when it's the other way around? We already have a hard cutoff return of -1 when MC may have forgotten to shave that week. Even that is probably body shaming the MC too much IRL.

Before messing with the function, I looked at clothes.js some more and found something to explain the number system:

Code:
cl.appearanceClothesx = function () {
    /*{ entry: -1, name: "Chubby" },
    { entry: 0, name: "Male" },
    { entry: 1, name: "Androgynous" },
    { entry: 2, name: "Cute" },
    { entry: 3, name: "Sexy" },
    { entry: 4, name: "Bimbo Slut" },
    { entry: 5, name: "Cum Dumpster" }*/
"Chubby" is more "Male" than someone who can crack walnuts with their thighs in what world? I have MC go into the closet to change into something a lot more sexy and then call cl.appearanceClothes() again. Still returns 2. So I call cl.appearanceClothesx() in the console to see a more detailed result and get:

Code:
clist: Object { top: "dress_red.png", panties: "panties_frilly.png", bra: "bra_frilly.png", … }
exp: "Dress: Sexy<br/>Bra: Sexy<br/>Panties: Sexy<br/>Clitty Not Locked<br/>Buttplug: None<br/>Socks: Sexy<br/>Shoes: Sexy<br/>"
val: 2
So no matter how hard the MC tried to tart herself up in sexy clothing, she still only rates as "Androgynous" because of body shaming. BULLSHIT!

Looking further into the body shaming bias here by calling cl.appearanceBodyExplain() in the console:

Code:
exp: "Hair: Sexy<br/>Makeup: Medium Black <br/>Lips: [Lipstick Bonus] Androgynous<br/>Chest: Male<br/>Ass: Male<br/>Cock: Monster Cock<br/>Body Hair: Sissy Smooth<br/>"
val: 1
There are many who would call that at least "Cute" and not just "Andogynous" so I'm calling bullshit on the rats nest of if-then code in this function because MC knows that Monster Cock is the best cock for everyone involved (girls and fellow sissies). Not everyone likes cow udder boobies and zip code sized glutes either so makeup, hair and lipstick here should have a helluva lot more sway in the results.
Lol. Yeah. Good troubleshooting. Not sure why you're so angry. I'm actually going to change this entire logic. It will be a point system like filling a bucket that grows with each item and the clothes / body won't have a separation. The reason I didn't do the max was my opinion that "sissyness" was a focus on the clothing, not the body. When I do the new system it will all just fill into the same bucket so there will be no separation.

The problem with the max is the edge cases. If the player has max boobs, max butt, max hair, max lips, but is wearing jeans and a tee shirt, male underwear: do they meet the "Bimbo" appearance? If a player has the male body but they are wearing the sluttiest clothing and no panties do they have a "sexy" appearance? The problem with the current system is that I define how you look. When I move to the bucket system there's multiple ways to get the "Bimbo" status and I no longer define what that is, just show you the paths to get there and you the player decide how to get there.

Also the "chubby" level isn't really a level, it's the starting point, but once you hit "Male" it's impossible to go to back.
 
  • Like
Reactions: Ayal

phupdup

Well-Known Member
Oct 24, 2019
1,391
1,087
Circling back to the sleep balancing act. I've looked into the code where the author buried sleeping in scripts/room/room028.js.

Code:
    //energy as propotion to horny
    if (arousal > 97) {
        g.st[energyIndex].t = 30;
        message = "You're so horny you didn't recove much energy. ";
    }
    else if (arousal > 50) {
        g.st[energyIndex].t = 70;
        message = "You're starting to get horny and are a little restless.";
    }
    else {
        g.st[energyIndex].t = 85;
        message = "You got a good night's sleep. ";
    }
    g.popUpNotice(message);
This seems simple enough to fix. Sleeping should add to energy no matter how horny MC may be. That energy level does max out at whatever the MC's maxenergy level is. So a couple of quick hacks later and we have:

Code:
    //energy as proportion to horny
    var addE = 0;
    var newE = g.st[energyIndex].t;
    if (arousal > 97) {
    addE = 30;
        message = "You're so horny you didn't recover much energy. ";
    }
    else if (arousal > 50) {
    addE = 70;
        message = "You're starting to get horny and are a little restless.";
    }
    else {
        addE = 85;
        message = "You got a good night's sleep. ";
    }
    newE += addE;
    g.st[energyIndex].t = Math.min(newE,maxE);
    g.popUpNotice(message);
Extract the updated js from this zip archive and copy to scripts/room if you want to play with this change.
 

_FapForce5

Member
Sep 18, 2017
386
223
Circling back to the sleep balancing act. I've looked into the code where the author buried sleeping in scripts/room/room028.js.

Code:
    //energy as propotion to horny
    if (arousal > 97) {
        g.st[energyIndex].t = 30;
        message = "You're so horny you didn't recove much energy. ";
    }
    else if (arousal > 50) {
        g.st[energyIndex].t = 70;
        message = "You're starting to get horny and are a little restless.";
    }
    else {
        g.st[energyIndex].t = 85;
        message = "You got a good night's sleep. ";
    }
    g.popUpNotice(message);
This seems simple enough to fix. Sleeping should add to energy no matter how horny MC may be. That energy level does max out at whatever the MC's maxenergy level is. So a couple of quick hacks later and we have:

Code:
    //energy as proportion to horny
    var addE = 0;
    var newE = g.st[energyIndex].t;
    if (arousal > 97) {
    addE = 30;
        message = "You're so horny you didn't recover much energy. ";
    }
    else if (arousal > 50) {
    addE = 70;
        message = "You're starting to get horny and are a little restless.";
    }
    else {
        addE = 85;
        message = "You got a good night's sleep. ";
    }
    newE += addE;
    g.st[energyIndex].t = Math.min(newE,maxE);
    g.popUpNotice(message);
Extract the updated js from this zip archive and copy to scripts/room if you want to play with this change.
I replied to a user above on this one. Here's the fix in the code
Code:
if (arousal > 97) {
        g.st[energyIndex].t = maxE * .5;
        message = "You're so horny you didn't recover much energy. ";
    }
    else if (arousal > 50) {
        g.st[energyIndex].t = maxE * .75;
        message = "You're starting to get horny and are a little restless.";
    }
    else {
        g.st[energyIndex].t = maxE;
        message = "You got a good night's sleep. ";
    }
maxE is max energy. Really horny is 50% of max energy, a bit horny is 75% of max energy and not horny is 100% of max energy.
When I originally wrote the energy levels I hadn't included the max energy levels so a static number was fine, max energy was a new addition as a bonus to working out. I honestly hadn't thought of this until phupdup pointed it out.

I didn't add it all up. I see sleep as kind of a reset point for the character. When you wake up you know what time it is, how much energy, and several other stats, kind of a predictable clean up for the user.


I would love to talk to you more. My discord channel is: hit me up. It's nice to see your code recommendations
 

anonjoe

Member
Sep 29, 2020
124
160
Forgot I downloaded this. Tried it out earlier, doing the Private Investigations job, bought the clothes necessary, yet they don't seem to be in my inventory or wardrobe at all. Not sure what happened, the game took the money for them, but I can't continue the job right now. Will try again tomorrow when I have time, figure it either bugged out a bit, or maybe I forgot something at the shop.
You'll need the grey tie shirt, black pants, black socks, and black shoes. They are at two different stores.
Check the bold text in my quoted post. Like I said, I bought them, as in the money disappeared from my inventory, and yes, I went to 2 different stores for them all, yet when I went to get dressed the next morning for work, none of them were there.
 

jaydillah

Member
Oct 28, 2018
131
79
Love meter is Work in progress. Once you go to the house as a crossdresser you'll trigger the alternate Lola and Eva content.
my character was already fully in female clothes with tits/ass/etc. before this new content started. all I got was the bad ice cream event though and nothing else.
 

SolarBoy

New Member
Mar 20, 2021
10
11
this game is infuriating, the walkthrough dont really help at all, I can't get a pair of panties no matter what i do.
 

_FapForce5

Member
Sep 18, 2017
386
223
Check the bold text in my quoted post. Like I said, I bought them, as in the money disappeared from my inventory, and yes, I went to 2 different stores for them all, yet when I went to get dressed the next morning for work, none of them were there.
Send me your save file and I'll take a look
 

Magnsu12

New Member
May 28, 2021
2
1
I'm really not sure what to do just did the red room and then took the sewer quest but i cant go down there or find the box she asked for. Any help would be appreciated!
 

_FapForce5

Member
Sep 18, 2017
386
223
is it normal that i have no hair? XD
So there's two possibilities... either you found a bug, or it's just the game working as intended.

So you start out with short hair. It grows slowly, takes a month to grow to each length. If you're on hormones then it grows waaaay quicker. Also if you cut your hair so it's bald, your hair will be bald.

If there's a bug it could be a number of things, but I'll need to see your save file. If you email me your save file I'll take a look.
 

Mrbeez

Newbie
Nov 6, 2020
56
57
How do you get the transformation screen to show up? I'm pretty sure I've done all the things needed for it to appear
 
3.70 star(s) 14 Votes