本文整理汇总了C++中cMessageQue类的典型用法代码示例。如果您正苦于以下问题:C++ cMessageQue类的具体用法?C++ cMessageQue怎么用?C++ cMessageQue使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了cMessageQue类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: game_over
static int game_over(lua_State *L)
{
cScriptManager sm;
g_MessageQue.AddToQue("GAME OVER", COLOR_RED);
g_WinManager.PopToWindow(&g_BrothelManagement);
g_WinManager.Pop();
g_InitWin = true;
sm.Release();
return 0;
}
开发者ID:Jenocke,项目名称:test,代码行数:11,代码来源:cLuaScript.cpp
示例2: queue_message
static int queue_message(lua_State *L)
{
CLog log;
const char *msg = luaL_checkstring(L, 1);
int color = luaL_checkint(L, 2);
log.ss() << "adding to message queue: '" << msg << "\n";
//log.ss() << "Before add: has = " << g_MessageQue.HasNext();
log.ssend();
g_MessageQue.AddToQue(msg, color);
//log.ss() << "After add: has = " << g_MessageQue.HasNext();
//log.ssend();
return 0;
}
开发者ID:Jenocke,项目名称:test,代码行数:16,代码来源:cLuaScript.cpp
示例3: FreeInterface
void FreeInterface()
{
g_MainMenu.Free();
g_GetString.Free();
g_BrothelManagement.Free();
g_ClinicManagement.Free();
g_StudioManagement.Free();
g_ArenaManagement.Free();
g_CentreManagement.Free();
g_HouseManagement.Free();
g_FarmManagement.Free();
g_GirlManagement.Free();
g_GangManagement.Free();
g_GirlDetails.Free();
g_ChangeJobs.Free();
// g_Turnsummary.Free();
g_Dungeon.Free();
g_SlaveMarket.Free();
g_TownScreen.Free();
// g_GalleryScreen.Free();
g_ArenaTry.Free();
g_CentreScreen.Free();
g_ClinicScreen.Free();
g_ClinicTry.Free();
g_CastingTry.Free();
g_ArenaScreen.Free();
g_AuctionScreen.Free();
g_HouseScreen.Free();
g_FarmScreen.Free();
g_MovieScreen.Free();
// g_Gallery.Free();
// g_Gallery2.Free();
g_BuildingSetupScreen.Free();
g_GetInput.Free();
g_MayorsOfficeScreen.Free();
g_BankScreen.Free();
g_ChoiceManager.Free();
g_MessageQue.Free();
g_LoadGame.Free();
g_Settings.Free();
g_PlayersHouse.Free();
g_TransferGirls.Free();
g_ItemManagement.Free();
g_PrisonScreen.Free();
g_MovieMaker.Free();
g_BuildingManagementScreen.Free();
}
开发者ID:mjsmagalhaes,项目名称:crazys-wm-mod,代码行数:47,代码来源:InterfaceGlobals.cpp
示例4:
/*
* ideally, we'd keep a queue of message strings and
* pop them out in order at the end
*/
cGirlTorture::~cGirlTorture() // deconstructor
{
int color = COLOR_BLUE;
if (m_Girl->m_RunAway != 0)
{
color = COLOR_RED;
}
// Display any outstanding messages
if (!m_Message.empty())
{
if (m_TorturedByPlayer)
{
g_MessageQue.AddToQue(m_Message, color);
m_Girl->m_Events.AddMessage(m_Message, IMGTYPE_TORTURE, EVENT_SUMMARY); // `J` added
}
else
{
if (m_Girl->health()>0) // Make sure girl is alive
m_Girl->m_Events.AddMessage(m_Message, IMGTYPE_TORTURE, EVENT_SUMMARY);
}
}
}
开发者ID:DagothRa,项目名称:crazys-wm-mod,代码行数:27,代码来源:cGirlTorture.cpp
示例5: add_trait
void cGirlTorture::add_trait(string trait, int pc)
{
if (m_Girl->has_trait(trait)) return;
/*
* WD: To balance a crash bug workaround for Job Torturer
* unable to call GirlGangFight()
* Halve chance of gaining trait
*/
if (!m_TorturedByPlayer) pc /= 2;
if (!g_Dice.percent(pc)) return;
string sMsg = m_Girl->m_Realname + gettext(" has gained trait \"") + trait + gettext("\" from being tortured.");
if (m_TorturedByPlayer)
{
g_MessageQue.AddToQue(sMsg, 2);
m_Girl->m_Events.AddMessage(sMsg, IMGTYPE_TORTURE, EVENT_WARNING);
}
else MakeEvent(sMsg);
// Add trait
m_Girl->add_trait(trait);
}
开发者ID:DagothRa,项目名称:crazys-wm-mod,代码行数:23,代码来源:cGirlTorture.cpp
示例6: IsGirlInjured
bool cGirlTorture::IsGirlInjured(unsigned int unModifier)
{ // modifier: 5 = 5% chance, 10 = 10% chance
// Sanity check, Can't get injured
if (m_Girl->has_trait("Incorporeal")) return false;
/*
* WD Injury was only possible if girl is pregnant or
* hasn't got the required traits.
*
* Now check for injury first
* Use usigned int so can't pass negative chance
*/
string sMsg;
string sGirlName = m_Girl->m_Realname;
int nMod = static_cast<int>(unModifier);
if (cfg.initial.torture_mod() < 0){ nMod += nMod; }
if (m_Girl->has_trait("Fragile")) nMod += nMod; // nMod *= 2;
if (m_Girl->has_trait("Tough")) nMod /= 2;
if (nMod < 1) nMod = 1; // `J` always at least a 1% chance
// Did the girl get injured
if (!g_Dice.percent(nMod)) return false;
/*
* INJURY PROCESSING
* Only injured girls continue past here
*/
// Post any outstanding Player messages
if (m_TorturedByPlayer && !m_Message.empty())
{
g_MessageQue.AddToQue(m_Message, 0);
m_Girl->m_Events.AddMessage(m_Message, IMGTYPE_TORTURE, EVENT_SUMMARY); // `J` added
m_Message = sGirlName + ": ";
}
// getting hurt badly could lead to scars
if (g_Dice.percent(nMod * 2) &&
!m_Girl->has_trait("Small Scars") &&
!m_Girl->has_trait("Cool Scars") &&
!m_Girl->has_trait("Horrific Scars"))
{
int chance = g_Dice % 6;
if (chance == 0)
{
m_Girl->add_trait("Horrific Scars", false);
if (m_TorturedByPlayer)
m_Message += gettext("She was badly injured, and now has to deal with Horrific Scars.\n");
else
MakeEvent(sGirlName + gettext(" was badly injured, and now has Horrific Scars.\n"));
}
else if (chance <= 2)
{
m_Girl->add_trait("Small Scars", false);
if (m_TorturedByPlayer)
m_Message += gettext("She was injured and now has a couple of Small Scars.\n");
else
MakeEvent(sGirlName + gettext(" was injured, and now has Small Scars.\n"));
}
else
{
m_Girl->add_trait("Cool Scars", false);
if (m_TorturedByPlayer)
m_Message += gettext("She was injured and scarred. As scars go however, at least they are pretty Cool Scars.\n");
else
MakeEvent(sGirlName + gettext(" was injured and scarred. She now has Cool Scars.\n"));
}
}
// in rare cases, she might even lose an eye
if (g_Dice.percent((nMod / 2)) &&
!m_Girl->has_trait("One Eye") &&
!m_Girl->has_trait("Eye Patch"))
{
int chance = g_Dice % 3;
if (chance == 0)
{
m_Girl->add_trait("One Eye", false);
if (m_TorturedByPlayer)
m_Message += gettext("Oh, no! She was badly injured, and now only has One Eye!\n");
else
MakeEvent(sGirlName + gettext(" was badly injured and lost an eye.\n"));
}
else
{
m_Girl->add_trait("Eye Patch", false);
if (m_TorturedByPlayer)
m_Message += gettext("She was injured and lost an eye, but at least she has a cool Eye Patch to wear.\n");
else
MakeEvent(sGirlName + gettext(" was injured and lost an eye, but at least she has a cool Eye Patch to wear.\n"));
}
}
// or lose tough or become fragile
if (m_Girl->has_trait("Tough"))
{
//.........这里部分代码省略.........
开发者ID:DagothRa,项目名称:crazys-wm-mod,代码行数:101,代码来源:cGirlTorture.cpp
示例7: WorkMilker
// `J` Job Farm - Laborers
bool cJobManager::WorkMilker(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 milker 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_Milker(girl, false);
double drinks = jobperformance / 2;
if (jobperformance >= 245)
{
ss << "Her milk bucket practically fills itself as she walks down the rows of cows.";
drinks *= 5; roll_a += 10; roll_b += 25;
}
else if (jobperformance >= 185)
{
ss << "Her hands moved like lightning as she gracefully milks the cows teats.";
drinks *= 4; roll_a += 5; roll_b += 18;
}
else if (jobperformance >= 145)
{
ss << "She knows exactly when the cows are ready to be milked and how to best milk them.";
drinks *= 3; roll_a += 2; roll_b += 10;
}
else if (jobperformance >= 100)
{
ss << "She can milk the cows without spilling much.";
drinks *= 2;
}
else if (jobperformance >= 70)
{
ss << "She isn't very good at aiming the teats into the bucket.";
roll_a -= 2; roll_b -= 5;
}
else
{
ss << "She can't seem to get the hang of this.";
wages -= 10; drinks *= 0.8; roll_a -= 5; roll_b -= 10;
}
ss << "\n\n";
#pragma endregion
#pragma region // Enjoyment and Tiredness //
// Complications
if (roll_a <= 10)
{
enjoy -= g_Dice % 3 + 1;
ss << "The animals were uncooperative and some didn't even let her get near them.\n";
drinks *= 0.8;
if (g_Dice.percent(20))
{
enjoy--;
ss << "Several animals kicked over the milking buckets and soaked " << girlName << ".\n";
girl->happiness(-(1 + g_Dice % 5));
drinks -= (5 + g_Dice % 6);
}
if (g_Dice.percent(20))
{
enjoy--;
ss << "One of the animals urinated on " << girlName << " and contaminated the milk she had collected.\n";
girl->happiness(-(1 + g_Dice % 3));
drinks -= (5 + g_Dice % 6);
}
if (g_Dice.percent(20))
{
enjoy--;
int healthmod = g_Dice % 10 + 1;
girl->health(-healthmod);
girl->happiness(-(healthmod + g_Dice % healthmod));
ss << "One of the animals kicked " << girlName << " and ";
if (girl->health() < 1)
{
ss << "killed her.\n";
g_MessageQue.AddToQue(girlName + " was killed when an animal she was milking kicked her in the head.", COLOR_RED);
return false; // not refusing, she is dead
}
else ss << (healthmod > 5 ? "" : "nearly ") << "broke her arm.\n";
drinks -= (5 + g_Dice % 6);
}
}
//.........这里部分代码省略.........
开发者ID:Jenocke,项目名称:test,代码行数:101,代码来源:WorkMilker.cpp
示例8: WorkFilmBeast
// `J` Job Movie Studio - Actress
bool cJobManager::WorkFilmBeast(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;
}
cConfig cfg;
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 scenes with beasts.\n\n";
int roll = g_Dice.d100();
if (roll <= 10 && g_Girls.DisobeyCheck(girl, ACTION_WORKMOVIE, brothel))
{
ss << "She refused to fuck any beasts 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 enjoy letting the creature fuck her.\n\n"; }
else if (roll >= 90) { enjoy += g_Dice % 3 + 1; ss << "She loved the feel of the creature on top of her.\n\n"; }
else /* */{ enjoy += g_Dice % 2; ss << "She didn't do much else today.\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";
}
// remaining modifiers are in the AddScene function --PP
int finalqual = g_Studios.AddScene(girl, SKILL_BEASTIALITY, jobperformance);
ss << "Her scene is valued at: " << finalqual << " gold.\n";
// mod: added check for number of beasts owned; otherwise, fake beasts could somehow inseminate the girl
if (g_Brothels.GetNumBeasts() > 0)
{
if (!girl->calc_insemination(g_Brothels.GetPlayer(), false, 1.0))
g_MessageQue.AddToQue(girl->m_Realname + " has gotten inseminated", 0);
}
girl->m_Events.AddMessage(ss.str(), IMGTYPE_BEAST, 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_BEASTIALITY, g_Dice%skill + 1);
g_Girls.UpdateEnjoyment(girl, ACTION_SEX, enjoy);
g_Girls.UpdateEnjoyment(girl, ACTION_WORKMOVIE, enjoy);
g_Girls.PossiblyGainNewTrait(girl, "Fake Orgasm Expert", 50, ACTION_SEX, "She has become quite the faker.", 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);
return false;
}
开发者ID:taukita,项目名称:crazys-wm-mod,代码行数:81,代码来源:WorkFilmBeast.cpp
示例9: WorkFightArenaGirls
// `J` Job Arena - Fighting
bool cJobManager::WorkFightArenaGirls(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
int actiontype = ACTION_COMBAT;
stringstream ss; string girlName = girl->m_Realname; ss << girlName;
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 << " was assigned to fight other girls in the arena.\n\n";
int wages = 0, fight_outcome = 0, enjoyment = 0, fame = 0, imagetype = IMGTYPE_COMBAT;
double jobperformance = JP_FightArenaGirls(girl, false);
g_Girls.EquipCombat(girl); // ready armor and weapons!
sGirl* tempgirl = g_Girls.CreateRandomGirl(18, false, false, false, false, false, true);
if (tempgirl) fight_outcome = g_Girls.girl_fights_girl(girl, tempgirl);
else fight_outcome = 7; // `J` reworked incase there are no Non-Human Random Girls
if (fight_outcome == 7)
{
g_LogFile.write("Error: You have no Arena Girls for your girls to fight\n");
g_LogFile.write("Error: You need an Arena Girl to allow WorkFightArenaGirls randomness");
ss << "There were no Arena Girls for her to fight.\n\n(Error: You need an Arena Girl to allow WorkFightArenaGirls randomness)";
imagetype = IMGTYPE_PROFILE;
}
else if (fight_outcome == 1) // she won
{
enjoyment = g_Dice % 3 + 1;
fame = g_Dice % 3 + 1;
sGirl* ugirl = 0;
if (g_Dice.percent(10)) // chance of getting unique girl
{
ugirl = g_Girls.GetRandomGirl(false, false, true);
}
if (ugirl)
{
stringstream msg; // goes to the girl and the g_MessageQue
stringstream Umsg; // goes to the new girl
stringstream Tmsg; // temp msg
ugirl->m_Stats[STAT_HEALTH] = g_Dice % 50 + 1;
ugirl->m_Stats[STAT_HAPPINESS] = g_Dice % 80 + 1;
ugirl->m_Stats[STAT_TIREDNESS] = g_Dice % 50 + 50;
ugirl->m_States |= (1 << STATUS_ARENA);
msg << girlName << " won her fight against " << ugirl->m_Realname << ".\n\n";
Umsg << ugirl->m_Realname << " lost her fight against your girl " << girlName << ".\n\n";
Tmsg << ugirl->m_Realname;
if (g_Dice.percent(50))
{
ugirl->m_States |= (1 << STATUS_SLAVE);
Tmsg << "'s owner could not afford to pay you your winnings so he gave her to you instead.\n\n";
}
else
{
Tmsg << " put up a good fight so you let her live as long as she came work for you.\n\n";
wages = 100 + g_Dice % (girl->fame() + girl->charisma());
}
msg << Tmsg.str();
Umsg << Tmsg.str();
ss << msg.str();
g_MessageQue.AddToQue(msg.str(), 0);
ugirl->m_Events.AddMessage(Umsg.str(), IMGTYPE_PROFILE, EVENT_DUNGEON);
g_Brothels.GetDungeon()->AddGirl(ugirl, DUNGEON_NEWARENA);
}
else
{
ss << girlName << " won her fight.";
wages = 100 + g_Dice % (girl->fame() + girl->charisma());
}
}
else if (fight_outcome == 2) // she lost
{
enjoyment = -(g_Dice % 3 + 1);
fame = -(g_Dice % 3 + 1);
ss << "She lost the fight.";
int cost = 150;
brothel->m_Finance.arena_costs(cost);
ss << " You had to pay " << cost << " gold cause your girl lost.";
/*that should work but now need to make if you lose the girl if you dont have the gold zzzzz FIXME*/
}
else if (fight_outcome == 0) // it was a draw
{
enjoyment = g_Dice % 3 - 2;
fame = g_Dice % 3 - 2;
ss << "The fight ended in a draw.";
}
if (girl->is_pregnant())
{
if (g_Girls.GetStat(girl, STAT_STRENGTH) >= 60)
{
ss << "\n\nAll that fighting proved to be quite exhausting for a pregnant girl, even for one as strong as " << girlName << " .\n";
}
else
{
//.........这里部分代码省略.........
开发者ID:diamondialis,项目名称:crazys-wm-mod,代码行数:101,代码来源:WorkFightArenaGirls.cpp
示例10: WorkFeedPoor
// `J` Job Centre - General
bool cJobManager::WorkFeedPoor(sGirl* girl, sBrothel* brothel, bool Day0Night1, string& summary)
{
#pragma region // Job setup //
int actiontype = ACTION_WORKCENTRE;
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, ACTION_WORKCENTRE, 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 feeding the poor.";
g_Building = BUILDING_CENTRE;
g_Girls.UnequipCombat(girl); // put that shit away, you'll scare off the customers!
bool blow = false, sex = false;
double wages = 20, tips = 0;
int enjoy = 0, feed = 0, fame = 0;
int imagetype = IMGTYPE_PROFILE;
int msgtype = Day0Night1;
#pragma endregion
#pragma region // Job Performance //
double jobperformance = JP_FeedPoor(girl, false);
//Adding cust here for use in scripts...
sCustomer* Cust = new sCustomer;
GetMiscCustomer(brothel, Cust);
int dispo; // `J` merged slave/free messages and moved actual dispo change to after
if (jobperformance >= 245)
{
ss << " She must be perfect at this.\n\n";
dispo = 12;
if (roll_b <= 20)
{
ss << "Today " << girlName << " was managing the kitchen giving orders to other cooks and checking the quality of their work.\n";
}
else if (roll_b <= 40)
{
ss << girlName << " was helping in the kitchen. Her task was to stir-fry vegetables. One word: Perfection. Food that she prepared was great!\n";
}
else if (roll_b <= 60)
{
ss << "Being done with the main dish earlier, " << girlName << " decided to bake cookies for desert!\n";
}
else if (roll_b <= 80)
{
ss << "Excellent dish! Some world class chefs should learn from " << girlName << "!\n";
}
else
{
ss << girlName << " knife skill is impressive. She's cutting precisely and really fast, almost like a machine.\n";
}
}
else if (jobperformance >= 185)
{
ss << " She's unbelievable at this and is always getting praised by people for her work.\n\n";
dispo = 10;
if (roll_b <= 20)
{
ss << girlName << " is in charge of the cooking for several weeks now. You could swear that the population of rodents and small animals in the area went down.\n";
}
else if (roll_b <= 40)
{
ss << "While preparing for today's cooking, " << girlName << " noticed that one of the crucial ingredients is missing. She manage to change the menu and fully use available ingredients.\n";
}
else if (roll_b <= 60)
{
ss << "She speedily served all in line at the food counter. All the portions handed out were equal.\n";
}
else if (roll_b <= 80)
{
ss << "Preparing something new she mixed up the proportions from the recipe. The outcome tasted great!\n";
}
else
{
ss << girlName << " was helping in the kitchen. Her task was to prepare the souse for today's meatballs. The texture and flavor was top notch.\n";
}
}
else if (jobperformance >= 145)
{
ss << " She's good at this job and gets praised by people often.\n\n";
dispo = 8;
if (roll_b <= 20)
{
ss << "While cooking she used everything that was in the kitchen. Nothing was wasted.\n";
}
else if (roll_b <= 40)
{
ss << "While cooking she accidentally sneezed into the pot. Luckily nobody saw that.\n";
}
else if (roll_b <= 60)
//.........这里部分代码省略.........
开发者ID:Jenocke,项目名称:test,代码行数:101,代码来源:WorkFeedPoor.cpp
示例11: UpdateCentre
// ----- Update & end of turn
void cCentreManager::UpdateCentre() // Start_Building_Process_A
{
cTariff tariff;
stringstream ss;
string girlName;
sBrothel* current = (sBrothel*)m_Parent;
u_int restjob = JOB_CENTREREST;
u_int matronjob = JOB_CENTREMANAGER;
u_int firstjob = JOB_CENTREREST;
u_int lastjob = JOB_THERAPY;
current->m_Finance.zero();
current->m_AntiPregUsed = 0;
m_Rehab_Patient_Time = 0;
sGirl* cgirl = current->m_Girls;
while (cgirl)
{
current->m_Filthiness++;
if (cgirl->health() <= 0) // Remove any dead bodies from last week
{
current->m_Filthiness++; // `J` Death is messy
sGirl* DeadGirl = 0;
girlName = cgirl->m_Realname;
DeadGirl = cgirl;
// If there are more girls to process
cgirl = (cgirl->m_Next) ? cgirl->m_Next : 0;
// increase all the girls fear and hate of the player for letting her die (weather his fault or not)
UpdateAllGirlsStat(current, STAT_PCFEAR, 2);
UpdateAllGirlsStat(current, STAT_PCHATE, 1);
ss.str(""); ss << girlName << " has died from her injuries, the other girls all fear and hate you a little more.";
DeadGirl->m_Events.AddMessage(ss.str(), IMGTYPE_DEATH, EVENT_DANGER);
g_MessageQue.AddToQue(ss.str(), COLOR_RED);
ss.str(""); ss << girlName << " has died from her injuries. Her body will be removed by the end of the week.";
DeadGirl->m_Events.AddMessage(ss.str(), IMGTYPE_DEATH, EVENT_SUMMARY);
RemoveGirl(0, DeadGirl); DeadGirl = 0; // cleanup
}
else
{
cgirl->m_Events.Clear(); // Clear the girls' events from the last turn
cgirl->where_is_she = 0;
cgirl->m_InStudio = false;
cgirl->m_InArena = false;
cgirl->m_InCentre = true;
cgirl->m_InClinic = false;
cgirl->m_InFarm = false;
cgirl->m_InHouse = false;
cgirl->m_Pay = cgirl->m_Tips = 0;
// `J` Check for out of building jobs and set yesterday jobs for everyone first
if (cgirl->m_DayJob < firstjob || cgirl->m_DayJob > lastjob) cgirl->m_DayJob = restjob;
if (cgirl->m_NightJob < firstjob || cgirl->m_NightJob > lastjob) cgirl->m_NightJob = restjob;
if (cgirl->m_PrevDayJob != 255 && (cgirl->m_PrevDayJob < firstjob || cgirl->m_PrevDayJob > lastjob)) cgirl->m_PrevDayJob = 255;
if (cgirl->m_PrevNightJob != 255 && (cgirl->m_PrevNightJob < firstjob || cgirl->m_PrevNightJob > lastjob)) cgirl->m_PrevNightJob = 255;
cgirl->m_YesterDayJob = cgirl->m_DayJob; // `J` set what she did yesterday
cgirl->m_YesterNightJob = cgirl->m_NightJob; // `J` set what she did yesternight
cgirl->m_Refused_To_Work_Day = cgirl->m_Refused_To_Work_Night = false;
string summary = "";
g_Girls.AddTiredness(cgirl); // `J` moved all girls add tiredness to one place
do_food_and_digs(current, cgirl); // Brothel only update for girls accommodation level
g_Girls.updateGirlAge(cgirl, true); // update birthday counter and age the girl
g_Girls.HandleChildren(cgirl, summary); // handle pregnancy and children growing up
g_Girls.updateSTD(cgirl); // health loss to STD's NOTE: Girl can die
g_Girls.updateHappyTraits(cgirl); // Update happiness due to Traits NOTE: Girl can die
updateGirlTurnBrothelStats(cgirl); // Update daily stats Now only runs once per day
g_Girls.updateGirlTurnStats(cgirl); // Stat Code common to Dugeon and Brothel
if (cgirl->m_JustGaveBirth) // if she gave birth, let her rest this week
{
if (cgirl->m_DayJob != restjob) cgirl->m_PrevDayJob = cgirl->m_DayJob;
if (cgirl->m_NightJob != restjob) cgirl->m_PrevNightJob = cgirl->m_NightJob;
cgirl->m_DayJob = cgirl->m_NightJob = restjob;
}
cgirl = cgirl->m_Next;
}
}
UpdateGirls(current, 0); // Run the Day Shift
UpdateGirls(current, 1); // Run the Nighty Shift
if (current->m_Filthiness < 0) current->m_Filthiness = 0;
if (current->m_SecurityLevel < 0) current->m_SecurityLevel = 0;
g_Gold.brothel_accounts(current->m_Finance, current->m_id);
cgirl = current->m_Girls;
while (cgirl)
{
g_Girls.updateTemp(cgirl); // update temp stuff
g_Girls.EndDayGirls(current, cgirl);
cgirl = cgirl->m_Next;
}
//.........这里部分代码省略.........
开发者ID:DagothRa,项目名称:crazys-wm-mod,代码行数:101,代码来源:cCentre.cpp
示例12: 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
示例13: 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
示例14: check_events
void cScreenBrothelManagement::check_events()
{
if (g_InterfaceEvents.GetNumEvents() != 0)
{
if (g_InterfaceEvents.CheckEvent(EVENT_BUTTONCLICKED, id_girls))
{
g_InitWin = true;
g_WinManager.push("Girl Management");
return;
}
else if (g_InterfaceEvents.CheckEvent(EVENT_BUTTONCLICKED, id_staff))
{
g_InitWin = true;
g_WinManager.push("Gangs");
return;
}
else if (g_InterfaceEvents.CheckEvent(EVENT_BUTTONCLICKED, id_setup))
{
g_InitWin = true;
g_WinManager.push("Building Setup");
return;
}
else if (g_InterfaceEvents.CheckEvent(EVENT_BUTTONCLICKED, id_dungeon))
{
g_InitWin = true;
g_WinManager.push("Dungeon");
return;
}
else if (g_InterfaceEvents.CheckEvent(EVENT_BUTTONCLICKED, id_town))
{
g_InitWin = true;
g_WinManager.push("Town");
return;
}
else if (g_InterfaceEvents.CheckEvent(EVENT_BUTTONCLICKED, id_save))
{
SaveGame(g_CTRLDown);
g_MessageQue.AddToQue("Game Saved", COLOR_GREEN);
return;
}
else if (g_InterfaceEvents.CheckEvent(EVENT_BUTTONCLICKED, id_week))
{
g_InitWin = true;
if (!g_CTRLDown) { g_CTRLDown = false; AutoSaveGame(); }
NextWeek();
g_WinManager.push("TurnSummary");
return;
}
else if (g_InterfaceEvents.CheckEvent(EVENT_BUTTONCLICKED, id_turn))
{
g_InitWin = true;
g_CurrentScreen = SCREEN_TURNSUMMARY;
g_WinManager.push("TurnSummary");
return;
}
else if (g_InterfaceEvents.CheckEvent(EVENT_BUTTONCLICKED, id_quit))
{
g_InitWin = true;
g_GetInput.ModeConfirmExit();
g_WinManager.push("GetInput");
return;
}
else if (g_InterfaceEvents.CheckEvent(EVENT_BUTTONCLICKED, id_next))
{
g_CurrBrothel++;
if (g_CurrBrothel >= g_Brothels.GetNumBrothels())
g_CurrBrothel = 0;
g_InitWin = true;
return;
}
else if (g_InterfaceEvents.CheckEvent(EVENT_BUTTONCLICKED, id_prev))
{
g_CurrBrothel--;
if (g_CurrBrothel < 0)
g_CurrBrothel = g_Brothels.GetNumBrothels() - 1;
g_InitWin = true;
return;
}
}
}
开发者ID:Jenocke,项目名称:test,代码行数:80,代码来源:cScreenBrothelManagement.cpp
示例15: 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
示例16: Update
void cRivalManager::Update(int& NumPlayerBussiness)
{
cRival* curr = m_Rivals;
cConfig cfg;
if (g_Year >= 1209 && g_Month > 3) m_PlayerSafe = false;
while (curr)
{
// check if rival is killed
if (curr->m_Gold <= 0 && curr->m_NumBrothels <= 0 && curr->m_NumGangs <= 0 &&
curr->m_NumGirls <= 0 && curr->m_NumGamblingHalls <= 0 && curr->m_NumBars <= 0 &&
curr->m_NumInventory <= 0)
{
cRival* tmp = curr->m_Next;
RemoveRival(curr);
curr = tmp;
SetGameFlag(FLAG_RIVALLOSE);
continue;
}
int income = 0; int upkeep = 0; int profit = 0;
int totalincome = 0; int totalupkeep = 0;
int startinggold = curr->m_Gold;
// `J` added - rival power
// `J` reworked to reduce the rival's power
curr->m_Power =
max(0, curr->m_NumBrothels * 5) +
max(0, curr->m_NumGamblingHalls * 2) +
max(0, curr->m_NumBars * 1);
// check if a rival is in danger
if (curr->m_Gold <= 0 || curr->m_NumBrothels <= 0 || curr->m_NumGirls <= 0 || curr->m_NumGamblingHalls <= 0 || curr->m_NumBars <= 0)
{
// The AI is in danger so will stop extra spending
curr->m_BribeRate = 0;
curr->m_Influence = 0;
// first try to sell any items
if (curr->m_NumInventory > 0)
{
for (int i = 0; i < MAXNUM_RIVAL_INVENTORY && curr->m_Gold + income + upkeep < 1000; i++)
{
sInventoryItem* temp = curr->m_Inventory[i];
if (temp)
{
income += (temp->m_Cost / 2);
RemoveRivalInvByNumber(curr, i);
}
}
}
// try to buy at least one of each to make up for losses
if (curr->m_NumBrothels <= 0 && curr->m_Gold + income + upkeep - 20000 >= 0)
{
upkeep -= 20000;
curr->m_NumBrothels++;
}
if (curr->m_NumGirls <= 0 && curr->m_Gold + income + upkeep - 550 >= 0)
{
upkeep -= 550;
curr->m_NumGirls++;
}
if (curr->m_NumGamb
|
请发表评论