public void WhenNotEnoughHeadroom_IncreasesActiveParticlesCountByRemainingParticles() { var subject = new Emitter(15, TimeSpan.FromSeconds(1), Profile.Point()) { Parameters = new ReleaseParameters { Quantity = 10 } }; subject.Trigger(new Coordinate(0f, 0f)); subject.ActiveParticles.Should().Be(10); subject.Trigger(new Coordinate(0f, 0f)); subject.ActiveParticles.Should().Be(15); }
public void WhenThereAreParticlesToExpire_DoesNotPassExpiredParticlesToModifiers() { var subject = new Emitter(100, TimeSpan.FromSeconds(1), Profile.Point()) { Parameters = new ReleaseParameters { Quantity = 1 } }; subject.Modifiers.Add(new AssertionModifier((particle, i) => particle.Age[i] <= 1f)); subject.Trigger(new Coordinate(0f, 0f)); subject.Update(0.5f); subject.Trigger(new Coordinate(0f, 0f)); subject.Update(0.5f); subject.Trigger(new Coordinate(0f, 0f)); subject.Update(0.5f); }
public void WhenThereAreParticlesToExpire_DecreasesActiveParticleCount() { var subject = new Emitter(100, TimeSpan.FromSeconds(1), Profile.Point()) { Parameters = new ReleaseParameters { Quantity = 1 } }; subject.Trigger(new Coordinate(0f, 0f)); subject.ActiveParticles.Should().Be(1); subject.Update(2f); subject.ActiveParticles.Should().Be(0); }