Frost mage freeze procs complete

This commit is contained in:
Bobblybook
2024-07-23 21:38:40 +10:00
parent 79c7dcf4a1
commit b1ffbf2d99
3 changed files with 13 additions and 17 deletions

View File

@@ -72,7 +72,7 @@ void FrostMageStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
triggers.push_back(new TriggerNode("no pet", NextAction::array(0, new NextAction("summon water elemental", ACTION_HIGH), nullptr))); triggers.push_back(new TriggerNode("no pet", NextAction::array(0, new NextAction("summon water elemental", ACTION_HIGH), nullptr)));
triggers.push_back(new TriggerNode("has pet", NextAction::array(0, new NextAction("toggle pet spell", ACTION_HIGH + 1), nullptr))); triggers.push_back(new TriggerNode("has pet", NextAction::array(0, new NextAction("toggle pet spell", ACTION_HIGH + 1), nullptr)));
triggers.push_back(new TriggerNode("ice barrier", NextAction::array(0, new NextAction("ice barrier", ACTION_HIGH), nullptr))); triggers.push_back(new TriggerNode("ice barrier", NextAction::array(0, new NextAction("ice barrier", ACTION_NORMAL), nullptr)));
triggers.push_back(new TriggerNode("brain freeze", NextAction::array(0, new NextAction("frostfire bolt", ACTION_NORMAL + 3), nullptr))); triggers.push_back(new TriggerNode("brain freeze", NextAction::array(0, new NextAction("frostfire bolt", ACTION_NORMAL + 3), nullptr)));
// Combo cast the last charge of fingers of frost for double crits. // Combo cast the last charge of fingers of frost for double crits.
@@ -84,18 +84,20 @@ void FrostMageStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
// May not need this, frostbolt is the default action so probably don't need to specify. // May not need this, frostbolt is the default action so probably don't need to specify.
// Maybe uncomment if you find the mage is prioritising auxillary spells while this buff is up, and wasting the proc. // Maybe uncomment if you find the mage is prioritising auxillary spells while this buff is up, and wasting the proc.
// triggers.push_back(new TriggerNode("fingers of frost double", NextAction::array(0, new NextAction("frostbolt", ACTION_NORMAL), nullptr))); // triggers.push_back(new TriggerNode("fingers of frost double", NextAction::array(0, new NextAction("frostbolt", ACTION_NORMAL), nullptr)));
// Same 2-spell combo for various freeze procs
triggers.push_back(new TriggerNode("frost nova on target", NextAction::array(0, triggers.push_back(new TriggerNode("frost nova on target", NextAction::array(0,
new NextAction("fireball", ACTION_NORMAL + 2), new NextAction("frostbolt", ACTION_NORMAL + 2),
new NextAction("scorch", ACTION_NORMAL + 1), new NextAction("deep freeze", ACTION_NORMAL + 1),
nullptr))); nullptr)));
triggers.push_back(new TriggerNode("frostbite on target", NextAction::array(0, triggers.push_back(new TriggerNode("frostbite on target", NextAction::array(0,
new NextAction("arcane missiles", ACTION_NORMAL + 2), new NextAction("frostbolt", ACTION_NORMAL + 2),
new NextAction("arcane explosion", ACTION_NORMAL + 1), new NextAction("deep freeze", ACTION_NORMAL + 1),
nullptr))); nullptr)));
} }
void FrostMageAoeStrategy::InitTriggers(std::vector<TriggerNode*>& triggers) void FrostMageAoeStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
{ {
triggers.push_back(new TriggerNode("medium aoe", NextAction::array(0, new NextAction("blizzard", 40.0f), nullptr))); triggers.push_back(new TriggerNode("medium aoe", NextAction::array(0, new NextAction("blizzard", ACTION_HIGH), nullptr)));
triggers.push_back(new TriggerNode("light aoe", NextAction::array(0, new NextAction("cone of cold", 45.0f), nullptr))); triggers.push_back(new TriggerNode("light aoe", NextAction::array(0, new NextAction("cone of cold", ACTION_HIGH + 1), nullptr)));
} }

View File

@@ -104,8 +104,8 @@ class MageTriggerFactoryInternal : public NamedObjectContext<Trigger>
creators["frost ward"] = &MageTriggerFactoryInternal::frost_ward; creators["frost ward"] = &MageTriggerFactoryInternal::frost_ward;
creators["arcane blast stack"] = &MageTriggerFactoryInternal::arcane_blast_stack; creators["arcane blast stack"] = &MageTriggerFactoryInternal::arcane_blast_stack;
creators["mirror image"] = &MageTriggerFactoryInternal::mirror_image; creators["mirror image"] = &MageTriggerFactoryInternal::mirror_image;
creators["frost nova on target"] = &MageTriggerFactoryInternal::mirror_image; creators["frost nova on target"] = &MageTriggerFactoryInternal::frost_nova_on_target;
creators["frostbite on target"] = &MageTriggerFactoryInternal::mirror_image; creators["frostbite on target"] = &MageTriggerFactoryInternal::frostbite_on_target;
} }
private: private:

View File

@@ -36,10 +36,7 @@ bool FrostNovaOnTargetTrigger::IsActive()
if (!target || !target->IsAlive() || !target->IsInWorld()) { if (!target || !target->IsAlive() || !target->IsInWorld()) {
return false; return false;
} }
bool aura = botAI->HasAura("frostbite", target); return botAI->HasAura(spell, target);
if (aura)
LOG_DEBUG("playerbots", ":: FROST NOVA ACTIVE");
return !botAI->HasAura("frost nova", target);
} }
bool FrostbiteOnTargetTrigger::IsActive() bool FrostbiteOnTargetTrigger::IsActive()
@@ -48,8 +45,5 @@ bool FrostbiteOnTargetTrigger::IsActive()
if (!target || !target->IsAlive() || !target->IsInWorld()) { if (!target || !target->IsAlive() || !target->IsInWorld()) {
return false; return false;
} }
bool aura = botAI->HasAura("frostbite", target); return botAI->HasAura(spell, target);
if (aura)
LOG_DEBUG("playerbots", ":: FROSTBITE ACTIVE");
return botAI->HasAura("frostbite", target);
} }