mirror of
https://github.com/araxiaonline/mod-mythic-plus.git
synced 2026-06-13 03:02:24 -04:00
added changes to include difficulty into ai object
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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());
|
||||
|
||||
|
||||
@@ -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
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user