예제 #1
0
            private void HandleAura(EffectInfo e)
            {
                if (Deleted || !Alive || e.ProcessIndex != 0)
                {
                    return;
                }

                foreach (var t in Aspect.AcquireTargets(e.Source.Location, 0))
                {
                    if (!t.Frozen)
                    {
                        Damage(10, this);

                        t.TryFreeze(TimeSpan.FromSeconds(3.0));
                    }

                    t.PlaySound(912);
                }
            }
예제 #2
0
            private void HandleAura(EffectInfo e)
            {
                if (Deleted || !Alive || e.ProcessIndex != 0)
                {
                    return;
                }

                var damage = 5 * (5 - GetDistanceToSqrt(e.Source));

                foreach (var t in Aspect.AcquireTargets(e.Source.Location, 0))
                {
                    if (t.Player)
                    {
                        t.Damage(Math.Min(25, (int)damage), this);
                    }
                    else
                    {
                        t.Damage((int)damage, this);
                    }

                    Effects.SendBoltEffect(t, true, e.Hue);
                }
            }
예제 #3
0
            private void HandleAura(EffectInfo e)
            {
                if (Deleted || !Alive || e.ProcessIndex != 0)
                {
                    return;
                }

                foreach (var t in Aspect.AcquireTargets(e.Source.Location, 0))
                {
                    var sap = t.StamMax * 0.10;

                    if (!t.Player)
                    {
                        sap = Math.Min(100, sap);
                    }

                    t.Stam -= (int)sap;

                    if (Aspect != null)
                    {
                        Aspect.Stam += (int)sap;
                    }
                }
            }
예제 #4
0
            private void HandleAura(EffectInfo e)
            {
                if (Deleted || !Alive || e.ProcessIndex != 0)
                {
                    return;
                }

                foreach (var t in Aspect.AcquireTargets(e.Source.Location, 0))
                {
                    var sap = t.HitsMax * 0.45;

                    if (!t.Player)
                    {
                        sap = Math.Min(100, sap);
                    }

                    t.Damage((int)sap, this);

                    if (Aspect != null)
                    {
                        Aspect.Heal((int)sap, this);
                    }
                }
            }