Ejemplo n.º 1
0
        private static TimeSpan RunBench(string name, uint iterations, Action <BaseCreature> setupFunc = null, Action <int, BaseCreature> benchFunc = null)
        {
            var subject = new Rat();

            var watch = new Stopwatch();

            watch.Start();

            setupFunc?.Invoke(subject);

            for (var i = 0; i < iterations; i++)
            {
                benchFunc?.Invoke(i, subject);
            }

            watch.Stop();

            var ticks   = (double)watch.Elapsed.Ticks;
            var totalMs = ticks / TimeSpan.TicksPerMillisecond;

            var avgTicks = ticks / iterations;
            var avgMs    = avgTicks / TimeSpan.TicksPerMillisecond;

            Console.WriteLine(
                $"Ran {iterations} of {name} " +
                $"iterations took {ticks} ticks ({totalMs} ms) " +
                $"with an average of {avgTicks} ticks ({avgMs} ms) per iteration."
                );

            subject.Delete();

            return(watch.Elapsed);
        }
Ejemplo n.º 2
0
        private static void TestHooks_OnCommand(CommandEventArgs eventArgs)
        {
            var subject = new Rat();

            subject.Enchantments.Set((HealingBonus e) => e.Value = 25);
            subject.ZuluClass.Type  = ZuluClassType.Warrior;
            subject.ZuluClass.Level = 5;
            var value = 100.0;

            eventArgs.Mobile.SendMessage($"Heal value before {value}");

            ((Mobile)subject).FireHook(h => h.OnHeal(subject, subject, new Bandage(), ref value));

            eventArgs.Mobile.SendMessage($"Healed value after {value}");

            subject.Delete();
        }