AngryTanks.Client.Player.HandleReceivedMessage C# (CSharp) Method

HandleReceivedMessage() protected method

protected HandleReceivedMessage ( object sender, AngryTanks.Client.ServerLinkMessageEvent message ) : void
sender object
message AngryTanks.Client.ServerLinkMessageEvent
return void
        protected virtual void HandleReceivedMessage(object sender, ServerLinkMessageEvent message)
        {
            switch (message.MessageType)
            {
                case MessageType.MsgSpawn:
                    {
                        MsgSpawnPacket packet = (MsgSpawnPacket)message.MessageData;

                        // only interested in it if it's us that is spawning
                        if (packet.Slot == this.Slot && State != PlayerState.Alive)
                        {
                            Spawn(packet.Position, packet.Rotation);
                        }

                        break;
                    }

                case MessageType.MsgDeath:
                    {
                        MsgDeathPacket packet = (MsgDeathPacket)message.MessageData;

                        // only interested in it if it's us that was killed
                        if (packet.Slot == this.Slot)
                        {
                            Die(World.PlayerManager.GetPlayerBySlot(packet.Killer));
                        }

                        break;
                    }

                case MessageType.MsgScore:
                    {
                        MsgScorePacket packet = (MsgScorePacket)message.MessageData;

                        // only interested in it if it's our new score
                        if (packet.Slot == this.Slot)
                        {
                            this.Score = packet.Score;
                        }

                        break;
                    }

                case MessageType.MsgEndShot:
                    {
                        MsgEndShotPacket packet = (MsgEndShotPacket)message.MessageData;

                        // only interested if it's a shot by this player that's ending
                        if (packet.Slot == this.Slot)
                        {
                            try
                            {
                                Shots[packet.ShotSlot].End(packet.Explode, false);
                            }
                            catch (KeyNotFoundException e)
                            {
                                Log.Warn(e.Message);
                                Log.Warn(e.StackTrace);
                            }
                        }

                        break;
                    }

                default:
                    break;
            }

            return;
        }