/// <summary> /// Create, initialise, and track new particle /// </summary> public void Activate() { if (!cdHandler.IsOnCooldown()) { JObject particleObj = Util.Deserialize(Particle.FilePath); Particle newParticle = new ParticleFactory().Create(particleObj, FilePath, entHandler, boundaryStrat, Team, offsetPos) as Particle; newParticle.Init(refPos, Dir); entHandler.Track(newParticle); cdHandler.StartCooldown(); } }
public override Component Create(JObject emitterObj, string path, IHandlesEntities entHandler, BoundaryStrategy boundaryStrat, Team team, Point2D offsetPos, float mod = 1) { string id = emitterObj.Value <string>("id"); float cooldownRate = emitterObj.Value <float>("rate"); JObject particleObj = emitterObj.Value <JObject>("particle"); Component particle = new ParticleFactory().CreateFromReference(particleObj, entHandler, boundaryStrat, team, offsetPos); return(new Emitter(id, path, SwinGame.PointAt(0, 0), offsetPos, SwinGame.VectorTo(0, 0), SwinGame.VectorTo(0, -1), boundaryStrat, team, cooldownRate, new List <Component>() { particle }, entHandler)); }