public void EffectTriggerEffects() { int MULTI_DURATION = 3; var effectTrigger = new EffectTrigger <EffectArgs>(); var effect1 = new IntEffect("Int Effect 1", 1); var effect2 = new IntEffect("Int Effect 3", MULTI_DURATION); var effectInf = new IntEffect("Int Effect Inf", IntEffect.INFINITE); effectTrigger.Add(effect2); effectTrigger.TriggerEffects(null); // Test with null arguments Assert.AreEqual(1, effectTrigger.Effects.Count); Assert.AreEqual(MULTI_DURATION - 1, effectTrigger.Effects[0].Duration); Assert.AreEqual(1, effect1.Duration); effectTrigger.Add(effect1); effectTrigger.Add(effectInf); Assert.AreEqual(3, effectTrigger.Effects.Count); effectTrigger.TriggerEffects(null); Assert.AreEqual(2, effectTrigger.Effects.Count); Assert.AreEqual(MULTI_DURATION - 2, effectTrigger.Effects[0].Duration); Assert.AreEqual(IntEffect.INFINITE, effectTrigger.Effects[1].Duration); var secEffectTrigger = new EffectTrigger <EffectArgs>(); var testEffect = new IntEffect("Int effect dummy", 1); var cancelingEffect = new CancelingIntEffect("Int effect 3", 1); secEffectTrigger.Add(cancelingEffect); secEffectTrigger.Add(testEffect); Assert.AreEqual(2, secEffectTrigger.Effects.Count); secEffectTrigger.TriggerEffects(new EffectArgs()); Assert.AreEqual(1, secEffectTrigger.Effects.Count); Assert.AreEqual(1, secEffectTrigger.Effects[0].Duration); // Must have cancelled }
public void EffectTriggerEffects() { const int multiDuration = 3; var effectTrigger = new EffectTrigger <EffectArgs>(); var effect1 = new IntEffect("Int Effect 1", 1); var effect2 = new IntEffect("Int Effect 3", multiDuration); var effectInf = new IntEffect("Int Effect Inf", IntEffect.Infinite); effectTrigger.Add(effect2); effectTrigger.TriggerEffects(null); // Test with null arguments Assert.Equal(1, effectTrigger.Effects.Count); Assert.Equal(multiDuration - 1, effectTrigger.Effects[0].Duration); Assert.Equal(1, effect1.Duration); effectTrigger.Add(effect1); effectTrigger.Add(effectInf); Assert.Equal(3, effectTrigger.Effects.Count); effectTrigger.TriggerEffects(null); Assert.Equal(2, effectTrigger.Effects.Count); Assert.Equal(multiDuration - 2, effectTrigger.Effects[0].Duration); Assert.Equal(IntEffect.Infinite, effectTrigger.Effects[1].Duration); var secEffectTrigger = new EffectTrigger <EffectArgs>(); var testEffect = new IntEffect("Int effect dummy", 1); var cancelingEffect = new CancelingIntEffect("Int effect 3", 1); secEffectTrigger.Add(cancelingEffect); secEffectTrigger.Add(testEffect); Assert.Equal(2, secEffectTrigger.Effects.Count); secEffectTrigger.TriggerEffects(new EffectArgs()); Assert.Equal(1, secEffectTrigger.Effects.Count); Assert.Equal(1, secEffectTrigger.Effects[0].Duration); // Must have cancelled }
public static TimeSpan TestEffectManagerNoExpiredHandler(int numEffects, int iterations) { var s = new Stopwatch(); // For caching var myEffectManager = new EffectTrigger <EffectArgs>(); foreach (int i in Enumerable.Range(0, numEffects)) { myEffectManager.Add(new MyEffect(iterations + 1)); } myEffectManager.TriggerEffects(new EffectArgs()); s.Start(); for (int i = 0; i < iterations; i++) { myEffectManager.TriggerEffects(new EffectArgs()); } s.Stop(); return(s.Elapsed); }