Core/Achievements: Fixed achievement criteria StartEvent and FailEvent

* Criteria using StartEvent cannot be updated without that event triggering first (not only for timed achievements)
* Implemented most StartEvent and FailEvent types
* Fixed saving criteria removed by RemoveCriteriaProgress
Port From (https://github.com/TrinityCore/TrinityCore/commit/41a20b1e4008d450d075847ef1fe367f0e3a240f)
This commit is contained in:
hondacrx
2024-01-30 10:22:01 -05:00
parent 902b217d88
commit a1cb1d95ee
16 changed files with 148 additions and 211 deletions
+5
View File
@@ -476,6 +476,8 @@ namespace Game.Groups
if (IsRaidGroup())
player.UpdateVisibleGameobjectsOrSpellClicks();
player.FailCriteria(CriteriaFailEvent.ModifyPartyStatus, 0);
{
// Broadcast new player group member fields to rest of the group
UpdateData groupData = new(player.GetMapId());
@@ -544,6 +546,9 @@ namespace Game.Groups
if (IsLFGGroup() && method == RemoveMethod.Kick)
return m_memberSlots.Count != 0;
if (player != null)
player.FailCriteria(CriteriaFailEvent.ModifyPartyStatus, 0);
// remove member and change leader (if need) only if strong more 2 members _before_ member remove (BG/BF allow 1 member group)
if (GetMembersCount() > ((IsBGGroup() || IsLFGGroup() || IsBFGroup()) ? 1 : 2))
{