mirror of
https://github.com/mod-playerbots/mod-playerbots.git
synced 2026-01-17 02:40:28 +00:00
Improve druid cat spec
This commit is contained in:
@@ -36,3 +36,36 @@ Unit* AttackerWithoutAuraTargetValue::Calculate()
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
Unit* MeleeAttackerWithoutAuraTargetValue::Calculate()
|
||||
{
|
||||
GuidVector attackers = botAI->GetAiObjectContext()->GetValue<GuidVector>("attackers")->Get();
|
||||
// Unit* target = botAI->GetAiObjectContext()->GetValue<Unit*>("current target")->Get();
|
||||
uint32 max_health = 0;
|
||||
Unit* result = nullptr;
|
||||
for (ObjectGuid const guid : attackers)
|
||||
{
|
||||
Unit* unit = botAI->GetUnit(guid);
|
||||
if (!unit || !unit->IsAlive())
|
||||
continue;
|
||||
|
||||
if (!bot->IsWithinMeleeRange(unit))
|
||||
continue;
|
||||
|
||||
if (checkArc && !bot->HasInArc(CAST_ANGLE_IN_FRONT, unit))
|
||||
continue;
|
||||
|
||||
if (unit->GetHealth() < max_health)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!botAI->HasAura(qualifier, unit, false, true))
|
||||
{
|
||||
max_health = unit->GetHealth();
|
||||
result = unit;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,9 @@ protected:
|
||||
class MeleeAttackerWithoutAuraTargetValue : public AttackerWithoutAuraTargetValue
|
||||
{
|
||||
public:
|
||||
MeleeAttackerWithoutAuraTargetValue(PlayerbotAI* botAI) : AttackerWithoutAuraTargetValue(botAI, "melee") {}
|
||||
MeleeAttackerWithoutAuraTargetValue(PlayerbotAI* botAI, bool checkArc = true) : AttackerWithoutAuraTargetValue(botAI, "melee"), checkArc(checkArc) {}
|
||||
Unit* Calculate() override;
|
||||
bool checkArc;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -13,6 +13,9 @@ float ExpectedLifetimeValue::Calculate()
|
||||
return 0.0f;
|
||||
}
|
||||
float dps = AI_VALUE(float, "expected group dps");
|
||||
bool aoePenalty = AI_VALUE(uint8, "attacker count") >= 3;
|
||||
if (aoePenalty)
|
||||
dps *= 0.75;
|
||||
float res = target->GetHealth() / dps;
|
||||
// bot->Say(target->GetName() + " lifetime: " + std::to_string(res), LANG_UNIVERSAL);
|
||||
return res;
|
||||
|
||||
Reference in New Issue
Block a user