[Fixt] [Game Version: 0.69.420-PUBLIC#1692] More Non-parasitic Cunt-tail Problems (+Dally 'loop')

Status
Not open for further replies.

OrangeBurner

Well-Known Member
Mar 13, 2022
305
72
After the cunt-tail changes this patch I did noticed some more problems:
(I don't know if I should put these as separate bug reports or not).

While having a non-parasitic cunt-tail
  • If you have any non-parasitic cunt-tails the flag: ["DAYS_SINCE_FED_CUNT_TAIL"] still increases by 1.
  • This happens every single time a new day starts.
Which just makes the medical tab just display the text 'Cunt Snake' with nothing under it:
Codex - Medical - Cunt Snake.png
  • Even if you try to 'fed' the tail (I tried both the zil, male tailsuck and Dally's tailmilking scene) the flag doesn't even return to 0 (like a normal cunt-snake).
  • The flag just continues increasing by 1 everyday until infinity no matter how much you feed it.
  • So, you have to put: flags["DAYS_SINCE_FED_CUNT_TAIL"] = undefined; in the console, every time a new day starts.
  • Or, getting rid of the whole tail sets to to undefined.

Dally 'Loop'

  • If flags["DAYS_SINCE_FED_CUNT_TAIL"] gets bigger than 7 days. It triggers Dally's 'Tail Milking' scene. (which I didn't know before my last post.)
  • But given the fact that the flag doesn't change when fed. the tail-milking scene will trigger again on the next dance.
  • Doesn't softlock you thankfully.
Dally - Tail Milking - 'Loop'.png


Changing from a parasitic tail to a non-parasitic tail
After some testing with Catnipping a parasitic tail I've noticed:

  • flags["TIMES_FED_CUNT_SNAKE"] - Stays as the same value it was before you catnipped the tail (does stop increasing though).
  • Should become undefined.
  • This is displayed in the medical tab in the codex until you find a way to make it undefined.
  • Easy fix by putting: flags["TIMES_FED_CUNT_SNAKE"] = undefined; in the console.


  • Worth noting that even when bonding with a cockvine seedling, flags["TIMES_FED_CUNT_SNAKE"] doesn't change.
  • So, you can get this:
Duel parasites.png
  • Done by: Getting normal cunt-snake -> feeding cunt-snake more than once -> catnipping the tail -> getting a cockvine seedling.
  • You end up with a normal cockvine but the medical tab is wrong.

When removing genti-tail:
  • If the cunt part of the tail was 'destroyed' by changing the tail into something else (i.e. A cat-nipped genti-tail being changed into a normal gryvain tail via DracoGuard):
  • flags["DAYS_SINCE_FED_CUNT_TAIL"] stays the same.
  • flags["TIMES_FED_CUNT_SNAKE"] stays the same.

  • But thankfully: flags["TIMES_FED_CUNT_SNAKE"] does actually change to undefined when destroyed by Immuno-Booster.
  • And: flags["DAYS_SINCE_FED_CUNT_TAIL"] does actually change to undefined when destroyed by Immuno-Booster.
  • This is also true when the whole tail gets removed (e.g. terran treats).

Save files attached:
  • At Dally 'loop' (with a pure non-parasitic tail).
  • A Steele with a Catnipped cunt-snake (with 2 total feedings).
 

Attachments

  • Non-parasitic tail - Dally Loop.json
    696.4 KB · Views: 2
  • Catnipped Cunt-tail.json
    697.1 KB · Views: 3

OrangeBurner

Well-Known Member
Mar 13, 2022
305
72
No idea if this will be any help at all; but after looking at some of the code I think I've found some solutions to this problem.

Daily increment of flags["DAYS_SINCE_FED_CUNT_TAIL"] by 1

I think I figured out what is causing the daily increase of flags["DAYS_SINCE_FED_CUNT_TAIL"]:

Original code (playercharacter.js, line: 640)
JavaScript:
// Daily changes
if (totalDays >= 1)
{
    if (this.hasTailCunt()) // Activates reguardless of if the tail-cunt is parasitic or not.
    {
        if (flags["DAYS_SINCE_FED_CUNT_TAIL"] == undefined)
        {
            flags["DAYS_SINCE_FED_CUNT_TAIL"] = totalDays;
        }
        else
        {
            flags["DAYS_SINCE_FED_CUNT_TAIL"] += totalDays;
        }
    }

What I think it should be:
JavaScript:
if (totalDays >= 1)
{
    if (this.hasCuntSnake()) // Only activates if it's a cunt snake.
)
    {
        if (flags["DAYS_SINCE_FED_CUNT_TAIL"] == undefined)
        {
            flags["DAYS_SINCE_FED_CUNT_TAIL"] = totalDays;
        }
        else
        {
            flags["DAYS_SINCE_FED_CUNT_TAIL"] += totalDays;
        }
    }

Changing Tails

For the changing tails part I've found that the most transformatives use pc.clearTailFlags() to change tails. So I've just added a few lines there.

Original code (creature.js, line: 14119)
JavaScript:
clearTailFlags()
{
  this.tailFlags = [];
}

Proposed Code:
JavaScript:
clearTailFlags()
{
  // if this.hasTailGenital()
  // {
  //   this.removeTailGenitals()
  // }
  if this.hasTailCunt():                                                      
  {                                                                                  
     flags["CUNT_TAIL_PREGNANT_TIMER"] = undefined;  
     flags["DAYS_SINCE_FED_CUNT_TAIL"] = undefined;    
     flags["TIMES_FED_CUNT_SNAKE"] = undefined;
  }
  this.tailFlags = [];
}

Now, I'm not sure about this one since some transformatives (like the Siren's Bounty) are made to purposely keep the cunt snake but change the actual tail.

Instead of the if statement you could just call 'this.removeTailGenitals()' but I don't know if that will stop some TF's from changing a gentitail into another gentitail (e.g Reptilum and Lucifier Candy Apple).

I think this solution is good enough because clearTailFlags() already gets rid of the 'parasitic' flag, so I think it should also get rid of the other parasitic flags.

And the fact that most TFs that use clearTailFlags() also check if 'tailTypeUnlocked()' is true (In which always return false if you have a parasitic tail.) prevents this from accidently killing someone's cunt snake.


Alternatively, you could just add flags["TIMES_FED_CUNT_SNAKE"] = undefined; individually to both Catnip and Fox/Frostfire (and other TFs that bypass 'tailTypeUnlocked()' and change the tail)
Original code (Catnip.js, line: 810)
JavaScript:
flags["CUNT_TAIL_PREGNANT_TIMER"] = undefined;
flags["DAYS_SINCE_FED_CUNT_TAIL"] = undefined;
For Foxfire.js it's on line: 526.

Proposed Code:

JavaScript:
flags["CUNT_TAIL_PREGNANT_TIMER"] = undefined;
flags["DAYS_SINCE_FED_CUNT_TAIL"] = undefined;
flags["TIMES_FED_CUNT_SNAKE"] = undefined;
 

Fenoxo

Corrupter of Tainted Space
Staff member
Aug 26, 2015
2,027
651
Mareth
www.fenoxo.com
First off, thank you for the detailed reports and pings to keep it noted that the bug persists in newer releases.

I don't think I approached closing every possible bug here, but I got most of them closed.

Next patch:
  • The Dally scene should now require a fully parasite cunttail.
  • If the "fed" function is called without a cuntsnake, it will reset the "times fed" and "days since fed" to undefined.
  • ProcessTime for the PlayerCharacter should no longer increment the time counter unless the PC has a parasite cuntsnake.
  • FoxFire/Nip both reset all three flags as recommended.
  • Bonding with a cockvine seedling now fully resets tail genital data.
  • processCuntTailEggs should be a bit better about only doing things for proper cunttails and purging the rest.
 
Status
Not open for further replies.