mirror of
https://github.com/mod-playerbots/mod-playerbots.git
synced 2026-03-11 03:20:29 +00:00
Merge pull request #578 from Bobblybook/master
The Nexus implementation, UK code cleanup, dragon flanking
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
#include "UtgardeKeepActions.h"
|
||||
#include "UtgardeKeepStrategy.h"
|
||||
|
||||
bool AttackFrostTombAction::isUseful() { return !botAI->IsHeal(bot); }
|
||||
bool AttackFrostTombAction::Execute(Event event)
|
||||
{
|
||||
Unit* frostTomb = nullptr;
|
||||
|
||||
@@ -12,6 +12,7 @@ class AttackFrostTombAction : public AttackAction
|
||||
public:
|
||||
AttackFrostTombAction(PlayerbotAI* ai) : AttackAction(ai, "attack frost tomb") {}
|
||||
bool Execute(Event event) override;
|
||||
bool isUseful() override;
|
||||
};
|
||||
|
||||
class AttackDalronnAction : public AttackAction
|
||||
@@ -32,16 +33,16 @@ class IngvarDodgeSmashAction : public MovementAction
|
||||
{
|
||||
public:
|
||||
IngvarDodgeSmashAction(PlayerbotAI* ai) : MovementAction(ai, "ingvar dodge smash") {}
|
||||
bool isUseful() override;
|
||||
bool Execute(Event event) override;
|
||||
bool isUseful() override;
|
||||
};
|
||||
|
||||
class IngvarSmashReturnAction : public MovementAction
|
||||
{
|
||||
public:
|
||||
IngvarSmashReturnAction(PlayerbotAI* ai) : MovementAction(ai, "ingvar smash return") {}
|
||||
bool isUseful() override;
|
||||
bool Execute(Event event) override;
|
||||
bool isUseful() override;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
|
||||
float PrinceKelesethMultiplier::GetValue(Action* action)
|
||||
{
|
||||
Unit* boss = AI_VALUE2(Unit*, "find target", "prince keleseth");
|
||||
Unit* boss = AI_VALUE2(Unit*, "find target", "prince keleseth");
|
||||
if (!boss)
|
||||
{
|
||||
return 1.0f;
|
||||
@@ -15,7 +15,7 @@ float PrinceKelesethMultiplier::GetValue(Action* action)
|
||||
{
|
||||
return 0.0f;
|
||||
}
|
||||
return 1.0f;
|
||||
return 1.0f;
|
||||
}
|
||||
float SkarvaldAndDalronnMultiplier::GetValue(Action* action)
|
||||
{
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef _PLAYERRBOT_WOTLKDUNGEONUKMULTIPLIERS_H_
|
||||
#define _PLAYERRBOT_WOTLKDUNGEONUKMULTIPLIERS_H_
|
||||
#ifndef _PLAYERBOT_WOTLKDUNGEONUKMULTIPLIERS_H
|
||||
#define _PLAYERBOT_WOTLKDUNGEONUKMULTIPLIERS_H
|
||||
|
||||
#include "Multiplier.h"
|
||||
|
||||
|
||||
@@ -4,40 +4,40 @@
|
||||
|
||||
void WotlkDungeonUKStrategy::InitTriggers(std::vector<TriggerNode*> &triggers)
|
||||
{
|
||||
// Prince Keleseth
|
||||
triggers.push_back(new TriggerNode("keleseth frost tomb",
|
||||
// Prince Keleseth
|
||||
triggers.push_back(new TriggerNode("keleseth frost tomb",
|
||||
NextAction::array(0, new NextAction("attack frost tomb", ACTION_RAID + 1), nullptr)));
|
||||
|
||||
// Skarvald the Constructor & Dalronn the Controller
|
||||
triggers.push_back(new TriggerNode("dalronn priority",
|
||||
|
||||
// Skarvald the Constructor & Dalronn the Controller
|
||||
triggers.push_back(new TriggerNode("dalronn priority",
|
||||
NextAction::array(0, new NextAction("attack dalronn", ACTION_RAID + 1), nullptr)));
|
||||
|
||||
// Ingvar the Plunderer
|
||||
|
||||
// Ingvar the Plunderer
|
||||
|
||||
// Doesn't work yet, this action doesn't get processed until the existing cast finishes
|
||||
// triggers.push_back(new TriggerNode("ingvar staggering roar",
|
||||
// Doesn't work yet, this action doesn't get processed until the existing cast finishes
|
||||
// triggers.push_back(new TriggerNode("ingvar staggering roar",
|
||||
// NextAction::array(0, new NextAction("ingvar stop casting", ACTION_RAID + 1), nullptr)));
|
||||
|
||||
// No easy way to check LoS here, the pillars do not seem to count as gameobjects.
|
||||
// Not implemented for now, unsure if this is needed as a good group can probably burst through the boss
|
||||
// and just eat the debuff.
|
||||
// triggers.push_back(new TriggerNode("ingvar dreadful roar",
|
||||
// No easy way to check LoS here, the pillars do not seem to count as gameobjects.
|
||||
// Not implemented for now, unsure if this is needed as a good group can probably burst through the boss
|
||||
// and just eat the debuff.
|
||||
// triggers.push_back(new TriggerNode("ingvar dreadful roar",
|
||||
// NextAction::array(0, new NextAction("ingvar hide los", ACTION_RAID + 1), nullptr)));
|
||||
triggers.push_back(new TriggerNode("ingvar smash tank",
|
||||
triggers.push_back(new TriggerNode("ingvar smash tank",
|
||||
NextAction::array(0, new NextAction("ingvar dodge smash", ACTION_MOVE + 5), nullptr)));
|
||||
triggers.push_back(new TriggerNode("ingvar smash tank return",
|
||||
triggers.push_back(new TriggerNode("ingvar smash tank return",
|
||||
NextAction::array(0, new NextAction("ingvar smash return", ACTION_MOVE + 5), nullptr)));
|
||||
// Buggy... if not behind target, ai can get stuck running towards and away from target.
|
||||
// I think for ranged chars, a custom action should be added that doesn't attempt to run into melee.
|
||||
// This is a bandaid for now, needs to be improved.
|
||||
triggers.push_back(new TriggerNode("not behind ingvar",
|
||||
// Buggy... if not behind target, ai can get stuck running towards and away from target.
|
||||
// I think for ranged chars, a custom action should be added that doesn't attempt to run into melee.
|
||||
// This is a bandaid for now, needs to be improved.
|
||||
triggers.push_back(new TriggerNode("not behind ingvar",
|
||||
NextAction::array(0, new NextAction("set behind", ACTION_MOVE + 1), nullptr)));
|
||||
|
||||
}
|
||||
|
||||
void WotlkDungeonUKStrategy::InitMultipliers(std::vector<Multiplier*> &multipliers)
|
||||
{
|
||||
multipliers.push_back(new PrinceKelesethMultiplier(botAI));
|
||||
multipliers.push_back(new SkarvaldAndDalronnMultiplier(botAI));
|
||||
multipliers.push_back(new IngvarThePlundererMultiplier(botAI));
|
||||
multipliers.push_back(new PrinceKelesethMultiplier(botAI));
|
||||
multipliers.push_back(new SkarvaldAndDalronnMultiplier(botAI));
|
||||
multipliers.push_back(new IngvarThePlundererMultiplier(botAI));
|
||||
}
|
||||
|
||||
@@ -1,15 +1,12 @@
|
||||
#ifndef _PLAYERBOT_WOTLKDUNGEONUKTRIGGERS_H
|
||||
#define _PLAYERBOT_WOTLKDUNGEONUKTRIGGERS_H
|
||||
|
||||
#include "EventMap.h"
|
||||
#include "Trigger.h"
|
||||
#include "PlayerbotAIConfig.h"
|
||||
#include "GenericTriggers.h"
|
||||
#include "DungeonStrategyUtils.h"
|
||||
|
||||
// Taken from:
|
||||
// src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/boss_ingvar_the_plunderer.cpp
|
||||
enum eSpells
|
||||
enum UtgardeKeepIDs
|
||||
{
|
||||
SPELL_SUMMON_VALKYR = 42912,
|
||||
SPELL_RESURRECTION_BEAM = 42857,
|
||||
@@ -32,7 +29,6 @@ enum eSpells
|
||||
SPELL_DARK_SMASH = 42723,
|
||||
SPELL_SHADOW_AXE = 42749,
|
||||
|
||||
// Added
|
||||
DEBUFF_FROST_TOMB = 48400,
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user