feat(Core/Conditions): CONDITION_DIFFICULTY_ID (#10332)

This commit is contained in:
IntelligentQuantum
2022-02-04 20:13:31 +03:30
committed by GitHub
parent 01c0d046ff
commit e85e556d19
2 changed files with 19 additions and 5 deletions

View File

@@ -420,6 +420,11 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo)
condMeets = unit->HasAuraType(AuraType(ConditionValue1));
break;
}
case CONDITION_DIFFICULTY_ID:
{
condMeets = object->GetMap()->GetDifficulty() == ConditionValue1;
break;
}
case CONDITION_PET_TYPE:
{
if (Player* player = object->ToPlayer())
@@ -624,6 +629,9 @@ uint32 Condition::GetSearcherTypeMaskForCondition()
case CONDITION_HAS_AURA_TYPE:
mask |= GRID_MAP_TYPE_MASK_CREATURE | GRID_MAP_TYPE_MASK_PLAYER;
break;
case CONDITION_DIFFICULTY_ID:
mask |= GRID_MAP_TYPE_MASK_ALL;
break;
case CONDITION_PET_TYPE:
mask |= GRID_MAP_TYPE_MASK_PLAYER;
break;
@@ -1687,7 +1695,6 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
switch (cond->ConditionType)
{
case CONDITION_TERRAIN_SWAP:
case CONDITION_DIFFICULTY_ID:
LOG_ERROR("sql.sql", "SourceEntry {} in `condition` table has a ConditionType that is not supported on 3.3.5a ({}), ignoring.", cond->SourceEntry, uint32(cond->ConditionType));
return false;
case CONDITION_STAND_STATE:
@@ -2274,6 +2281,13 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
}
break;
}
case CONDITION_DIFFICULTY_ID:
if (cond->ConditionValue1 >= MAX_DIFFICULTY)
{
LOG_ERROR("sql.sql", "CONDITION_DIFFICULTY_ID has non existing difficulty in value1 ({}), skipped.", cond->ConditionValue1);
return false;
}
break;
case CONDITION_PET_TYPE:
if (cond->ConditionValue1 >= (1 << MAX_PET_TYPE))
{