public override void JustDied(Unit killer) { Creature deathcharger = me.FindNearestCreature(28782, 30); if (!deathcharger) { return; } if (killer.IsTypeId(TypeId.Player) && deathcharger.IsTypeId(TypeId.Unit) && deathcharger.IsVehicle()) { deathcharger.AddNpcFlag(NPCFlags.SpellClick); deathcharger.RemoveUnitFlag(UnitFlags.NotSelectable); deathcharger.SetFaction(2096); } }
public override void SetData(uint uiType, uint uiData) { switch (uiType) { case (uint)Data.DATA_MOVEMENT_DONE: uiMovementDone = (ushort)uiData; if (uiMovementDone == 3) { Creature pAnnouncer = instance.GetCreature(uiAnnouncerGUID); if (pAnnouncer) { pAnnouncer.GetAI().SetData((uint)Data.DATA_IN_POSITION, 0); } } break; case (uint)Data.BOSS_GRAND_CHAMPIONS: m_auiEncounter[0] = (EncounterState)uiData; if (uiData == (uint)EncounterState.InProgress) { foreach (var guid in VehicleList) { Creature summon = instance.GetCreature(guid); if (summon) { summon.RemoveFromWorld(); } } } else if (uiData == (uint)EncounterState.Done) { ++uiGrandChampionsDeaths; if (uiGrandChampionsDeaths == 3) { Creature pAnnouncer = instance.GetCreature(uiAnnouncerGUID); if (pAnnouncer) { pAnnouncer.GetMotionMaster().MovePoint(0, 748.309f, 619.487f, 411.171f); pAnnouncer.AddNpcFlag(NPCFlags.Gossip); pAnnouncer.SummonGameObject(instance.IsHeroic() ? GameObjectIds.CHAMPIONS_LOOT_H : GameObjectIds.CHAMPIONS_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, Quaternion.fromEulerAnglesZYX(1.42f, 0.0f, 0.0f), 90000); } } } break; case (uint)Data.DATA_ARGENT_SOLDIER_DEFEATED: uiArgentSoldierDeaths = (byte)uiData; if (uiArgentSoldierDeaths == 9) { Creature pBoss = instance.GetCreature(uiArgentChampionGUID); if (pBoss) { pBoss.GetMotionMaster().MovePoint(0, 746.88f, 618.74f, 411.06f); pBoss.RemoveUnitFlag(UnitFlags.NonAttackable); pBoss.SetReactState(ReactStates.Aggressive); } } break; case (uint)Data.BOSS_ARGENT_CHALLENGE_E: { m_auiEncounter[1] = (EncounterState)uiData; Creature pAnnouncer = instance.GetCreature(uiAnnouncerGUID); if (pAnnouncer) { pAnnouncer.GetMotionMaster().MovePoint(0, 748.309f, 619.487f, 411.171f); pAnnouncer.AddNpcFlag(NPCFlags.Gossip); pAnnouncer.SummonGameObject(instance.IsHeroic() ? GameObjectIds.EADRIC_LOOT_H : GameObjectIds.EADRIC_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, Quaternion.fromEulerAnglesZYX(1.42f, 0.0f, 0.0f), 90000); } } break; case (uint)Data.BOSS_ARGENT_CHALLENGE_P: { m_auiEncounter[2] = (EncounterState)uiData; Creature pAnnouncer = instance.GetCreature(uiAnnouncerGUID); if (pAnnouncer) { pAnnouncer.GetMotionMaster().MovePoint(0, 748.309f, 619.487f, 411.171f); pAnnouncer.AddNpcFlag(NPCFlags.Gossip); pAnnouncer.SummonGameObject(instance.IsHeroic() ? GameObjectIds.PALETRESS_LOOT_H : GameObjectIds.PALETRESS_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, Quaternion.fromEulerAnglesZYX(1.42f, 0.0f, 0.0f), 90000); } } break; } if (uiData == (uint)EncounterState.Done) { SaveToDB(); } }