private void HandleShotFiredMessage(NetIncomingMessage im) { var message = new ShotFiredMessage(im); if (message.FiredById != localPlayerId) { this.projectileManager.FireProjectile(playerManager.GetPlayer(message.FiredById), message.bulletDirection); } }
/// <summary> /// The handle shot fired message. /// </summary> /// <param name="im"> /// The im. /// </param> private void HandleShotFiredMessage(NetIncomingMessage im) { var message = new ShotFiredMessage(im); var timeDelay = (float)(NetTime.Now - im.SenderConnection.GetLocalTime(message.MessageTime)); Vector2 adjustedPosition = message.Position + (message.Velocity * timeDelay); this.shotManager.FireShot( message.Id, adjustedPosition, message.Velocity, message.FiredById, message.FiredByPlayer); }