Пример #1
0
        private static void EyeOfAcherusActivated(NPC npc)
        {
            //npc.SpellCast.TriggerSelf((SpellId)51860);
            npc.SpellCast.TriggerSelf(SpellId.EyeOfAcherusVisual);
            npc.Phase = 2;

            var chr = npc.Map.GetObject(npc.Creator) as Character;

            if (chr != null)
            {
                //TODO localise!
                ChatMgr.SendRaidBossWhisper(npc, chr, "The Eye of Acherus launches towards its destination.");

                npc.SpellCast.Trigger(SpellId.EyeOfAcherusFlightBoost, npc, chr);
                npc.Flying++;
                //npc.IncMechanicCount(SpellMechanic.Rooted);
                //Move to destination

                var points = new List <Vector3>(3)
                {
                    new Vector3(1758.007f, -5876.785f, 166.8667f),
                    new Vector3(1957.396f, -5844.105f, 273.8667f),
                    new Vector3(2341.571f, -5672.797f, 538.3942f),
                };


                npc.MoveToPointsThenExecute(points, unit =>
                {
                    unit.SpellCast.TriggerSelf(
                        SpellId.EyeOfAcherusFlight);
                    unit.Auras.Remove(
                        SpellId.EyeOfAcherusFlightBoost);
                    ChatMgr.SendRaidBossWhisper(unit, chr,
                                                "The Eye of Acherus is in your control.");
                    //unit.DecMechanicCount(SpellMechanic.Rooted);
                });
            }
        }