diff options
4 files changed, 52 insertions, 25 deletions
diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp index 9d05fd44a6c..b3e4bed1f90 100644 --- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp +++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp @@ -29,21 +29,26 @@ Script Data End */ enum eSpells { - SPELL_BELLOWING_ROAR = 44863, // fears the group, can be resisted/dispelled - SPELL_GRIEVOUS_BITE = 48920, - SPELL_MANGLING_SLASH = 48873, //casted on the current tank, adds debuf - SPELL_FEARSOME_ROAR = 48849, - H_SPELL_FEARSOME_ROAR = 48849, //Not stacking, debuff - SPELL_PIERCING_SLASH = 48878, //debuff -->Armor reduced by 75% - SPELL_RAPTOR_CALL = 59416, //dummy - - SPELL_GUT_RIP = 49710, - SPELL_REND = 13738 + SPELL_BELLOWING_ROAR = 44863, // fears the group, can be resisted/dispelled + SPELL_GRIEVOUS_BITE = 48920, + SPELL_MANGLING_SLASH = 48873, //casted on the current tank, adds debuf + SPELL_FEARSOME_ROAR = 48849, + H_SPELL_FEARSOME_ROAR = 48849, //Not stacking, debuff + SPELL_PIERCING_SLASH = 48878, //debuff -->Armor reduced by 75% + SPELL_RAPTOR_CALL = 59416, //dummy + SPELL_GUT_RIP = 49710, + SPELL_REND = 13738 }; enum eArchivements { - ACHIEV_BETTER_OFF_DRED = 2039 + ACHIEV_BETTER_OFF_DRED = 2039 +}; + +enum Creatures +{ + NPC_RAPTOR_1 = 26641, + NPC_RAPTOR_2 = 26628 }; struct TRINITY_DLL_DECL boss_dredAI : public ScriptedAI @@ -75,7 +80,7 @@ struct TRINITY_DLL_DECL boss_dredAI : public ScriptedAI ManglingSlashTimer = 18500; FearsomeRoarTimer = urand(10000,20000); PiercingSlashTimer = 17000; - RaptorCallTimer = 12000; + RaptorCallTimer = urand(20000,25000); } void EnterCombat(Unit* who) @@ -127,12 +132,9 @@ struct TRINITY_DLL_DECL boss_dredAI : public ScriptedAI float x,y,z; m_creature->GetClosePoint(x,y,z,m_creature->GetObjectSize()/3,10.0f); - m_creature->SummonCreature(26628,x,y,z,0,TEMPSUMMON_DEAD_DESPAWN,1000); - - m_creature->GetClosePoint(x,y,z,m_creature->GetObjectSize()/3,10.0f); - m_creature->SummonCreature(26641,x,y,z,0,TEMPSUMMON_DEAD_DESPAWN,1000); + m_creature->SummonCreature(RAND(NPC_RAPTOR_1,NPC_RAPTOR_2),x,y,z,0,TEMPSUMMON_DEAD_DESPAWN,1000); - RaptorCallTimer = 20000; + RaptorCallTimer = urand(20000,25000); } else RaptorCallTimer -=diff; DoMeleeAttackIfReady(); diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp index 9b4c6155cc8..bafc5de6ee0 100644 --- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp +++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp @@ -78,7 +78,7 @@ struct Location static Location AddSpawnPoint = { -379.20, -816.76, 59.70}; static Location CrystalHandlerSpawnPoint = { -326.626343, -709.956604, 27.813314 }; -static Location AddDestinyPoint = { -382.169, -711.369, 27.375}; +static Location AddDestinyPoint = { -379.314545, -772.577637, 28.58837 }; struct TRINITY_DLL_DECL boss_novosAI : public Scripted_NoMovementAI { diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp index df2e25299a6..3c8fc03b323 100644 --- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp +++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp @@ -50,6 +50,7 @@ enum Spells H_SPELL_POISON_CLOUD = 59969, SPELL_RETURN_FLESH = 53463 //Channeled spell ending phase two and returning to phase 1. This ability will stun the party for 6 seconds. }; +/* not needed enum PlayerSkills { //Players' skills during Phase2 @@ -58,7 +59,7 @@ enum PlayerSkills SPELL_PLAYER_PHASE2_BONE_ARMOR = 49609, SPELL_PLAYER_PHASE2_TOUCH_OF_LIFE = 49617 }; - +*/ //not in db enum Yells { @@ -73,7 +74,7 @@ enum Yells }; enum Models { - MODEL_FLESH = 27696, + MODEL_FLESH = 27073, MODEL_SKELETON = 27511 }; enum CombatPhase @@ -215,7 +216,7 @@ struct TRINITY_DLL_DECL boss_tharon_jaAI : public ScriptedAI if (uiPhaseTimer < diff) { DoScriptText(RAND(SAY_SKELETON_1,SAY_SKELETON_2), m_creature); - m_creature->SetDisplayId(m_creature->GetNativeDisplayId()); + m_creature->DeMorph(); Phase = SKELETAL; uiPhaseTimer = 20000; uiCurseOfLifeTimer = 1000; diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp index 5f67fc9976f..ec211ecde86 100644 --- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp +++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp @@ -55,12 +55,15 @@ enum Achievements }; enum Creatures { - NPC_DRAKKARI_INVADERS = 22222 + NPC_DRAKKARI_INVADER_1 = 27753, + NPC_DRAKKARI_INVADER_2 = 27709 }; +Position SpawnPoint = { -260.493011, -622.968018, 26.605301, 3.036870 }; + struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI { - boss_trollgoreAI(Creature *c) : ScriptedAI(c) + boss_trollgoreAI(Creature *c) : ScriptedAI(c), lSummons(me) { pInstance = c->GetInstanceData(); } @@ -70,9 +73,12 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI uint32 uiCrushTimer; uint32 uiInfectedWoundTimer; uint32 uiExplodeCorpseTimer; + uint32 uiSpawnTimer; bool bAchiev; + SummonList lSummons; + ScriptedInstance* pInstance; void Reset() @@ -82,9 +88,12 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI uiCrushTimer = urand(1000,5000); uiInfectedWoundTimer = urand(6000,10000); uiExplodeCorpseTimer = 3000; + uiSpawnTimer = urand(30000,40000); bAchiev = HeroicMode; + lSummons.DespawnAll(); + if (m_creature->HasAura(HEROIC(SPELL_CONSUME,H_SPELL_CONSUME))) m_creature->RemoveAura(HEROIC(SPELL_CONSUME,H_SPELL_CONSUME)); @@ -99,14 +108,20 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI if (pInstance) pInstance->SetData(DATA_TROLLGORE_EVENT, IN_PROGRESS); } - void AttackStart(Unit* who) {} - void MoveInLineOfSight(Unit* who) {} + void UpdateAI(const uint32 diff) { //Return since we have no target if (!UpdateVictim()) return; + if (uiSpawnTimer < diff) + { + for (uint8 i = 0; i < urand(2,HEROIC(3,5)); ++i) + DoSpawnCreature(RAND(NPC_DRAKKARI_INVADER_1,NPC_DRAKKARI_INVADER_2), SpawnPoint.GetPositionX(), SpawnPoint.GetPositionY(), SpawnPoint.GetPositionZ(), SpawnPoint.GetOrientation(), TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 90000); + uiSpawnTimer = urand(30000,40000); + } else uiSpawnTimer -= diff; + if (uiConsumeTimer < diff) { DoScriptText(SAY_CONSUME, m_creature); @@ -149,10 +164,13 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI DoMeleeAttackIfReady(); } + void JustDied(Unit* killer) { DoScriptText(SAY_DEATH, m_creature); + lSummons.DespawnAll(); + if (pInstance) { if (bAchiev) @@ -160,12 +178,18 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI pInstance->SetData(DATA_TROLLGORE_EVENT, DONE); } } + void KilledUnit(Unit *victim) { if (victim == m_creature) return; DoScriptText(SAY_KILL, m_creature); } + + void JustSummoned(Creature* summon) + { + summon->AI()->AttackStart(m_creature); + } }; CreatureAI* GetAI_boss_trollgore(Creature* pCreature) |