TrinityCore
childrens_week.cpp
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "ScriptMgr.h"
19#include "Containers.h"
20#include "MotionMaster.h"
21#include "ObjectAccessor.h"
22#include "Player.h"
23#include "ScriptedCreature.h"
24#include "SpellAuras.h"
25
27{
32 ORPHAN_HUMAN = 14305,
33 ORPHAN_ORCISH = 14444
34};
35
37{
52
58 // 6 - 9 used in Nesingwary script
63
66
69
72
75};
76
78{
107
109{
117
126 NPC_KRASUS = 27990
128
130{
133
134 DISPLAY_INVISIBLE = 11686
136
138{
139 if (Aura* orphanOut = player->GetAura(SPELL_ORPHAN_OUT))
140 if (orphanOut->GetCaster() && orphanOut->GetCaster()->GetEntry() == orphan)
141 return orphanOut->GetCaster()->GetGUID();
142
143 return ObjectGuid::Empty;
144}
145
146/*######
147## npc_winterfin_playmate
148######*/
150{
151 public:
152 npc_winterfin_playmate() : CreatureScript("npc_winterfin_playmate") { }
153
155 {
157 {
158 Initialize();
159 }
160
162 {
163 timer = 0;
164 phase = 0;
167 }
168
169 void Reset() override
170 {
171 Initialize();
172 }
173
174 void MoveInLineOfSight(Unit* who) override
175 {
176 if (!phase && who && who->GetDistance2d(me) < 10.0f)
177 if (Player* player = who->ToPlayer())
178 if (player->GetQuestStatus(QUEST_PLAYMATE_ORACLE) == QUEST_STATUS_INCOMPLETE)
179 {
180 playerGUID = player->GetGUID();
182 if (!orphanGUID.IsEmpty())
183 phase = 1;
184 }
185 }
186
187 void UpdateAI(uint32 diff) override
188 {
189 if (!phase)
190 return;
191
192 if (timer <= diff)
193 {
196
197 if (!orphan || !player)
198 {
199 Reset();
200 return;
201 }
202
203 switch (phase)
204 {
205 case 1:
206 orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + std::cos(me->GetOrientation()) * 5, me->GetPositionY() + std::sin(me->GetOrientation()) * 5, me->GetPositionZ());
207 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_1);
208 timer = 3000;
209 break;
210 case 2:
211 orphan->SetFacingToObject(me);
214 timer = 3000;
215 break;
216 case 3:
217 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_2);
218 timer = 3000;
219 break;
220 case 4:
222 timer = 5000;
223 break;
224 case 5:
225 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_3);
229 Reset();
230 return;
231 }
232 ++phase;
233 }
234 else
235 timer -= diff;
236 }
237
238 private:
243
244 };
245
246 CreatureAI* GetAI(Creature* creature) const override
247 {
248 return new npc_winterfin_playmateAI(creature);
249 }
250};
251
252/*######
253## npc_snowfall_glade_playmate
254######*/
256{
257 public:
258 npc_snowfall_glade_playmate() : CreatureScript("npc_snowfall_glade_playmate") { }
259
261 {
263 {
264 Initialize();
265 }
266
268 {
269 timer = 0;
270 phase = 0;
273 }
274
275 void Reset() override
276 {
277 Initialize();
278 }
279
280 void MoveInLineOfSight(Unit* who) override
281
282 {
283 if (!phase && who && who->GetDistance2d(me) < 10.0f)
284 if (Player* player = who->ToPlayer())
285 if (player->GetQuestStatus(QUEST_PLAYMATE_WOLVAR) == QUEST_STATUS_INCOMPLETE)
286 {
287 playerGUID = player->GetGUID();
289 if (!orphanGUID.IsEmpty())
290 phase = 1;
291 }
292 }
293
294 void UpdateAI(uint32 diff) override
295 {
296 if (!phase)
297 return;
298
299 if (timer <= diff)
300 {
303
304 if (!orphan || !player)
305 {
306 Reset();
307 return;
308 }
309
310 switch (phase)
311 {
312 case 1:
313 orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + std::cos(me->GetOrientation()) * 5, me->GetPositionY() + std::sin(me->GetOrientation()) * 5, me->GetPositionZ());
314 orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_1);
315 timer = 5000;
316 break;
317 case 2:
318 orphan->SetFacingToObject(me);
320 DoCast(orphan, SPELL_SNOWBALL);
321 timer = 5000;
322 break;
323 case 3:
325 timer = 5000;
326 break;
327 case 4:
328 orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_2);
329 orphan->CastSpell(me, SPELL_SNOWBALL);
330 timer = 5000;
331 break;
332 case 5:
333 orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_3);
336 Reset();
337 return;
338 }
339 ++phase;
340 }
341 else
342 timer -= diff;
343 }
344
345 private:
350 };
351
352 CreatureAI* GetAI(Creature* pCreature) const override
353 {
354 return new npc_snowfall_glade_playmateAI(pCreature);
355 }
356};
357
358/*######
359## npc_the_biggest_tree
360######*/
362{
363 public:
364 npc_the_biggest_tree() : CreatureScript("npc_the_biggest_tree") { }
365
367 {
369 {
370 Initialize();
372 }
373
375 {
376 timer = 1000;
377 phase = 0;
380 }
381
382 void Reset() override
383 {
384 Initialize();
385 }
386
387 void MoveInLineOfSight(Unit* who) override
388 {
389 if (!phase && who && who->GetDistance2d(me) < 10.0f)
390 if (Player* player = who->ToPlayer())
391 if (player->GetQuestStatus(QUEST_THE_BIGGEST_TREE_EVER) == QUEST_STATUS_INCOMPLETE)
392 {
393 playerGUID = player->GetGUID();
395 if (!orphanGUID.IsEmpty())
396 phase = 1;
397 }
398 }
399
400 void UpdateAI(uint32 diff) override
401 {
402 if (!phase)
403 return;
404
405 if (timer <= diff)
406 {
409
410 if (!orphan || !player)
411 {
412 Reset();
413 return;
414 }
415
416 switch (phase)
417 {
418 case 1:
419 orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + std::cos(me->GetOrientation()) * 5, me->GetPositionY() + std::sin(me->GetOrientation()) * 5, me->GetPositionZ());
420 timer = 2000;
421 break;
422 case 2:
423 orphan->SetFacingToObject(me);
424 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_4);
425 timer = 5000;
426 break;
427 case 3:
430 Reset();
431 return;
432 }
433 ++phase;
434 }
435 else
436 timer -= diff;
437 }
438
439 private:
444
445 };
446
447 CreatureAI* GetAI(Creature* creature) const override
448 {
449 return new npc_the_biggest_treeAI(creature);
450 }
451};
452
453/*######
454## npc_high_oracle_soo_roo
455######*/
457{
458 public:
459 npc_high_oracle_soo_roo() : CreatureScript("npc_high_oracle_soo_roo") { }
460
462 {
464 {
465 Initialize();
466 }
467
469 {
470 timer = 0;
471 phase = 0;
474 }
475
476 void Reset() override
477 {
478 Initialize();
479 }
480
481 void MoveInLineOfSight(Unit* who) override
482
483 {
484 if (!phase && who && who->GetDistance2d(me) < 10.0f)
485 if (Player* player = who->ToPlayer())
487 {
488 playerGUID = player->GetGUID();
490 if (!orphanGUID.IsEmpty())
491 phase = 1;
492 }
493 }
494
495 void UpdateAI(uint32 diff) override
496 {
497 if (!phase)
498 return;
499
500 if (timer <= diff)
501 {
504
505 if (!orphan || !player)
506 {
507 Reset();
508 return;
509 }
510
511 switch (phase)
512 {
513 case 1:
514 orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + std::cos(me->GetOrientation()) * 5, me->GetPositionY() + std::sin(me->GetOrientation()) * 5, me->GetPositionZ());
515 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_5);
516 timer = 3000;
517 break;
518 case 2:
519 orphan->SetFacingToObject(me);
521 timer = 6000;
522 break;
523 case 3:
524 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_6);
527 Reset();
528 return;
529 }
530 ++phase;
531 }
532 else
533 timer -= diff;
534 }
535
536 private:
541
542 };
543
544 CreatureAI* GetAI(Creature* creature) const override
545 {
546 return new npc_high_oracle_soo_rooAI(creature);
547 }
548};
549
550/*######
551## npc_elder_kekek
552######*/
554{
555 public:
556 npc_elder_kekek() : CreatureScript("npc_elder_kekek") { }
557
559 {
560 npc_elder_kekekAI(Creature* creature) : ScriptedAI(creature)
561 {
562 Initialize();
563 }
564
566 {
567 timer = 0;
568 phase = 0;
571 }
572
573 void Reset() override
574 {
575 Initialize();
576 }
577
578 void MoveInLineOfSight(Unit* who) override
579 {
580 if (!phase && who && who->GetDistance2d(me) < 10.0f)
581 if (Player* player = who->ToPlayer())
583 {
584 playerGUID = player->GetGUID();
586 if (!orphanGUID.IsEmpty())
587 phase = 1;
588 }
589 }
590
591 void UpdateAI(uint32 diff) override
592 {
593 if (!phase)
594 return;
595
596 if (timer <= diff)
597 {
600
601 if (!player || !orphan)
602 {
603 Reset();
604 return;
605 }
606
607 switch (phase)
608 {
609 case 1:
610 orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + std::cos(me->GetOrientation()) * 5, me->GetPositionY() + std::sin(me->GetOrientation()) * 5, me->GetPositionZ());
611 orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_4);
612 timer = 3000;
613 break;
614 case 2:
616 timer = 6000;
617 break;
618 case 3:
619 orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_5);
622 Reset();
623 return;
624 }
625 ++phase;
626 }
627 else
628 timer -= diff;
629 }
630
631 private:
636
637 };
638
639 CreatureAI* GetAI(Creature* creature) const override
640 {
641 return new npc_elder_kekekAI(creature);
642 }
643};
644
646{
650
651/*######
652## npc_the_etymidian
653## @todo A red crystal as a gift for the great one should be spawned during the event.
654######*/
656{
657 public:
658 npc_the_etymidian() : CreatureScript("npc_the_etymidian") { }
659
661 {
663 {
664 Initialize();
665 }
666
668 {
669 timer = 0;
670 phase = 0;
673 }
674
675 void Reset() override
676 {
677 Initialize();
678 }
679
680 void OnQuestReward(Player* /*player*/, Quest const* quest, LootItemType /*type*/, uint32 /*opt*/) override
681 {
683 return;
684
686 }
687
688 // doesn't trigger if creature is stunned. Restore aura 25900 when it will be possible or
689 // find another way to start event(from orphan script)
690 void MoveInLineOfSight(Unit* who) override
691 {
692 if (!phase && who && who->GetDistance2d(me) < 10.0f)
693 {
694 if (Player* player = who->ToPlayer())
695 {
696 if (player->GetQuestStatus(QUEST_MEETING_A_GREAT_ONE) == QUEST_STATUS_INCOMPLETE)
697 {
698 playerGUID = player->GetGUID();
700 if (!orphanGUID.IsEmpty())
701 phase = 1;
702 }
703 }
704 }
705 }
706
707 void UpdateAI(uint32 diff) override
708 {
709 if (!phase)
710 return;
711
712 if (timer <= diff)
713 {
716
717 if (!orphan || !player)
718 {
719 Reset();
720 return;
721 }
722
723 switch (phase)
724 {
725 case 1:
726 orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + std::cos(me->GetOrientation()) * 5, me->GetPositionY() + std::sin(me->GetOrientation()) * 5, me->GetPositionZ());
727 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_7);
728 timer = 5000;
729 break;
730 case 2:
731 orphan->SetFacingToObject(me);
732 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_8);
733 timer = 5000;
734 break;
735 case 3:
736 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_9);
737 timer = 5000;
738 break;
739 case 4:
740 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_10);
741 timer = 5000;
742 break;
743 case 5:
746 Reset();
747 return;
748 }
749 ++phase;
750 }
751 else
752 timer -= diff;
753 }
754
755 private:
760 };
761
762 CreatureAI* GetAI(Creature* creature) const override
763 {
764 return new npc_the_etymidianAI(creature);
765 }
766};
767
768/*######
769## npc_cw_alexstrasza_trigger
770######*/
772{
773 public:
774 npc_alexstraza_the_lifebinder() : CreatureScript("npc_alexstraza_the_lifebinder") { }
775
777 {
779 {
780 Initialize();
781 }
782
784 {
785 timer = 0;
786 phase = 0;
789 }
790
791 void Reset() override
792 {
793 Initialize();
794 }
795
796 void SetData(uint32 type, uint32 data) override
797 {
798 // Existing SmartAI
799 if (type == 0)
800 {
801 switch (data)
802 {
803 case 1:
804 me->SetOrientation(1.6049f);
805 break;
806 case 2:
807 me->SetOrientation(me->GetHomePosition().GetOrientation());
808 break;
809 }
810 }
811 }
812
813 void MoveInLineOfSight(Unit* who) override
814 {
815 if (!phase && who && who->GetDistance2d(me) < 10.0f)
816 if (Player* player = who->ToPlayer())
817 {
818 if (player->GetQuestStatus(QUEST_THE_DRAGON_QUEEN_ORACLE) == QUEST_STATUS_INCOMPLETE)
819 {
820 playerGUID = player->GetGUID();
822 if (!orphanGUID.IsEmpty())
823 phase = 1;
824 }
825 else if (player->GetQuestStatus(QUEST_THE_DRAGON_QUEEN_WOLVAR) == QUEST_STATUS_INCOMPLETE)
826 {
827 playerGUID = player->GetGUID();
829 if (!orphanGUID.IsEmpty())
830 phase = 7;
831 }
832 }
833 }
834
835 void UpdateAI(uint32 diff) override
836 {
837 if (!phase)
838 return;
839
840 if (timer <= diff)
841 {
844
845 if (!orphan || !player)
846 {
847 Reset();
848 return;
849 }
850
851 switch (phase)
852 {
853 case 1:
854 orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + std::cos(me->GetOrientation()) * 5, me->GetPositionY() + std::sin(me->GetOrientation()) * 5, me->GetPositionZ());
855 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_11);
856 timer = 5000;
857 break;
858 case 2:
859 orphan->SetFacingToObject(me);
860 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_12);
861 timer = 5000;
862 break;
863 case 3:
864 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_13);
865 timer = 5000;
866 break;
867 case 4:
870 me->SetFacingToObject(orphan);
871 timer = 5000;
872 break;
873 case 5:
874 orphan->AI()->Talk(TEXT_ORACLE_ORPHAN_14);
875 timer = 5000;
876 break;
877 case 6:
879 me->SetOrientation(me->GetHomePosition().GetOrientation());
882 Reset();
883 return;
884 case 7:
885 orphan->GetMotionMaster()->MovePoint(0, me->GetPositionX() + std::cos(me->GetOrientation()) * 5, me->GetPositionY() + std::sin(me->GetOrientation()) * 5, me->GetPositionZ());
886 orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_11);
887 timer = 5000;
888 break;
889 case 8:
890 if (Creature* krasus = me->FindNearestCreature(NPC_KRASUS, 10.0f))
891 {
892 orphan->SetFacingToObject(krasus);
893 krasus->AI()->Talk(TEXT_KRASUS_8);
894 }
895 timer = 5000;
896 break;
897 case 9:
898 orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_12);
899 timer = 5000;
900 break;
901 case 10:
902 orphan->SetFacingToObject(me);
904 timer = 5000;
905 break;
906 case 11:
907 orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_13);
908 timer = 5000;
909 break;
910 case 12:
913 Reset();
914 return;
915 }
916 ++phase;
917 }
918 else
919 timer -= diff;
920 }
921
922 private:
927
928 };
929
930 CreatureAI* GetAI(Creature* creature) const override
931 {
932 return new npc_alexstraza_the_lifebinderAI(creature);
933 }
934};
935
936/*######
937## at_bring_your_orphan_to
938######*/
939
941{
942 public:
943 at_bring_your_orphan_to() : AreaTriggerScript("at_bring_your_orphan_to") { }
944
945 bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) override
946 {
947 if (player->isDead() || !player->HasAura(SPELL_ORPHAN_OUT))
948 return false;
949
950 uint32 questId = 0;
951 uint32 orphanId = 0;
952
953 switch (trigger->ID)
954 {
956 questId = QUEST_DOWN_AT_THE_DOCKS;
957 orphanId = ORPHAN_ORCISH;
958 break;
961 orphanId = ORPHAN_ORCISH;
962 break;
965 orphanId = ORPHAN_ORCISH;
966 break;
968 questId = QUEST_BOUGHT_OF_ETERNALS;
969 orphanId = ORPHAN_HUMAN;
970 break;
972 questId = QUEST_SPOOKY_LIGHTHOUSE;
973 orphanId = ORPHAN_HUMAN;
974 break;
976 questId = QUEST_STONEWROUGHT_DAM;
977 orphanId = ORPHAN_HUMAN;
978 break;
979 case AT_DARK_PORTAL:
980 questId = player->GetTeam() == ALLIANCE ? QUEST_DARK_PORTAL_A : QUEST_DARK_PORTAL_H;
981 orphanId = player->GetTeam() == ALLIANCE ? ORPHAN_DRAENEI : ORPHAN_BLOOD_ELF;
982 break;
983 }
984
985 if (questId && orphanId && !getOrphanGUID(player, orphanId).IsEmpty() && player->GetQuestStatus(questId) == QUEST_STATUS_INCOMPLETE)
986 player->AreaExploredOrEventHappens(questId);
987
988 return true;
989 }
990};
991
992/*######
993## npc_cw_area_trigger
994######*/
996{
997 public:
998 npc_cw_area_trigger() : CreatureScript("npc_cw_area_trigger") { }
999
1001 {
1003 {
1005 }
1006
1007 void MoveInLineOfSight(Unit* who) override
1008 {
1009 if (who && me->GetDistance2d(who) < 20.0f)
1010 if (Player* player = who->ToPlayer())
1011 if (player->HasAura(SPELL_ORPHAN_OUT))
1012 {
1013 uint32 questId = 0;
1014 uint32 orphanId = 0;
1015 switch (me->GetEntry())
1016 {
1019 orphanId = player->GetTeam() == ALLIANCE ? ORPHAN_DRAENEI : ORPHAN_BLOOD_ELF;
1020 break;
1023 orphanId = ORPHAN_DRAENEI;
1024 break;
1026 questId = QUEST_CALL_ON_THE_FARSEER;
1027 orphanId = ORPHAN_DRAENEI;
1028 break;
1031 orphanId = ORPHAN_DRAENEI;
1032 break;
1035 orphanId = ORPHAN_DRAENEI;
1036 break;
1039 orphanId = ORPHAN_BLOOD_ELF;
1040 break;
1043 orphanId = ORPHAN_BLOOD_ELF;
1044 break;
1046 if (player->GetQuestStatus(QUEST_NOW_WHEN_I_GROW_UP) == QUEST_STATUS_INCOMPLETE && !getOrphanGUID(player, ORPHAN_BLOOD_ELF).IsEmpty())
1047 {
1048 player->AreaExploredOrEventHappens(QUEST_NOW_WHEN_I_GROW_UP);
1049 if (player->GetQuestStatus(QUEST_NOW_WHEN_I_GROW_UP) == QUEST_STATUS_COMPLETE)
1050 if (Creature* samuro = me->FindNearestCreature(25151, 20.0f))
1051 {
1052 Emote const emotes[] =
1053 {
1059 };
1060 samuro->HandleEmoteCommand(Trinity::Containers::SelectRandomContainerElement(emotes));
1061 }
1062 }
1063 break;
1064 }
1065 if (questId && orphanId && !getOrphanGUID(player, orphanId).IsEmpty() && player->GetQuestStatus(questId) == QUEST_STATUS_INCOMPLETE)
1066 player->AreaExploredOrEventHappens(questId);
1067 }
1068 }
1069 };
1070
1071 CreatureAI* GetAI(Creature* creature) const override
1072 {
1073 return new npc_cw_area_triggerAI(creature);
1074 }
1075};
1076
1077/*######
1078## npc_grizzlemaw_cw_trigger
1079######*/
1081{
1082 public:
1083 npc_grizzlemaw_cw_trigger() : CreatureScript("npc_grizzlemaw_cw_trigger") { }
1084
1086 {
1088 {
1090 }
1091
1092 void MoveInLineOfSight(Unit* who) override
1093 {
1094 if (who && who->GetDistance2d(me) < 10.0f)
1095 if (Player* player = who->ToPlayer())
1096 if (player->GetQuestStatus(QUEST_HOME_OF_THE_BEAR_MEN) == QUEST_STATUS_INCOMPLETE)
1098 {
1099 player->AreaExploredOrEventHappens(QUEST_HOME_OF_THE_BEAR_MEN);
1100 orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_10);
1101 }
1102 }
1103 };
1104
1105 CreatureAI* GetAI(Creature* creature) const override
1106 {
1107 return new npc_grizzlemaw_cw_triggerAI(creature);
1108 }
1109};
1110
1112{
1113 new npc_elder_kekek();
1117 new npc_the_etymidian();
1121 new npc_cw_area_trigger();
1123}
Texts
uint8_t uint8
Definition: Define.h:144
int8_t int8
Definition: Define.h:140
uint32_t uint32
Definition: Define.h:142
LootItemType
Definition: LootItemType.h:24
#define PET_FOLLOW_ANGLE
Definition: PetDefines.h:98
#define PET_FOLLOW_DIST
Definition: PetDefines.h:97
@ QUEST_STATUS_INCOMPLETE
Definition: QuestDef.h:145
@ QUEST_STATUS_COMPLETE
Definition: QuestDef.h:143
Emote
@ EMOTE_ONESHOT_FLEX
@ EMOTE_ONESHOT_ROAR
@ EMOTE_ONESHOT_SALUTE
@ EMOTE_STATE_DANCE
@ EMOTE_STATE_NONE
@ EMOTE_ONESHOT_DANCE
@ EMOTE_ONESHOT_WAVE
@ ALLIANCE
@ UNIT_STAND_STATE_KNEEL
Definition: UnitDefines.h:50
@ UNIT_STAND_STATE_STAND
Definition: UnitDefines.h:42
TheEtymidian
@ QUEST_THE_ACTIVATION_RUNE
@ SAY_ACTIVATION
@ QUEST_DARK_PORTAL_H
@ QUEST_CALL_ON_THE_FARSEER
@ QUEST_THE_DRAGON_QUEEN_ORACLE
@ QUEST_MEETING_A_GREAT_ONE
@ QUEST_VISIT_THE_THRONE_OF_ELEMENTS
@ QUEST_THE_MIGHTY_HEMET_NESINGWARY
@ QUEST_PLAYMATE_WOLVAR
@ QUEST_DARK_PORTAL_A
@ QUEST_HCHUU_AND_THE_MUSHROOM_PEOPLE
@ QUEST_JHEEL_IS_AT_AERIS_LANDING
@ QUEST_STONEWROUGHT_DAM
@ QUEST_THE_SEAT_OF_THE_NARUU
@ QUEST_HOME_OF_THE_BEAR_MEN
@ QUEST_BOUGHT_OF_ETERNALS
@ QUEST_TIME_TO_VISIT_THE_CAVERNS_H
@ QUEST_PLAYMATE_ORACLE
@ QUEST_DOWN_AT_THE_DOCKS
@ QUEST_AUCHINDOUN_AND_THE_RING
@ QUEST_THE_DRAGON_QUEEN_WOLVAR
@ QUEST_THE_BIGGEST_TREE_EVER
@ QUEST_LORDAERON_THRONE_ROOM
@ QUEST_NOW_WHEN_I_GROW_UP
@ QUEST_THE_BRONZE_DRAGONSHRINE_ORACLE
@ QUEST_GATEWAY_TO_THE_FRONTIER
@ QUEST_TIME_TO_VISIT_THE_CAVERNS_A
@ QUEST_THE_BRONZE_DRAGONSHRINE_WOLVAR
@ QUEST_SPOOKY_LIGHTHOUSE
@ SPELL_SNOWBALL
@ DISPLAY_INVISIBLE
@ SPELL_ORPHAN_OUT
Areatriggers
@ AT_BOUGHT_OF_ETERNALS
@ NPC_CAVERNS_OF_TIME_CW_TRIGGER
@ NPC_KRASUS
@ NPC_EXODAR_02_CW_TRIGGER
@ AT_DOWN_AT_THE_DOCKS
@ NPC_EXODAR_01_CW_TRIGGER
@ NPC_SPOREGGAR_CW_TRIGGER
@ AT_LORDAERON_THRONE_ROOM
@ NPC_AERIS_LANDING_CW_TRIGGER
@ NPC_SILVERMOON_01_CW_TRIGGER
@ AT_DARK_PORTAL
@ NPC_AUCHINDOUN_CW_TRIGGER
@ AT_SPOOKY_LIGHTHOUSE
@ NPC_THRONE_OF_ELEMENTS_CW_TRIGGER
@ AT_GATEWAY_TO_THE_FRONTIER
@ AT_STONEWROUGHT_DAM
void AddSC_event_childrens_week()
ObjectGuid getOrphanGUID(Player *player, uint32 orphan)
@ TEXT_ORACLE_ORPHAN_5
@ TEXT_WOLVAR_ORPHAN_4
@ TEXT_ORACLE_ORPHAN_8
@ TEXT_SOO_ROO_1
@ TEXT_ORACLE_ORPHAN_9
@ TEXT_KRASUS_8
@ TEXT_ORACLE_ORPHAN_6
@ TEXT_ELDER_KEKEK_1
@ TEXT_WOLVAR_ORPHAN_13
@ TEXT_ORACLE_ORPHAN_12
@ TEXT_SNOWFALL_GLADE_PLAYMATE_2
@ TEXT_WOLVAR_ORPHAN_2
@ TEXT_ORACLE_ORPHAN_13
@ TEXT_ORACLE_ORPHAN_7
@ TEXT_WINTERFIN_PLAYMATE_1
@ TEXT_WOLVAR_ORPHAN_5
@ TEXT_WOLVAR_ORPHAN_12
@ TEXT_ORACLE_ORPHAN_4
@ TEXT_ORACLE_ORPHAN_3
@ TEXT_WOLVAR_ORPHAN_11
@ TEXT_ORACLE_ORPHAN_14
@ TEXT_ORACLE_ORPHAN_11
@ TEXT_WOLVAR_ORPHAN_10
@ TEXT_WINTERFIN_PLAYMATE_2
@ TEXT_ORACLE_ORPHAN_2
@ TEXT_ORACLE_ORPHAN_10
@ TEXT_ALEXSTRASZA_2
@ TEXT_WOLVAR_ORPHAN_3
@ TEXT_SNOWFALL_GLADE_PLAYMATE_1
@ TEXT_ORACLE_ORPHAN_1
@ TEXT_WOLVAR_ORPHAN_1
Orphans
@ ORPHAN_BLOOD_ELF
@ ORPHAN_ORCISH
@ ORPHAN_ORACLE
@ ORPHAN_HUMAN
@ ORPHAN_WOLVAR
@ ORPHAN_DRAENEI
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:56
Creature *const me
Definition: CreatureAI.h:61
void GetHomePosition(float &x, float &y, float &z, float &ori) const
Definition: Creature.h:373
void SetDisplayId(uint32 displayId, bool setNative=false) override
Definition: Creature.cpp:3402
CreatureAI * AI() const
Definition: Creature.h:214
void MovePoint(uint32 id, Position const &pos, bool generatePath=true, Optional< float > finalOrient={}, Optional< float > speed={}, MovementWalkRunSpeedSelectionMode speedSelectionMode=MovementWalkRunSpeedSelectionMode::Default, Optional< float > closeEnoughDistance={})
void MoveFollow(Unit *target, float dist, ChaseAngle angle, Optional< Milliseconds > duration={}, MovementSlot slot=MOTION_SLOT_ACTIVE)
static ObjectGuid const Empty
Definition: ObjectGuid.h:274
bool IsEmpty() const
Definition: ObjectGuid.h:319
void Clear()
Definition: ObjectGuid.h:286
uint32 GetEntry() const
Definition: Object.h:161
static Player * ToPlayer(Object *o)
Definition: Object.h:213
void GroupEventHappens(uint32 questId, WorldObject const *pEventObject)
Definition: Player.cpp:16598
void AreaExploredOrEventHappens(uint32 questId)
Definition: Player.cpp:16577
QuestStatus GetQuestStatus(uint32 quest_id) const
Definition: Player.cpp:16050
Team GetTeam() const
Definition: Player.h:2235
uint32 GetQuestId() const
Definition: QuestDef.h:587
SpellCastResult DoCast(uint32 spellId)
Definition: UnitAI.cpp:89
Definition: Unit.h:627
void SetStandState(UnitStandStateType state, uint32 animKitID=0)
Definition: Unit.cpp:10100
MotionMaster * GetMotionMaster()
Definition: Unit.h:1652
void SetFacingToObject(WorldObject const *object, bool force=true)
Definition: Unit.cpp:12671
Aura * GetAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
Definition: Unit.cpp:4560
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
Definition: Unit.cpp:4664
void HandleEmoteCommand(Emote emoteId, Player *target=nullptr, Trinity::IteratorPair< int32 const * > spellVisualKitIds={}, int32 sequenceVariation=0)
Definition: Unit.cpp:1598
bool isDead() const
Definition: Unit.h:1166
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
Definition: Object.cpp:2896
float GetDistance2d(WorldObject const *obj) const
Definition: Object.cpp:1096
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition: Object.cpp:2148
bool OnTrigger(Player *player, AreaTriggerEntry const *trigger) override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *pCreature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
CreatureAI * GetAI(Creature *creature) const override
TC_GAME_API Player * GetPlayer(Map const *, ObjectGuid const &guid)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
Definition: Containers.h:109
constexpr void SetOrientation(float orientation)
Definition: Position.h:71
constexpr float GetPositionX() const
Definition: Position.h:76
constexpr float GetPositionY() const
Definition: Position.h:77
constexpr float GetOrientation() const
Definition: Position.h:79
constexpr float GetPositionZ() const
Definition: Position.h:78
void UpdateAI(uint32 diff) override
void MoveInLineOfSight(Unit *who) override
void MoveInLineOfSight(Unit *who) override
void OnQuestReward(Player *, Quest const *quest, LootItemType, uint32) override
void UpdateAI(uint32 diff) override