mirror of
https://github.com/ZhengPeiRu21/mod-individual-progression
synced 2025-11-29 23:44:51 +08:00
Include config options from Progression System
This commit is contained in:
@@ -127,4 +127,25 @@ IndividualProgression.HunterPetLevelFix = 1
|
|||||||
# 0 - Disabled
|
# 0 - Disabled
|
||||||
#
|
#
|
||||||
|
|
||||||
IndividualProgression.RequirePreAQQuests = 1
|
IndividualProgression.RequirePreAQQuests = 1
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# IndividualProgression.MoltenCore.ManualRuneHandling
|
||||||
|
# Description: Defines whether Molten Core runes are handled manually (dousing through Aqual Quintessence) or automatic when bosses are defeated (WotLK default)
|
||||||
|
# Default: 1 - Enabled (requires dousing)
|
||||||
|
# 0 - Disabled (automatic, handled when bosses are defeated)
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
IndividualProgression.MoltenCore.ManualRuneHandling = 1
|
||||||
|
|
||||||
|
#
|
||||||
|
# IndividualProgression.MoltenCore.AqualEssenceCooldownReduction
|
||||||
|
# Description: Reduces the cooldown of Eternal Quintessences by the amount specified.
|
||||||
|
# Default: 0 - Disabled (1 hour cooldown)
|
||||||
|
# 60 - (No cooldown)
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
IndividualProgression.MoltenCore.AqualEssenceCooldownReduction = 0
|
||||||
@@ -104,52 +104,6 @@ public:
|
|||||||
{
|
{
|
||||||
Talk(SAY_AGGRO);
|
Talk(SAY_AGGRO);
|
||||||
|
|
||||||
if (sConfigMgr->GetOption<int>("ProgressionSystem.60.WorldBosses.KazzakPhasing", 1))
|
|
||||||
{
|
|
||||||
me->SetPhaseMask(PHASE_OUTRO, true);
|
|
||||||
|
|
||||||
if (Player* player = who->ToPlayer())
|
|
||||||
{
|
|
||||||
PhaseOutPlayers(player, PHASE_OUTRO);
|
|
||||||
_playerOwnerGUID = player->GetGUID();
|
|
||||||
}
|
|
||||||
else if (Player* player = who->GetCharmerOrOwnerPlayerOrPlayerItself())
|
|
||||||
{
|
|
||||||
PhaseOutPlayers(player, PHASE_OUTRO);
|
|
||||||
_playerOwnerGUID = player->GetGUID();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void PhaseOutPlayers(Player* source, uint8 phase)
|
|
||||||
{
|
|
||||||
if (Group* group = source->GetGroup())
|
|
||||||
{
|
|
||||||
for (GroupReference* itr = group->GetFirstMember(); itr != nullptr; itr = itr->next())
|
|
||||||
{
|
|
||||||
Player* groupGuy = itr->GetSource();
|
|
||||||
if (!groupGuy)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!groupGuy->IsInWorld())
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!groupGuy->IsWithinDist(me, 500.0f))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
groupGuy->SetPhaseMask(phase, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
source->SetPhaseMask(phase, true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void KilledUnit(Unit* /*victim*/) override
|
void KilledUnit(Unit* /*victim*/) override
|
||||||
@@ -163,32 +117,12 @@ public:
|
|||||||
Talk(SAY_WIPE);
|
Talk(SAY_WIPE);
|
||||||
ScriptedAI::EnterEvadeMode(why);
|
ScriptedAI::EnterEvadeMode(why);
|
||||||
|
|
||||||
if (sConfigMgr->GetOption<int>("ProgressionSystem.60.WorldBosses.KazzakPhasing", 1))
|
|
||||||
{
|
|
||||||
me->SetPhaseMask(PHASE_NORMAL, true);
|
|
||||||
|
|
||||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(_playerOwnerGUID))
|
|
||||||
{
|
|
||||||
PhaseOutPlayers(player, PHASE_NORMAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
_playerOwnerGUID.Clear();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustDied(Unit* /*killer*/) override
|
void JustDied(Unit* /*killer*/) override
|
||||||
{
|
{
|
||||||
Talk(SAY_DEATH);
|
Talk(SAY_DEATH);
|
||||||
|
|
||||||
if (sConfigMgr->GetOption<int>("ProgressionSystem.60.WorldBosses.KazzakPhasing", 1))
|
|
||||||
{
|
|
||||||
if (Player* player = ObjectAccessor::FindConnectedPlayer(_playerOwnerGUID))
|
|
||||||
{
|
|
||||||
me->SetPhaseMask(PHASE_NORMAL, true);
|
|
||||||
PhaseOutPlayers(player, PHASE_NORMAL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
me->SetRespawnTime(urand(2 * DAY, 3 * DAY));
|
me->SetRespawnTime(urand(2 * DAY, 3 * DAY));
|
||||||
me->SaveRespawnTime();
|
me->SaveRespawnTime();
|
||||||
}
|
}
|
||||||
@@ -257,7 +191,6 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
EventMap _events;
|
EventMap _events;
|
||||||
ObjectGuid _playerOwnerGUID;
|
|
||||||
bool _supremeMode;
|
bool _supremeMode;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ public:
|
|||||||
{
|
{
|
||||||
if (GameObject* rune = instance->GetGameObject(_runesGUIDs[bossId]))
|
if (GameObject* rune = instance->GetGameObject(_runesGUIDs[bossId]))
|
||||||
{
|
{
|
||||||
if (sConfigMgr->GetOption<int>("ProgressionSystem.60.MoltenCore.ManualRuneHandling", 1))
|
if (sConfigMgr->GetOption<int>("IndividualProgression.MoltenCore.ManualRuneHandling", 1))
|
||||||
{
|
{
|
||||||
rune->SetGoState(GO_STATE_ACTIVE);
|
rune->SetGoState(GO_STATE_ACTIVE);
|
||||||
rune->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
rune->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);
|
||||||
@@ -432,7 +432,7 @@ public:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sConfigMgr->GetOption<int>("ProgressionSystem.60.MoltenCore.ManualRuneHandling", 1))
|
if (sConfigMgr->GetOption<int>("IndividualProgression.MoltenCore.ManualRuneHandling", 1))
|
||||||
{
|
{
|
||||||
return CheckFirelordRunes();
|
return CheckFirelordRunes();
|
||||||
}
|
}
|
||||||
@@ -556,7 +556,7 @@ public:
|
|||||||
|
|
||||||
if (uint32 cooldown = player->GetSpellCooldownDelay(SPELL_AQUAL_QUINTESSENCE))
|
if (uint32 cooldown = player->GetSpellCooldownDelay(SPELL_AQUAL_QUINTESSENCE))
|
||||||
{
|
{
|
||||||
int32 cooldownredux = sConfigMgr->GetOption<int>("ProgressionSystem.60.MoltenCore.AqualEssenceCooldownReduction", 0);
|
int32 cooldownredux = sConfigMgr->GetOption<int>("IndividualProgression.MoltenCore.AqualEssenceCooldownReduction", 0);
|
||||||
player->ModifySpellCooldown(SPELL_AQUAL_QUINTESSENCE, -(cooldownredux * MINUTE * IN_MILLISECONDS));
|
player->ModifySpellCooldown(SPELL_AQUAL_QUINTESSENCE, -(cooldownredux * MINUTE * IN_MILLISECONDS));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user