added changes to include difficulty into ai object

This commit is contained in:
2024-10-13 23:30:27 -04:00
parent a4d7b00036
commit a35e4b646d
3 changed files with 32 additions and 21 deletions

View File

@@ -37,25 +37,6 @@ public:
} else {
sMythicPlus->AddCreatureForScaling(creature);
}
// // Assign random affix for now.
if (roll_chance_i(30)) {
uint32 irand = urand(0, 2);
if(irand == 0) {
creature->AddAura(23341, creature);
creature->SetName("Infernal " + creature->GetName());
} else if(irand == 1) {
creature->AddAura(34711, creature);
creature->SetName("Berserking " + creature->GetName());
} else {
creature->AddAura(774, creature);
creature->SetName("Blessed " + creature->GetName());
}
}
creature->SetAI(new MpScriptAI(creature));
MpLogger::debug("Creature AI debug info: {}", creature->GetAI()->GetDebugInfo());
}
// Cleanup the creature from custom data used for mythic+ mod

View File

@@ -2,6 +2,7 @@
#include "CreatureAI.h"
#include "CreatureHooks.h"
#include "MpLogger.h"
#include "MythicPlus.h"
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
@@ -14,12 +15,17 @@
class MpScriptAI : public BaseAI
{
Difficulty _difficulty;
MpDifficulty _difficulty;
public:
MpScriptAI(Creature* creature, Difficulty difficulty) : BaseAI(creature) {
MpScriptAI(Creature* creature, MpDifficulty difficulty) : BaseAI(creature) {
_difficulty = difficulty;
}
MpScriptAI(Creature* creature) : BaseAI(creature) {
_difficulty = MpDifficulty::MP_DIFFICULTY_MYTHIC;
}
void JustDied(Unit* killer) override {
MpLogger::debug("***** MythicPlus Script AI JustDied() for creature: ", me->GetEntry());

View File

@@ -5,6 +5,9 @@
#include "ScriptMgr.h"
#include "Group.h"
#include "Unit.h"
#include "WorldPacket.h"
#include "UpdateMask.h"
#include "MpScriptAI.h"
#include <algorithm>
#include <cmath>
@@ -175,6 +178,26 @@ void MythicPlus::AddScaledCreature(Creature* creature, MpInstanceData* instanceD
ScaleCreature(level, creature, &instanceData->creature, instanceData->difficulty);
}
// Update AI now the creature has been scaled.
auto ai = new MpScriptAI(creature, instanceData->difficulty);
creature->SetAI(ai);
std::string name = creature->GetName();
// Assign random affix for now.
if (roll_chance_i(50)) {
uint32 irand = urand(0, 2);
if(irand == 0) {
creature->AddAura(23341, creature);
} else if(irand == 1) {
creature->AddAura(34711, creature);
} else {
creature->AddAura(774, creature);
}
}
creatureData.SetScaled(true);
sMpDataStore->AddCreatureData(creature->GetGUID(), creatureData);
@@ -482,6 +505,7 @@ int32 MythicPlus::ScaleHealSpell(SpellInfo const * spellInfo, MpCreatureData* cr
return pow((totalHeal / originalHp) * currentHealth, 0.8f) * healMultiplier;
}
/**
* Function is copied because was not accessible in core creature class
*/