public void Emit(int number, EmitParticleDelegate emitDelegate) { for(int i = 0; i < number; i++) { var particle = new Particle(null, Player.Gamer.Id); emitDelegate(particle); Emit(particle); } }
public void Emit(Particle p, bool broadcast = true) { if(IsSand && broadcast) { _createParticleQueue.Add(p); } Particles.Add(p.Id, p); }
public static void SendCreateSandMessage(Player player, Particle p, byte id, bool immediate) { SendMessageHeader(MessageType.CreateSand, id); Storage.PacketWriter.Write(p.Id); Storage.PacketWriter.Write(p.Owner); Storage.PacketWriter.Write(p.Position); Storage.PacketWriter.Write(p.Velocity); Storage.PacketWriter.Write((byte)p.Team); Storage.PacketWriter.Write(p.Alive); if(immediate) { SendOneOffMessage(player); } }
public static void SendUpdateSandMessage(Player player, Particle p, byte id, bool immediate) { SendMessageHeader(MessageType.UpdateSand, id); Storage.PacketWriter.Write(p.Id); Storage.PacketWriter.Write(p.Position); Storage.PacketWriter.Write(p.Velocity); Storage.PacketWriter.Write(p.Alive); Storage.PacketWriter.Write(p.OnFire); if(immediate) { SendOneOffMessage(player, false); } }
private void UpdateDebugModeInput(KeyboardState newKeyState) { if(newKeyState.IsKeyDown(Keys.R)) { ResetPlayerState(); } if(newKeyState.IsKeyDown(Keys.P)) { var p = new Particle(null, Gamer.Id); p.LifeRemaining = p.Lifetime = 100; var angle = (float)(Storage.Random.NextDouble() * (Math.PI / 8.0)) - (Math.PI / 16.0f); var length = (float)Storage.Random.Next(200, 450); p.Team = Team; p.Position = new Vector2(X, Y); p.Velocity = Velocity + new Vector2( (float)Math.Cos(Angle - (Math.PI / 2.0f) + angle) * length, (float)Math.Sin(Angle - (Math.PI / 2.0f) + angle) * length); Storage.SandParticles.Emit(p); } if(newKeyState.IsKeyDown(Keys.Y) && !_oldKeyState.IsKeyDown(Keys.Y)) { Stun(25.0f); } }