本文整理汇总了C++中cGold::ival方法的典型用法代码示例。如果您正苦于以下问题:C++ cGold::ival方法的具体用法?C++ cGold::ival怎么用?C++ cGold::ival使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类cGold
的用法示例。
在下文中一共展示了cGold::ival方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: rivals_plunder_pc_gold
string cRivalManager::rivals_plunder_pc_gold(cRival* rival)
{
if (g_Gold.ival() <= 0) return ""; // no gold to sieze? nothing to do.
long pc_gold = g_Gold.ival(); // work out how much they take. make a note of how much we have
long gold = g_Dice.random(min((long)2000, pc_gold));
if (gold < 45) gold = 45; // make sure there's at least 45 gold taken
if (pc_gold < gold) gold = pc_gold; // unless the pc has less than that, in which case take the lot
g_Gold.rival_raids(gold); // deduct the losses against rival raid losses
rival->m_Gold += gold; // add the aount to rival coffers
stringstream ss;
ss << gettext("\nThey get away with ") << gold << gettext(" gold."); // format a message and store it in the string that was passed to us
return ss.str();
}
示例2: check_farm
void cScreenTown::check_farm(int FarmNum)
{ // player clicked on one of the brothels
if (g_Farm.GetNumBrothels() == FarmNum)
{ // player doesn't own this Studio... can he buy it?
static_brothel_data *bck = farm_data + FarmNum;
locale syslocale("");
stringstream ss;
ss.imbue(syslocale);
if (!g_Gold.afford(bck->price) || g_Gangs.GetNumBusinessExtorted() < bck->business)
{ // can't buy it
ss << gettext("This building costs ") << bck->price << gettext(" gold and you need to control at least ") << bck->business << gettext(" businesses.");
if (!g_Gold.afford(bck->price))
ss << "\n" << gettext("You need ") << (bck->price - g_Gold.ival()) << gettext(" more gold to afford it.");
if (g_Gangs.GetNumBusinessExtorted() < bck->business)
ss << "\n" << gettext("You need to control ") << (bck->business - g_Gangs.GetNumBusinessExtorted()) << gettext(" more businesses.");
g_MessageQue.AddToQue(ss.str(), 0);
}
else
{ // can buy it
ss << gettext("Do you wish to purchase this building for ") << bck->price << gettext(" gold? It has ") << bck->rooms << gettext(" rooms.");
g_MessageQue.AddToQue(ss.str(), 2);
g_ChoiceManager.CreateChoiceBox(224, 112, 352, 384, 0, 2, 32, 8);
g_ChoiceManager.AddChoice(0, gettext("Buy It"), 0);
g_ChoiceManager.AddChoice(0, gettext("Don't Buy It"), 1);
g_ChoiceManager.SetActive(0);
BuyFarm = FarmNum;
}
}
else
{ // player owns this brothel... go to it
g_Building = BUILDING_FARM;
g_CurrFarm = FarmNum;
g_WinManager.push("Farm Screen");
}
}
示例3: check_events
//.........这里部分代码省略.........
g_LogFile.ss() << "selection change: rebuilding gang list box" << endl; g_LogFile.ssend();
for (int selection = multi_first(); selection != -1; selection = multi_next())
{
sGang* gang = g_Gangs.GetGang(selection);
/*
* make sure we found the gang - pretty catastrophic
* if not, so log it if we do
*/
if (gang == 0)
{
g_LogFile.ss() << "Error: No gang for index " << selection; g_LogFile.ssend();
continue;
}
/*
* if the mission id is -1, nothing else to do
* (moving this to before the recruitment check
* since -1 most likely means nothing selected in
* the missions list)
*/
if (mission_id == -1) { continue; }
/*
* if the gang is already doing <whatever>
* then let them get on with it
*/
if (gang->m_MissionID == u_int(mission_id)) { continue; }
/*
* if they were recruiting, turn off the
* auto-recruit flag
*/
if (gang->m_MissionID == MISS_RECRUIT && gang->m_AutoRecruit)
{
gang->m_AutoRecruit = false;
gang->m_LastMissID = -1;
}
gang->m_MissionID = mission_id;
/*
* format the display line
*/
g_InitWin = true;
}
int cost = 0;
if (g_Gangs.GetNumGangs() > 0)
{
for (int i = 0; i < g_Gangs.GetNumGangs(); i++)
{
sGang* g = g_Gangs.GetGang(i);
cost += tariff.goon_mission_cost(g->m_MissionID);
}
}
ss.str(""); ss << "Weekly Cost: " << cost;
EditTextItem(ss.str(), totalcost_id);
if (gold_id >= 0)
{
ss.str(""); ss << "Gold: " << g_Gold.ival();
EditTextItem(ss.str(), gold_id);
}
}
if (g_InterfaceEvents.CheckCheckbox(controlcatacombs_id))
{
g_Gangs.Control_Gangs(IsCheckboxOn(controlcatacombs_id));
}
bool dosliders = false;
if (g_InterfaceEvents.CheckSlider(girlspercslider_id))
{
int s1 = SliderValue(girlspercslider_id);
int s2 = SliderValue(itemspercslider_id);
if (s2 < s1)
{
s2 = s1;
SliderRange(itemspercslider_id, 0, 100, s2, 1);
}
dosliders = true;
}
if (g_InterfaceEvents.CheckSlider(itemspercslider_id))
{
int s1 = SliderValue(itemspercslider_id);
int s2 = SliderValue(girlspercslider_id);
if (s1 < s2)
{
s2 = s1;
SliderRange(girlspercslider_id, 0, 100, s2, 1);
}
dosliders = true;
}
if (dosliders)
{
int s1 = SliderValue(girlspercslider_id);
int s2 = SliderValue(itemspercslider_id);
g_Gangs.Gang_Gets_Girls(s1);
g_Gangs.Gang_Gets_Items(s2 - s1);
g_Gangs.Gang_Gets_Beast(100 - s2);
ss.str(""); ss << "Girls : " << g_Gangs.Gang_Gets_Girls() << "%"; EditTextItem(ss.str(), ganggetsgirls_id);
ss.str(""); ss << "Items : " << g_Gangs.Gang_Gets_Items() << "%"; EditTextItem(ss.str(), ganggetsitems_id);
ss.str(""); ss << "Beasts : " << g_Gangs.Gang_Gets_Beast() << "%"; EditTextItem(ss.str(), ganggetsbeast_id);
return;
}
}
示例4: init
void cScreenGangs::init()
{
g_CurrentScreen = SCREEN_GANGMANAGEMENT;
if (!g_InitWin) return;
Focused();
g_InitWin = false;
selection = GetLastSelectedItemFromList(ganglist_id);
sel_recruit = GetLastSelectedItemFromList(recruitlist_id);
ClearListBox(missionlist_id);
AddToListBox(missionlist_id, 0, "GUARDING");
AddToListBox(missionlist_id, 1, "SABOTAGE");
AddToListBox(missionlist_id, 2, "SPY ON GIRLS");
AddToListBox(missionlist_id, 3, "RECAPTURE");
AddToListBox(missionlist_id, 4, "ACQUIRE TERRITORY");
AddToListBox(missionlist_id, 5, "PETTY THEFT");
AddToListBox(missionlist_id, 6, "GRAND THEFT");
AddToListBox(missionlist_id, 7, "KIDNAPPING");
AddToListBox(missionlist_id, 8, "CATACOMBS");
AddToListBox(missionlist_id, 9, "TRAINING");
AddToListBox(missionlist_id, 10, "RECRUITING");
AddToListBox(missionlist_id, 11, "SERVICE");
SetCheckBox(controlcatacombs_id, (g_Gangs.Control_Gangs()));
SliderRange(girlspercslider_id, 0, 100, g_Gangs.Gang_Gets_Girls(), 1);
SliderRange(itemspercslider_id, 0, 100, g_Gangs.Gang_Gets_Girls() + g_Gangs.Gang_Gets_Items(), 1);
ss.str(""); ss << "Girls : " << g_Gangs.Gang_Gets_Girls() << "%"; EditTextItem(ss.str(), ganggetsgirls_id);
ss.str(""); ss << "Items : " << g_Gangs.Gang_Gets_Items() << "%"; EditTextItem(ss.str(), ganggetsitems_id);
ss.str(""); ss << "Beasts : " << g_Gangs.Gang_Gets_Beast() << "%"; EditTextItem(ss.str(), ganggetsbeast_id);
SetCheckBox(netautobuy_id, (g_Gangs.GetNetRestock() > 0));
SetCheckBox(healautobuy_id, (g_Gangs.GetHealingRestock() > 0));
// weapon upgrades
int *wlev = g_Gangs.GetWeaponLevel();
ss.str(""); ss << "Weapon Level: " << *wlev;
if ((*wlev) < 4)
{
EnableButton(weaponup_id);
ss << " Next: " << tariff.goon_weapon_upgrade(*wlev) << "g";
}
else DisableButton(weaponup_id);
g_LogFile.ss() << "weapon text = '" << ss.str() << "'" << endl; g_LogFile.ssend();
EditTextItem(ss.str(), weaponlevel_id);
int *nets = g_Gangs.GetNets();
ss.str(""); ss << "Nets (" << tariff.nets_price(1) << "g each): " << *nets;
EditTextItem(ss.str(), netdesc_id);
DisableButton(netbuy_id, *nets >= 60);
DisableButton(netbuy10_id, *nets >= 60);
DisableButton(netbuy20_id, *nets >= 60);
DisableCheckBox(netautobuy_id, *nets < 1);
int *potions = g_Gangs.GetHealingPotions();
ss.str(""); ss << "Heal Potions (" << tariff.healing_price(1) << "g each): " << *potions;
EditTextItem(ss.str(), healdesc_id);
DisableButton(healbuy_id, *potions >= 200);
DisableButton(healbuy10_id, *potions >= 200);
DisableButton(healbuy20_id, *potions >= 200);
DisableCheckBox(healautobuy_id, *potions < 1);
int cost = 0;
if (g_Gangs.GetNumGangs() > 0)
{
for (int i = 0; i < g_Gangs.GetNumGangs(); i++)
{
sGang* g = g_Gangs.GetGang(i);
if (g == 0) g = g_Gangs.GetGang(i - 1);
cost += tariff.goon_mission_cost(g->m_MissionID);
}
}
ss.str(""); ss << "Weekly Cost: " << cost;
EditTextItem(ss.str(), totalcost_id);
if (gold_id >= 0)
{
ss.str(""); ss << "Gold: " << g_Gold.ival();
EditTextItem(ss.str(), gold_id);
}
ClearListBox(ganglist_id);
int num = 0;
sGang* current = g_Gangs.GetGang(0);
// loop through the gangs, populating the list box
g_LogFile.write("Setting gang mission descriptions\n");
for (current = g_Gangs.GetGang(0); current; current = current->m_Next)
{
// format the string with the gang name, mission and number of men
string Data[11];
ss.str(""); ss << current->m_Name; Data[0] = ss.str();
ss.str(""); ss << current->m_Num; Data[1] = ss.str();
ss.str(""); ss << short_mission_desc(current->m_MissionID); Data[2] = ss.str();
ss.str(""); ss << current->m_Skills[SKILL_COMBAT] << "%"; Data[3] = ss.str();
ss.str(""); ss << current->m_Skills[SKILL_MAGIC] << "%"; Data[4] = ss.str();
ss.str(""); ss << current->m_Stats[STAT_INTELLIGENCE] << "%"; Data[5] = ss.str();
ss.str(""); ss << current->m_Stats[STAT_AGILITY] << "%"; Data[6] = ss.str();
ss.str(""); ss << current->m_Stats[STAT_CONSTITUTION] << "%"; Data[7] = ss.str();
ss.str(""); ss << current->m_Stats[STAT_CHARISMA] << "%"; Data[8] = ss.str();
ss.str(""); ss << current->m_Stats[STAT_STRENGTH] << "%"; Data[9] = ss.str();
//.........这里部分代码省略.........
示例5: 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_NumGamblingHalls <= 0 && curr->m_Gold + income + upkeep - 10000 >= 0)
{
curr->m_NumGamblingHalls++;
upkeep -= 10000;
}
if (curr->m_NumBars <= 0 && curr->m_Gold + income + upkeep - 2500 >= 0)
{
curr->m_NumBars++;
upkeep -= 2500;
}
// buy more girls if there is enough money left (save at least 1000 in reserve)
if (curr->m_Gold + income + upkeep >= 1550 && (curr->m_NumGirls < 5 || curr->m_NumGirls < curr->m_NumBrothels * 20))
{
int i = 0;
while (curr->m_Gold + income + upkeep >= 1550 && i < (g_Dice % 5) + 1) // buy up to 5 girls if they can afford it.
{
upkeep -= 550;
curr->m_NumGirls++;
i++;
}
}
}
// process money
totalincome += income; totalupkeep += upkeep; curr->m_Gold += income; curr->m_Gold += upkeep; profit = totalincome + totalupkeep;
income = upkeep = 0;
for (int i = 0; i < curr->m_NumGirls; i++) // from girls
{
// If a rival has more girls than their brothels can handle, the rest work on the streets
double rapechance = (i > curr->m_NumBrothels * 20 ? cfg.prostitution.rape_brothel() : cfg.prostitution.rape_streets());
int Customers = g_Dice % 6; // 0-5 cust per girl
for (int i = 0; i < Customers;i++)
{
if (g_Dice.percent(rapechance))
{
//.........这里部分代码省略.........
示例6: init
void cScreenHouse::init()
{
g_CurrentScreen = SCREEN_HOUSE;
if (!g_InitWin) { return; }
Focused();
g_InitWin = false;
locale syslocale("");
stringstream ss;
ss.imbue(syslocale);
ss << gettext("CURRENT OBJECTIVE: ");
sObjective* obj = g_Brothels.GetObjective();
if (obj)
{
switch (obj->m_Objective)
{
case OBJECTIVE_REACHGOLDTARGET:
ss << gettext("Gather ") << obj->m_Target << gettext(" gold");
if (obj->m_Limit != -1) {
ss << gettext(" in ") << obj->m_Limit << gettext(" weeks");
}
ss << gettext(", ") << g_Gold.ival() << gettext(" gathered so far.");
break;
case OBJECTIVE_GETNEXTBROTHEL:
fmt_objective(ss, gettext("Purchase the next brothel"), obj->m_Limit);
break;
/*----
case OBJECTIVE_PURCHASENEWGAMBLINGHALL:
fmt_objective(ss, "Purchase a gambling hall", obj->m_Limit);
break;
case OBJECTIVE_PURCHASENEWBAR:
fmt_objective(ss, "Purchase a bar", obj->m_Limit);
break;
----*/
case OBJECTIVE_LAUNCHSUCCESSFULATTACK:
fmt_objective(ss, gettext("Launch a successful attack"), obj->m_Limit);
break;
case OBJECTIVE_HAVEXGOONS:
ss << gettext("Have ") << obj->m_Target << gettext(" gangs");
fmt_objective(ss, "", obj->m_Limit);
break;
case OBJECTIVE_STEALXAMOUNTOFGOLD:
ss << gettext("Steal ") << obj->m_Target << gettext(" gold");
fmt_objective(ss, "", obj->m_Limit, obj->m_SoFar);
break;
case OBJECTIVE_CAPTUREXCATACOMBGIRLS:
ss << gettext("Capture ") << obj->m_Target << gettext(" girls from the catacombs");
fmt_objective(ss, "", obj->m_Limit, obj->m_SoFar);
break;
case OBJECTIVE_HAVEXMONSTERGIRLS:
ss << gettext("Have a total of ") << obj->m_Target << gettext(" monster (non-human) girls");
fmt_objective(ss, "", obj->m_Limit, g_Brothels.GetTotalNumGirls(true));
break;
case OBJECTIVE_KIDNAPXGIRLS:
ss << gettext("Kidnap ") << obj->m_Target << gettext(" girls from the streets");
fmt_objective(ss, "", obj->m_Limit, obj->m_SoFar);
break;
case OBJECTIVE_EXTORTXNEWBUSINESS:
ss << gettext("Control ") << obj->m_Target << gettext(" city business");
fmt_objective(ss, "", obj->m_Limit, obj->m_SoFar);
break;
case OBJECTIVE_HAVEXAMOUNTOFGIRLS:
ss << gettext("Have a total of ") << obj->m_Target << gettext(" girls");
fmt_objective(ss, "", obj->m_Limit, g_Brothels.GetTotalNumGirls(false));
break;
}
}
else ss << gettext("NONE\n");
ss << gettext("\n")
<< gettext("Current gold: ") << g_Gold.ival() << gettext("\n")
<< gettext("Bank account: ") << g_Brothels.GetBankMoney() << gettext("\n")
<< gettext("Businesses controlled: ")
<< g_Gangs.GetNumBusinessExtorted()
<< gettext("\n")
;
ss << gettext("\nCurrent number of runaways: ") << g_Brothels.GetNumRunaways() << gettext("\n");
// `J` added while loop to add runaway's names to the list
if (g_Brothels.GetNumRunaways() > 0)
{
sGirl* rgirl = g_Brothels.m_Runaways;
while (rgirl)
{
ss << rgirl->m_Realname << gettext(" (") << rgirl->m_RunAway << gettext(")");
rgirl = rgirl->m_Next;
if (rgirl) ss << gettext(" , ");
}
}
EditTextItem(ss.str(), details_id);
obj = 0;
}