本文整理汇总了C++中PlayerInfo::CheckReputationConditions方法的典型用法代码示例。如果您正苦于以下问题:C++ PlayerInfo::CheckReputationConditions方法的具体用法?C++ PlayerInfo::CheckReputationConditions怎么用?C++ PlayerInfo::CheckReputationConditions使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PlayerInfo
的用法示例。
在下文中一共展示了PlayerInfo::CheckReputationConditions方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Apply
void GameEvent::Apply(PlayerInfo &player)
{
// Serialize the current reputation with other governments.
player.SetReputationConditions();
// Apply this event's ConditionSet to the player's conditions.
conditionsToApply.Apply(player.Conditions());
// Apply (and store a record of applying) this event's other general
// changes (e.g. updating an outfitter's inventory).
player.AddChanges(changes);
// Update the current reputation with other governments (e.g. this
// event's ConditionSet may have altered some reputations).
player.CheckReputationConditions();
for(const System *system : systemsToUnvisit)
player.Unvisit(system);
for(const Planet *planet : planetsToUnvisit)
player.Unvisit(planet);
// Perform visits after unvisits, as "unvisit <system>"
// will unvisit any planets in that system.
for(const System *system : systemsToVisit)
player.Visit(system);
for(const Planet *planet : planetsToVisit)
player.Visit(planet);
}
示例2: Do
void MissionAction::Do(PlayerInfo &player, UI *ui, const System *destination) const
{
bool isOffer = (trigger == "offer");
if(!conversation.IsEmpty() && ui)
{
ConversationPanel *panel = new ConversationPanel(player, conversation, destination);
if(isOffer)
panel->SetCallback(&player, &PlayerInfo::MissionCallback);
ui->Push(panel);
}
else if(!dialogText.empty() && ui)
{
map<string, string> subs;
subs["<first>"] = player.FirstName();
subs["<last>"] = player.LastName();
if(player.Flagship())
subs["<ship>"] = player.Flagship()->Name();
string text = Format::Replace(dialogText, subs);
if(isOffer)
ui->Push(new Dialog(text, player, destination));
else
ui->Push(new Dialog(text));
}
else if(isOffer && ui)
player.MissionCallback(Conversation::ACCEPT);
// If multiple outfits are being transferred, first remove them before
// adding any new ones.
for(const auto &it : gifts)
if(it.second < 0)
DoGift(player, it.first, it.second, ui);
for(const auto &it : gifts)
if(it.second > 0)
DoGift(player, it.first, it.second, ui);
if(payment)
player.Accounts().AddCredits(payment);
for(const auto &it : events)
player.AddEvent(*GameData::Events().Get(it.first), player.GetDate() + it.second);
if(!fail.empty())
{
// Failing missions invalidates iterators into the player's mission list,
// but does not immediately delete those missions. So, the safe way to
// iterate over all missions is to make a copy of the list before we
// begin to remove items from it.
vector<const Mission *> failedMissions;
for(const Mission &mission : player.Missions())
if(fail.count(mission.Identifier()))
failedMissions.push_back(&mission);
for(const Mission *mission : failedMissions)
player.RemoveMission(Mission::FAIL, *mission, ui);
}
// Check if applying the conditions changes the player's reputations.
player.SetReputationConditions();
conditions.Apply(player.Conditions());
player.CheckReputationConditions();
}