mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Scripts/Tirisfal: Implement Quest: "A Legend You Can Hold" (#31110)
This commit is contained in:
@@ -15,6 +15,59 @@
|
||||
* with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "Player.h"
|
||||
#include "PlayerChoice.h"
|
||||
|
||||
enum ALegendYouCanHoldPriest
|
||||
{
|
||||
// Spells
|
||||
SPELL_FORCE_HOLY_SPEC = 199701,
|
||||
SPELL_FORCE_SHADOW_SPEC = 199703,
|
||||
SPELL_FORCE_DISCIPLINE_SPEC = 199704,
|
||||
SPELL_PLAYERCHOICE_REMOVE_TRACKING_QUESTS_PRIEST = 199699,
|
||||
|
||||
// Playerchoices
|
||||
PLAYERCHOICE_RESPONSE_CHOOSE_HOLY_WEAPON = 532,
|
||||
PLAYERCHOICE_RESPONSE_CHOOSE_SHADOW_WEAPON = 533,
|
||||
PLAYERCHOICE_RESPONSE_CHOOSE_DISCIPLINE = 534
|
||||
};
|
||||
|
||||
// 248 - Playerchoice
|
||||
class playerchoice_a_weapon_you_can_hold_priest : public PlayerChoiceScript
|
||||
{
|
||||
public:
|
||||
playerchoice_a_weapon_you_can_hold_priest() : PlayerChoiceScript("playerchoice_a_weapon_you_can_hold_priest") {}
|
||||
|
||||
void OnResponse(WorldObject* /*object*/, Player* player, PlayerChoice const* /*choice*/, PlayerChoiceResponse const* response, uint16 /*clientIdentifier*/)
|
||||
{
|
||||
if (response->ResponseId == PLAYERCHOICE_RESPONSE_CHOOSE_HOLY_WEAPON)
|
||||
player->CastSpell(player, SPELL_FORCE_HOLY_SPEC, CastSpellExtraArgsInit{ .TriggerFlags = TRIGGERED_FULL_MASK });
|
||||
else if (response->ResponseId == PLAYERCHOICE_RESPONSE_CHOOSE_SHADOW_WEAPON)
|
||||
player->CastSpell(player, SPELL_FORCE_SHADOW_SPEC, CastSpellExtraArgsInit{ .TriggerFlags = TRIGGERED_FULL_MASK });
|
||||
else if (response->ResponseId == PLAYERCHOICE_RESPONSE_CHOOSE_DISCIPLINE)
|
||||
player->CastSpell(player, SPELL_FORCE_DISCIPLINE_SPEC, CastSpellExtraArgsInit{ .TriggerFlags = TRIGGERED_FULL_MASK });
|
||||
}
|
||||
};
|
||||
|
||||
// 40706 - A Legend You Can Hold
|
||||
class quest_a_legend_you_can_hold : public QuestScript
|
||||
{
|
||||
public:
|
||||
quest_a_legend_you_can_hold() : QuestScript("quest_a_legend_you_can_hold") {}
|
||||
|
||||
void OnQuestStatusChange(Player* player, Quest const* /*quest*/, QuestStatus /*oldStatus*/, QuestStatus newStatus) override
|
||||
{
|
||||
if (newStatus == QUEST_STATUS_NONE)
|
||||
player->CastSpell(player, SPELL_PLAYERCHOICE_REMOVE_TRACKING_QUESTS_PRIEST, CastSpellExtraArgsInit{ .TriggerFlags = TRIGGERED_FULL_MASK });
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_tirisfal_glades()
|
||||
{
|
||||
// Playerchoice
|
||||
new playerchoice_a_weapon_you_can_hold_priest();
|
||||
|
||||
// Quest
|
||||
new quest_a_legend_you_can_hold();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user