本文整理汇总了C++中Tile::addGold方法的典型用法代码示例。如果您正苦于以下问题:C++ Tile::addGold方法的具体用法?C++ Tile::addGold怎么用?C++ Tile::addGold使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Tile
的用法示例。
在下文中一共展示了Tile::addGold方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: step
void Imp::step(bool hasSound)
{
if (this->hasJob())
{
this->hasSound = hasSound;
switch (this->job->type)
{
case MINE_TARGET:
{
if (!job->target->getBeingExtracted())
{
this->cancelJob();
}
else if (!this->job->destinationReached)
{
int milli = this->renegotiateTimer->getElapsedTime().asMilliseconds();
if (milli > Imp::RENEGOTIATE_COOLDOWN)
{
this->renegotiate();
this->renegotiateTimer->restart();
}
if (this->hasJob())
{
milli = this->moveTimer->getElapsedTime().asMilliseconds();
if (milli > Imp::MOVE_COOLDOWN)
{
this->move();
this->moveTimer->restart();
}
}
}
else if (!this->job->targetMined)
{
int milli = this->mineTimer->getElapsedTime().asMilliseconds();
if (milli > Imp::MINE_COOLDOWN)
{
this->mine(job->target);
this->mineTimer->restart();
}
}
else
this->completeJob();
break;
}
case UNLOAD_GOLD:
{
if (job->destination->hasMaxGold())
{
this->cancelJob();
}
else if (!this->job->destinationReached)
{
int milli = this->renegotiateTimer->getElapsedTime().asMilliseconds();
if (milli > Imp::RENEGOTIATE_COOLDOWN)
{
this->renegotiate();
this->renegotiateTimer->restart();
}
if (this->hasJob())
{
milli = this->moveTimer->getElapsedTime().asMilliseconds();
if (milli > Imp::MOVE_COOLDOWN)
{
this->move();
this->moveTimer->restart();
}
}
}
else
{
if (this->hasSound)
{
int random = rand() % 3 + 1;
string name = "gold_drop_" + to_string(random);
SoundHandler::playCriticalSound(name);
}
this->job->goldDropped = true;
Tile* destination = this->job->destination;
int depositableGold = destination->getStoreableGold();
if (currentGold < depositableGold)
depositableGold = currentGold;
this->currentGold -= depositableGold;
destination->addGold(depositableGold);
//.........这里部分代码省略.........