Beispiel #1
0
 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);
     }
 }
Beispiel #2
0
        public void Emit(Particle p, bool broadcast = true)
        {
            if(IsSand && broadcast)
            {
                _createParticleQueue.Add(p);
            }

            Particles.Add(p.Id, p);
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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);
            }
        }
Beispiel #5
0
        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);
            }
        }