本文整理汇总了C++中cClinicManager::GetNumGirlsOnJob方法的典型用法代码示例。如果您正苦于以下问题:C++ cClinicManager::GetNumGirlsOnJob方法的具体用法?C++ cClinicManager::GetNumGirlsOnJob怎么用?C++ cClinicManager::GetNumGirlsOnJob使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cClinicManager
的用法示例。
在下文中一共展示了cClinicManager::GetNumGirlsOnJob方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: WorkPhysicalSurgery
// `J` Job Clinic - Surgery
bool cJobManager::WorkPhysicalSurgery(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
stringstream ss; string girlName = girl->m_Realname; ss << girlName;
// if she was not in surgery last turn, reset working days to 0 before proceding
if (girl->m_YesterDayJob != JOB_PHYSICALSURGERY) { girl->m_WorkingDay = girl->m_PrevWorkingDay = 0; }
bool hasDoctor = (g_Clinic.GetNumGirlsOnJob(brothel->m_id, JOB_DOCTOR, true) > 0 || g_Clinic.GetNumGirlsOnJob(brothel->m_id, JOB_DOCTOR, false) > 0);
if (!hasDoctor)
{
ss << " does nothing. You don't have any Doctors working. (require 1) ";
girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
return false; // not refusing
}
ss << " is in the Clinic to get general surgery.\n\n";
int msgtype = Day0Night1;
g_Girls.UnequipCombat(girl); // not for patient
if (Day0Night1 == SHIFT_DAY) // the Doctor works on her durring the day
{
girl->m_WorkingDay++;
}
else // and if there are nurses on duty, they take care of her at night
{
if (g_Clinic.GetNumGirlsOnJob(0, JOB_NURSE, 1) > 0)
{
girl->m_WorkingDay++;
g_Girls.UpdateStat(girl, STAT_HAPPINESS, 10);
g_Girls.UpdateStat(girl, STAT_MANA, 10);
}
}
int numnurse = g_Clinic.GetNumGirlsOnJob(0, JOB_NURSE, Day0Night1);
if (girl->m_WorkingDay >= 5)
{
ss << "The surgery is a success.\n";
msgtype = EVENT_GOODNEWS;
if (!g_Girls.HasTrait(girl, "Sexy Air"))
{
girl->add_trait("Sexy Air", false);
ss << "She gains Sexy Air trait.\n";
}
else if (!g_Girls.HasTrait(girl, "Cute"))
{
girl->add_trait("Cute", false);
ss << "She gains Cute trait.\n";
}
if (numnurse > 1)
{
ss << "The Nurses kept her healthy and happy during her recovery.\n";
g_Girls.UpdateStat(girl, STAT_SPIRIT, 5);
g_Girls.UpdateStat(girl, STAT_MANA, 10);
g_Girls.UpdateStat(girl, STAT_BEAUTY, 15);
g_Girls.UpdateStat(girl, STAT_CHARISMA, 15);
}
else if (numnurse > 0)
{
ss << "The Nurse helped her during her recovery.\n";
g_Girls.UpdateStat(girl, STAT_HAPPINESS, -5);
g_Girls.UpdateStat(girl, STAT_HEALTH, -10);
g_Girls.UpdateStat(girl, STAT_MANA, -10);
g_Girls.UpdateStat(girl, STAT_BEAUTY, 12);
g_Girls.UpdateStat(girl, STAT_CHARISMA, 12);
}
else
{
ss << "She is sad and has lost some health during the operation.\n";
g_Girls.UpdateStat(girl, STAT_SPIRIT, -5);
g_Girls.UpdateStat(girl, STAT_HAPPINESS, -15);
g_Girls.UpdateStat(girl, STAT_HEALTH, -20);
g_Girls.UpdateStat(girl, STAT_MANA, -20);
g_Girls.UpdateStat(girl, STAT_BEAUTY, 8);
g_Girls.UpdateStat(girl, STAT_CHARISMA, 8);
}
if (g_Girls.HasTrait(girl, "Fragile")){ g_Girls.UpdateStat(girl, STAT_HEALTH, -5); }
else if (g_Girls.HasTrait(girl, "Tough")){ g_Girls.UpdateStat(girl, STAT_HEALTH, 5); }
if (g_Girls.HasTrait(girl, "Pessimist")){ g_Girls.UpdateStat(girl, STAT_HAPPINESS, -5); }
else if (g_Girls.HasTrait(girl, "Optimist")){ g_Girls.UpdateStat(girl, STAT_HAPPINESS, 5); }
girl->m_WorkingDay = girl->m_PrevWorkingDay = 0;
girl->m_DayJob = girl->m_NightJob = JOB_CLINICREST;
}
else
{
int wdays = (5 - girl->m_WorkingDay);
if (g_Clinic.GetNumGirlsOnJob(0, JOB_NURSE, 1) > 0)
{
if (wdays >= 3) { wdays = 3; }
else if (wdays > 1) { wdays = 2; }
else { wdays = 1; }
}
ss << "The operation is in progress (" << wdays << " day remaining).\n";
if (g_Clinic.GetNumGirlsOnJob(0, JOB_NURSE, 1) > 1) { ss << "The Nurses are taking care of her at night."; }
else if (g_Clinic.GetNumGirlsOnJob(0, JOB_NURSE, 1) > 0){ ss << "The Nurse is taking care of her at night."; }
else { ss << "Having a Nurse on duty will speed up her recovery."; }
}
//.........这里部分代码省略.........
示例2: WorkGetFertility
// `J` Job Clinic - Surgery
bool cJobManager::WorkGetFertility(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
#pragma region // Job setup //
stringstream ss; string girlName = girl->m_Realname; ss << girlName;
// if she was not in surgery last turn, reset working days to 0 before proceding
if (girl->m_YesterDayJob != JOB_FERTILITY) { girl->m_WorkingDay = girl->m_PrevWorkingDay = 0; }
girl->m_DayJob = girl->m_NightJob = JOB_FERTILITY; // it is a full time job
if (girl->is_pregnant() || g_Girls.HasTrait(girl, "Broodmother"))
{
if (g_Girls.HasTrait(girl, "Broodmother")) ss << " is already as Fertile as she can be so she was sent to the waiting room.";
else if (girl->is_pregnant()) ss << " is pregant.\nShe must either have her baby or get an abortion before She can get recieve any more fertility treatments.";
if (Day0Night1 == SHIFT_DAY) girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
girl->m_PrevDayJob = girl->m_PrevNightJob = girl->m_YesterDayJob = girl->m_YesterNightJob = girl->m_DayJob = girl->m_NightJob = JOB_CLINICREST;
girl->m_WorkingDay = girl->m_PrevWorkingDay = 0;
return false; // not refusing
}
bool hasDoctor = g_Clinic.GetNumGirlsOnJob(0, JOB_DOCTOR, Day0Night1) > 0;
int numnurse = g_Clinic.GetNumGirlsOnJob(0, JOB_NURSE, Day0Night1);
if (!hasDoctor)
{
ss << " does nothing. You don't have any Doctors working. (require 1) ";
girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
return false; // not refusing
}
ss << " is in the Clinic to get fertility treatment.\n\n";
g_Girls.UnequipCombat(girl); // not for patient
int msgtype = Day0Night1;
#pragma endregion
#pragma region // Count the Days //
if (Day0Night1 == SHIFT_DAY) // the Doctor works on her durring the day
{
girl->m_WorkingDay++;
}
else // and if there are nurses on duty, they take care of her at night
{
if (g_Clinic.GetNumGirlsOnJob(0, JOB_NURSE, 1) > 0)
{
girl->m_WorkingDay++;
g_Girls.UpdateStat(girl, STAT_HEALTH, 10);
g_Girls.UpdateStat(girl, STAT_HAPPINESS, 10);
g_Girls.UpdateStat(girl, STAT_MANA, 10);
}
}
#pragma endregion
#pragma region // In Progress //
if (girl->m_WorkingDay < 5 || Day0Night1 == SHIFT_DAY)
{
int wdays = (5 - girl->m_WorkingDay);
if (g_Clinic.GetNumGirlsOnJob(0, JOB_NURSE, 1) > 0)
{
if (wdays >= 3) { wdays = 3; }
else if (wdays > 1) { wdays = 2; }
else { wdays = 1; }
}
ss << "The operation is in progress (" << wdays << " day remaining).\n";
if (g_Clinic.GetNumGirlsOnJob(0, JOB_NURSE, 1) > 1) { ss << "The Nurses are taking care of her at night."; }
else if (g_Clinic.GetNumGirlsOnJob(0, JOB_NURSE, 1) > 0){ ss << "The Nurse is taking care of her at night."; }
else { ss << "Having a Nurse on duty will speed up her recovery."; }
}
#pragma endregion
#pragma region // Surgery Finished //
else
{
ss << "The surgery is a success.\n";
msgtype = EVENT_GOODNEWS;
girl->m_WorkingDay = girl->m_PrevWorkingDay = 0;
if (numnurse > 2)
{
ss << "The Nurses kept her healthy and happy during her recovery.\n";
g_Girls.UpdateStat(girl, STAT_HEALTH, g_Dice.bell(0, 20));
g_Girls.UpdateStat(girl, STAT_HAPPINESS, g_Dice.bell(0, 10));
g_Girls.UpdateStat(girl, STAT_SPIRIT, g_Dice.bell(0, 10));
g_Girls.UpdateStat(girl, STAT_MANA, g_Dice.bell(0, 20));
g_Girls.UpdateStat(girl, STAT_BEAUTY, g_Dice.bell(0, 2));
g_Girls.UpdateStat(girl, STAT_CHARISMA, g_Dice.bell(0, 2));
}
else if (numnurse > 0)
{
ss << "The Nurse" << (numnurse > 1 ? "s" : "") << " helped her during her recovery.\n";
g_Girls.UpdateStat(girl, STAT_HEALTH, g_Dice.bell(0, 10));
g_Girls.UpdateStat(girl, STAT_HAPPINESS, g_Dice.bell(0, 5));
g_Girls.UpdateStat(girl, STAT_SPIRIT, g_Dice.bell(0, 5));
g_Girls.UpdateStat(girl, STAT_MANA, g_Dice.bell(0, 10));
g_Girls.UpdateStat(girl, STAT_BEAUTY, g_Dice % 2);
g_Girls.UpdateStat(girl, STAT_CHARISMA, g_Dice % 2);
}
else
{
ss << "She is sad and has lost some health during the operation.\n";
g_Girls.UpdateStat(girl, STAT_HEALTH, g_Dice.bell(-20, 2));
//.........这里部分代码省略.........
示例3: WorkMechanic
//.........这里部分代码省略.........
ss << " Her clumsy nature caused her to drop parts everywhere.\n";
}
if (g_Girls.HasTrait(girl, "Pessimist") && g_Dice.percent(5))
{
if (jobperformance < 125)
{
wages -= 10;
ss << " Her pessimistic mood depressed the patients making them tip less.\n";
}
else
{
wages += 10;
ss << girlName << " was in a poor mood so the patients gave her a bigger tip to try and cheer her up.\n";
}
}
if (g_Girls.HasTrait(girl, "Optimist") && g_Dice.percent(5))
{
if (jobperformance < 125)
{
wages -= 10;
ss << girlName << " was in a cheerful mood but the patients thought she needed to work more on her services.\n";
}
else
{
wages += 10;
ss << " Her optimistic mood made patients cheer up increasing the amount they tip.\n";
}
}
#pragma endregion
#pragma region // Enjoyment and Tiredness //
//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;
}
#pragma endregion
#pragma region // Money //
#pragma endregion
#pragma region // Finish the shift //
girl->m_Events.AddMessage(ss.str(), imagetype, Day0Night1);
int roll_max = (g_Girls.GetStat(girl, STAT_INTELLIGENCE) + g_Girls.GetSkill(girl, SKILL_SERVICE));
roll_max /= 4;
wages += 10 + g_Dice%roll_max;
wages += 5 * g_Clinic.GetNumGirlsOnJob(0, JOB_GETREPAIRS, Day0Night1); // `J` pay her 5 for each patient you send to her
// Money
if (wages < 0) wages = 0; girl->m_Pay = (int)wages;
if (tips < 0) tips = 0; girl->m_Tips = (int)tips;
// Improve stats
int xp = 10, libido = 1, skill = 2;
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 (girl->fame() < 10 && jobperformance >= 70) { fame += 1; }
if (girl->fame() < 20 && jobperformance >= 100) { fame += 1; }
if (girl->fame() < 40 && jobperformance >= 145) { fame += 1; }
if (girl->fame() < 50 && jobperformance >= 185) { fame += 1; }
g_Girls.UpdateStat(girl, STAT_FAME, fame);
g_Girls.UpdateStat(girl, STAT_EXP, xp);
g_Girls.UpdateStat(girl, STAT_INTELLIGENCE, g_Dice%skill + 1);
g_Girls.UpdateSkill(girl, SKILL_MEDICINE, g_Dice%skill);
g_Girls.UpdateSkill(girl, SKILL_SERVICE, g_Dice%skill);
g_Girls.UpdateStatTemp(girl, STAT_LIBIDO, libido);
g_Girls.UpdateEnjoyment(girl, actiontype, enjoy);
//gain traits
g_Girls.PossiblyGainNewTrait(girl, "Charismatic", 60, actiontype, "Dealing with patients and talking with them about their problems has made " + girl->m_Realname + " more Charismatic.", Day0Night1);
g_Girls.PossiblyGainNewTrait(girl, "Strong", 60, actiontype, "Handling heavy parts and working with heavy tools has made " + girl->m_Realname + " much Stronger.", Day0Night1);
//lose traits
g_Girls.PossiblyLoseExistingTrait(girl, "Nervous", 20, actiontype, girl->m_Realname + " seems to finally be getting over her shyness. She's not always so Nervous anymore.", Day0Night1);
g_Girls.PossiblyLoseExistingTrait(girl, "Elegant", 40, actiontype, " Working with dirty, greasy equipment has damaged " + girl->m_Realname + "'s hair, skin and nails making her less Elegant.", Day0Night1);
#pragma endregion
return false;
}
示例4: WorkBreastReduction
// `J` Job Clinic - Surgery
bool cJobManager::WorkBreastReduction(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
#pragma region // Job setup //
stringstream ss; string girlName = girl->m_Realname; ss << girlName;
// if she was not in surgery last turn, reset working days to 0 before proceding
if (girl->m_YesterDayJob != JOB_BREASTREDUCTION) { girl->m_WorkingDay = girl->m_PrevWorkingDay = 0; }
girl->m_DayJob = girl->m_NightJob = JOB_BREASTREDUCTION; // it is a full time job
if (girl->has_trait( "Flat Chest"))
{
ss << " already has a Flat Chest so she was sent to the waiting room.";
if (Day0Night1 == SHIFT_DAY) girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
girl->m_PrevDayJob = girl->m_PrevNightJob = girl->m_YesterDayJob = girl->m_YesterNightJob = girl->m_DayJob = girl->m_NightJob = JOB_CLINICREST;
girl->m_WorkingDay = girl->m_PrevWorkingDay = 0;
return false; // not refusing
}
bool hasDoctor = g_Clinic.GetNumGirlsOnJob(0, JOB_DOCTOR, Day0Night1) > 0;
int numnurse = g_Clinic.GetNumGirlsOnJob(0, JOB_NURSE, Day0Night1);
if (!hasDoctor)
{
ss << " does nothing. You don't have any Doctors working. (require 1) ";
girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
return false; // not refusing
}
ss << " is in the Clinic to get her breasts reduced.\n\n";
int msgtype = Day0Night1;
g_Girls.UnequipCombat(girl); // not for patient
#pragma endregion
#pragma region // Count the Days //
if (Day0Night1 == SHIFT_DAY) // the Doctor works on her durring the day
{
girl->m_WorkingDay++;
}
else // and if there are nurses on duty, they take care of her at night
{
girl->m_WorkingDay = girl->m_PrevWorkingDay = 0;
ss << "The surgery is a success.\n";
msgtype = EVENT_GOODNEWS;
ss << g_Girls.AdjustTraitGroupBreastSize(girl, -1, false) << "\n\n";
if (numnurse > 2)
{
ss << "The Nurses kept her healthy and happy during her recovery.\n";
g_Girls.UpdateStat(girl, STAT_HEALTH, g_Dice.bell(0, 20));
g_Girls.UpdateStat(girl, STAT_HAPPINESS, g_Dice.bell(0, 10));
g_Girls.UpdateStat(girl, STAT_SPIRIT, g_Dice.bell(0, 10));
g_Girls.UpdateStat(girl, STAT_MANA, g_Dice.bell(0, 20));
g_Girls.UpdateStat(girl, STAT_BEAUTY, g_Dice.bell(0, 2));
g_Girls.UpdateStat(girl, STAT_CHARISMA, g_Dice.bell(0, 2));
}
else if (numnurse > 0)
{
ss << "The Nurse" << (numnurse > 1 ? "s" : "") << " helped her during her recovery.\n";
g_Girls.UpdateStat(girl, STAT_HEALTH, g_Dice.bell(0, 10));
g_Girls.UpdateStat(girl, STAT_HAPPINESS, g_Dice.bell(0, 5));
g_Girls.UpdateStat(girl, STAT_SPIRIT, g_Dice.bell(0, 5));
g_Girls.UpdateStat(girl, STAT_MANA, g_Dice.bell(0, 10));
g_Girls.UpdateStat(girl, STAT_BEAUTY, g_Dice % 2);
g_Girls.UpdateStat(girl, STAT_CHARISMA, g_Dice % 2);
}
else
{
ss << "She is sad and has lost some health during the operation.\n";
g_Girls.UpdateStat(girl, STAT_HEALTH, g_Dice.bell(-20, 2));
g_Girls.UpdateStat(girl, STAT_HAPPINESS, g_Dice.bell(-10, 1));
g_Girls.UpdateStat(girl, STAT_SPIRIT, g_Dice.bell(-5, 1));
g_Girls.UpdateStat(girl, STAT_MANA, g_Dice.bell(-20, 3));
g_Girls.UpdateStat(girl, STAT_BEAUTY, g_Dice.bell(-1, 1));
g_Girls.UpdateStat(girl, STAT_CHARISMA, g_Dice.bell(-1, 1));
}
if (girl->has_trait( "Flat Chest"))
{
ss << girlName << "'s breasts are as small as they can get so she was sent to the waiting room.";
girl->m_PrevDayJob = girl->m_PrevNightJob = girl->m_YesterDayJob = girl->m_YesterNightJob = girl->m_DayJob = girl->m_NightJob = JOB_CLINICREST;
}
}
#pragma endregion
#pragma region // Finish the shift //
girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, msgtype);
// Improve girl
int libido = 1;
if (girl->has_trait( "Lesbian")) libido += numnurse;
if (girl->has_trait( "Masochist")) libido += 1;
if (girl->has_trait( "Nymphomaniac")) libido += 2;
g_Girls.UpdateStatTemp(girl, STAT_LIBIDO, libido);
if (g_Dice % 10 == 0)
g_Girls.UpdateSkill(girl, SKILL_MEDICINE, 1); // `J` she watched what the doctors and nurses were doing
#pragma endregion
return false;
}
示例5: WorkRepairShop
// `J` Job Clinic - Surgery
bool cJobManager::WorkRepairShop(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
int actiontype = ACTION_GENERAL;
stringstream ss; string girlName = girl->m_Realname; ss << girlName;
g_Girls.UnequipCombat(girl); // not for patients
if (!g_Girls.HasTrait(girl, "Construct") && !g_Girls.HasTrait(girl, "Half-Construct"))
{
ss << girlName << " has no artificial parts so she was sent to the Healing center.";
if (Day0Night1 == SHIFT_DAY) girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_WARNING);
if (girl->m_DayJob == JOB_GETREPAIRS) girl->m_DayJob = JOB_GETHEALING;
if (girl->m_NightJob == JOB_GETREPAIRS) girl->m_NightJob = JOB_GETHEALING;
return false; // not refusing
}
int nummecs = g_Clinic.GetNumGirlsOnJob(0, JOB_MECHANIC, Day0Night1);
int numnurse = g_Clinic.GetNumGirlsOnJob(0, JOB_NURSE, Day0Night1);
// `J` base recovery copied freetime recovery
int health = 10 + (girl->constitution() / 10);
int tiredness = 10 + g_Dice % 21; // build up as positive then apply as negative
int happy = 10 + g_Dice % 11;
int mana = 5 + (girl->magic() / 5);
int libido = (g_Girls.HasTrait(girl, "Nymphomaniac") ? 15 : 5);
if (nummecs + numnurse < 1)
{
ss << "You don't have any Mechanics or Nurses on duty so " << girlName << " just rests in a hospital bed.";
}
else
{
ss << girlName << " does nothing while ";
}
if (nummecs > 0)
{
ss << "the Mechanic" << (nummecs > 1 ? "s" : "");
if (g_Girls.HasTrait(girl, "Half-Construct") && girl->m_DayJob == JOB_GETREPAIRS && girl->m_NightJob == JOB_GETREPAIRS)
{ // if fixed by Mechanic for both shifts.
health += 20; // Total 40 healing per day, heals less because Mechanic does not fix living tissue.
}
else
{
health += 30;
}
}
if (nummecs > 0 && numnurse > 0) { ss << " and"; }
if (numnurse > 0)
{
ss << " the Nurse" << (numnurse > 1 ? "s" : "");
health += 10;
tiredness += 10;
happy += 10;
mana += (girl->magic() / 5);
}
if (nummecs + numnurse >= 4 && g_Dice.percent(50)) // lots of people making sure she is in good working order
{
g_Girls.UpdateStat(girl, STAT_CONSTITUTION, 1);
}
ss << (((nummecs > 1 && numnurse < 1) || numnurse > 1) ? " take" : " takes") << " care of her.";
// Improve girl
if (g_Girls.HasTrait(girl, "Lesbian")) libido += numnurse;
if (g_Girls.HasTrait(girl, "Masochist")) libido += 1;
if (g_Girls.HasTrait(girl, "Nymphomaniac")) libido += 2;
g_Girls.UpdateStat(girl, STAT_HEALTH, health, false);
g_Girls.UpdateStat(girl, STAT_TIREDNESS, -tiredness, false);
g_Girls.UpdateStat(girl, STAT_HAPPINESS, happy);
g_Girls.UpdateStat(girl, STAT_MANA, mana);
g_Girls.UpdateStatTemp(girl, STAT_LIBIDO, libido);
if (g_Dice % 10 == 0) g_Girls.UpdateSkill(girl, SKILL_MEDICINE, 1); // `J` she watched what the doctors and nurses were doing
g_Girls.UpdateStat(girl, STAT_EXP, 1); // Just because!
// send her to the waiting room when she is healthy
if (girl->health() > 90 && girl->tiredness() < 10)
{
if (nummecs + numnurse < 1) ss << "\n\nShe wanders out of the Clinic when she is feeling better.";
else ss << "\n\nShe has been released from the Clinic.";
if (girl->m_DayJob == JOB_GETHEALING) girl->m_DayJob = JOB_CLINICREST;
if (girl->m_NightJob == JOB_GETHEALING) girl->m_NightJob = JOB_CLINICREST;
if (girl->m_DayJob == JOB_GETREPAIRS) girl->m_DayJob = JOB_CLINICREST;
if (girl->m_NightJob == JOB_GETREPAIRS) girl->m_NightJob = JOB_CLINICREST;
}
girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, Day0Night1);
return false;
}
示例6: WorkJanitor
// `J` Job Clinic - Staff - job_is_cleaning
bool cJobManager::WorkJanitor(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
int actiontype = 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))
{
ss << " refused to clean the Clinic.";
girl->m_Events.AddMessage(ss.str(), IMGTYPE_PROFILE, EVENT_NOWORK);
return true;
}
ss << " worked cleaning the Clinic.\n\n";
g_Girls.UnequipCombat(girl); // put that shit away
double CleanAmt = JP_Janitor(girl, false);
int enjoy = 0;
int wages = 0;
int tips = 0;
int imagetype = IMGTYPE_MAID;
int msgtype = Day0Night1;
bool playtime = false;
if (roll_a <= 10)
{
enjoy -= g_Dice % 3 + 1;
CleanAmt *= 0.8;
if (roll_b < 50) ss << "She spilled a bucket of something unpleasant all over herself.";
else ss << "She did not like cleaning the Clinic today.";
}
else if (roll_a >= 90)
{
enjoy += g_Dice % 3 + 1;
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
{
enjoy += 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 *= 0.9;
wages = 0;
}
else
{
wages = min(30, int(30 + (CleanAmt / 10))); // `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 (girl->is_pregnant() && girl->health() < 90)
{
ss << "got a quick checkup and made sure her unborn baby was doing OK.";
g_Girls.UpdateStat(girl, STAT_HEALTH, 10);
g_Girls.UpdateStat(girl, STAT_HAPPINESS, (g_Dice % 4) + 2);
}
else if (girl->health() < 80)
{
ss << "got a quick checkup.";
g_Girls.UpdateStat(girl, STAT_HEALTH, 10);
}
else if (girl->is_pregnant() || g_Dice.percent(40))
{
ss << "hung out in the maternity ward watching the babies.";
g_Girls.UpdateStat(girl, STAT_HAPPINESS, (g_Dice % 6) - 2);
}
else if (girl->tiredness() > 50 && brothel->free_rooms() > 10)
{
ss << "found an empty room and took a nap.";
g_Girls.UpdateStat(girl, STAT_TIREDNESS, -((g_Dice % 10) + 5));
}
else
{
int d = g_Clinic.GetNumGirlsOnJob(brothel->m_id, JOB_DOCTOR, Day0Night1);
int n = g_Clinic.GetNumGirlsOnJob(brothel->m_id, JOB_NURSE, Day0Night1);
ss << "watched the ";
if (d + n < 1)
{
ss << "people wander about the Clinic.";
g_Girls.UpdateStat(girl, STAT_HAPPINESS, (g_Dice % 3) - 1);
}
else
{
if (d > 0) ss << "doctor" << (d > 1 ? "s" : "");
if (d > 0 && n > 0) ss << " and ";
if (n > 0) ss << "nurse" << (n > 1 ? "s" : "");
ss << " do their job" << (d + n > 1 ? "s" : "");
g_Girls.UpdateSkill(girl, SKILL_MEDICINE, (g_Dice % 2));
//.........这里部分代码省略.........