Exemplo n.º 1
0
        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();
                }
            }