feat(Core/LFG): Implemented LFG_OPTION_ENABLE_SEASONAL_BOSSES. (#8219)
Closes #8098
This commit is contained in:
@@ -272,7 +272,7 @@ namespace lfg
|
|||||||
|
|
||||||
void LFGMgr::Update(uint32 tdiff, uint8 task)
|
void LFGMgr::Update(uint32 tdiff, uint8 task)
|
||||||
{
|
{
|
||||||
if (!isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
if (!isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (task == 0)
|
if (task == 0)
|
||||||
@@ -394,6 +394,8 @@ namespace lfg
|
|||||||
LfgDungeonSet const& dungeons = GetDungeonsByRandom(0);
|
LfgDungeonSet const& dungeons = GetDungeonsByRandom(0);
|
||||||
LfgLockMap lock;
|
LfgLockMap lock;
|
||||||
|
|
||||||
|
bool onlySeasonalBosses = m_options == LFG_OPTION_ENABLE_SEASONAL_BOSSES;
|
||||||
|
|
||||||
float avgItemLevel = player->GetAverageItemLevelForDF();
|
float avgItemLevel = player->GetAverageItemLevelForDF();
|
||||||
|
|
||||||
for (LfgDungeonSet::const_iterator it = dungeons.begin(); it != dungeons.end(); ++it)
|
for (LfgDungeonSet::const_iterator it = dungeons.begin(); it != dungeons.end(); ++it)
|
||||||
@@ -405,7 +407,7 @@ namespace lfg
|
|||||||
DungeonProgressionRequirements const* ar = sObjectMgr->GetAccessRequirement(dungeon->map, Difficulty(dungeon->difficulty));
|
DungeonProgressionRequirements const* ar = sObjectMgr->GetAccessRequirement(dungeon->map, Difficulty(dungeon->difficulty));
|
||||||
|
|
||||||
uint32 lockData = 0;
|
uint32 lockData = 0;
|
||||||
if (dungeon->expansion > expansion)
|
if (dungeon->expansion > expansion || (onlySeasonalBosses && !dungeon->seasonal))
|
||||||
lockData = LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION;
|
lockData = LFG_LOCKSTATUS_INSUFFICIENT_EXPANSION;
|
||||||
else if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, dungeon->map, player))
|
else if (DisableMgr::IsDisabledFor(DISABLE_TYPE_MAP, dungeon->map, player))
|
||||||
lockData = LFG_LOCKSTATUS_RAID_LOCKED;
|
lockData = LFG_LOCKSTATUS_RAID_LOCKED;
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ namespace lfg
|
|||||||
{
|
{
|
||||||
LFG_OPTION_ENABLE_DUNGEON_FINDER = 0x01,
|
LFG_OPTION_ENABLE_DUNGEON_FINDER = 0x01,
|
||||||
LFG_OPTION_ENABLE_RAID_BROWSER = 0x02,
|
LFG_OPTION_ENABLE_RAID_BROWSER = 0x02,
|
||||||
|
LFG_OPTION_ENABLE_SEASONAL_BOSSES = 0x04
|
||||||
};
|
};
|
||||||
|
|
||||||
enum LFGMgrEnum
|
enum LFGMgrEnum
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ namespace lfg
|
|||||||
|
|
||||||
void LFGPlayerScript::OnLevelChanged(Player* player, uint8 /*oldLevel*/)
|
void LFGPlayerScript::OnLevelChanged(Player* player, uint8 /*oldLevel*/)
|
||||||
{
|
{
|
||||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
sLFGMgr->InitializeLockedDungeons(player);
|
sLFGMgr->InitializeLockedDungeons(player);
|
||||||
@@ -44,7 +44,7 @@ namespace lfg
|
|||||||
|
|
||||||
void LFGPlayerScript::OnLogout(Player* player)
|
void LFGPlayerScript::OnLogout(Player* player)
|
||||||
{
|
{
|
||||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!player->GetGroup() || !player->GetGroup()->isLFGGroup())
|
if (!player->GetGroup() || !player->GetGroup()->isLFGGroup())
|
||||||
@@ -64,7 +64,7 @@ namespace lfg
|
|||||||
|
|
||||||
void LFGPlayerScript::OnLogin(Player* player)
|
void LFGPlayerScript::OnLogin(Player* player)
|
||||||
{
|
{
|
||||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Temporal: Trying to determine when group data and LFG data gets desynched
|
// Temporal: Trying to determine when group data and LFG data gets desynched
|
||||||
@@ -138,7 +138,7 @@ namespace lfg
|
|||||||
|
|
||||||
void LFGGroupScript::OnAddMember(Group* group, ObjectGuid guid)
|
void LFGGroupScript::OnAddMember(Group* group, ObjectGuid guid)
|
||||||
{
|
{
|
||||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ObjectGuid gguid = group->GetGUID();
|
ObjectGuid gguid = group->GetGUID();
|
||||||
@@ -183,7 +183,7 @@ namespace lfg
|
|||||||
(void)kicker;
|
(void)kicker;
|
||||||
(void)reason;
|
(void)reason;
|
||||||
|
|
||||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ObjectGuid gguid = group->GetGUID();
|
ObjectGuid gguid = group->GetGUID();
|
||||||
@@ -249,7 +249,7 @@ namespace lfg
|
|||||||
|
|
||||||
void LFGGroupScript::OnDisband(Group* group)
|
void LFGGroupScript::OnDisband(Group* group)
|
||||||
{
|
{
|
||||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ObjectGuid gguid = group->GetGUID();
|
ObjectGuid gguid = group->GetGUID();
|
||||||
@@ -264,7 +264,7 @@ namespace lfg
|
|||||||
|
|
||||||
void LFGGroupScript::OnChangeLeader(Group* group, ObjectGuid newLeaderGuid, ObjectGuid oldLeaderGuid)
|
void LFGGroupScript::OnChangeLeader(Group* group, ObjectGuid newLeaderGuid, ObjectGuid oldLeaderGuid)
|
||||||
{
|
{
|
||||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ObjectGuid gguid = group->GetGUID();
|
ObjectGuid gguid = group->GetGUID();
|
||||||
@@ -283,7 +283,7 @@ namespace lfg
|
|||||||
// used only with EXTRA_LOGS
|
// used only with EXTRA_LOGS
|
||||||
(void)guid;
|
(void)guid;
|
||||||
|
|
||||||
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER))
|
if (!sLFGMgr->isOptionEnabled(LFG_OPTION_ENABLE_DUNGEON_FINDER | LFG_OPTION_ENABLE_RAID_BROWSER | LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ObjectGuid gguid = group->GetGUID();
|
ObjectGuid gguid = group->GetGUID();
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ void BuildPartyLockDungeonBlock(WorldPacket& data, const lfg::LfgLockPartyMap& l
|
|||||||
|
|
||||||
void WorldSession::HandleLfgJoinOpcode(WorldPacket& recvData)
|
void WorldSession::HandleLfgJoinOpcode(WorldPacket& recvData)
|
||||||
{
|
{
|
||||||
if (!sLFGMgr->isOptionEnabled(lfg::LFG_OPTION_ENABLE_DUNGEON_FINDER | lfg::LFG_OPTION_ENABLE_RAID_BROWSER))
|
if (!sLFGMgr->isOptionEnabled(lfg::LFG_OPTION_ENABLE_DUNGEON_FINDER | lfg::LFG_OPTION_ENABLE_RAID_BROWSER | lfg::LFG_OPTION_ENABLE_SEASONAL_BOSSES))
|
||||||
{
|
{
|
||||||
recvData.rfinish();
|
recvData.rfinish();
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1320,7 +1320,7 @@ void World::LoadConfigSettings(bool reload)
|
|||||||
m_int_configs[CONFIG_WARDEN_CLIENT_RESPONSE_DELAY] = sConfigMgr->GetOption<int32>("Warden.ClientResponseDelay", 600);
|
m_int_configs[CONFIG_WARDEN_CLIENT_RESPONSE_DELAY] = sConfigMgr->GetOption<int32>("Warden.ClientResponseDelay", 600);
|
||||||
|
|
||||||
// Dungeon finder
|
// Dungeon finder
|
||||||
m_int_configs[CONFIG_LFG_OPTIONSMASK] = sConfigMgr->GetOption<int32>("DungeonFinder.OptionsMask", 3);
|
m_int_configs[CONFIG_LFG_OPTIONSMASK] = sConfigMgr->GetOption<int32>("DungeonFinder.OptionsMask", 5);
|
||||||
|
|
||||||
// Max instances per hour
|
// Max instances per hour
|
||||||
m_int_configs[CONFIG_MAX_INSTANCES_PER_HOUR] = sConfigMgr->GetOption<int32>("AccountInstancesPerHour", 5);
|
m_int_configs[CONFIG_MAX_INSTANCES_PER_HOUR] = sConfigMgr->GetOption<int32>("AccountInstancesPerHour", 5);
|
||||||
|
|||||||
@@ -1248,9 +1248,11 @@ DeletedCharacterTicketTrace = 0
|
|||||||
# Value is a bitmask consisting of:
|
# Value is a bitmask consisting of:
|
||||||
# LFG_OPTION_ENABLE_DUNGEON_FINDER = 1, Enable the dungeon finder browser
|
# LFG_OPTION_ENABLE_DUNGEON_FINDER = 1, Enable the dungeon finder browser
|
||||||
# LFG_OPTION_ENABLE_RAID_BROWSER = 2, Enable the raid browser
|
# LFG_OPTION_ENABLE_RAID_BROWSER = 2, Enable the raid browser
|
||||||
# Default: 1
|
# LFG_OPTION_ENABLE_SEASONAL_BOSSES = 4, Enable seasonal bosses
|
||||||
|
|
||||||
DungeonFinder.OptionsMask = 1
|
# Default: 5
|
||||||
|
|
||||||
|
DungeonFinder.OptionsMask = 5
|
||||||
|
|
||||||
#
|
#
|
||||||
# AccountInstancesPerHour
|
# AccountInstancesPerHour
|
||||||
|
|||||||
Reference in New Issue
Block a user