Feedback > New Features

various changes I'm working on

(1/4) > >>

THE FUTURE:
(title changed)

First:

Makes a blue warning whenever a girl gains a new trait, to make those changes more obvious.

cGirls.cpp:

new trait from leveling up:

--- Code: ---    if(GetStat(girl, STAT_LEVEL)%5 == 0)
    {
        //while(1)
        //{
            int chance = g_Dice%100;
            if(chance <= 10 && !HasTrait(girl, "Good Kisser"))
            {
                AddTrait(girl, "Good Kisser");
                ss << " She has gained the Good Kisser trait.";
                girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
                //break;
            }
            else if(chance <= 20 && !HasTrait(girl, "Nymphomaniac"))
            {
                AddTrait(girl, "Nymphomaniac");
                ss << " She has gained the Nymphomaniac trait.";
                girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
                //break;
            }
            else if(chance <= 30 && !HasTrait(girl, "Fake orgasm expert"))
            {
                AddTrait(girl, "Fake orgasm expert");
                ss << " She has gained the Fake Orgasm Expert trait.";
                girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
                //break;
            }
            else if(chance <= 40 && !HasTrait(girl, "Sexy Air"))
            {
                AddTrait(girl, "Sexy Air");
                ss << " She has gained the Sexy Air trait.";
                girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
                //break;
            }
            else if(chance <= 50 && !HasTrait(girl, "Fleet of Foot"))
            {
                AddTrait(girl, "Fleet of Foot");
                ss << " She has gained the Fleet of Foot trait.";
                girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
                //break;
            }
            else if(chance <= 60 && !HasTrait(girl, "Charismatic"))
            {
                AddTrait(girl, "Charismatic");
                ss << " She has gained the Charismatic trait.";
                girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
                //break;
            }
            else if(chance <= 70 && !HasTrait(girl, "Charming"))
            {
                AddTrait(girl, "Charming");
                ss << " She has gained the Charming trait.";
                girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
                //break;
            }
            else
            {
                girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_SUMMARY);
            }
            //else
            //    break;

            // A bug appeared to supress this message. Instead of making it global it now appears
            // on the girl's regular message list.
            //g_MessageQue.AddToQue(ss.str(), 0);
           
        //}
    }
    else
    {
        girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_SUMMARY);
    }
}
--- End code ---

and also new traits from getting good at a job:


--- Code: ---// If a girl enjoys a job enough, she has a chance of gaining traits associated with it
// (Made a FN out of code appearing in WorkExploreCatacombs etc...)

bool cGirls::PossiblyGainNewTrait(sGirl* girl, string Trait, int Threshold, int ActionType, string Message, bool DayNight)
{
    if(girl->m_Enjoyment[ActionType] > Threshold && !girl->has_trait(Trait))
    {
        int chance = (girl->m_Enjoyment[ActionType] - Threshold);
        if(g_Dice.percent(chance))
        {
            girl->add_trait(Trait, false);
            girl->m_Events.AddMessage(Message, IMGTYPE_PROFILE, EVENT_WARNING);
            return true;
        }
    }
    return false;
}

--- End code ---

Anon21:
Sounds good to me - I'll try it. :-)

THE FUTURE:
This is a change to make automatic use of items display the profile pic instead of death. Death pics usually look way too graphic for auto item use.

cBrothel.cpp


--- Code: ---bool cBrothelManager::AutomaticItemUse(sGirl * girl, int InvNum, string message)
{
    int EquipSlot = -1;

    EquipSlot = g_Girls.AddInv(girl, m_Inventory[InvNum]);
    if (EquipSlot != -1)
    {
        if (g_InvManager.equip_singleton_ok(girl, EquipSlot, false))  // Don't force equipment
        {
            RemoveItemFromInventoryByNumber(InvNum);  // Remove from general inventory
            g_InvManager.Equip(girl, EquipSlot, false);
            girl->m_Events.AddMessage(message, IMGTYPE_PROFILE, EVENT_WARNING);
            return true;

        }   
        else
        {
            g_Girls.RemoveInvByNumber(girl, EquipSlot);    // Remove it from the girl's inventory if they can't equip       
            return false;
        }
    }
    else
        return false;
}

bool cBrothelManager::AutomaticSlotlessItemUse(sGirl * girl, int InvNum, string message)
{
    // Slotless items include manuals, stripper poles, free weights, etc...
    int EquipSlot = -1;

    EquipSlot = g_Girls.AddInv(girl, m_Inventory[InvNum]);
    if (EquipSlot != -1)
    {
        RemoveItemFromInventoryByNumber(InvNum);  // Remove from general inventory
        g_InvManager.Equip(girl, EquipSlot, false);
        girl->m_Events.AddMessage(message, IMGTYPE_PROFILE, EVENT_WARNING);
        return true;
    }
    else
        return false;
}

bool cBrothelManager::AutomaticFoodItemUse(sGirl * girl, int InvNum, string message)
{
    int EquipSlot = -1;

    EquipSlot = g_Girls.AddInv(girl, m_Inventory[InvNum]);
    if (EquipSlot != -1)
    {
      RemoveItemFromInventoryByNumber(InvNum);
      g_InvManager.Equip(girl, EquipSlot, true);
      girl->m_Events.AddMessage(message, IMGTYPE_PROFILE, EVENT_WARNING);
      return true;
    }   
    else
      return false;
}
--- End code ---

THE FUTURE:
(I'm keeping it to one thread or else I'll end up spamming the forum with minor changes)

I think a change in askprice in cGirls.cpp is in order:

--- Code: ---void cGirls::CalculateAskPrice(sGirl* girl, bool vari)
{
    girl->m_Stats[STAT_ASKPRICE] = 0;
    SetStat(girl, STAT_ASKPRICE, 0);
    int askPrice = (int)(((GetStat(girl, STAT_BEAUTY)+GetStat(girl, STAT_CHARISMA))/10)*0.6f);    // Initial price
    askPrice += GetStat(girl, STAT_CONFIDENCE)/10;    // their confidence will make them think they are worth more
    askPrice += GetStat(girl, STAT_INTELLIGENCE)/10;    // if they are smart they know they can get away with a little more
    askPrice += GetStat(girl, STAT_FAME)/4;    // And lastly their fame can be quite useful too
    if(GetStat(girl, STAT_LEVEL) > 0)
        askPrice += GetStat(girl, STAT_LEVEL) * 1;
--- End code ---

The reason why is because girls cap themselves at 100 way too easily, whereas with this change it's nearly or even not possible to cap at 100. However, this also decreases all girls' worth stat, so a change in starting gold is probably also in order.

sConfig.cpp


--- Code: ---void sConfigData::set_defaults()
{
    initial.gold                = 1000;
--- End code ---

(you need to go into /resources/data/config.xml and manually change starting gold to 1000)

In my limited testing, this change *doesn't* seem to increase the difficulty perceptibly at all. Girls are less expensive but they also ask for less gold until they reach high levels. If you start the game with this change, expect to be able to buy a girl for 500-750 gold instead of over 1000 as you normally do.

The ONLY reason for making this change is because girls cap at 100 too easily. It's a change designed to defeat in-game inflation, but of course other changes are needed to fight the inflation of other aspects of the game.

Anon21:
I've used your reply #2 stuff, but I'm not sure about the reply #3 changes.  It appears that I don't play the game the same way as many do, but women charging too much has never been an issue.

Navigation

[0] Message Index

[#] Next page

Go to full version