当前位置: 首页>>代码示例>>C++>>正文


C++ cRng::d100方法代码示例

本文整理汇总了C++中cRng::d100方法的典型用法代码示例。如果您正苦于以下问题:C++ cRng::d100方法的具体用法?C++ cRng::d100怎么用?C++ cRng::d100使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在cRng的用法示例。


在下文中一共展示了cRng::d100方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: AddStory

void AddStory(stringstream * MyStr)
{
	int roll = g_Dice.d100();
	int OPTIONS = 15;
	*MyStr << " in which she ";
	switch (roll%OPTIONS)
	{
	case 0:
		*MyStr << "battles a gang of demons.";
		break;
	case 1:
		*MyStr << "defends a village against twisted, raping marauders.";
		break;
	case 2:
		*MyStr << "avenges her mentor and defends her family's honour.";
		break;
	case 3:
		*MyStr << "battles her evil step-brother for control of the Crimson Sceptre.";
		break;
	case 4:
		*MyStr << "saves a twisted nunnery from the evil within.";
		break;
	case 5:
		*MyStr << "opens hella whup-ass.";
		break;
	case 6:
		*MyStr << "protects the Elven Princess from the Orc Prince's evil magics.";
		break;
	case 7:
		*MyStr << "struggles to survive an island deathmatch sponsored by a corrupt state.";
		break;
	case 8:
		*MyStr << "dies unfairly, and is forced to beat the Challenge of the Eight Divines to earn back her place among the living.";
		break;
	case 9:
		*MyStr << "protects a handsome, kindly slave-master from his slaves' vicious mutiny.";
		break;
	case 10:
		*MyStr << "is a bounty hunter, hunting down desperate criminals and dangerous escaped slaves.";
		break;
	case 11:
		*MyStr << "battles her older sister who has been corrupted by the dark power of the Ninth Ward of Amocles.";
		break;
	case 12:
		*MyStr << "is the last of a race of female warriors, taking vengeance against a dark Prince.";
		break;
	case 13:
		*MyStr << "stars as a female monk defending a mountain temple from marauding Centaurs.";
		break;
	case 14:
		*MyStr << "hunts down the sadistic pirate gang who kidnapped her sister.";
		break;
	default:
		*MyStr << "does something very unexpected.";
		break;
	}
	return;
}
开发者ID:mjsmagalhaes,项目名称:crazys-wm-mod,代码行数:58,代码来源:WorkFilmAction.cpp

示例2: WorkFightBeast

// `J` Job Arena - Fighting
bool cJobManager::WorkFightBeast(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
    int actiontype = ACTION_COMBAT;
    stringstream ss;
    string girlName = girl->m_Realname;
    ss << girlName;

    if (g_Brothels.GetNumBeasts() < 1)
    {
        ss << " had no beasts to fight.";
        girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, Day0Night1);
        return false;	// not refusing
    }
    int roll = g_Dice.d100();
    if (roll <= 10 && g_Girls.DisobeyCheck(girl, actiontype, brothel))
    {
        ss << " refused to fight beasts today.\n";
        girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
        return true;
    }


    g_Girls.EquipCombat(girl);	// ready armor and weapons!
    Uint8 fight_outcome = 0;
    int wages = 175, enjoy = 0;
    double jobperformance = JP_FightBeast(girl, false);

    if (roll <= 15)
    {
        ss << " didn't like fighting beasts today.";
        enjoy -= 3;
    }
    else if (roll >= 90)
    {
        ss << " loved fighting beasts today.";
        enjoy += 3;
    }
    else
    {
        ss << " had a pleasant time fighting beasts today.";
        enjoy += 1;
    }
    ss << "\n\n";

    // TODO need better dialog

    sGirl* tempgirl = g_Girls.CreateRandomGirl(18, false, false, false, true, false);
    if (tempgirl)		// `J` reworked incase there are no Non-Human Random Girls
    {
        fight_outcome = g_Girls.girl_fights_girl(girl, tempgirl);
    }
    else
    {
        g_LogFile.write("Error: You have no Non-Human Random Girls for your girls to fight\n");
        g_LogFile.write("Error: You need a Non-Human Random Girl to allow WorkFightBeast randomness");
        fight_outcome = 7;
    }
    if (fight_outcome == 7)
    {
        ss << "The beasts were not cooperating and refused to fight.\n\n";
        ss << "(Error: You need a Non-Human Random Girl to allow WorkFightBeast randomness)";
        girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, Day0Night1);
    }
    else if (fight_outcome == 1)	// she won
    {
        ss << "She had fun fighting beasts today.";
        enjoy += 3;
        girl->m_Events.AddMessage(ss.str(), IMGTYPE_COMBAT, Day0Night1);
        int roll_max = girl->fame() + girl->charisma();
        roll_max /= 4;
        wages += 10 + g_Dice%roll_max;
        girl->m_Pay = wages;
        g_Girls.UpdateStat(girl, STAT_FAME, 2);
    }
    else  // she lost or it was a draw
    {
        ss << "She was unable to win the fight.";
        enjoy -= 1;
        //Crazy i feel there needs be more of a bad outcome for losses added this... Maybe could use some more
        if (m_JobManager.is_sex_type_allowed(SKILL_BEASTIALITY, brothel) && !g_Girls.HasTrait(girl, "Virgin"))
        {
            ss << " So as punishment you allow the beast to have its way with her.";
            enjoy -= 1;
            g_Girls.UpdateStatTemp(girl, STAT_LIBIDO, -50);
            g_Girls.UpdateSkill(girl, SKILL_BEASTIALITY, 2);
            girl->m_Events.AddMessage(ss.str(), IMGTYPE_BEAST, Day0Night1);
            if (!girl->calc_insemination(The_Player, false, 1.0))
            {
                g_MessageQue.AddToQue(girl->m_Realname + " has gotten inseminated", 0);
            }
        }
        else
        {
            ss << " So you send your men in to cage the beast before it can harm her.";
            girl->m_Events.AddMessage(ss.str(), IMGTYPE_COMBAT, Day0Night1);
            g_Girls.UpdateStat(girl, STAT_FAME, -1);
        }
    }

//.........这里部分代码省略.........
开发者ID:diamondialis,项目名称:crazys-wm-mod,代码行数:101,代码来源:WorkFightBeast.cpp

示例3: WorkFilmAnal

// `J` Job Movie Studio - Actress
bool cJobManager::WorkFilmAnal(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
	int actiontype = ACTION_WORKMOVIE;
	// No film crew.. then go home	// `J` this will be taken care of in building flow, leaving it in for now
	if (g_Studios.GetNumGirlsOnJob(0, JOB_CAMERAMAGE, SHIFT_NIGHT) == 0 || g_Studios.GetNumGirlsOnJob(0, JOB_CRYSTALPURIFIER, SHIFT_NIGHT) == 0)
	{
		girl->m_Events.AddMessage("There was no crew to film the scene, so she took the day off", IMGTYPE_PROFILE, EVENT_NOWORK);
		return false;
	}

	
	stringstream ss;
	string girlName = girl->m_Realname;
	int wages = 50;
	int enjoy = 0;
	int finalqual = 0;
	int jobperformance = 0;

	g_Girls.UnequipCombat(girl);	// not for actress (yet)

	ss << girlName << " worked as an actress filming anal scenes.\n\n";

	int roll = g_Dice.d100();
	if (roll <= 10 && (g_Girls.DisobeyCheck(girl, ACTION_WORKMOVIE, brothel) || g_Girls.DisobeyCheck(girl, ACTION_SEX, brothel)))
	{
		ss << "She refused to do anal on film today.\n";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
		return true;
	}
	else if (roll <= 10) { enjoy -= g_Dice % 3 + 1;	ss << "She didn't like having a cock up her ass today.\n\n"; }
	else if (roll >= 90) { enjoy += g_Dice % 3 + 1;	ss << "She loved having her ass pounded today.\n\n"; }
	else /*            */{ enjoy += g_Dice % 2;		ss << "She had a pleasant day letting her co-star slip his cock into her butt.\n\n";
	}
	jobperformance = enjoy * 2;

	if (g_Girls.CheckVirginity(girl))
	{
		jobperformance += 20;
		ss << "She is a virgin.\n";
	}

	// remaining modifiers are in the AddScene function --PP
	finalqual = g_Studios.AddScene(girl, SKILL_ANAL, jobperformance);
	ss << "Her scene is valued at: " << finalqual << " gold.";

	girl->m_Events.AddMessage(ss.str(), IMGTYPE_ANAL, Day0Night1);

	// work out the pay between the house and the girl
	if (girl->is_slave() && !cfg.initial.slave_pay_outofpocket())
	{
		wages = 0;	// You own her so you don't have to pay her.
	}
	else
	{
		wages += finalqual * 2;
	}
	girl->m_Pay = wages;

	// Improve stats
	int xp = 10, skill = 3;

	if (g_Girls.HasTrait(girl, "Quick Learner"))		{ skill += 1; xp += 3; }
	else if (g_Girls.HasTrait(girl, "Slow Learner"))	{ skill -= 1; xp -= 3; }

	g_Girls.UpdateStat(girl, STAT_EXP, xp);
	g_Girls.UpdateSkill(girl, SKILL_PERFORMANCE, g_Dice%skill);
	g_Girls.UpdateSkill(girl, SKILL_ANAL, g_Dice%skill + 1);

	g_Girls.UpdateEnjoyment(girl, ACTION_SEX, enjoy);
	g_Girls.UpdateEnjoyment(girl, ACTION_WORKMOVIE, enjoy);
	//gain
	g_Girls.PossiblyGainNewTrait(girl, "Fake Orgasm Expert", 50, ACTION_SEX, "She has become quite the faker.", Day0Night1);
	g_Girls.PossiblyGainNewTrait(girl, "Slut", 80, ACTION_SEX, girlName + " has turned into quite a slut.", Day0Night1);
	g_Girls.PossiblyGainNewTrait(girl, "Porn Star", 80, ACTION_WORKMOVIE, "She has performed in enough sex scenes that she has become a well known Porn Star.", Day0Night1);
	//lose

	return false;
}
开发者ID:DagothRa,项目名称:crazys-wm-mod,代码行数:79,代码来源:WorkFilmAnal.cpp

示例4: WorkBarPiano

// `J` Job Brothel - Bar
bool cJobManager::WorkBarPiano(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
	int actiontype = ACTION_WORKMUSIC;
	stringstream ss; string girlName = girl->m_Realname; ss << girlName;
	if (g_Girls.DisobeyCheck(girl, actiontype, brothel))
	{
		ss << " refused to work during the " << (Day0Night1 ? "night" : "day") << " shift.";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
		return true;
	}
	ss << " played the piano in the bar.";

	g_Girls.UnequipCombat(girl);	// put that shit away, you'll scare off the customers!

	sGirl* singeronduty = g_Brothels.GetRandomGirlOnJob(0, JOB_SINGER, Day0Night1);
	string singername = (singeronduty ? "Singer " + singeronduty->m_Realname + "" : "the Singer");

	double wages = 20, tips = 0;
	int work = 0;

	int roll = g_Dice.d100();

	double jobperformance = JP_BarPiano(girl, false);

	if (jobperformance >= 245)
	{
		ss << " She plays with the grace of an angel. Customers come from miles around to listen to her play.\n\n";
		wages += 155;
		if (roll <= 20)
		{
			ss << girlName << "'s playing brought many patrons to tears as she played a song full of sadness.\n";
			brothel->m_Happiness += 5;
		}
		else if (roll <= 40)
		{
			ss << "Nice melody fills the room when " << girlName << " is behind the piano.\n";
			brothel->m_Happiness += 10;
		}
		else if (roll <= 60)
		{
			ss << "Knowing that she is good, " << girlName << " played all the tunes blindfolded.\n";
			brothel->m_Fame += 10;
		}
		else if (roll <= 80)
		{
			ss << "Being confident in her skill, " << girlName << " played today using only one hand.\n";
			brothel->m_Fame += 10;
		}
		else
		{
			ss << girlName << "'s soothing playing seems to glide over the noise and bustling of the bar.\n";
			brothel->m_Happiness += 10;
		}
	}
	else if (jobperformance >= 185)
	{
		ss << " She's unbelievable at this and is always getting praised by the customers for her playing skills.\n\n";
		wages += 95;
		if (roll <= 20)
		{
			ss << girlName << " begun to acquire her own following - a small crowd of people came in just to listen to her and buy drinks\n";
			brothel->m_Fame += 5;
			wages += 10;
		}
		else if (roll <= 40)
		{
			ss << "Her playing fills the room. Some customers hum the melody under their noses.\n";
			brothel->m_Happiness += 5;
		}
		else if (roll <= 60)
		{
			ss << "After making a mistake she improvised a passage to the next song.\n";
		}
		else if (roll <= 80)
		{
			ss << "She plays without music sheets having all the songs memorized.\n";
			brothel->m_Fame += 5;
		}
		else
		{
			ss << girlName << "'s soothing playing seems to glide over the noise and bustling of the bar.\n";
		}
	}
	else if (jobperformance >= 145)
	{
		ss << " Her playing is really good and gets praised by the customers often.\n\n";
		wages += 55;
		if (roll <= 20)
		{
			ss << "Her playing was pleasing, if bland.  Her rythem was nice, if slightly untrained.\n";
		}
		else if (roll <= 40)
		{
			ss << girlName << " doesn't have any trouble playing the piano.\n";
		}
		else if (roll <= 60)
		{
			ss << "Give " << girlName << " any kind of music sheet and she will play it. She is really good at this.\n";
			brothel->m_Happiness += 5;
//.........这里部分代码省略.........
开发者ID:DagothRa,项目名称:crazys-wm-mod,代码行数:101,代码来源:WorkBarPiano.cpp

示例5: WorkCentreManager

// `J` Job Centre - General - Matron_Job - Full_Time_Job
bool cJobManager::WorkCentreManager(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
	int actiontype = ACTION_WORKMATRON;
	// DisobeyCheck is done in the building flow.
	girl->m_DayJob = girl->m_NightJob = JOB_CENTREMANAGER;	// it is a full time job

	stringstream ss; string girlName = girl->m_Realname; ss <<"Centre Manager "<< girlName;


	int numgirls = brothel->m_NumGirls;
	int wages = 0;
	int tips = 0;
	int enjoy = 0;
	int conf = 0;
	int happy = 0;

	// Complications
	int check = g_Dice.d100();
	if (check < 10 && numgirls >(girl->service() + girl->confidence()) * 3)
	{
		enjoy -= (g_Dice % 6 + 5);
		conf -= 5; happy -= 10;
		ss << " was overwhelmed by the number of girls she was required to manage and broke down crying.";
	}
	else if (check < 10)
	{
		enjoy -= (g_Dice % 3 + 1);
		conf -= -1; happy -= -3;
		ss << " had trouble dealing with some of the girls.";
	}
	else if (check > 90)
	{
		enjoy += (g_Dice % 3 + 1);
		conf += 1; happy += 3;
		ss << " enjoyed helping the girls with their lives.";
	}
	else
	{
		enjoy += (g_Dice % 3 - 1);
		ss << " went about her day as usual.";
	}

	girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, Day0Night1);

	// Improve girl
	int xp = numgirls / 10, libido = 1, skill = 3;

	if (girl->has_trait( "Quick Learner"))		{ skill += 1; xp += 5; }
	else if (girl->has_trait( "Slow Learner"))	{ skill -= 1; xp -= 5; }
	if (girl->has_trait( "Nymphomaniac"))			libido += 2;
	if (girl->has_trait( "Lesbian"))				libido += numgirls / 20;

	wages = int(float(100.0 + (((girl->get_skill(SKILL_SERVICE) + girl->get_stat(STAT_CHARISMA) + girl->get_stat(STAT_INTELLIGENCE) + girl->get_stat(STAT_CONFIDENCE) + girl->get_skill(SKILL_MEDICINE) + 50) / 50)*numgirls) * cfg.out_fact.matron_wages()));
	girl->m_Tips = max(0, tips);
	girl->m_Pay = max(0, wages);

	if (conf>-1) conf += g_Dice%skill;
	g_Girls.UpdateStat(girl, STAT_CONFIDENCE, conf);
	g_Girls.UpdateStat(girl, STAT_HAPPINESS, happy);

	g_Girls.UpdateStat(girl, STAT_EXP, g_Dice%xp + 5);
	g_Girls.UpdateSkill(girl, SKILL_MEDICINE, g_Dice%skill);
	g_Girls.UpdateSkill(girl, SKILL_SERVICE, g_Dice%skill + 2);
	g_Girls.UpdateStatTemp(girl, STAT_LIBIDO, g_Dice%libido);

	g_Girls.UpdateEnjoyment(girl, actiontype, enjoy);
	g_Girls.PossiblyGainNewTrait(girl, "Charismatic", 30, actiontype, "She has worked as a matron long enough that she has learned to be more Charismatic.", Day0Night1);
	g_Girls.PossiblyGainNewTrait(girl, "Psychic", 60, actiontype, "She has learned to handle the girls so well that you'd almost think she was Psychic.", Day0Night1);

	return false;
}
开发者ID:mjsmagalhaes,项目名称:crazys-wm-mod,代码行数:72,代码来源:WorkCentreManager.cpp

示例6: WorkDoctor

// `J` Job Clinic - Staff
bool cJobManager::WorkDoctor(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
	int actiontype = ACTION_WORKDOCTOR;
	bool SkipDisobey = (summary == "SkipDisobey");
	stringstream ss; string girlName = girl->m_Realname;
	if (g_Girls.HasTrait(girl, "AIDS"))
	{
		ss << "Health laws prohibit anyone with AIDS from working in the Medical profession so " << girlName << " was sent to the waiting room.";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
		girl->m_PrevDayJob = girl->m_PrevNightJob = girl->m_DayJob = girl->m_NightJob = JOB_CLINICREST;
		return false;
	}
	if (girl->is_slave())
	{
		ss << "Slaves are not allowed to be Doctors so " << girlName << " was reassigned to being a Nurse.";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
		girl->m_PrevDayJob = girl->m_PrevNightJob = girl->m_DayJob = girl->m_NightJob = JOB_NURSE;
		return false;
	}
	ss << girlName;
	if (girl->medicine() < 50 || girl->intelligence() < 50)
	{
		ss << " does not have enough training to work as a Doctor. She has been reassigned to Internship so she can learn what she needs.";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
		girl->m_PrevDayJob = girl->m_PrevNightJob = girl->m_DayJob = girl->m_NightJob = JOB_INTERN;
		return false;
	}
	if (!SkipDisobey)	// `J` skip the disobey check because it has already been done in the building flow
	{
		if (g_Girls.DisobeyCheck(girl, actiontype, brothel))			// they refuse to work 
		{
			ss << " refused to work during the " << (Day0Night1 ? "night" : "day") << " shift.";
			girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
			return true;
		}
	}
	ss << " worked as a Doctor.\n";

	
	g_Girls.UnequipCombat(girl);	// put that shit away, you'll scare off the patients!

	int enjoy = 0, wages = 100;

	// this will be added to the clinic's code eventually - for now it is just used for her pay
	int patients = 0;			// `J` how many patients the Doctor can see in a shift


	// Doctor is a full time job now
	girl->m_DayJob = girl->m_NightJob = JOB_DOCTOR;


	double jobperformance = JP_Doctor(girl, false);

	//enjoyed the work or not
	int roll = g_Dice.d100();
	if (roll <= 10)
	{
		enjoy -= g_Dice % 3 + 1;
		jobperformance *= 0.9;
		ss << "Some of the patients abused her during the shift.\n";
	}
	else if (roll >= 90)
	{
		enjoy += g_Dice % 3 + 1;
		jobperformance *= 1.1;
		ss << "She had a pleasant time working.\n";
	}
	else
	{
		enjoy += g_Dice % 2;
		ss << "Otherwise, the shift passed uneventfully.\n";
	}

	girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, Day0Night1);
	patients += (int)(jobperformance / 10);		// `J` 1 patient per 10 point of performance
	g_Clinic.m_Doctor_Patient_Time += patients;

	/* `J` this will be a place holder until a better payment system gets done
	*  this does not take into account any of your girls in surgery
	*/
	int earned = 0;
	for (int i = 0; i < patients; i++)
	{
		earned += g_Dice % 150 + 50; // 50-200 gold per customer
	}
	brothel->m_Finance.clinic_income(earned);
	ss.str("");
	ss << girlName << " earned " << earned << " gold from taking care of " << patients << " patients.\n";
	girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, Day0Night1);

	girl->m_Pay += wages + (patients * 10);

	// Improve stats
	int xp = 10 + (patients / 2), libido = 1, skill = 1 + (patients / 3);

	if (g_Girls.HasTrait(girl, "Quick Learner"))		{ skill += 1; xp += 3; }
	else if (g_Girls.HasTrait(girl, "Slow Learner"))	{ skill -= 1; xp -= 3; }
	if (g_Girls.HasTrait(girl, "Nymphomaniac"))			{ libido += 2; }
	if (g_Girls.HasTrait(girl, "Lesbian"))				{ libido += patients / 2; }
//.........这里部分代码省略.........
开发者ID:Jenocke,项目名称:test,代码行数:101,代码来源:WorkDoctor.cpp

示例7: WorkGardener

// `J` Job Farm - Laborers
bool cJobManager::WorkGardener(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
#pragma region //	Job setup				//
	int actiontype = ACTION_WORKFARM;
	stringstream ss; string girlName = girl->m_Realname; ss << girlName;
	int roll_a = g_Dice.d100(), roll_b = g_Dice.d100(), roll_c = g_Dice.d100();
	if (g_Girls.DisobeyCheck(girl, actiontype, brothel))			// they refuse to work 
	{
		ss << " refused to work during the " << (Day0Night1 ? "night" : "day") << " shift.";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
		return true;
	}
	ss << " worked as a gardener on the farm.\n\n";

	g_Girls.UnequipCombat(girl);	// put that shit away, you'll scare off the customers!

	double wages = 20, tips = 0;
	int enjoy = 0;
	int imagetype = IMGTYPE_FARM;
	int msgtype = Day0Night1;

#pragma endregion
#pragma region //	Job Performance			//


	double jobperformance = JP_Gardener(girl, false);
	if (jobperformance >= 245)
	{
		ss << " She must be the perfect at this.";
		wages += 155;
	}
	else if (jobperformance >= 185)
	{
		ss << " She's unbelievable at this.";
		wages += 95;
	}
	else if (jobperformance >= 145)
	{
		ss << " She's good at this job.";
		wages += 55;
	}
	else if (jobperformance >= 100)
	{
		ss << " She made a few mistakes but overall she is okay at this.";
		wages += 15;
	}
	else if (jobperformance >= 70)
	{
		ss << " She was nervous and made a few mistakes. She isn't that good at this.";
		wages -= 5;
	}
	else
	{
		ss << " She was nervous and constantly making mistakes. She really isn't very good at this job.";
		wages -= 15;
	}
	ss << "\n\n";

#pragma endregion
#pragma region	//	Enjoyment and Tiredness		//


	int roll = g_Dice.d100();

	//enjoyed the work or not
	if (roll <= 5)
	{
		ss << "Some of the patrons abused her during the shift.";
		enjoy -= 1;
	}
	else if (roll <= 25)
	{
		ss << "She had a pleasant time working.";
		enjoy += 3;
	}
	else
	{
		ss << "Otherwise, the shift passed uneventfully.";
		enjoy += 1;
	}


#pragma endregion
#pragma region	//	Create Items				//


	// `J` Farm Bookmark - adding in items that can be gathered in the farm


	int flowerpower = g_Dice % 3;
	/* */if (jobperformance < 70)	flowerpower -= 1;
	else if (jobperformance < 100)	flowerpower += 0;
	else if (jobperformance < 145)	flowerpower += 1;
	else if (jobperformance < 185)	flowerpower += 2;
	else if (jobperformance < 245)	flowerpower += 3;
	else /*                     */	flowerpower += 4;

	string additems[8] = { "", "", "", "", "", "", "", "" };
	int additemnum = 0;
//.........这里部分代码省略.........
开发者ID:belroshir,项目名称:crazys-wm-mod,代码行数:101,代码来源:WorkGardener.cpp

示例8: WorkFilmAction

// Job Movie Studio - // nice Job - Action Scene
//This film will use her combat and magic skills, and will be more popular if she's hot.
bool cJobManager::WorkFilmAction(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
	int actiontype = ACTION_WORKMOVIE;
	//Taken care of in building flow, leaving it in for robustness
	if (g_Studios.GetNumGirlsOnJob(0, JOB_CAMERAMAGE, SHIFT_NIGHT) == 0 || g_Studios.GetNumGirlsOnJob(0, JOB_CRYSTALPURIFIER, SHIFT_NIGHT) == 0)
	{
		girl->m_Events.AddMessage("There was no crew to film the scene, so she took the day off", IMGTYPE_PROFILE, EVENT_NOWORK);
		return false;
	}

	stringstream ss;
	string girlName = girl->m_Realname;
	int wages = 50;
	int tips = 0;
	int enjoy = 0;
	int bonus = 0;
	double jobperformance = JP_FilmAction(girl, false);

	//g_Girls.UnequipCombat(girl);	// not for actress (yet)

	ss << girlName;
	int roll = g_Dice.d100();
	if (roll <= 10 && g_Girls.DisobeyCheck(girl, ACTION_WORKMOVIE, brothel))
	{
		ss << " refused to shoot an action scenes today.\n";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
		return true;
	}
	else if (g_Girls.GetStat(girl, STAT_TIREDNESS) > 75)
	{
		ss << " was too tired to take part in an action scene.\n\n";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
		return true;
	}
	else ss << " worked as an actress in an action scene.\n\n";


	//JOB
	ss << girlName;
	int OPTIONS = 3; //Right now this number of options applies for all levels of job
	if (jobperformance >= 350)
	{
		ss << " made an outstanding action scene,";
		AddStory(&ss);
		ss << " It will definitely win her some fans.";
		g_Girls.UpdateStat(girl, STAT_FAME, 3);
		bonus = 12;
	}
	else if (jobperformance >= 245)
	{
		ss << " made a great action scene,";
		AddStory(&ss);
		ss << " It should win her some fans.";
		g_Girls.UpdateStat(girl, STAT_FAME, 2);
		bonus = 6;
	}
	else if (jobperformance >= 185)
	{
		ss << " made a fairly good action scene,";
		AddStory(&ss);
		ss << " Her fans will enjoy it.";
		bonus = 4;
		g_Girls.UpdateStat(girl, STAT_FAME, 1);
	}
	else if (jobperformance >= 145)
	{
		ss << " made an uninspired action scene,";
		AddStory(&ss);
		ss << " Her diehard fans might enjoy it.";
		bonus = 2;
	}
	else if (jobperformance >= 100)
	{
		ss << " made a weak action scene,";
		AddStory(&ss);
		bonus = 1;
		ss << "\nThe CamerMage advised " << girlName << " how to improve her performance";
		if (g_Dice.percent(40))
		{
			ss << " and her scene got a little better after this.";
			bonus++;
		}
		else
		{
			ss << ", but she wouldn't listen.";
		}
	}
	else
	{
		ss << " made an awful action scene,";
		AddStory(&ss);
		ss << " Even her fans will hate it.";
		g_Girls.UpdateStat(girl, STAT_FAME, -1);
	}

	ss << "\n";

	//Enjoyed? If she performed well, she'd should have enjoyed it.
//.........这里部分代码省略.........
开发者ID:mjsmagalhaes,项目名称:crazys-wm-mod,代码行数:101,代码来源:WorkFilmAction.cpp

示例9: Update


//.........这里部分代码省略.........
								else
								{
									ss << gettext(" and lost.");
									curr->m_NumGangs--;
								}
								delete rG1; rG1 = 0;	// cleanup
							}
							else
							{
								num = (g_Dice % 4) + 1;	// can do more damage if not fighting another gang
							}
							if (num > 0)
							{
								if (rival->m_BusinessesExtort > 0)
								{
									rival->m_BusinessesExtort -= num;
									if (rival->m_BusinessesExtort < 0)
										rival->m_BusinessesExtort = 0;
								}
								if (rival->m_Gold > 0)
								{
									long gold = (g_Dice % 2000) + 45;	// get a random ammount
									if ((rival->m_Gold - gold) > 0)		// and if they have more than that
									{
										rival->m_Gold -= gold;			// take it
									}
									else								// but if not
									{
										gold = rival->m_Gold;			// take all they have
										rival->m_Gold = 0;
									}
									income += gold;
								}
								int buildinghit = g_Dice.d100() - num;
								if (rival->m_NumBrothels > 0 && buildinghit < 10 + (rival->m_NumBrothels * 2))
								{		// 10% base + 2% per brothel
									rival->m_NumBrothels--;
									rival->m_Power--;
									ss << "\nThey destroyed one of their Brothels.";
								}
								else if (rival->m_NumGamblingHalls > 0 && buildinghit < 30 + (rival->m_NumGamblingHalls * 2))
								{		// 20% base + 2% per hall
									rival->m_NumGamblingHalls--;
									ss << "\nThey destroyed one of their Gambling Halls.";
								}
								else if (rival->m_NumBars > 0 && buildinghit < 60 + (rival->m_NumBars * 2))
								{		// 60% base + 2% per bar
									rival->m_NumBars--;
									ss << "\nThey destroyed one of their Bars.";
								}
							}
							g_MessageQue.AddToQue(ss.str(), 0);
						}
					}
				}
			}break;
			case MISS_CAPTUREGIRL:		// take girls from rivals
			{





			}break;
			case MISS_KIDNAPP:			// get new girls
			{
开发者ID:taukita,项目名称:crazys-wm-mod,代码行数:67,代码来源:cRival.cpp

示例10: WorkFilmStagehand

// `J` Job Movie Studio - Crew - job_is_cleaning
bool cJobManager::WorkFilmStagehand(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
	int actiontype = ACTION_WORKMOVIE;
	stringstream ss; string girlName = girl->m_Realname; ss << girlName;

	int roll_a = g_Dice.d100(), roll_b = g_Dice.d100(), roll_c = g_Dice.d100();
	if (roll_a <= 50 && (g_Girls.DisobeyCheck(girl, ACTION_WORKMOVIE, brothel) || g_Girls.DisobeyCheck(girl, ACTION_WORKCLEANING, brothel)))
	{
		ss << " refused to work as a stagehand today.";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
		return true;
	}
	ss << " worked as a stagehand.\n\n";

	cConfig cfg;
	g_Girls.UnequipCombat(girl);	// not for studio crew

	int wages = 50;
	int enjoyc = 0, enjoym = 0;
	bool filming = true;
	bool playtime = false;
	int imagetype = IMGTYPE_PROFILE;


	// `J` - jobperformance and CleanAmt need to be worked out specially for this job.
	int jobperformance = 0;
	int CleanAmt = ((g_Girls.GetSkill(girl, SKILL_SERVICE) / 10) + 5) * 5;

	if (g_Studios.GetNumGirlsOnJob(0, JOB_CAMERAMAGE, SHIFT_NIGHT) == 0 ||
		g_Studios.GetNumGirlsOnJob(0, JOB_CRYSTALPURIFIER, SHIFT_NIGHT) == 0 ||
		g_Studios.Num_Actress(0) < 1)
	{
		ss << "There were no scenes being filmed, so she just cleaned the set.\n\n";
		filming = false;
		CleanAmt *= 2;
		imagetype = IMGTYPE_MAID;
	}

	if (g_Girls.HasTrait(girl, "Director"))					{ CleanAmt -= 10;	jobperformance += 15; }
	if (g_Girls.HasTrait(girl, "Actress"))					{ CleanAmt += 0;	jobperformance += 10; }
	if (g_Girls.HasTrait(girl, "Porn Star"))				{ CleanAmt += 0;	jobperformance += 5; }
	if (g_Girls.HasTrait(girl, "Flight"))					{ CleanAmt += 20;	jobperformance += 10; }
	if (g_Girls.HasTrait(girl, "Maid"))						{ CleanAmt += 20;	jobperformance += 2; }
	if (g_Girls.HasTrait(girl, "Powerful Magic"))			{ CleanAmt += 10;	jobperformance += 10; }
	if (g_Girls.HasTrait(girl, "Strong Magic"))				{ CleanAmt += 5;	jobperformance += 5; }
	if (g_Girls.HasTrait(girl, "Handyman"))					{ CleanAmt += 5;	jobperformance += 10; }
	if (g_Girls.HasTrait(girl, "Waitress"))					{ CleanAmt += 5;	jobperformance += 5; }
	if (g_Girls.HasTrait(girl, "Agile"))					{ CleanAmt += 5;	jobperformance += 10; }
	if (g_Girls.HasTrait(girl, "Fleet of Foot"))			{ CleanAmt += 2;	jobperformance += 5; }
	if (g_Girls.HasTrait(girl, "Strong"))					{ CleanAmt += 5;	jobperformance += 10; }
	if (g_Girls.HasTrait(girl, "Assassin"))					{ CleanAmt += 1;	jobperformance += 1; }
	if (g_Girls.HasTrait(girl, "Psychic"))					{ CleanAmt += 2;	jobperformance += 5; }
	if (g_Girls.HasTrait(girl, "Manly"))					{ CleanAmt += 1;	jobperformance += 1; }
	if (g_Girls.HasTrait(girl, "Tomboy"))					{ CleanAmt += 2;	jobperformance += 2; }
	if (g_Girls.HasTrait(girl, "Optimist"))					{ CleanAmt += 1;	jobperformance += 1; }
	if (g_Girls.HasTrait(girl, "Sharp-Eyed"))				{ CleanAmt += 1;	jobperformance += 5; }
	if (g_Girls.HasTrait(girl, "Giant"))					{ CleanAmt += 2;	jobperformance += 2; }
	if (g_Girls.HasTrait(girl, "Prehensile Tail"))			{ CleanAmt += 3;	jobperformance += 3; }

	if (g_Girls.HasTrait(girl, "Blind"))					{ CleanAmt -= 20;	jobperformance -= 20; }
	if (g_Girls.HasTrait(girl, "Queen"))					{ CleanAmt -= 20;	jobperformance -= 10; }
	if (g_Girls.HasTrait(girl, "Princess"))					{ CleanAmt -= 10;	jobperformance -= 5; }
	if (g_Girls.HasTrait(girl, "Mind Fucked"))				{ CleanAmt -= 10;	jobperformance -= 5; }
	if (g_Girls.HasTrait(girl, "Bimbo"))					{ CleanAmt -= 5;	jobperformance -= 5; }
	if (g_Girls.HasTrait(girl, "Retarded"))					{ CleanAmt -= 5;	jobperformance -= 5; }
	if (g_Girls.HasTrait(girl, "Smoker"))					{ CleanAmt -= 1;	jobperformance -= 1; }
	if (g_Girls.HasTrait(girl, "Clumsy"))					{ CleanAmt -= 5;	jobperformance -= 5; }
	if (g_Girls.HasTrait(girl, "Delicate"))					{ CleanAmt -= 1;	jobperformance -= 1; }
	if (g_Girls.HasTrait(girl, "Elegant"))					{ CleanAmt -= 5;	jobperformance -= 1; }
	if (g_Girls.HasTrait(girl, "Malformed"))				{ CleanAmt -= 1;	jobperformance -= 1; }
	if (g_Girls.HasTrait(girl, "Massive Melons"))			{ CleanAmt -= 1;	jobperformance -= 1; }
	if (g_Girls.HasTrait(girl, "Abnormally Large Boobs"))	{ CleanAmt -= 3;	jobperformance -= 1; }
	if (g_Girls.HasTrait(girl, "Titanic Tits"))				{ CleanAmt -= 5;	jobperformance -= 1; }
	if (g_Girls.HasTrait(girl, "Broken Will"))				{ CleanAmt -= 5;	jobperformance -= 10; }
	if (g_Girls.HasTrait(girl, "Pessimist"))				{ CleanAmt -= 1;	jobperformance -= 1; }
	if (g_Girls.HasTrait(girl, "Meek"))						{ CleanAmt -= 2;	jobperformance -= 2; }
	if (g_Girls.HasTrait(girl, "Nervous"))					{ CleanAmt -= 2;	jobperformance -= 3; }
	if (g_Girls.HasTrait(girl, "Dependant"))				{ CleanAmt -= 5;	jobperformance -= 5; }
	if (g_Girls.HasTrait(girl, "Bad Eyesight"))				{ CleanAmt -= 5;	jobperformance -= 5; }


	if (roll_a <= 10)
	{
		enjoyc -= g_Dice % 3 + 1; if (filming) enjoym -= g_Dice % 3 + 1;
		CleanAmt = int(CleanAmt * 0.8);
		ss << "She did not like working in the studio today.";
	}
	else if (roll_a >= 90)
	{
		enjoyc += g_Dice % 3 + 1; if (filming) enjoym += g_Dice % 3 + 1;
		CleanAmt = int(CleanAmt * 1.1);
		ss << "She had a great time working today.";
	}
	else
	{
		enjoyc += max(0, g_Dice % 3 - 1); if (filming) enjoym += max(0, g_Dice % 3 - 1);
		ss << "Otherwise, the shift passed uneventfully.";
	}
	jobperformance += enjoyc + enjoym;
//.........这里部分代码省略.........
开发者ID:taukita,项目名称:crazys-wm-mod,代码行数:101,代码来源:WorkFilmStagehand.cpp

示例11: WorkFarmHand

// `J` Job Farm - Staff - job_is_cleaning
bool cJobManager::WorkFarmHand(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
	int actiontype = ACTION_WORKFARM; int actiontype2 = ACTION_WORKCLEANING;
	stringstream ss; string girlName = girl->m_Realname; ss << girlName;
	int roll_a = g_Dice.d100(), roll_b = g_Dice.d100(), roll_c = g_Dice.d100();
	if (roll_a <= 50 && (g_Girls.DisobeyCheck(girl, actiontype, brothel) || g_Girls.DisobeyCheck(girl, actiontype2, brothel)))
	{
		ss << " refused to work on the farm.";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
		return true;
	}
	ss << " worked cleaning and repairing the farm.\n\n";

	

	g_Girls.UnequipCombat(girl);	// put that shit away

	double CleanAmt = ((g_Girls.GetSkill(girl, SKILL_SERVICE) / 10) + 5) * 10;
	CleanAmt += JP_FarmHand(girl, false);

	int enjoyC = 0, enjoyF = 0;
	double wages = 0, tips = 0;
	bool playtime = false;




	if (roll_a <= 10)
	{
		enjoyC -= g_Dice % 3; enjoyF -= g_Dice % 3;
		CleanAmt = CleanAmt * 0.8;
		/* */if (roll_b < 30)	ss << "She spilled a bucket of something unpleasant all over herself.";
		else if (roll_b < 60)	ss << "She stepped in something unpleasant.";
		else /*            */	ss << "She did not like working on the farm today.";
	}
	else if (roll_a >= 90)
	{
		enjoyC += g_Dice % 3; enjoyF += g_Dice % 3;
		CleanAmt = CleanAmt * 1.1;
		/* */if (roll_b < 50)	ss << "She cleaned the building while humming a pleasant tune.";
		else /*            */	ss << "She had a great time working today.";
	}
	else
	{
		enjoyC += g_Dice % 2; enjoyF += g_Dice % 2;
		ss << "The shift passed uneventfully.";
	}
	ss << "\n\n";

	// slave girls not being paid for a job that normally you would pay directly for do less work
	if ((girl->is_slave() && !cfg.initial.slave_pay_outofpocket()))
	{
		CleanAmt = CleanAmt * 0.9;
		wages = 0;
	}
	else
	{
		wages = int(CleanAmt); // `J` Pay her based on how much she cleaned
	}

	// `J` if she can clean more than is needed, she has a little free time after her shift
	if (brothel->m_Filthiness < CleanAmt / 2) playtime = true;
	ss << "\n\nCleanliness rating improved by " << int(CleanAmt);
	if (playtime)	// `J` needs more variation
	{
		ss << "\n\n" << girlName << " finished her cleaning early so she ";
		if (Day0Night1 == SHIFT_DAY && roll_c % 3 == 1)	// 33% chance she will watch the sunset when working day shift
		{
			ss << "sat beneath an oak tree and watched the sunset.";
			g_Girls.UpdateStat(girl, STAT_TIREDNESS, -((g_Dice % 5) + 2));
		}
		else if (roll_c < 25)
		{
			ss << "played with the baby animals a bit.";
			g_Girls.UpdateSkill(girl, SKILL_ANIMALHANDLING, (g_Dice % 2) + 1);
		}
		else if (roll_c < 50)
		{
			ss << "played in the dirt a bit.";
			g_Girls.UpdateSkill(girl, SKILL_FARMING, (g_Dice % 2));
		}
		else
		{
			ss << "sat in a rocking chair on the farm house front porch whittling.";
			g_Girls.UpdateSkill(girl, SKILL_CRAFTING, (g_Dice % 3));
			g_Girls.UpdateStat(girl, STAT_TIREDNESS, -(g_Dice % 3));
		}
		g_Girls.UpdateStat(girl, STAT_HAPPINESS, (g_Dice % 4) + 2);
	}

#if 0

	// `J` Farm Bookmark - adding in items that can be created in the farm






//.........这里部分代码省略.........
开发者ID:Jenocke,项目名称:test,代码行数:101,代码来源:WorkFarmHand.cpp

示例12: WorkFilmDirector

// `J` Job Movie Studio - Crew - Matron_Job - Full_Time_Job
bool cJobManager::WorkFilmDirector(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
	int actiontype = ACTION_WORKMATRON;
	// DisobeyCheck is done in the building flow.
	stringstream ss; string girlName = girl->m_Realname;
	g_Studios.m_DirectorName = girl->m_Realname;

	ss << girlName << " worked as a film director.\n\n";


	g_Girls.UnequipCombat(girl);	// not for studio crew

	int wages = 50;
	int tips = 0;
	int enjoy = 0;
	int numgirls = brothel->m_NumGirls;

	int roll = g_Dice.d100();
	if (roll <= 10)
	{
		enjoy -= g_Dice % 3 + 1;
		ss << "She did not like working in the studio today.\n\n";
	}
	else if (roll >= 90)
	{
		enjoy += g_Dice % 3 + 1;
		ss << "She had a great time working today.\n\n";
	}
	else
	{
		enjoy += g_Dice % 2;
		ss << "Otherwise, the shift passed uneventfully.\n\n";
	}
	double jobperformance = JP_FilmDirector(girl, false);
	jobperformance += enjoy * 2;

	/* */if (jobperformance > 0)	ss << "She helped improve the scene " << (int)jobperformance << "% with her Directing skills. \n";
	else if (jobperformance < 0)	ss << "She did a bad job today, she reduced the scene quality " << (int)jobperformance << "% with her poor performance. \n";
	else /*                   */	ss << "She did not really help the scene quality.\n";

	wages += int(float(100.0 + (((girl->get_skill(SKILL_SERVICE) + girl->get_stat(STAT_CHARISMA) + girl->get_stat(STAT_INTELLIGENCE) + girl->get_stat(STAT_CONFIDENCE) + girl->get_skill(SKILL_MEDICINE) + 50) / 50)*numgirls) * cfg.out_fact.matron_wages()));
	girl->m_Tips = max(0, tips);
	girl->m_Pay = max(0, wages);
	g_Studios.m_DirectorQuality += (int)jobperformance;
	girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, SHIFT_NIGHT);

	// Improve girl
	int xp = numgirls / 10, libido = 1, skill = 3, fame = (int)(jobperformance / 50);

	if (girl->has_trait( "Quick Learner"))		{ skill += 1; xp += 5; }
	else if (girl->has_trait( "Slow Learner"))	{ skill -= 1; xp -= 5; }
	if (girl->has_trait( "Nymphomaniac"))			libido += 2;
	if (girl->has_trait( "Lesbian"))				libido += numgirls / 20;

	g_Girls.UpdateStat(girl, STAT_EXP, g_Dice%xp + 5);
	g_Girls.UpdateStat(girl, STAT_FAME, g_Dice%fame);
	g_Girls.UpdateStat(girl, STAT_CHARISMA, g_Dice%skill);
	g_Girls.UpdateSkill(girl, SKILL_SERVICE, g_Dice%skill + 2);
	g_Girls.UpdateStatTemp(girl, STAT_LIBIDO, g_Dice%libido);

	g_Girls.PossiblyGainNewTrait(girl, "Charismatic", 30, actiontype, "She has worked as a matron long enough that she has learned to be more Charismatic.", Day0Night1);
	g_Girls.PossiblyGainNewTrait(girl, "Psychic", 90, actiontype, "She has learned to handle the girls so well that you'd almost think she was Psychic.", Day0Night1);

	return false;
}
开发者ID:mjsmagalhaes,项目名称:crazys-wm-mod,代码行数:66,代码来源:WorkFilmDirector.cpp

示例13: WorkBrewer

// `J` Job Farm - Producers
bool cJobManager::WorkBrewer(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
#pragma region //	Job setup				//
	int actiontype = ACTION_WORKCOOKING;
	stringstream ss; string girlName = girl->m_Realname; ss << girlName;
	int roll_a = g_Dice.d100(), roll_b = g_Dice.d100(), roll_c = g_Dice.d100();
	if (g_Girls.DisobeyCheck(girl, actiontype, brothel))			// they refuse to work 
	{
		ss << " refused to work during the " << (Day0Night1 ? "night" : "day") << " shift.";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
		return true;
	}
	ss << " worked as a brewer on the farm.\n\n";

	g_Girls.UnequipCombat(girl);	// put that shit away, you'll scare off the customers!

	double wages = 20, tips = 0;
	int enjoy = 0;
	int imagetype = IMGTYPE_COOK;
	int msgtype = Day0Night1;

#pragma endregion
#pragma region //	Job Performance			//


	double jobperformance = JP_Brewer(girl, false);
	double drinksproduced = jobperformance;

	if (jobperformance >= 245)
	{
		ss << " She must be the perfect at this.";
		wages += 155;
	}
	else if (jobperformance >= 185)
	{
		ss << " She's unbelievable at this.";
		wages += 95;
	}
	else if (jobperformance >= 145)
	{
		ss << " She's good at this job.";
		wages += 55;
	}
	else if (jobperformance >= 100)
	{
		ss << " She made a few mistakes but overall she is okay at this.";
		wages += 15;
	}
	else if (jobperformance >= 70)
	{
		ss << " She was nervous and made a few mistakes. She isn't that good at this.";
		wages -= 5;
	}
	else
	{
		ss << " She was nervous and constantly making mistakes. She really isn't very good at this job.";
		wages -= 15;
	}
	ss << "\n\n";



#pragma endregion
#pragma region	//	Enjoyment and Tiredness		//



	if (wages < 0) wages = 0;
#if 1
	//enjoyed the work or not
	if (roll_a <= 5)
	{
		ss << "\nSome of the patrons abused her during the shift.";
		enjoy -= 1;
	}
	else if (roll_a <= 25)
	{
		ss << "\nShe had a pleasant time working.";
		enjoy += 3;
	}
	else
	{
		ss << "\nOtherwise, the shift passed uneventfully.";
		enjoy += 1;
	}
#else
	if (roll_a <= 10)
	{
		enjoyC -= g_Dice % 3; enjoyF -= g_Dice % 3;
		CleanAmt = int(CleanAmt * 0.8);
		/* */if (roll_b < 30)	ss << "She spilled a bucket of something unpleasant all over herself.";
		else if (roll_b < 60)	ss << "She stepped in something unpleasant.";
		else /*            */	ss << "She did not like working on the farm today.";
	}
	else if (roll_a >= 90)
	{
		enjoyC += g_Dice % 3; enjoyF += g_Dice % 3;
		CleanAmt = int(CleanAmt * 1.1);
		/* */if (roll_b < 50)	ss << "She cleaned the building while humming a pleasant tune.";
//.........这里部分代码省略.........
开发者ID:adkins2010,项目名称:crazys-wm-mod,代码行数:101,代码来源:WorkBrewer.cpp

示例14: WorkSleazyBarmaid

// `J` Job Brothel - Sleazy Bar
bool cJobManager::WorkSleazyBarmaid(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
#pragma region //	Job setup				//
	int actiontype = ACTION_WORKCLUB;
	stringstream ss; string girlName = girl->m_Realname; ss << girlName;
	int roll_a = g_Dice.d100(), roll_b = g_Dice.d100(), roll_c = g_Dice.d100();
	if (g_Girls.DisobeyCheck(girl, actiontype, brothel))
	{
		ss << " refused to work during the " << (Day0Night1 ? "night" : "day") << " shift.";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
		return true;
	}
	ss << " worked as a bartender in the strip club.\n\n";

	g_Girls.UnequipCombat(girl);	// put that shit away, you'll scare off the customers!

	int HateLove = 0;
	HateLove = g_Girls.GetStat(girl, STAT_PCLOVE) - g_Girls.GetStat(girl, STAT_PCHATE);
	double wages = 15, tips = 0;
	int enjoy = 0, fame = 0;
	int imagetype = IMGTYPE_ECCHI;
	int msgtype = Day0Night1;

#pragma endregion
#pragma region //	Job Performance			//

	double jobperformance = JP_SleazyBarmaid(girl, false);



	if (jobperformance >= 245)
	{
		ss << " She must be the perfect bar tender customers go on and on about her and always come to see her when she works.\n\n";
		wages += 155;
	}
	else if (jobperformance >= 185)
	{
		ss << " She's unbelievable at this and is always getting praised by the customers for her work.\n\n";
		wages += 95;
	}
	else if (jobperformance >= 145)
	{
		ss << " She's good at this job and gets praised by the customers often.\n\n";
		wages += 55;
	}
	else if (jobperformance >= 100)
	{
		ss << " She made a few mistakes but overall she is okay at this.\n\n";
		wages += 15;
	}
	else if (jobperformance >= 70)
	{
		ss << " She was nervous and made a few mistakes. She isn't that good at this.\n\n";
		wages -= 5;
	}
	else
	{
		ss << " She was nervous and constantly making mistakes. She really isn't very good at this job.\n\n";
		wages -= 15;
	}


	//base tips, aprox 10-20% of base wages
	tips += (((10 + jobperformance / 22) * wages) / 100);
	
	//try and add randomness here
	if (g_Girls.GetStat(girl, STAT_BEAUTY) > 85 && g_Dice.percent(20))
	{
		ss << "Stunned by her beauty a customer left her a great tip.\n\n"; tips += 25;
	}

	if (g_Girls.GetStat(girl, STAT_BEAUTY) > 99 && g_Dice.percent(5))
	{
		ss << girlName << " looked absolutely stunning during her shift and was unable to hide it. Instead of her ass or tits, the patrons couldn't glue their eyes off her face, and spent a lot more than usual on tipping her.\n"; tips += 50;
	}

	if (g_Girls.GetStat(girl, STAT_CHARISMA) > 85 && g_Dice.percent(20))
	{
		ss << girlName << " surprised a couple of gentlemen discussing some complicated issue by her insightful comments when she was taking her order. They decided her words were worth a heavy tip.\n"; tips += 35;
	}

	if (g_Girls.HasTrait(girl, "Clumsy") && g_Dice.percent(15))
	{
		ss << "Her clumsy nature caused her to spill a drink on a customer resulting in them storming off without paying.\n"; wages -= 15;
	}

	if (g_Girls.HasTrait(girl, "Pessimist") && g_Dice.percent(5))
	{
		if (jobperformance < 125)
		{
			ss << "Her pessimistic mood depressed the customers making them tip less.\n"; tips -= 10;
		}
		else
		{
			ss << girlName << " was in a poor mood so the patrons gave her a bigger tip to try and cheer her up.\n"; tips += 10;
		}
	}

	if (g_Girls.HasTrait(girl, "Optimist") && g_Dice.percent(5))
//.........这里部分代码省略.........
开发者ID:adkins2010,项目名称:crazys-wm-mod,代码行数:101,代码来源:WorkSleazyBarmaid.cpp

示例15: WorkFilmBondage

// `J` Job Movie Studio - Actress
bool cJobManager::WorkFilmBondage(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
	int actiontype = ACTION_WORKMOVIE;
	// No film crew.. then go home	// `J` this will be taken care of in building flow, leaving it in for now
	if (g_Studios.GetNumGirlsOnJob(0, JOB_CAMERAMAGE, SHIFT_NIGHT) == 0 || g_Studios.GetNumGirlsOnJob(0, JOB_CRYSTALPURIFIER, SHIFT_NIGHT) == 0)
	{
		girl->m_Events.AddMessage("There was no crew to film the scene, so she took the day off", IMGTYPE_PROFILE, EVENT_NOWORK);
		return false;
	}
	
	stringstream ss;
	string girlName = girl->m_Realname;
	int wages = 50;
	int enjoy = 0;
	int jobperformance = 0;

	g_Girls.UnequipCombat(girl);	// not for actress (yet)

	ss << girlName << " worked as an actress filming BDSM scenes.\n\n";

	int roll = g_Dice.d100();
	if (roll <= 10 && g_Girls.DisobeyCheck(girl, ACTION_WORKMOVIE, brothel))
	{
		ss << "She refused to get beaten on film today.\n";
		girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
		return true;
	}
	else if (roll <= 10) { enjoy -= g_Dice % 3 + 1;	ss << "She did not enjoy getting tied up and hurt today.\n\n"; }
	else if (roll >= 90) { enjoy += g_Dice % 3 + 1;	ss << "She had a great time getting spanked and whipped.\n\n"; }
	else /*            */{ enjoy += g_Dice % 2;		ss << "She had just another day in the dungeon.\n\n"; }
	jobperformance = enjoy * 2;

	if (g_Girls.CheckVirginity(girl))
	{
		g_Girls.LoseVirginity(girl);	// `J` updated for trait/status
		jobperformance += 50;
		ss << "She is no longer a virgin.\n";
	}
	sCustomer* Cust = new sCustomer; g_Customers.GetCustomer(Cust, brothel); Cust->m_Amount = 1;
	if (Cust->m_IsWoman)	// FemDom
	{
		jobperformance += 20;
		/* */if (girl->has_trait("Lesbian"))	jobperformance += 20;
		else if (girl->has_trait("Straight"))	jobperformance -= 20;
	}
	else
	{
		if (!girl->calc_pregnancy(Cust, false, 0.75))
			g_MessageQue.AddToQue(girl->m_Realname + " has gotten pregnant", 0);
		/* */if (girl->has_trait("Lesbian"))	jobperformance -= 10;
		else if (girl->has_trait("Straight"))	jobperformance += 10;
	}

	// remaining modifiers are in the AddScene function --PP
	int finalqual = g_Studios.AddScene(girl, SKILL_BDSM, jobperformance);
	ss << "Her scene is valued at: " << finalqual << " gold.\n";

	girl->m_Events.AddMessage(ss.str(), IMGTYPE_BDSM, Day0Night1);

	// work out the pay between the house and the girl
	if (girl->is_slave() && !cfg.initial.slave_pay_outofpocket())
	{
		wages = 0;	// You own her so you don't have to pay her.
	}
	else
	{
		wages += finalqual * 2;
	}
	girl->m_Pay = wages;

	// Improve stats
	int xp = 10, skill = 3;

	if (g_Girls.HasTrait(girl, "Quick Learner"))		{ skill += 1; xp += 3; }
	else if (g_Girls.HasTrait(girl, "Slow Learner"))	{ skill -= 1; xp -= 3; }

	g_Girls.UpdateStat(girl, STAT_EXP, xp);
	g_Girls.UpdateSkill(girl, SKILL_PERFORMANCE, g_Dice%skill);
	g_Girls.UpdateSkill(girl, SKILL_BDSM, g_Dice%skill + 1);

	g_Girls.UpdateEnjoyment(girl, ACTION_SEX, enjoy);
	g_Girls.UpdateEnjoyment(girl, ACTION_WORKMOVIE, enjoy);
	//gain
	g_Girls.PossiblyGainNewTrait(girl, "Fake Orgasm Expert", 50, ACTION_SEX, "She has become quite the faker.", Day0Night1);
	g_Girls.PossiblyGainNewTrait(girl, "Masochist", 65, ACTION_SEX, girlName + " has turned into a Masochist from filming so many BDSM scenes.", Day0Night1);
	g_Girls.PossiblyGainNewTrait(girl, "Slut", 80, ACTION_SEX, girlName + " has turned into quite a slut.", Day0Night1);
	g_Girls.PossiblyGainNewTrait(girl, "Porn Star", 80, ACTION_WORKMOVIE, "She has performed in enough sex scenes that she has become a well known Porn Star.", Day0Night1);
	//lose

	delete Cust;
	return false;
}
开发者ID:diamondialis,项目名称:crazys-wm-mod,代码行数:93,代码来源:WorkFilmBondage.cpp


注:本文中的cRng::d100方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。