mirror of
https://github.com/mod-playerbots/mod-playerbots
synced 2025-11-29 15:58:20 +08:00
Merge remote-tracking branch 'upstream/master' into more-chat-filters
This commit is contained in:
@@ -472,6 +472,10 @@ void AiFactory::AddDefaultCombatStrategies(Player* player, PlayerbotAI* const fa
|
||||
}
|
||||
}
|
||||
}
|
||||
if (sRandomPlayerbotMgr->IsRandomBot(player))
|
||||
{
|
||||
engine->ChangeStrategy(sPlayerbotAIConfig->randomBotCombatStrategies);
|
||||
}
|
||||
else
|
||||
{
|
||||
engine->ChangeStrategy(sPlayerbotAIConfig->combatStrategies);
|
||||
|
||||
@@ -722,7 +722,8 @@ void PlayerbotAI::HandleTeleportAck()
|
||||
// SetNextCheckDelay(urand(2000, 5000));
|
||||
if (sPlayerbotAIConfig->applyInstanceStrategies)
|
||||
ApplyInstanceStrategies(bot->GetMapId(), true);
|
||||
EvaluateHealerDpsStrategy();
|
||||
if (sPlayerbotAIConfig->restrictHealerDPS)
|
||||
EvaluateHealerDpsStrategy();
|
||||
Reset(true);
|
||||
}
|
||||
|
||||
|
||||
@@ -375,7 +375,7 @@ bool PlayerbotAIConfig::Initialize()
|
||||
|
||||
randomChangeMultiplier = sConfigMgr->GetOption<float>("AiPlayerbot.RandomChangeMultiplier", 1.0);
|
||||
|
||||
randomBotCombatStrategies = sConfigMgr->GetOption<std::string>("AiPlayerbot.RandomBotCombatStrategies", "-threat");
|
||||
randomBotCombatStrategies = sConfigMgr->GetOption<std::string>("AiPlayerbot.RandomBotCombatStrategies", "");
|
||||
randomBotNonCombatStrategies = sConfigMgr->GetOption<std::string>("AiPlayerbot.RandomBotNonCombatStrategies", "");
|
||||
combatStrategies = sConfigMgr->GetOption<std::string>("AiPlayerbot.CombatStrategies", "+custom::say");
|
||||
nonCombatStrategies = sConfigMgr->GetOption<std::string>("AiPlayerbot.NonCombatStrategies", "+custom::say,+return");
|
||||
|
||||
@@ -123,7 +123,7 @@ void PlayerbotFactory::Init()
|
||||
if (id == 47181 || id == 50358 || id == 47242 || id == 52639 || id == 47147 || id == 7218) // Test Enchant
|
||||
continue;
|
||||
|
||||
if (id == 15463) // Legendary Arcane Amalgamation
|
||||
if (id == 15463 || id == 15490) // Legendary Arcane Amalgamation
|
||||
continue;
|
||||
|
||||
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(id);
|
||||
|
||||
@@ -20,6 +20,8 @@ public:
|
||||
creators["emalon lighting nova action"] = &RaidVoAActionContext::emalon_lighting_nova_action;
|
||||
creators["emalon overcharge action"] = &RaidVoAActionContext::emalon_overcharge_action;
|
||||
creators["emalon fall from floor action"] = &RaidVoAActionContext::emalon_fall_from_floor_action;
|
||||
creators["emalon nature resistance action"] = &RaidVoAActionContext::emalon_nature_resistance_action;
|
||||
creators["koralon fire resistance action"] = &RaidVoAActionContext::koralon_fire_resistance_action;
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -27,6 +29,8 @@ private:
|
||||
static Action* emalon_lighting_nova_action(PlayerbotAI* ai) { return new EmalonLightingNovaAction(ai); }
|
||||
static Action* emalon_overcharge_action(PlayerbotAI* ai) { return new EmalonOverchargeAction(ai); }
|
||||
static Action* emalon_fall_from_floor_action(PlayerbotAI* ai) { return new EmalonFallFromFloorAction(ai); }
|
||||
static Action* emalon_nature_resistance_action(PlayerbotAI* ai) { return new BossNatureResistanceAction(ai, "emalon the storm watcher"); }
|
||||
static Action* koralon_fire_resistance_action(PlayerbotAI* ai) { return new BossFireResistanceAction(ai, "koralon the flame watcher"); }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -24,4 +24,16 @@ void RaidVoAStrategy::InitTriggers(std::vector<TriggerNode*>& triggers)
|
||||
triggers.push_back(new TriggerNode(
|
||||
"emalon fall from floor trigger",
|
||||
NextAction::array(0, new NextAction("emalon fall from floor action", ACTION_RAID), nullptr)));
|
||||
|
||||
triggers.push_back(new TriggerNode(
|
||||
"emalon nature resistance trigger",
|
||||
NextAction::array(0, new NextAction("emalon nature resistance action", ACTION_RAID), nullptr)));
|
||||
|
||||
//
|
||||
// Koralon the Flame Watcher
|
||||
//
|
||||
|
||||
triggers.push_back(new TriggerNode(
|
||||
"koralon fire resistance trigger",
|
||||
NextAction::array(0, new NextAction("koralon fire resistance action", ACTION_RAID), nullptr)));
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ public:
|
||||
creators["emalon lighting nova trigger"] = &RaidVoATriggerContext::emalon_lighting_nova_trigger;
|
||||
creators["emalon overcharge trigger"] = &RaidVoATriggerContext::emalon_overcharge_trigger;
|
||||
creators["emalon fall from floor trigger"] = &RaidVoATriggerContext::emalon_fall_from_floor_trigger;
|
||||
creators["emalon nature resistance trigger"] = &RaidVoATriggerContext::emalon_nature_resistance_trigger;
|
||||
creators["koralon fire resistance trigger"] = &RaidVoATriggerContext::koralon_fire_resistance_trigger;
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -26,6 +28,8 @@ private:
|
||||
static Trigger* emalon_lighting_nova_trigger(PlayerbotAI* ai) { return new EmalonLightingNovaTrigger(ai); }
|
||||
static Trigger* emalon_overcharge_trigger(PlayerbotAI* ai) { return new EmalonOverchargeTrigger(ai); }
|
||||
static Trigger* emalon_fall_from_floor_trigger(PlayerbotAI* ai) { return new EmalonFallFromFloorTrigger(ai); }
|
||||
static Trigger* emalon_nature_resistance_trigger(PlayerbotAI* ai) { return new BossNatureResistanceTrigger(ai, "emalon the storm watcher"); }
|
||||
static Trigger* koralon_fire_resistance_trigger(PlayerbotAI* ai) { return new BossFireResistanceTrigger(ai, "koralon the flame watcher"); }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user