816 | | Overlord_MorghorAI(Creature *c) : ScriptedAI(c) {Reset();} |
817 | | |
818 | | Unit* m_player; |
819 | | Unit* PlayerCheck; |
820 | | |
821 | | uint32 SpeachTimer; |
822 | | uint32 SpeachNum; |
823 | | |
824 | | uint64 PlayerGUID; |
825 | | uint64 YazillGUID; |
826 | | |
827 | | bool DoingSpeach; |
828 | | bool Failed; |
829 | | |
830 | | Creature* Lord; |
831 | | Creature* Yarzill; |
832 | | |
833 | | void Reset() |
834 | | { |
835 | | if (Lord) |
836 | | { |
837 | | Lord->SetUInt64Value(UNIT_FIELD_TARGET, 0); |
838 | | Lord->SetVisibility(VISIBILITY_OFF); |
839 | | Lord->setDeathState(JUST_DIED); |
840 | | } |
841 | | |
842 | | if (Yarzill) |
843 | | { |
844 | | Yarzill->SetUInt64Value(UNIT_FIELD_TARGET, 0); |
845 | | } |
846 | | |
847 | | m_creature->Relocate(-5085.77, 577.231, 86.6719, 2.32608); |
848 | | m_creature->SetUInt32Value(UNIT_NPC_FLAGS, 2); |
849 | | m_creature->SetUInt64Value(UNIT_FIELD_TARGET, 0); |
850 | | m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0); |
851 | | m_player = NULL; |
852 | | PlayerCheck = NULL; |
853 | | PlayerGUID = 0; |
854 | | YazillGUID = 0; |
855 | | Lord = NULL; |
856 | | Yarzill = NULL; |
857 | | DoingSpeach = false; |
858 | | Failed = false; |
859 | | SpeachNum = 0; |
860 | | SpeachTimer = 0; |
861 | | } |
862 | | |
863 | | void BeginSpeach(Unit* target) |
864 | | { |
865 | | m_creature->SetUInt32Value(UNIT_NPC_FLAGS, 0); |
866 | | m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0); |
867 | | DoSay(OVERLORD_SAY_1,LANG_UNIVERSAL,target); |
868 | | m_player = target; |
869 | | PlayerCheck = NULL; |
870 | | PlayerGUID = target->GetGUID(); |
871 | | SpeachTimer = 4200; |
872 | | SpeachNum = 0; |
873 | | DoingSpeach = true; |
874 | | } |
875 | | |
876 | | void Aggro(Unit *who){} |
877 | | |
878 | | void MoveInLineOfSight(Unit *who) |
879 | | { |
880 | | if (!who) |
881 | | return; |
882 | | |
883 | | if (DoingSpeach) |
884 | | { |
885 | | if (who->GetEntry() == 23141 && m_creature->IsWithinDistInMap(who, 15)) |
886 | | { |
887 | | if (!YazillGUID) |
888 | | { |
889 | | YazillGUID = who->GetGUID(); |
890 | | } |
891 | | } |
892 | | } |
893 | | } |
894 | | |
895 | | void UpdateAI(const uint32 diff) |
896 | | { |
897 | | //Speach |
898 | | if (DoingSpeach) |
899 | | { |
900 | | if (SpeachTimer < diff) |
901 | | { |
902 | | if (YazillGUID && !Yarzill) |
903 | | Yarzill = ((Creature*)Unit::GetUnit((*m_creature), YazillGUID)); |
904 | | |
905 | | if (!m_creature->IsWithinDistInMap(m_player, 50) && ((Player*)m_player)->GetQuestStatus(QUEST_LORD_ILLIDAN_STORMRAGE) == QUEST_STATUS_INCOMPLETE) |
906 | | { |
907 | | ((Player*)m_player)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE); |
908 | | SpeachNum = 30; |
909 | | } |
910 | | |
911 | | switch (SpeachNum) |
912 | | { |
913 | | // Overlord Movement |
914 | | case 0: |
915 | | m_creature->GetMotionMaster()->MovePoint(0, -5104.41, 595.297, 85.6838); |
916 | | SpeachTimer = 9000; SpeachNum++; break; |
917 | | // Overlord Yell 1 |
918 | | case 1: |
919 | | m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_SHOUT); |
920 | | DoYell(OVERLORD_YELL_1,LANG_UNIVERSAL,m_player); |
921 | | SpeachTimer = 4500; SpeachNum++; break; |
922 | | // Overlord Angle |
923 | | case 2: |
924 | | m_creature->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID); |
925 | | SpeachTimer = 3200; SpeachNum++; break; |
926 | | // Overlord Say 2 |
927 | | case 3: |
928 | | DoSay(OVERLORD_SAY_2,LANG_UNIVERSAL,NULL); |
929 | | SpeachTimer = 2000; SpeachNum++; break; |
930 | | // Summon Illidan |
931 | | case 4: |
932 | | Lord = m_creature->SummonCreature(LORD_ILLIDAN_STORMRAGE, -5107.83, 602.584, 85.2393, 4.92598, TEMPSUMMON_CORPSE_DESPAWN, 0); |
933 | | Lord->LoadCreaturesAddon(); |
934 | | SpeachTimer = 350; SpeachNum++; break; |
935 | | // Illidan Cast Red Bolt |
936 | | case 5: |
937 | | Lord->CastSpell(Lord, SPELL_ONE, true); |
938 | | Lord->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID()); |
939 | | m_creature->SetUInt64Value(UNIT_FIELD_TARGET, Lord->GetGUID()); |
940 | | SpeachTimer = 2000; SpeachNum++; break; |
941 | | // Overlord Yell 2 |
942 | | case 6: |
943 | | DoYell(OVERLORD_YELL_2,LANG_UNIVERSAL,NULL); |
944 | | SpeachTimer = 4500; SpeachNum++; break; |
945 | | // Overlord Kneel |
946 | | case 7: |
947 | | m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,8); |
948 | | SpeachTimer = 2500; SpeachNum++; break; |
949 | | // Overlord Say 3 |
950 | | case 8: |
951 | | DoSay(OVERLORD_SAY_3,LANG_UNIVERSAL,NULL); |
952 | | SpeachTimer = 6500; SpeachNum++; break; |
953 | | // Illidan Say 1 |
954 | | case 9: |
955 | | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(1); |
956 | | SpeachTimer = 5000; SpeachNum++; break; |
957 | | // Overlord Say 4 |
958 | | case 10: |
959 | | DoSay(OVERLORD_SAY_4,LANG_UNIVERSAL,m_player); |
960 | | SpeachTimer = 6000; SpeachNum++; break; |
961 | | // Illidan Say 2 |
962 | | case 11: |
963 | | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(2); |
964 | | SpeachTimer = 5500; SpeachNum++; break; |
965 | | // Illidan Say 3 |
966 | | case 12: |
967 | | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(3); |
968 | | SpeachTimer = 4000; SpeachNum++; break; |
969 | | // Illidan Angle |
970 | | case 13: |
971 | | Lord->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID); |
972 | | SpeachTimer = 1500; SpeachNum++; break; |
973 | | // Illidan Say 4 |
974 | | case 14: |
975 | | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(4); |
976 | | SpeachTimer = 1500; SpeachNum++; break; |
977 | | // Illidan Cast |
978 | | case 15: |
979 | | PlayerCheck = Unit::GetUnit(*Lord, PlayerGUID); |
980 | | if (PlayerCheck) |
981 | | { |
982 | | Lord->CastSpell(m_player, SPELL_TWO, true); |
983 | | m_player->RemoveAurasDueToSpell(SPELL_THREE); |
984 | | m_player->RemoveAurasDueToSpell(SPELL_FOUR); |
985 | | SpeachTimer = 5000; SpeachNum++; |
986 | | } |
987 | | else |
988 | | { |
989 | | ((Player*)m_player)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE); |
990 | | SpeachTimer = 100; SpeachNum = 30; |
991 | | } |
992 | | break; |
993 | | // Illidan Say 5 |
994 | | case 16: |
995 | | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(5); |
996 | | SpeachTimer = 5000; SpeachNum++; break; |
997 | | // Illidan Say 6 |
998 | | case 17: |
999 | | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(6); |
1000 | | SpeachTimer = 5000; SpeachNum++; break; |
1001 | | // Illidan Say 7 |
1002 | | case 18: |
1003 | | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(7); |
1004 | | SpeachTimer = 5000; SpeachNum++; break; |
1005 | | // Illidan Fly |
1006 | | case 19: |
1007 | | Lord->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); |
1008 | | Lord->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); |
1009 | | SpeachTimer = 500; SpeachNum++; break; |
1010 | | // Overlord Say 5 |
1011 | | case 20: |
1012 | | DoSay(OVERLORD_SAY_5,LANG_UNIVERSAL,NULL); |
1013 | | SpeachTimer = 500; SpeachNum++; break; |
1014 | | // Illidan Despawn |
1015 | | case 21: |
1016 | | Lord->SetVisibility(VISIBILITY_OFF); |
1017 | | Lord->setDeathState(JUST_DIED); |
1018 | | Lord = NULL; |
1019 | | SpeachTimer = 1000; SpeachNum++; break; |
1020 | | // Overlord Stand Up |
1021 | | case 22: |
1022 | | m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0); |
1023 | | SpeachTimer = 2000; SpeachNum++; break; |
1024 | | // Overlord Angle |
1025 | | case 23: |
1026 | | m_creature->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID); |
1027 | | SpeachTimer = 5000; SpeachNum++; break; |
1028 | | // Overlord Say 6 |
1029 | | case 24: |
1030 | | DoSay(OVERLORD_SAY_6,LANG_UNIVERSAL,NULL); |
1031 | | SpeachTimer = 2000; SpeachNum++; break; |
1032 | | // Complete Quest |
1033 | | case 25: |
1034 | | ((Player*)m_player)->CompleteQuest(QUEST_LORD_ILLIDAN_STORMRAGE); |
1035 | | SpeachTimer = 6000; SpeachNum++; break; |
1036 | | // Goblin Angle |
1037 | | case 26: |
1038 | | if (Yarzill) |
1039 | | Yarzill->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID); |
1040 | | SpeachTimer = 500; SpeachNum++; break; |
1041 | | // Cast Again Dragonaw Illusion |
1042 | | case 27: |
1043 | | m_player->RemoveAurasDueToSpell(SPELL_TWO); |
1044 | | m_player->RemoveAurasDueToSpell(41519); |
1045 | | m_player->CastSpell(m_player, SPELL_THREE, true); |
1046 | | m_player->CastSpell(m_player, SPELL_FOUR, true); |
1047 | | SpeachTimer = 1000; SpeachNum++; break; |
1048 | | // Goblin |
1049 | | case 28: |
1050 | | if (Yarzill) |
1051 | | ((Yarzill_The_MercAI*)Yarzill->AI())->DoSpeach(m_player); |
1052 | | SpeachTimer = 5000; SpeachNum++; break; |
1053 | | // Goblin Off |
1054 | | case 29: |
1055 | | if (Yarzill) |
1056 | | Yarzill->SetUInt64Value(UNIT_FIELD_TARGET, 0); |
1057 | | SpeachTimer = 5000; SpeachNum++; break; |
1058 | | // Overlord Go Back |
1059 | | case 30: |
1060 | | m_creature->GetMotionMaster()->MovePoint(0, -5085.77, 577.231, 86.6719); |
1061 | | SpeachTimer = 5000; SpeachNum++; break; |
1062 | | // Reset |
1063 | | case 31: |
1064 | | Reset(); |
1065 | | break; |
1066 | | default: break; |
1067 | | } |
1068 | | }else SpeachTimer -= diff; |
1069 | | } |
1070 | | } |
| 816 | Overlord_MorghorAI(Creature *c) : ScriptedAI(c) |
| 817 | { |
| 818 | Lord = NULL; |
| 819 | Yarzill = NULL; |
| 820 | Reset(); |
| 821 | } |
| 822 | |
| 823 | Unit* m_player; |
| 824 | Unit* PlayerCheck; |
| 825 | |
| 826 | uint32 SpeachTimer; |
| 827 | uint32 SpeachNum; |
| 828 | |
| 829 | uint64 PlayerGUID; |
| 830 | uint64 YazillGUID; |
| 831 | |
| 832 | bool DoingSpeach; |
| 833 | bool Failed; |
| 834 | |
| 835 | Creature* Lord; |
| 836 | Creature* Yarzill; |
| 837 | |
| 838 | void Reset() |
| 839 | { |
| 840 | if (Lord) |
| 841 | { |
| 842 | Lord->SetUInt64Value(UNIT_FIELD_TARGET, 0); |
| 843 | Lord->SetVisibility(VISIBILITY_OFF); |
| 844 | Lord->setDeathState(JUST_DIED); |
| 845 | } |
| 846 | |
| 847 | if (Yarzill) |
| 848 | { |
| 849 | Yarzill->SetUInt64Value(UNIT_FIELD_TARGET, 0); |
| 850 | } |
| 851 | |
| 852 | m_creature->Relocate(-5085.77, 577.231, 86.6719, 2.32608); |
| 853 | m_creature->SetUInt32Value(UNIT_NPC_FLAGS, 2); |
| 854 | m_creature->SetUInt64Value(UNIT_FIELD_TARGET, 0); |
| 855 | m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0); |
| 856 | m_player = NULL; |
| 857 | PlayerCheck = NULL; |
| 858 | PlayerGUID = 0; |
| 859 | YazillGUID = 0; |
| 860 | Lord = NULL; |
| 861 | Yarzill = NULL; |
| 862 | DoingSpeach = false; |
| 863 | Failed = false; |
| 864 | SpeachNum = 0; |
| 865 | SpeachTimer = 0; |
| 866 | } |
| 867 | |
| 868 | void BeginSpeach(Unit* target) |
| 869 | { |
| 870 | m_creature->SetUInt32Value(UNIT_NPC_FLAGS, 0); |
| 871 | m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0); |
| 872 | DoSay(OVERLORD_SAY_1,LANG_UNIVERSAL,target); |
| 873 | m_player = target; |
| 874 | PlayerCheck = NULL; |
| 875 | PlayerGUID = target->GetGUID(); |
| 876 | SpeachTimer = 4200; |
| 877 | SpeachNum = 0; |
| 878 | DoingSpeach = true; |
| 879 | } |
| 880 | |
| 881 | void Aggro(Unit *who){} |
| 882 | |
| 883 | void MoveInLineOfSight(Unit *who) |
| 884 | { |
| 885 | if (!who) |
| 886 | return; |
| 887 | |
| 888 | if (DoingSpeach) |
| 889 | { |
| 890 | if (who->GetEntry() == 23141 && m_creature->IsWithinDistInMap(who, 15)) |
| 891 | { |
| 892 | if (!YazillGUID) |
| 893 | { |
| 894 | YazillGUID = who->GetGUID(); |
| 895 | } |
| 896 | } |
| 897 | } |
| 898 | } |
| 899 | |
| 900 | void UpdateAI(const uint32 diff) |
| 901 | { |
| 902 | //Speach |
| 903 | if (DoingSpeach) |
| 904 | { |
| 905 | if (SpeachTimer < diff) |
| 906 | { |
| 907 | if (YazillGUID && !Yarzill) |
| 908 | Yarzill = ((Creature*)Unit::GetUnit((*m_creature), YazillGUID)); |
| 909 | |
| 910 | if (!m_creature->IsWithinDistInMap(m_player, 50) && ((Player*)m_player)->GetQuestStatus(QUEST_LORD_ILLIDAN_STORMRAGE) == QUEST_STATUS_INCOMPLETE) |
| 911 | { |
| 912 | ((Player*)m_player)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE); |
| 913 | SpeachNum = 30; |
| 914 | } |
| 915 | |
| 916 | switch (SpeachNum) |
| 917 | { |
| 918 | // Overlord Movement |
| 919 | case 0: |
| 920 | m_creature->GetMotionMaster()->MovePoint(0, -5104.41, 595.297, 85.6838); |
| 921 | SpeachTimer = 9000; SpeachNum++; break; |
| 922 | // Overlord Yell 1 |
| 923 | case 1: |
| 924 | m_creature->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_SHOUT); |
| 925 | DoYell(OVERLORD_YELL_1,LANG_UNIVERSAL,m_player); |
| 926 | SpeachTimer = 4500; SpeachNum++; break; |
| 927 | // Overlord Angle |
| 928 | case 2: |
| 929 | m_creature->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID); |
| 930 | SpeachTimer = 3200; SpeachNum++; break; |
| 931 | // Overlord Say 2 |
| 932 | case 3: |
| 933 | DoSay(OVERLORD_SAY_2,LANG_UNIVERSAL,NULL); |
| 934 | SpeachTimer = 2000; SpeachNum++; break; |
| 935 | // Summon Illidan |
| 936 | case 4: |
| 937 | Lord = m_creature->SummonCreature(LORD_ILLIDAN_STORMRAGE, -5107.83, 602.584, 85.2393, 4.92598, TEMPSUMMON_CORPSE_DESPAWN, 0); |
| 938 | Lord->LoadCreaturesAddon(); |
| 939 | SpeachTimer = 350; SpeachNum++; break; |
| 940 | // Illidan Cast Red Bolt |
| 941 | case 5: |
| 942 | Lord->CastSpell(Lord, SPELL_ONE, true); |
| 943 | Lord->SetUInt64Value(UNIT_FIELD_TARGET, m_creature->GetGUID()); |
| 944 | m_creature->SetUInt64Value(UNIT_FIELD_TARGET, Lord->GetGUID()); |
| 945 | SpeachTimer = 2000; SpeachNum++; break; |
| 946 | // Overlord Yell 2 |
| 947 | case 6: |
| 948 | DoYell(OVERLORD_YELL_2,LANG_UNIVERSAL,NULL); |
| 949 | SpeachTimer = 4500; SpeachNum++; break; |
| 950 | // Overlord Kneel |
| 951 | case 7: |
| 952 | m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,8); |
| 953 | SpeachTimer = 2500; SpeachNum++; break; |
| 954 | // Overlord Say 3 |
| 955 | case 8: |
| 956 | DoSay(OVERLORD_SAY_3,LANG_UNIVERSAL,NULL); |
| 957 | SpeachTimer = 6500; SpeachNum++; break; |
| 958 | // Illidan Say 1 |
| 959 | case 9: |
| 960 | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(1); |
| 961 | SpeachTimer = 5000; SpeachNum++; break; |
| 962 | // Overlord Say 4 |
| 963 | case 10: |
| 964 | DoSay(OVERLORD_SAY_4,LANG_UNIVERSAL,m_player); |
| 965 | SpeachTimer = 6000; SpeachNum++; break; |
| 966 | // Illidan Say 2 |
| 967 | case 11: |
| 968 | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(2); |
| 969 | SpeachTimer = 5500; SpeachNum++; break; |
| 970 | // Illidan Say 3 |
| 971 | case 12: |
| 972 | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(3); |
| 973 | SpeachTimer = 4000; SpeachNum++; break; |
| 974 | // Illidan Angle |
| 975 | case 13: |
| 976 | Lord->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID); |
| 977 | SpeachTimer = 1500; SpeachNum++; break; |
| 978 | // Illidan Say 4 |
| 979 | case 14: |
| 980 | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(4); |
| 981 | SpeachTimer = 1500; SpeachNum++; break; |
| 982 | // Illidan Cast |
| 983 | case 15: |
| 984 | PlayerCheck = Unit::GetUnit(*Lord, PlayerGUID); |
| 985 | if (PlayerCheck) |
| 986 | { |
| 987 | Lord->CastSpell(m_player, SPELL_TWO, true); |
| 988 | m_player->RemoveAurasDueToSpell(SPELL_THREE); |
| 989 | m_player->RemoveAurasDueToSpell(SPELL_FOUR); |
| 990 | SpeachTimer = 5000; SpeachNum++; |
| 991 | } |
| 992 | else |
| 993 | { |
| 994 | ((Player*)m_player)->FailQuest(QUEST_LORD_ILLIDAN_STORMRAGE); |
| 995 | SpeachTimer = 100; SpeachNum = 30; |
| 996 | } |
| 997 | break; |
| 998 | // Illidan Say 5 |
| 999 | case 16: |
| 1000 | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(5); |
| 1001 | SpeachTimer = 5000; SpeachNum++; break; |
| 1002 | // Illidan Say 6 |
| 1003 | case 17: |
| 1004 | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(6); |
| 1005 | SpeachTimer = 5000; SpeachNum++; break; |
| 1006 | // Illidan Say 7 |
| 1007 | case 18: |
| 1008 | ((Lord_IllidanAI*)Lord->AI())->DoSpeach(7); |
| 1009 | SpeachTimer = 5000; SpeachNum++; break; |
| 1010 | // Illidan Fly |
| 1011 | case 19: |
| 1012 | Lord->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF); |
| 1013 | Lord->AddUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT + MOVEMENTFLAG_LEVITATING); |
| 1014 | SpeachTimer = 500; SpeachNum++; break; |
| 1015 | // Overlord Say 5 |
| 1016 | case 20: |
| 1017 | DoSay(OVERLORD_SAY_5,LANG_UNIVERSAL,NULL); |
| 1018 | SpeachTimer = 500; SpeachNum++; break; |
| 1019 | // Illidan Despawn |
| 1020 | case 21: |
| 1021 | Lord->SetVisibility(VISIBILITY_OFF); |
| 1022 | Lord->setDeathState(JUST_DIED); |
| 1023 | Lord = NULL; |
| 1024 | SpeachTimer = 1000; SpeachNum++; break; |
| 1025 | // Overlord Stand Up |
| 1026 | case 22: |
| 1027 | m_creature->SetUInt32Value(UNIT_FIELD_BYTES_1,0); |
| 1028 | SpeachTimer = 2000; SpeachNum++; break; |
| 1029 | // Overlord Angle |
| 1030 | case 23: |
| 1031 | m_creature->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID); |
| 1032 | SpeachTimer = 5000; SpeachNum++; break; |
| 1033 | // Overlord Say 6 |
| 1034 | case 24: |
| 1035 | DoSay(OVERLORD_SAY_6,LANG_UNIVERSAL,NULL); |
| 1036 | SpeachTimer = 2000; SpeachNum++; break; |
| 1037 | // Complete Quest |
| 1038 | case 25: |
| 1039 | ((Player*)m_player)->CompleteQuest(QUEST_LORD_ILLIDAN_STORMRAGE); |
| 1040 | SpeachTimer = 6000; SpeachNum++; break; |
| 1041 | // Goblin Angle |
| 1042 | case 26: |
| 1043 | if (Yarzill) |
| 1044 | Yarzill->SetUInt64Value(UNIT_FIELD_TARGET, PlayerGUID); |
| 1045 | SpeachTimer = 500; SpeachNum++; break; |
| 1046 | // Cast Again Dragonaw Illusion |
| 1047 | case 27: |
| 1048 | m_player->RemoveAurasDueToSpell(SPELL_TWO); |
| 1049 | m_player->RemoveAurasDueToSpell(41519); |
| 1050 | m_player->CastSpell(m_player, SPELL_THREE, true); |
| 1051 | m_player->CastSpell(m_player, SPELL_FOUR, true); |
| 1052 | SpeachTimer = 1000; SpeachNum++; break; |
| 1053 | // Goblin |
| 1054 | case 28: |
| 1055 | if (Yarzill) |
| 1056 | ((Yarzill_The_MercAI*)Yarzill->AI())->DoSpeach(m_player); |
| 1057 | SpeachTimer = 5000; SpeachNum++; break; |
| 1058 | // Goblin Off |
| 1059 | case 29: |
| 1060 | if (Yarzill) |
| 1061 | Yarzill->SetUInt64Value(UNIT_FIELD_TARGET, 0); |
| 1062 | SpeachTimer = 5000; SpeachNum++; break; |
| 1063 | // Overlord Go Back |
| 1064 | case 30: |
| 1065 | m_creature->GetMotionMaster()->MovePoint(0, -5085.77, 577.231, 86.6719); |
| 1066 | SpeachTimer = 5000; SpeachNum++; break; |
| 1067 | // Reset |
| 1068 | case 31: |
| 1069 | Reset(); |
| 1070 | break; |
| 1071 | default: break; |
| 1072 | } |
| 1073 | }else SpeachTimer -= diff; |
| 1074 | } |
| 1075 | } |