diff options
4 files changed, 57 insertions, 19 deletions
diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp index 039c7acee95..d5d2624c932 100644 --- a/src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp +++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_eck.cpp @@ -12,12 +12,14 @@ update creature_template set scriptname = '' where entry = ''; #include "precompiled.h" #include "def_gundrak.h" -#define SPELL_ECK_BERSERK 55816 //Eck goes berserk, increasing his attack speed by 150% and all damage he deals by 500%. -#define SPELL_ECK_BITE 55813 //Eck bites down hard, inflicting 150% of his normal damage to an enemy. -#define SPELL_ECK_SPIT 55814 //Eck spits toxic bile at enemies in a cone in front of him, inflicting 2970 Nature damage and draining 220 mana every 1 sec for 3 sec. -#define SPELL_ECK_SPRING_1 55815 //Eck leaps at a distant target. --> Drops aggro and charges a random player. Tank can simply taunt him back. -#define SPELL_ECK_SPRING_2 55837 //Eck leaps at a distant target. - +enum Spells +{ + SPELL_ECK_BERSERK = 55816, //Eck goes berserk, increasing his attack speed by 150% and all damage he deals by 500%. + SPELL_ECK_BITE = 55813, //Eck bites down hard, inflicting 150% of his normal damage to an enemy. + SPELL_ECK_SPIT = 55814, //Eck spits toxic bile at enemies in a cone in front of him, inflicting 2970 Nature damage and draining 220 mana every 1 sec for 3 sec. + SPELL_ECK_SPRING_1 = 55815, //Eck leaps at a distant target. --> Drops aggro and charges a random player. Tank can simply taunt him back. + SPELL_ECK_SPRING_2 = 55837 //Eck leaps at a distant target. +}; struct TRINITY_DLL_DECL boss_eckAI : public ScriptedAI { boss_eckAI(Creature *c) : ScriptedAI(c) @@ -64,11 +66,13 @@ struct TRINITY_DLL_DECL boss_eckAI : public ScriptedAI DoCast(m_creature->getVictim(),SPELL_ECK_BITE); uiBiteTimer = 8000 + rand()%4000; } else uiBiteTimer -= diff; + if (uiSpitTimer < diff) { DoCast(m_creature->getVictim(),SPELL_ECK_SPIT); uiSpitTimer = 6000 + rand()%8000; } else uiSpitTimer -= diff; + if (uiSpringTimer < diff) { Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM,1); @@ -78,12 +82,25 @@ struct TRINITY_DLL_DECL boss_eckAI : public ScriptedAI uiSpringTimer = 5000 + rand()%10000; } } else uiSpringTimer -= diff; + //Berserk on timer or 20% of health - if (!bBerserk && (uiBerserkTimer < diff || m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 20)) + if (!bBerserk) { - DoCast(m_creature,SPELL_ECK_BERSERK); - bBerserk = true; - }else uiBerserkTimer -= diff; + if (uiBerserkTimer < diff) + { + DoCast(m_creature,SPELL_ECK_BERSERK); + bBerserk = true; + } + else + { + uiBerserkTimer -= diff; + if (m_creature->GetHealth()*100 / m_creature->GetMaxHealth() < 20) + { + DoCast(m_creature,SPELL_ECK_BERSERK); + bBerserk = true; + } + } + } DoMeleeAttackIfReady(); } diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp index dcf7bde6e41..6e7c44f7193 100644 --- a/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp +++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_moorabi.cpp @@ -59,7 +59,7 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI Phase = false; if (pInstance) - pInstance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, NOT_STARTED); + pInstance->SetData(DATA_MOORABI_EVENT, NOT_STARTED); } void EnterCombat(Unit *who) @@ -68,7 +68,7 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI m_creature->CastSpell(m_creature,SPELL_MOJO_FRENZY,true); if (pInstance) - pInstance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, IN_PROGRESS); + pInstance->SetData(DATA_MOORABI_EVENT, IN_PROGRESS); } void UpdateAI(const uint32 diff) @@ -158,7 +158,7 @@ struct TRINITY_DLL_DECL boss_moorabiAI : public ScriptedAI } if (pInstance) - pInstance->SetData(DATA_DRAKKARI_COLOSSUS_EVENT, DONE); + pInstance->SetData(DATA_MOORABI_EVENT, DONE); } void KilledUnit(Unit *victim) { diff --git a/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp b/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp index 05d95c46136..3c3e6b92643 100644 --- a/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp +++ b/src/bindings/scripts/scripts/northrend/gundrak/boss_slad_ran.cpp @@ -50,6 +50,21 @@ enum ConstrictorSpells H_SPELL_VENOMOUS_BITE = 58996 }; +// Spawning locations +struct Locations +{ + float x, y, z, orientation; +}; + +static Locations SpawnLoc[]= +{ + {1783.81, 646.637, 133.948, 3.71755}, + {1775.03, 606.586, 134.165, 1.43117}, + {1717.39, 630.041, 129.282, 5.96903}, + {1765.66, 646.542, 134.02, 5.11381}, + {1716.76, 635.159, 129.282, 0.191986} +}; + struct TRINITY_DLL_DECL boss_slad_ranAI : public ScriptedAI { boss_slad_ranAI(Creature *c) : ScriptedAI(c) @@ -116,10 +131,10 @@ struct TRINITY_DLL_DECL boss_slad_ranAI : public ScriptedAI { if (uiPhase == 1) for (uint8 i = 0;i < (HeroicMode ? 5 : 3); ++i) - m_creature->SummonCreature(CREATURE_SNAKE, rand()%5, rand()%5, 0, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000); + m_creature->SummonCreature(CREATURE_SNAKE, SpawnLoc[i].x, SpawnLoc[i].y, SpawnLoc[i].z, SpawnLoc[i].orientation, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000); if (uiPhase == 2) for (uint8 i = 0;i < (HeroicMode ? 5 : 3); ++i) - m_creature->SummonCreature(CREATURE_CONSTRICTORS, rand()%5, rand()%5, 0, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000); + m_creature->SummonCreature(CREATURE_CONSTRICTORS, SpawnLoc[i].x, SpawnLoc[i].y, SpawnLoc[i].z, SpawnLoc[i].orientation, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000); uiSpawnTimer = 5000; } else uiSpawnTimer -= diff; } @@ -150,6 +165,12 @@ struct TRINITY_DLL_DECL boss_slad_ranAI : public ScriptedAI { DoScriptText(RAND(SAY_SLAY_1,SAY_SLAY_2,SAY_SLAY_3), m_creature); } + + void JustSummoned(Creature* summoned) + { + summoned->GetMotionMaster()->MovePoint(0,m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ()); + + } }; struct TRINITY_DLL_DECL mob_slad_ran_constrictorAI : public ScriptedAI diff --git a/src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp b/src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp index 157b4c87991..1c37cce6b37 100644 --- a/src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp +++ b/src/bindings/scripts/scripts/northrend/gundrak/instance_gundrak.cpp @@ -85,7 +85,7 @@ struct TRINITY_DLL_DECL instance_gundrak : public ScriptedInstance case 29305: uiMoorabi = pCreature->GetGUID(); break; case 29306: uiGalDarah = pCreature->GetGUID(); break; case 29307: uiDrakkariColossus = pCreature->GetGUID(); break; - case 29332: uiEckTheFerocious = pCreature->GetGUID(); break; + case 29932: uiEckTheFerocious = pCreature->GetGUID(); break; } } @@ -104,7 +104,7 @@ struct TRINITY_DLL_DECL instance_gundrak : public ScriptedInstance pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_UNK1); break; case 192520: - uiDrakkariColossus = pGo->GetGUID(); + uiDrakkariColossusAltar = pGo->GetGUID(); if (m_auiEncounter[2] == DONE) pGo->RemoveFlag(GAMEOBJECT_FLAGS,GO_FLAG_UNK1); break; @@ -115,7 +115,7 @@ struct TRINITY_DLL_DECL instance_gundrak : public ScriptedInstance uiMoorabiStatue = pGo->GetGUID(); break; case 192567: - uiDrakkariColossus = pGo->GetGUID(); + uiDrakkariColossusStatue = pGo->GetGUID(); break; case 192632: uiEckTheFerociousDoor = pGo->GetGUID(); @@ -136,7 +136,7 @@ struct TRINITY_DLL_DECL instance_gundrak : public ScriptedInstance uiBridge = pGo->GetGUID(); break; case 192633: - uiBridge = pGo->GetGUID(); + uiCollision = pGo->GetGUID(); break; } } |