mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
Frost mage freeze procs complete
This commit is contained in:
@@ -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("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)));
|
||||
// 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.
|
||||
// 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)));
|
||||
|
||||
// Same 2-spell combo for various freeze procs
|
||||
triggers.push_back(new TriggerNode("frost nova on target", NextAction::array(0,
|
||||
new NextAction("fireball", ACTION_NORMAL + 2),
|
||||
new NextAction("scorch", ACTION_NORMAL + 1),
|
||||
new NextAction("frostbolt", ACTION_NORMAL + 2),
|
||||
new NextAction("deep freeze", ACTION_NORMAL + 1),
|
||||
nullptr)));
|
||||
triggers.push_back(new TriggerNode("frostbite on target", NextAction::array(0,
|
||||
new NextAction("arcane missiles", ACTION_NORMAL + 2),
|
||||
new NextAction("arcane explosion", ACTION_NORMAL + 1),
|
||||
new NextAction("frostbolt", ACTION_NORMAL + 2),
|
||||
new NextAction("deep freeze", ACTION_NORMAL + 1),
|
||||
nullptr)));
|
||||
}
|
||||
|
||||
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("light aoe", NextAction::array(0, new NextAction("cone of cold", 45.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", ACTION_HIGH + 1), nullptr)));
|
||||
}
|
||||
|
||||
@@ -104,8 +104,8 @@ class MageTriggerFactoryInternal : public NamedObjectContext<Trigger>
|
||||
creators["frost ward"] = &MageTriggerFactoryInternal::frost_ward;
|
||||
creators["arcane blast stack"] = &MageTriggerFactoryInternal::arcane_blast_stack;
|
||||
creators["mirror image"] = &MageTriggerFactoryInternal::mirror_image;
|
||||
creators["frost nova on target"] = &MageTriggerFactoryInternal::mirror_image;
|
||||
creators["frostbite on target"] = &MageTriggerFactoryInternal::mirror_image;
|
||||
creators["frost nova on target"] = &MageTriggerFactoryInternal::frost_nova_on_target;
|
||||
creators["frostbite on target"] = &MageTriggerFactoryInternal::frostbite_on_target;
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -36,10 +36,7 @@ bool FrostNovaOnTargetTrigger::IsActive()
|
||||
if (!target || !target->IsAlive() || !target->IsInWorld()) {
|
||||
return false;
|
||||
}
|
||||
bool aura = botAI->HasAura("frostbite", target);
|
||||
if (aura)
|
||||
LOG_DEBUG("playerbots", ":: FROST NOVA ACTIVE");
|
||||
return !botAI->HasAura("frost nova", target);
|
||||
return botAI->HasAura(spell, target);
|
||||
}
|
||||
|
||||
bool FrostbiteOnTargetTrigger::IsActive()
|
||||
@@ -48,8 +45,5 @@ bool FrostbiteOnTargetTrigger::IsActive()
|
||||
if (!target || !target->IsAlive() || !target->IsInWorld()) {
|
||||
return false;
|
||||
}
|
||||
bool aura = botAI->HasAura("frostbite", target);
|
||||
if (aura)
|
||||
LOG_DEBUG("playerbots", ":: FROSTBITE ACTIVE");
|
||||
return botAI->HasAura("frostbite", target);
|
||||
return botAI->HasAura(spell, target);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user