diff options
| author | Nyeriah <sarah.trysan@live.com> | 2014-12-13 21:43:10 -0200 | 
|---|---|---|
| committer | Nyeriah <sarah.trysan@live.com> | 2014-12-13 21:43:10 -0200 | 
| commit | ee1fa933607342947fa579a02bd135858fd6cf99 (patch) | |
| tree | a4b479b4f6de4a74ad6963cbf78d188020f07cae /src | |
| parent | 664b11d862516e7bb6eae8522e88e06f391f7810 (diff) | |
Scripts/Naxxramas: Implement Kel'Thuzad's taunts after defeating each wing and the one after killing Mr. Bigglesworth
Diffstat (limited to 'src')
3 files changed, 41 insertions, 7 deletions
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index 6fe7bb30056..6ceeb92a687 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -38,9 +38,7 @@ enum Yells      SAY_SAPP_DIALOG3                                       = 2, //not used      SAY_SAPP_DIALOG4_LICH                                  = 3, //not used      SAY_SAPP_DIALOG5                                       = 4, //not used -    SAY_CAT_DIED                                           = 5, //when cat dies, not used -    //when each of the 4 wing bosses dies -    SAY_TAUNT                                              = 6, +      SAY_AGGRO                                              = 7,      SAY_SLAY                                               = 8,      SAY_DEATH                                              = 9, diff --git a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp index f285fa773fd..06a2547951d 100644 --- a/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp +++ b/src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp @@ -115,6 +115,7 @@ class instance_naxxramas : public InstanceMapScript                  minHorsemenDiedTime     = 0;                  maxHorsemenDiedTime     = 0;                  AbominationCount        = 0; +                CurrentWingTaunt        = SAY_KELTHUZAD_FIRST_WING_TAUNT;                  playerDied              = 0;              } @@ -242,6 +243,15 @@ class instance_naxxramas : public InstanceMapScript                      playerDied = 1;                      SaveToDB();                  } + +                if (Creature* creature = unit->ToCreature()) +                    if (creature->GetEntry() == NPC_BIGGLESWORTH) +                    { +                        // Loads Kel'Thuzad's grid. We need this as he must be active in order for his texts to work. +                        instance->LoadGrid(3749.67f, -5114.06f); +                        if (Creature* kelthuzad = instance->GetCreature(KelthuzadGUID)) +                            kelthuzad->AI()->Talk(SAY_KELTHUZAD_CAT_DIED); +                    }              }              void SetData(uint32 id, uint32 value) override @@ -339,17 +349,26 @@ class instance_naxxramas : public InstanceMapScript                  switch (id)                  { +                    case BOSS_MAEXXNA: +                    case BOSS_LOATHEB: +                    case BOSS_THADDIUS: +                        if (state == DONE) +                            events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000); +                        break;                      case BOSS_GOTHIK:                          if (state == DONE)                              events.ScheduleEvent(EVENT_DIALOGUE_GOTHIK_KORTHAZZ, 10000);                          break;                      case BOSS_HORSEMEN:                          if (state == DONE) +                        {                              if (GameObject* horsemenChest = instance->GetGameObject(HorsemenChestGUID))                              {                                  horsemenChest->SetRespawnTime(horsemenChest->GetRespawnDelay());                                  horsemenChest->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_NOT_SELECTABLE);                              } +                            events.ScheduleEvent(EVENT_KELTHUZAD_WING_TAUNT, 6000); +                        }                          break;                      default:                          break; @@ -405,6 +424,13 @@ class instance_naxxramas : public InstanceMapScript                              if (Creature* rivendare = instance->GetCreature(BaronGUID))                                  rivendare->AI()->Talk(SAY_DIALOGUE_GOTHIK_HORSEMAN2);                              break; +                        case EVENT_KELTHUZAD_WING_TAUNT: +                            // Loads Kel'Thuzad's grid. We need this as he must be active in order for his texts to work. +                            instance->LoadGrid(3749.67f, -5114.06f); +                            if (Creature* kelthuzad = instance->GetCreature(KelthuzadGUID)) +                                kelthuzad->AI()->Talk(CurrentWingTaunt); +                            ++CurrentWingTaunt; +                            break;                          default:                              break;                      } @@ -513,6 +539,7 @@ class instance_naxxramas : public InstanceMapScript              ObjectGuid KelthuzadTriggerGUID;              ObjectGuid PortalsGUID[4];              uint8 AbominationCount; +            uint8 CurrentWingTaunt;              /* The Immortal / The Undying */              uint32 playerDied; diff --git a/src/server/scripts/Northrend/Naxxramas/naxxramas.h b/src/server/scripts/Northrend/Naxxramas/naxxramas.h index ac339a60fda..a1c8a1c79d4 100644 --- a/src/server/scripts/Northrend/Naxxramas/naxxramas.h +++ b/src/server/scripts/Northrend/Naxxramas/naxxramas.h @@ -89,7 +89,8 @@ enum CreaturesIds      NPC_CRYPT_GUARD             = 16573,      NPC_NAXXRAMAS_FOLLOWER      = 16505,      NPC_FOLLOWER_WORSHIPPER     = 16506, -    NPC_DK_UNDERSTUDY           = 16803 +    NPC_DK_UNDERSTUDY           = 16803, +    NPC_BIGGLESWORTH            = 16998  };  enum GameObjectsIds @@ -152,13 +153,21 @@ enum InstanceEvents      EVENT_DIALOGUE_GOTHIK_BLAUMEUX2,      EVENT_DIALOGUE_GOTHIK_ZELIEK2,      EVENT_DIALOGUE_GOTHIK_KORTHAZZ2, -    EVENT_DIALOGUE_GOTHIK_RIVENDARE2 +    EVENT_DIALOGUE_GOTHIK_RIVENDARE2, + +    // Dialogue that happens after each wing. +    EVENT_KELTHUZAD_WING_TAUNT  };  enum InstanceTexts  { -    SAY_DIALOGUE_GOTHIK_HORSEMAN  = 5, -    SAY_DIALOGUE_GOTHIK_HORSEMAN2 = 6 +    // The Four Horsemen +    SAY_DIALOGUE_GOTHIK_HORSEMAN   = 5, +    SAY_DIALOGUE_GOTHIK_HORSEMAN2  = 6, + +    // Kel'Thuzad +    SAY_KELTHUZAD_CAT_DIED         = 5, +    SAY_KELTHUZAD_FIRST_WING_TAUNT = 16  };  /*  | 
