Core: Update to 10.2.0
Port From (https://github.com/TrinityCore/TrinityCore/commit/1eea1d11b14d2ae065ab0f1888fba3b1ef03874f)
This commit is contained in:
@@ -153,6 +153,7 @@ namespace Game.Achievements
|
||||
case CriteriaType.DamageDealt:
|
||||
case CriteriaType.HealingDone:
|
||||
case CriteriaType.EarnArtifactXPForAzeriteItem:
|
||||
case CriteriaType.GainLevels:
|
||||
SetCriteriaProgress(criteria, miscValue1, referencePlayer, ProgressType.Accumulate);
|
||||
break;
|
||||
case CriteriaType.KillCreature:
|
||||
@@ -458,7 +459,7 @@ namespace Game.Achievements
|
||||
}
|
||||
else
|
||||
_startedCriteria[key] -= timeDiff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void StartCriteria(CriteriaStartEvent startEvent, uint entry, TimeSpan timeLost = default)
|
||||
@@ -799,6 +800,7 @@ namespace Game.Achievements
|
||||
case CriteriaType.CompleteAnyReplayQuest:
|
||||
case CriteriaType.BuyItemsFromVendors:
|
||||
case CriteriaType.SellItemsToVendors:
|
||||
case CriteriaType.GainLevels:
|
||||
return progress.Counter >= requiredAmount;
|
||||
case CriteriaType.EarnAchievement:
|
||||
case CriteriaType.CompleteQuest:
|
||||
@@ -932,6 +934,7 @@ namespace Game.Achievements
|
||||
case CriteriaType.CompleteAnyReplayQuest:
|
||||
case CriteriaType.BuyItemsFromVendors:
|
||||
case CriteriaType.SellItemsToVendors:
|
||||
case CriteriaType.GainLevels:
|
||||
if (miscValue1 == 0)
|
||||
return false;
|
||||
break;
|
||||
@@ -3291,6 +3294,15 @@ namespace Game.Achievements
|
||||
case 149: // Shadowlands Season 2 End
|
||||
// timestamp = unknown
|
||||
break;
|
||||
case 349: // Dragonflight Season 3 Start (pre-season)
|
||||
eventTimestamp = 1699340400L; // November 7, 2023 8:00
|
||||
break;
|
||||
case 350: // Dragonflight Season 3 Start
|
||||
eventTimestamp = 1699945200L; // November 14, 2023 8:00
|
||||
break;
|
||||
case 352: // Dragonflight Season 3 End
|
||||
// eventTimestamp = time_t(); unknown
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -3668,6 +3680,13 @@ namespace Game.Achievements
|
||||
if (referencePlayer.GetPositionZ() >= reqValue)
|
||||
return false;
|
||||
break;
|
||||
case ModifierTreeType.PlayerIsOnMapWithExpansion: // 380
|
||||
{
|
||||
var mapEntry = referencePlayer.GetMap().GetEntry();
|
||||
if (mapEntry.ExpansionID != reqValue)
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
@@ -3706,8 +3725,8 @@ namespace Game.Achievements
|
||||
MultiMap<uint, Criteria>[] _scenarioCriteriasByTypeAndScenarioId = new MultiMap<uint, Criteria>[(int)CriteriaType.Count];
|
||||
MultiMap<CriteriaType, Criteria> _questObjectiveCriteriasByType = new();
|
||||
|
||||
MultiMap<int, Criteria>[] _criteriasByStartEvent = new MultiMap<int, Criteria>[(int)CriteriaStartEvent.Max];
|
||||
MultiMap<int, Criteria>[] _criteriasByFailEvent = new MultiMap<int, Criteria>[(int)CriteriaFailEvent.Max];
|
||||
MultiMap<int, Criteria>[] _criteriasByStartEvent = new MultiMap<int, Criteria>[(int)CriteriaStartEvent.Count];
|
||||
MultiMap<int, Criteria>[] _criteriasByFailEvent = new MultiMap<int, Criteria>[(int)CriteriaFailEvent.Count];
|
||||
|
||||
CriteriaManager()
|
||||
{
|
||||
@@ -3717,10 +3736,10 @@ namespace Game.Achievements
|
||||
_scenarioCriteriasByTypeAndScenarioId[i] = new MultiMap<uint, Criteria>();
|
||||
}
|
||||
|
||||
for (var i = 0; i < (int)CriteriaStartEvent.Max; ++i)
|
||||
for (var i = 0; i < (int)CriteriaStartEvent.Count; ++i)
|
||||
_criteriasByStartEvent[i] = new();
|
||||
|
||||
for (var i = 0; i < (int)CriteriaFailEvent.Max; ++i)
|
||||
for (var i = 0; i < (int)CriteriaFailEvent.Count; ++i)
|
||||
_criteriasByFailEvent[i] = new();
|
||||
|
||||
}
|
||||
@@ -3836,7 +3855,7 @@ namespace Game.Achievements
|
||||
_criteriaTreeByCriteria.Add(pair.Value.Entry.CriteriaID, pair.Value);
|
||||
}
|
||||
|
||||
for (var i = 0; i < (int)CriteriaFailEvent.Max; ++i)
|
||||
for (var i = 0; i < (int)CriteriaFailEvent.Count; ++i)
|
||||
_criteriasByFailEvent[i] = new MultiMap<int, Criteria>();
|
||||
|
||||
// Load criteria
|
||||
@@ -3846,10 +3865,9 @@ namespace Game.Achievements
|
||||
uint questObjectiveCriterias = 0;
|
||||
foreach (CriteriaRecord criteriaEntry in CliDB.CriteriaStorage.Values)
|
||||
{
|
||||
Cypher.Assert(criteriaEntry.Type < CriteriaType.Count,
|
||||
$"CRITERIA_TYPE_TOTAL must be greater than or equal to {criteriaEntry.Type + 1} but is currently equal to {CriteriaType.Count}");
|
||||
Cypher.Assert(criteriaEntry.StartEvent < (byte)CriteriaStartEvent.Max, $"CRITERIA_TYPE_TOTAL must be greater than or equal to {criteriaEntry.StartEvent + 1} but is currently equal to {CriteriaStartEvent.Max}");
|
||||
Cypher.Assert(criteriaEntry.FailEvent < (byte)CriteriaFailEvent.Max, $"CRITERIA_CONDITION_MAX must be greater than or equal to {criteriaEntry.FailEvent + 1} but is currently equal to {CriteriaFailEvent.Max}");
|
||||
Cypher.Assert(criteriaEntry.Type < CriteriaType.Count, $"CriteriaType.Count must be greater than or equal to {criteriaEntry.Type + 1} but is currently equal to {CriteriaType.Count}");
|
||||
Cypher.Assert(criteriaEntry.StartEvent < (byte)CriteriaStartEvent.Count, $"CriteriaStartEvent.Count must be greater than or equal to {criteriaEntry.StartEvent + 1} but is currently equal to {CriteriaStartEvent.Count}");
|
||||
Cypher.Assert(criteriaEntry.FailEvent < (byte)CriteriaFailEvent.Count, $"CriteriaFailEvent.Count must be greater than or equal to {criteriaEntry.FailEvent + 1} but is currently equal to {CriteriaFailEvent.Count}");
|
||||
|
||||
var treeList = _criteriaTreeByCriteria.LookupByKey(criteriaEntry.Id);
|
||||
if (treeList.Empty())
|
||||
@@ -4086,7 +4104,7 @@ namespace Game.Achievements
|
||||
{
|
||||
return _criteriasByFailEvent[(int)failEvent].LookupByKey(asset);
|
||||
}
|
||||
|
||||
|
||||
public List<Criteria> GetGuildCriteriaByType(CriteriaType type)
|
||||
{
|
||||
return _guildCriteriasByType.LookupByKey(type);
|
||||
|
||||
Reference in New Issue
Block a user