예제 #1
0
            private void HealAspect()
            {
                if (Deleted || !Alive || Aspect == null || Aspect.Deleted || !Aspect.Alive)
                {
                    return;
                }

                var amount = Aspect.HitsMax * 0.01;

                amount = Math.Max(1, amount);

                Aspect.Heal((int)amount, this);

                using (var fx = new EffectInfo(Aspect, Aspect.Map, 0x373A, 1150, 10, 20, EffectRender.LightenMore))
                {
                    fx.Send();
                }
            }
예제 #2
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);
                    }
                }
            }