| 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 | } |