本文整理汇总了C++中CreatureObject::setMaxHAM方法的典型用法代码示例。如果您正苦于以下问题:C++ CreatureObject::setMaxHAM方法的具体用法?C++ CreatureObject::setMaxHAM怎么用?C++ CreatureObject::setMaxHAM使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CreatureObject
的用法示例。
在下文中一共展示了CreatureObject::setMaxHAM方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setVitality
void PetControlDeviceImplementation::setVitality(int vit) {
vitality = vit;
if (petType == PetManager::CREATUREPET || petType == PetManager::DROIDPET) {
ManagedReference<TangibleObject*> controlledObject = this->controlledObject.get();
if (controlledObject == NULL || !controlledObject->isCreatureObject())
return;
CreatureObject* pet = cast<CreatureObject*>(controlledObject.get());
if(pet == NULL )
return;
float hamPenaltyModifier = 0;
if (vitality <= 75 && vitality > 50) {
hamPenaltyModifier = 0.25f;
}
else if (vitality <= 50 && vitality > 25) {
hamPenaltyModifier = 0.5f;
}
else if (vitality <= 25) {
hamPenaltyModifier = 0.75f;
}
int newVitalityHealthPenalty = pet->getBaseHAM(0) * hamPenaltyModifier;
int newVitalityActionPenalty = pet->getBaseHAM(3) * hamPenaltyModifier;
int newVitalityMindPenalty = pet->getBaseHAM(6) * hamPenaltyModifier;
if (newVitalityHealthPenalty != vitalityHealthPenalty) {
int change = vitalityHealthPenalty - newVitalityHealthPenalty;
pet->setMaxHAM(0, pet->getMaxHAM(0) + change, true);
vitalityHealthPenalty = newVitalityHealthPenalty;
}
if (newVitalityActionPenalty != vitalityActionPenalty) {
int change = vitalityActionPenalty - newVitalityActionPenalty;
pet->setMaxHAM(3, pet->getMaxHAM(3) + change, true);
vitalityActionPenalty = newVitalityActionPenalty;
}
if (newVitalityMindPenalty != vitalityMindPenalty) {
int change = vitalityMindPenalty - newVitalityMindPenalty;
pet->setMaxHAM(6, pet->getMaxHAM(6) + change, true);
vitalityMindPenalty = newVitalityMindPenalty;
}
}
}