Pink Petal Games

Feedback => Bugs and Game balancing => Topic started by: blackrosesheart on August 22, 2011, 11:55:25 AM

Title: Broken Will/Mind Fucked
Post by: blackrosesheart on August 22, 2011, 11:55:25 AM
I've developed a habit of breaking certain girls so that I don't have to brand them but they'll still be obediant.  One thing I've noticed is that when they level, Broken Will and Mind Fucked will both occasionally be removed.  It seems to be related to gaining Confidence or Spirit, but I'm not certain.
Title: Re: Broken Will/Mind Fucked
Post by: Xela on August 25, 2011, 08:18:59 AM
I've developed a habit of breaking certain girls so that I don't have to brand them but they'll still be obediant.  One thing I've noticed is that when they level, Broken Will and Mind Fucked will both occasionally be removed.  It seems to be related to gaining Confidence or Spirit, but I'm not certain.

Never heard of this bug? But I dislike those traits...
Title: Re: Broken Will/Mind Fucked
Post by: Anon21 on August 25, 2011, 09:49:09 AM
Never heard of this bug? But I dislike those traits...

I think it sounds more like it's "by design".
Title: Re: Broken Will/Mind Fucked
Post by: blackrosesheart on August 25, 2011, 01:15:38 PM
Hmph.  -.-
Title: Re: Broken Will/Mind Fucked
Post by: DocClox on August 25, 2011, 02:35:11 PM
I think it sounds more like it's "by design".

I don't think so, although you'd need to ask necno for sure.

I did have a dig though the code though, and the only place where the trait is removed, is when she gains Iron Wil, which isn't the problem as I understand it.

Of course, it could be being removed by passing a variable - grep only takes you so far in these cases.l
Title: Re: Broken Will/Mind Fucked
Post by: DarkTl on September 23, 2011, 06:42:27 AM
Btw, Masochist and scars traits removed as well.
Title: Re: Broken Will/Mind Fucked
Post by: drake on September 23, 2011, 03:46:37 PM
I think the problem is that the traits are added from the dungeon are sometimes set as temporary, not sure if that bug ever got fixed.  I fixed it in my code once, but don't remember how, think there was a false or true in the wrong place when they were assigned.  I don't have the code anymore.
Title: Re: Broken Will/Mind Fucked
Post by: DarkTl on September 24, 2011, 09:49:24 AM
Ah, I think I got it. In cGirlTorture.cpp
Quote
if (m_Girl->spirit() < 20 && m_Girl->health() < 20 ) {
      add_trait("Broken Will", 5 + nWeekMod / 2);
   }

   if (m_Girl->bdsm() > 30) {
      add_trait("Masochist", 10 + nWeekMod);
   }

   if (m_Girl->health() < 10) {
      add_trait("Mind Fucked", 10 + nWeekMod);
   }
Looks like this  traits are temporary by design here. You can easily obtain them, since they depends on spirit, bdsm and health only.
But in cDungeon.cpp (for example, Broken Will)
Quote
if (!girl->has_trait("Broken Will"))
    {
        chance    = d_girl->m_Weeks * 10;                            // Number of weeks in dungeon 
        chance     += 200 - girl->spirit() - girl->health();
        chance    /= chance_div;
        if (girl->has_trait("Iron Will"))
        {
            chance /= 2;
        }

        if (g_Dice.percent(chance))
        {
            girl->add_trait("Broken Will", false);

            msg    = girlName + " has gained the trait \"Broken Will\".";
            summary += msg + "\n";
            girl->m_Events.AddMessage( msg, IMGTYPE_BDSM, EVENT_WARNING);
            t_girl->m_Events.AddMessage( msg, IMGTYPE_PROFILE, EVENT_DUNGEON);
        }
    }
I think, at first this traits are temporary, but if girl spend enough time in dungeon, traits became permanent. Messages for  temporary and permanent traits are not the same: "girl name + has gained trait + trait + from being tortured" for temporary and "girl name + has gained the trait +trait" for permanent. Unfortunately, they have the same names in statistic screen.
Sorry for bad English  :)
Title: Re: Broken Will/Mind Fucked
Post by: blackrosesheart on September 24, 2011, 01:17:58 PM
Nifty.  Thanks. :)
Title: Re: Broken Will/Mind Fucked
Post by: drake on September 25, 2011, 01:22:12 PM
That explains a lot, thanks
Title: Re: Broken Will/Mind Fucked
Post by: DarkTl on September 25, 2011, 03:58:25 PM
It would be nice if someone can confirm it. Can't say I perfectly understand this code, maybe it not work correctly.
Title: Re: Broken Will/Mind Fucked
Post by: drake on September 25, 2011, 05:05:41 PM
Just looked over the code, the code in dungeon is never called, it was replaced by cGirlTorture.  The problem is in cGirls.h add_trait is defined as
void add_trait(string trait, bool temp = true) {      g_GirlsPtr->AddTrait{this, trait, temp);}
thus making a trait temporary by default.  So the torture code needs to specify false or the traits will always be temporary.
Title: Re: Broken Will/Mind Fucked
Post by: blackrosesheart on September 27, 2011, 12:25:48 PM
So how exactly would you specify it as true there?
Title: Re: Broken Will/Mind Fucked
Post by: drake on September 27, 2011, 10:06:20 PM
where the torture code (cGirlsTorture.cpp calls add_trait(trait) 
// it has a polymorphic add_trait(string, int) function which calls it//
change it to add_trait(trait,false) to make it permanent, if you dont't specify false it defaults to true and you don't have to type the true.
Does that make sense?
Title: Re: Broken Will/Mind Fucked
Post by: blackrosesheart on September 27, 2011, 10:07:42 PM
Umm...sort of, maybe?  I don't really code.
Title: Re: Broken Will/Mind Fucked
Post by: drake on September 28, 2011, 06:54:15 PM
well, the only way to fix it is to change the add_trait function in cGirlTorture.cpp If you don't code I am assuming that you aren't wanting to have to recompile everything, nut here is the code anyway
Title: Re: Broken Will/Mind Fucked
Post by: necno on January 29, 2012, 04:30:36 PM
sounds like it is by design as well... yes I really can't remember