本文整理汇总了C++中Monster::check_life方法的典型用法代码示例。如果您正苦于以下问题:C++ Monster::check_life方法的具体用法?C++ Monster::check_life怎么用?C++ Monster::check_life使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Monster
的用法示例。
在下文中一共展示了Monster::check_life方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: turn
//Turn is the function that is called to simulate a battle. At the moment, it only takes 1 Player and 1 Monster. This means no multi-enemy fights for now.
//However, that functionality might be added in later.
void turn(Player& Tim, Monster creature)
{
srand(time(0));//semi-random generation for chances at critical hits or fumbles.
int choice, Tim_damage, creature_damage;
bool flee = false;
cout << "Tim sees a creature! Tim has poor vision, so the identity of the creature is unknown." << endl;
do
{
int r = rand(), chance1 = (r % 10) + 1, chance2 = (r % 10) + 1;
display_battle(Tim.get_health(), creature.get_health());
choice = battle_menu();//battle_menu just gets the answer for what the Player wants to do on their turn.
if(choice == 1)//If they chose to attack, then:
{
Tim_damage = Tim.get_damage();
creature_damage = creature.get_damage();
if (chance1 == 1 || chance1 == 2)//First determine how the attack went
{
creature.hurt((Tim_damage * 3) / 2);//And apply the damage.
cout << "Tim hits the creature with a critical hit! The creature was hurt for " << (Tim_damage * 3) / 2 << " damage!" << endl;
}
else if (chance1 == 9 || chance1 == 10)
{
creature.hurt(Tim_damage / 2);
cout << "Tim fumbles with the weapon and the creature seems undazed. The creature was hurt for " << Tim_damage / 2 << " damage!" << endl;
}
else if (chance1 != 1 && chance1 != 2 && chance1 != 9 && chance1 != 10)
{
creature.hurt(Tim_damage);
cout << "The creature was hurt for " << Tim_damage << " damage!" << endl;
}
if(creature.check_life())//If creature is still alive, they get to retaliate.
{
if (chance2 == 1)
{
Tim.hurt(creature_damage * 2);
cout << "The creature lands a critical hit! Tim was hurt for " << creature_damage * 2 << " damage!" << endl;
}
else if (chance2 == 2 || chance2 == 3)
{
Tim.hurt(creature_damage / 2);
cout << "The creature trips and falls on its face! Tim was hurt for " << creature_damage / 2 << " damage!" << endl;
}
else if (chance2 != 1 && chance2 != 2 && chance2 != 3)
{
Tim.hurt(creature_damage);
cout << "Tim was hurt for " << creature_damage << " damage!" << endl;
}
}
else
{
creature.kill();//Otherwise, the creature is dead.
}
}
else if(choice == 2)//Or the Player might choose to flee the battle.
{
cout << "Tim flees from the creature like a coward!" << endl;
cout << "The creature is unable to keep up with Tim's cowardly speed." << endl;
flee = true;
}
} while(Tim.check_life() and creature.check_life() and !flee);//The battle will continue until someone is dead or the Player fled the battle.
if(!creature.check_life())//If the creature is the dead one, display the battle results.
{
cout << "The battle has ended. Tim has slain the creature with a mighty finishing blow!" << endl;
cout << "Tim gains " << creature.get_exp_reward() << " experience from slaying the creature!" << endl;
Tim.add_exp(creature.get_exp_reward());
cout << "Tim has " << Tim.get_max_exp() - Tim.get_exp() << " experience until he levels up!" << endl;
cout << "Tim finds some gold pieces on the ground near the creature." << endl;
Tim.add_gold(creature.get_gold_reward());
cout << "Tim has " << Tim.get_gold() << " gold pieces." << endl;
cout << "Feeling empowered, Timothy returns to the village." << endl;
}
}