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); }
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(); }