Core/Maps: Replaced spawnmask with difficulty list
This commit is contained in:
@@ -276,9 +276,6 @@ namespace Game.Conditions
|
||||
if (player != null)
|
||||
condMeets = player.HasTitle(ConditionValue1);
|
||||
break;
|
||||
case ConditionTypes.Spawnmask:
|
||||
condMeets = Convert.ToBoolean((1ul << (int)obj.GetMap().GetSpawnMode()) & ConditionValue1);
|
||||
break;
|
||||
case ConditionTypes.UnitState:
|
||||
if (unit != null)
|
||||
condMeets = unit.HasUnitState((UnitState)ConditionValue1);
|
||||
@@ -372,6 +369,11 @@ namespace Game.Conditions
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ConditionTypes.DifficultyId:
|
||||
{
|
||||
condMeets = (uint)obj.GetMap().GetDifficultyID() == ConditionValue1;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
condMeets = false;
|
||||
break;
|
||||
@@ -397,20 +399,20 @@ namespace Game.Conditions
|
||||
GridMapTypeMask mask = 0;
|
||||
switch (ConditionType)
|
||||
{
|
||||
case ConditionTypes.DistanceTo:
|
||||
case ConditionTypes.WorldState:
|
||||
case ConditionTypes.PhaseId:
|
||||
case ConditionTypes.Spawnmask:
|
||||
case ConditionTypes.NearCreature:
|
||||
case ConditionTypes.NearGameobject:
|
||||
case ConditionTypes.ActiveEvent:
|
||||
case ConditionTypes.Areaid:
|
||||
case ConditionTypes.DifficultyId:
|
||||
case ConditionTypes.DistanceTo:
|
||||
case ConditionTypes.InstanceInfo:
|
||||
case ConditionTypes.Mapid:
|
||||
case ConditionTypes.Areaid:
|
||||
case ConditionTypes.NearCreature:
|
||||
case ConditionTypes.NearGameobject:
|
||||
case ConditionTypes.None:
|
||||
case ConditionTypes.Zoneid:
|
||||
case ConditionTypes.TerrainSwap:
|
||||
case ConditionTypes.PhaseId:
|
||||
case ConditionTypes.RealmAchievement:
|
||||
case ConditionTypes.TerrainSwap:
|
||||
case ConditionTypes.WorldState:
|
||||
case ConditionTypes.Zoneid:
|
||||
mask |= GridMapTypeMask.All;
|
||||
break;
|
||||
case ConditionTypes.Gender:
|
||||
|
||||
@@ -1491,15 +1491,10 @@ namespace Game
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ConditionTypes.Spawnmask:
|
||||
case ConditionTypes.SpawnmaskDeprecated:
|
||||
{
|
||||
// @todo: ConditionValue need to be extended to uint64
|
||||
if ((ulong)cond.ConditionValue1 > 1ul << (int)SpawnMask.RaidAll)
|
||||
{
|
||||
Log.outError(LogFilter.Sql, "{0} has non existing SpawnMask in value1 ({1}), skipped.", cond.ToString(true), cond.ConditionValue1);
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
Log.outError(LogFilter.Sql, $"{cond.ToString(true)} using deprecated condition type CONDITION_SPAWNMASK.");
|
||||
return false;
|
||||
}
|
||||
case ConditionTypes.UnitState:
|
||||
{
|
||||
@@ -1576,6 +1571,13 @@ namespace Game
|
||||
case ConditionTypes.Charmed:
|
||||
case ConditionTypes.Taxi:
|
||||
break;
|
||||
case ConditionTypes.DifficultyId:
|
||||
if (!CliDB.DifficultyStorage.ContainsKey(cond.ConditionValue1))
|
||||
{
|
||||
Log.outError(LogFilter.Sql, $"{cond.ToString(true)} has non existing difficulty in value1 ({cond.ConditionValue1}), skipped.");
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
Log.outError(LogFilter.Sql, $"{cond.ToString()} Invalid ConditionType in `condition` table, ignoring.");
|
||||
return false;
|
||||
|
||||
Reference in New Issue
Block a user