From 3a4097c9200cd7b5c3b0a3ad5c449817d96afe59 Mon Sep 17 00:00:00 2001 From: hondacrx Date: Tue, 11 May 2021 12:58:46 -0400 Subject: [PATCH] Core/Quests: Implement new quest objective types QUEST_OBJECTIVE_LEARNSPELL, QUEST_OBJECTIVE_AREA_TRIGGER_ENTER, QUEST_OBJECTIVE_AREA_TRIGGER_EXIT Port From (https://github.com/TrinityCore/TrinityCore/commit/254d5af7c2970620ae3bcecea4b7f1d65597f8b6) --- Source/Game/Entities/AreaTrigger/AreaTrigger.cs | 8 ++++++++ Source/Game/Entities/Player/Player.Quest.cs | 2 +- Source/Game/Entities/Player/Player.Spells.cs | 3 ++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Source/Game/Entities/AreaTrigger/AreaTrigger.cs b/Source/Game/Entities/AreaTrigger/AreaTrigger.cs index 74f88b271..e0f081eac 100644 --- a/Source/Game/Entities/AreaTrigger/AreaTrigger.cs +++ b/Source/Game/Entities/AreaTrigger/AreaTrigger.cs @@ -452,9 +452,13 @@ namespace Game.Entities { Player player = unit.ToPlayer(); if (player) + { if (player.IsDebugAreaTriggers) player.SendSysMessage(CypherStrings.DebugAreatriggerEntered, GetTemplate().Id); + player.UpdateQuestObjectiveProgress(QuestObjectiveType.AreaTriggerEnter, (int)GetEntry(), 1); + } + DoActions(unit); _ai.OnUnitEnter(unit); @@ -467,9 +471,13 @@ namespace Game.Entities { Player player = leavingUnit.ToPlayer(); if (player) + { if (player.IsDebugAreaTriggers) player.SendSysMessage(CypherStrings.DebugAreatriggerLeft, GetTemplate().Id); + player.UpdateQuestObjectiveProgress(QuestObjectiveType.AreaTriggerExit, (int)GetEntry(), 1); + } + UndoActions(leavingUnit); _ai.OnUnitExit(leavingUnit); diff --git a/Source/Game/Entities/Player/Player.Quest.cs b/Source/Game/Entities/Player/Player.Quest.cs index 569e8a726..96c831c59 100644 --- a/Source/Game/Entities/Player/Player.Quest.cs +++ b/Source/Game/Entities/Player/Player.Quest.cs @@ -2268,7 +2268,7 @@ namespace Game.Entities UpdateQuestObjectiveProgress(QuestObjectiveType.ObtainCurrency, (int)currencyId, change); } - void UpdateQuestObjectiveProgress(QuestObjectiveType objectiveType, int objectId, long addCount, ObjectGuid victimGuid = default) + public void UpdateQuestObjectiveProgress(QuestObjectiveType objectiveType, int objectId, long addCount, ObjectGuid victimGuid = default) { bool anyObjectiveChangedCompletionState = false; diff --git a/Source/Game/Entities/Player/Player.Spells.cs b/Source/Game/Entities/Player/Player.Spells.cs index 52a9a5623..62d8d6231 100644 --- a/Source/Game/Entities/Player/Player.Spells.cs +++ b/Source/Game/Entities/Player/Player.Spells.cs @@ -2072,7 +2072,8 @@ namespace Game.Entities LearnSpell(id, false, fromSkill); } } - + else + UpdateQuestObjectiveProgress(QuestObjectiveType.LearnSpell, (int)spellId, 1); } public void RemoveSpell(uint spellId, bool disabled = false, bool learnLowRank = true, bool suppressMessaging = false)