本文整理汇总了C++中Spell::GetCost方法的典型用法代码示例。如果您正苦于以下问题:C++ Spell::GetCost方法的具体用法?C++ Spell::GetCost怎么用?C++ Spell::GetCost使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Spell
的用法示例。
在下文中一共展示了Spell::GetCost方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SpellCasted
void HeroBase::SpellCasted(const Spell & spell)
{
// resource cost
Kingdom & kingdom = world.GetKingdom(GetColor());
const payment_t & cost = spell.GetCost();
if(cost.GetValidItemsCount()) kingdom.OddFundsResource(cost);
// spell point cost
magic_point -= (spell.SpellPoint(this) < magic_point ? spell.SpellPoint(this) : magic_point);
// move point cost
if(spell.MovePoint())
move_point -= (spell.MovePoint() < move_point ? spell.MovePoint() : move_point);
}
示例2: CanCastSpell
bool HeroBase::CanCastSpell(const Spell & spell, std::string* res) const
{
const Kingdom & kingdom = world.GetKingdom(GetColor());
if(res)
{
std::ostringstream os;
if(HaveSpellBook())
{
if(HaveSpell(spell))
{
if(HaveSpellPoints(spell))
{
if(spell.MovePoint() <= move_point)
{
if(kingdom.AllowPayment(spell.GetCost()))
return true;
else
os << "resource" << " " << "failed";
}
else
os << "move points" << " " << "failed";
}
else
os << _("That spell costs %{mana} mana. You only have %{point} mana, so you can't cast the spell.");
}
else
os << "spell" << " " << "not found";
}
else
os << "spell book" << " " << "not found";
*res = os.str();
return false;
}
return HaveSpellBook() && HaveSpell(spell) && HaveSpellPoints(spell) && kingdom.AllowPayment(spell.GetCost());
}