Esempio n. 1
0
        private void OnChange(object sender, AbilityEventArgs args)
        {
            List <AbilityDraw> abilities;

            if (!drawnAbilities.TryGetValue(args.Hero, out abilities))
            {
                drawnAbilities.Add(args.Hero, new List <AbilityDraw>());
            }

            var drawnAbility = abilities?.FirstOrDefault(x => x.Name == args.Name);

            if (drawnAbility == null)
            {
                drawnAbility = new AbilityDraw(args.Hero, args.Name);
                drawnAbilities[args.Hero].Add(drawnAbility);
            }

            drawnAbility.SaveSettings(args.Red, args.Green, args.Blue, args.RadiusOnly);

            if (!args.Redraw)
            {
                return;
            }

            if (args.Enabled)
            {
                drawnAbility.Disabled = false;

                if (!drawnAbility.IsValid)
                {
                    drawnAbility.FindAbility();

                    if (!drawnAbility.IsValid && drawnAbility.CustomRange == CustomRange.None)
                    {
                        return;
                    }
                }

                Redraw(drawnAbility);
            }
            else
            {
                if (drawnAbility.ParticleEffect != null)
                {
                    drawnAbility.ParticleEffect.Dispose();
                    drawnAbility.ParticleEffect = null;
                }

                drawnAbility.Disabled = true;
            }
        }
Esempio n. 2
0
        private void OnChange(object sender, AbilityEventArgs args)
        {
            List<AbilityDraw> abilities;

            if (!drawedAbilities.TryGetValue(args.Hero, out abilities))
            {
                drawedAbilities.Add(args.Hero, new List<AbilityDraw>());
            }

            var drawedAbility = abilities?.FirstOrDefault(x => x.Name == args.Name);

            if (drawedAbility == null)
            {
                drawedAbility = new AbilityDraw(args.Hero, args.Name);
                drawedAbilities[args.Hero].Add(drawedAbility);
            }

            drawedAbility.SaveSettings(args.Red, args.Green, args.Blue, args.RadiusOnly);

            if (!args.Redraw)
            {
                return;
            }

            if (args.Enabled)
            {
                drawedAbility.Disabled = false;

                if (!drawedAbility.IsValid)
                {
                    drawedAbility.FindAbility();

                    if (!drawedAbility.IsValid && drawedAbility.CustomRange == CustomRange.None)
                    {
                        return;
                    }
                }

                Redraw(drawedAbility);
            }
            else
            {
                if (drawedAbility.ParticleEffect != null)
                {
                    drawedAbility.ParticleEffect.Dispose();
                    drawedAbility.ParticleEffect = null;
                }

                drawedAbility.Disabled = true;
            }
        }