本文整理汇总了C++中Weapon::getRange方法的典型用法代码示例。如果您正苦于以下问题:C++ Weapon::getRange方法的具体用法?C++ Weapon::getRange怎么用?C++ Weapon::getRange使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Weapon
的用法示例。
在下文中一共展示了Weapon::getRange方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: randomWeapon
Weapon Weapon::randomWeapon(){
Weapon w = Weapon();
int price = 0;
w.setPrice(price);
w.loadRandomType();
w.addPower();
for (int i=0; i< w.getPower() ; i++){
w += w.loadRandomWeaponBuff();
}
w.setName(w.getName() + ", " + iTos(w.getDd1()) + "d" + iTos(w.getDd2()));
w.setName(w.getName() + (w.getRange() != 1 ? + ", " + iTos(w.getRange()) + "m" : "") );
return w;
}
示例2: action
int BasicMonster::action()
{
if ((usesMeleeWeapons() || usesRangedWeapons()) && inventory.size() > 0)
{
useBestWeapon();
}
int time;
bool seen = seePlayer();
if (shouldFlee())
{
time = doFlee();
if (time > 0) return time;
}
if (attitude == ATTITUDE_HOSTILE && seen)
{
int sqdist = Point::sqlen(world.player->getCreature()->getPos() - position);
Weapon* weapon = getMainWeapon();
if (weapon == NULL) weapon = &baseWeapon;
int range = weapon->getRange();
// Ranged attack
if (range > 1 && sqdist <= range*range)
{
time = doRangedAttack(weapon);
if (time > 0) return time;
}
// Special attacks (e.g. dragon breath)
time = doSpecialAttack();
if (time > 0) return time;
// Melee attack
if (sqdist <= 2)
{
time = doMeleeAttack(weapon);
if (time > 0) return time;
}
// Run towards player / tactical movement
time = doChargePlayer();
if (time > 0) return time;
}
// Random walk, search for items, etc.
time = doWander();
return time > 0 ? time : 10;
}
示例3: useBestWeapon
void BasicMonster::useBestWeapon()
{
bool melee = usesMeleeWeapons();
bool ranged = usesRangedWeapons();
int bestScore = -1;
symbol bestWeapon = '\0';
for (auto it = inventory.begin(); it != inventory.end(); it++)
{
if (it->second->getType() != ITEM_WEAPON) continue;
Weapon* weapon = static_cast<Weapon*>(it->second);
if (weapon->getRange() <= 1 && !melee) continue;
if (weapon->getRange() > 1 && !ranged) continue;
int score = scoreWeapon(weapon);
if (score > bestScore)
{
bestScore = score;
bestWeapon = it->first;
}
}
mainWeapon = bestWeapon;
}