|
16 | 16 |
|
17 | 17 | /* ScriptData
|
18 | 18 | SDName: instance_trial_of_the_champion
|
19 |
| -SD%Complete: 30 |
20 |
| -SDComment: First encounter only |
| 19 | +SD%Complete: 90 |
| 20 | +SDComment: Fireworks and various other fine details are not yet implemented. |
21 | 21 | SDCategory: Crusader Coliseum, Trial of the Champion
|
22 | 22 | EndScriptData */
|
23 | 23 |
|
|
86 | 86 | SPELL_ARGENT_SUMMON_BOSS_4 = 67396,
|
87 | 87 |
|
88 | 88 | SPELL_HERALD_FACE_DARK_KNIGHT = 67482,
|
89 |
| - SPELL_DEATHS_RESPITE = 66798, |
90 |
| - SPELL_DEATHS_PUSH = 66797, |
| 89 | + SPELL_DEATHS_RESPITE = 66798, // triggers 66797 |
91 | 90 | SPELL_ARGENT_HERALD_FEIGN_DEATH = 66804,
|
92 | 91 |
|
93 | 92 | // Arena event spells - not used for the moment
|
@@ -123,6 +122,23 @@ static const DialogueEntryTwoSide aTocDialogues[] =
|
123 | 122 | // Argetn challenge complete
|
124 | 123 | {POINT_ID_MOUNT, 0, 0, 0, 5000},
|
125 | 124 | {POINT_ID_EXIT, 0, 0, 0, 0},
|
| 125 | + // Black knight intro |
| 126 | + {TYPE_BLACK_KNIGHT, 0, 0, 0, 4000}, |
| 127 | + {SAY_TIRION_ARGENT_CHAMPION_COMPLETE, NPC_TIRION_FORDRING, 0, 0, 4000}, |
| 128 | + {SAY_HERALD_BLACK_KNIGHT_SPAWN, NPC_ARELAS_BRIGHTSTAR, SAY_HERALD_BLACK_KNIGHT_SPAWN, NPC_JAEREN_SUNSWORN, 21000}, |
| 129 | + {NPC_BLACK_KNIGHT, 0, 0, 0, 1000}, |
| 130 | + {SAY_BLACK_KNIGHT_INTRO_1, NPC_BLACK_KNIGHT, 0, 0, 4000}, |
| 131 | + {SPELL_DEATHS_RESPITE, 0, 0, 0, 3000}, |
| 132 | + {SAY_TIRION_BLACK_KNIGHT_INTRO_2, NPC_TIRION_FORDRING, 0, 0, 1000}, |
| 133 | + {NPC_BLACK_KNIGHT_GRYPHON, 0, 0, 0, 2000}, |
| 134 | + {SAY_BLACK_KNIGHT_INTRO_3, NPC_BLACK_KNIGHT, 0, 0, 15000}, |
| 135 | + {SAY_BLACK_KNIGHT_INTRO_4, NPC_BLACK_KNIGHT, 0, 0, 4000}, |
| 136 | + {SPELL_ARGENT_HERALD_FEIGN_DEATH, 0, 0, 0, 0}, |
| 137 | + // Black knight epilog |
| 138 | + {SPELL_SPECTATOR_FORCE_CHEER, 0, 0, 0, 5000}, |
| 139 | + {SAY_TIRION_EPILOG_1, NPC_TIRION_FORDRING, 0, 0, 7000}, |
| 140 | + {SAY_TIRION_EPILOG_2, NPC_TIRION_FORDRING, 0, 0, 6000}, |
| 141 | + {SAY_VARIAN_ALLIANCE_EPILOG_3, NPC_VARIAN_WRYNN, SAY_THRALL_HORDE_EPILOG_3, NPC_THRALL, 0}, |
126 | 142 | {0, 0, 0, 0, 0}
|
127 | 143 | };
|
128 | 144 |
|
@@ -213,6 +229,8 @@ void instance_trial_of_the_champion::OnCreatureCreate(Creature* pCreature)
|
213 | 229 | case NPC_SPECTATOR_GNOME:
|
214 | 230 | case NPC_SPECTATOR_HORDE:
|
215 | 231 | case NPC_SPECTATOR_ALLIANCE:
|
| 232 | + case NPC_BLACK_KNIGHT: |
| 233 | + case NPC_BLACK_KNIGHT_GRYPHON: |
216 | 234 | break;
|
217 | 235 | case NPC_SPECTATOR_GENERIC:
|
218 | 236 | // alliance side
|
@@ -344,6 +362,9 @@ void instance_trial_of_the_champion::SetData(uint32 uiType, uint32 uiData)
|
344 | 362 | }
|
345 | 363 | break;
|
346 | 364 | case TYPE_BLACK_KNIGHT:
|
| 365 | + DoUseDoorOrButton(GO_NORTH_GATE); |
| 366 | + if (uiData == DONE) |
| 367 | + StartNextDialogueText(SPELL_SPECTATOR_FORCE_CHEER); |
347 | 368 | m_auiEncounter[uiType] = uiData;
|
348 | 369 | break;
|
349 | 370 | case TYPE_ARENA_CHALLENGE:
|
@@ -866,6 +887,64 @@ void instance_trial_of_the_champion::JustDidDialogueStep(int32 iEntry)
|
866 | 887 | pChampion->ForcedDespawn(8000);
|
867 | 888 | }
|
868 | 889 | break;
|
| 890 | + |
| 891 | + // start black knight intro |
| 892 | + case TYPE_BLACK_KNIGHT: |
| 893 | + if (Creature* pHerald = GetSingleCreatureFromStorage(m_uiHeraldEntry)) |
| 894 | + pHerald->GetMotionMaster()->MovePoint(0, aHeraldPositions[3][0], aHeraldPositions[3][1], aHeraldPositions[3][2]); |
| 895 | + break; |
| 896 | + case SAY_TIRION_ARGENT_CHAMPION_COMPLETE: |
| 897 | + if (Creature* pHerald = GetSingleCreatureFromStorage(m_uiHeraldEntry)) |
| 898 | + { |
| 899 | + if (Creature* pKnight = pHerald->SummonCreature(NPC_BLACK_KNIGHT, aKnightPositions[0][0], aKnightPositions[0][1], aKnightPositions[0][2], aKnightPositions[0][3], TEMPSUMMON_DEAD_DESPAWN, 0)) |
| 900 | + { |
| 901 | + if (Creature* pGryphon = pHerald->SummonCreature(NPC_BLACK_KNIGHT_GRYPHON, aKnightPositions[1][0], aKnightPositions[1][1], aKnightPositions[1][2], aKnightPositions[1][3], TEMPSUMMON_TIMED_DESPAWN, 75000)) |
| 902 | + { |
| 903 | + pKnight->CastSpell(pGryphon, SPELL_RIDE_VEHICLE_HARDCODED, true); |
| 904 | + pGryphon->SetWalk(false); |
| 905 | + pGryphon->SetLevitate(true); |
| 906 | + } |
| 907 | + } |
| 908 | + |
| 909 | + if (Creature* pTirion = GetSingleCreatureFromStorage(NPC_TIRION_FORDRING)) |
| 910 | + pHerald->SetFacingToObject(pTirion); |
| 911 | + } |
| 912 | + break; |
| 913 | + case SAY_HERALD_BLACK_KNIGHT_SPAWN: |
| 914 | + if (Creature* pHerald = GetSingleCreatureFromStorage(m_uiHeraldEntry)) |
| 915 | + pHerald->CastSpell(pHerald, SPELL_HERALD_FACE_DARK_KNIGHT, false); |
| 916 | + if (Creature* pGryphon = GetSingleCreatureFromStorage(NPC_BLACK_KNIGHT_GRYPHON)) |
| 917 | + pGryphon->GetMotionMaster()->MoveWaypoint(); |
| 918 | + break; |
| 919 | + case NPC_BLACK_KNIGHT: |
| 920 | + if (Creature* pGryphon = GetSingleCreatureFromStorage(NPC_BLACK_KNIGHT_GRYPHON)) |
| 921 | + pGryphon->RemoveAurasDueToSpell(SPELL_RIDE_VEHICLE_HARDCODED); |
| 922 | + break; |
| 923 | + case SAY_BLACK_KNIGHT_INTRO_1: |
| 924 | + if (Creature* pKnight = GetSingleCreatureFromStorage(NPC_BLACK_KNIGHT)) |
| 925 | + { |
| 926 | + if (Creature* pHerald = GetSingleCreatureFromStorage(m_uiHeraldEntry)) |
| 927 | + { |
| 928 | + pHerald->SetFacingToObject(pKnight); |
| 929 | + pKnight->SetFacingToObject(pHerald); |
| 930 | + } |
| 931 | + } |
| 932 | + break; |
| 933 | + case SPELL_DEATHS_RESPITE: |
| 934 | + if (Creature* pKnight = GetSingleCreatureFromStorage(NPC_BLACK_KNIGHT)) |
| 935 | + pKnight->CastSpell(pKnight, SPELL_DEATHS_RESPITE, false); |
| 936 | + break; |
| 937 | + case NPC_BLACK_KNIGHT_GRYPHON: |
| 938 | + if (Creature* pHerald = GetSingleCreatureFromStorage(m_uiHeraldEntry)) |
| 939 | + pHerald->CastSpell(pHerald, SPELL_ARGENT_HERALD_FEIGN_DEATH, true); |
| 940 | + break; |
| 941 | + case SPELL_ARGENT_HERALD_FEIGN_DEATH: |
| 942 | + if (Creature* pKnight = GetSingleCreatureFromStorage(NPC_BLACK_KNIGHT)) |
| 943 | + { |
| 944 | + pKnight->SetRespawnCoord(aKnightPositions[2][0], aKnightPositions[2][1], aKnightPositions[2][2], aKnightPositions[2][3]); |
| 945 | + pKnight->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE); |
| 946 | + } |
| 947 | + break; |
869 | 948 | }
|
870 | 949 | }
|
871 | 950 |
|
|
0 commit comments