// initialize jwplayer var playerInstance = jwplayer('player'); // player dom elements var playerContainerEl = document.querySelector('.player-container'); // returns video player position from top of document function getElementOffsetTop(el) { var boundingClientRect = el.getBoundingClientRect(); var bodyEl = document.body; var docEl = document.documentElement; var scrollTop = window.pageYOffset || docEl.scrollTop || bodyEl.scrollTop; var clientTop = docEl.clientTop || bodyEl.clientTop || 0; return Math.round(boundingClientRect.top + scrollTop - clientTop); } // returns the current y scroll position function getScrollTop() { var docEl = document.documentElement; return (window.pageYOffset || docEl.scrollTop) - (docEl.clientTop || 0); } // configure jwplayer instance playerInstance.setup({ autostart: true, playlist: 'https://cdn.jwplayer.com/v2/playlists/mYdavspX', primary: 'html5', setFullscreen: true, width: '100%' }); // when jwplayer instance is ready playerInstance.on('ready', function() { var config = playerInstance.getConfig(); var utils = playerInstance.utils; // get height of player element var playerHeight = config.containerHeight; // flag determining whether close has been clicked var closed = true; // CHANGED // flag determing whether player is playing var playing = false; // ADDED // eventhandler for when close button is being pressed document.getElementsByClassName('icon-close')[0].addEventListener('click', () => { closed = true; onScrollViewHandler(); }); playerInstance.on('play', function() { closed = false; playing = true; // ADDED }).on('pause', function () { playing = false; // ADDED }).on('adPlay', function() { closed = false; // ADDED playing = true; // ADDED }).on('adPause', function() { playing = false; // ADDED }); // get player element position from top of document var playerOffsetTop = getElementOffsetTop(playerContainerEl); // set player container to match height of actual video element playerContainerEl.style.height = playerHeight + 'px'; // below we handle window scroll event without killing performance function onScrollViewHandler() { var minimized = getScrollTop() >= playerOffsetTop; if (closed && minimized) { minimized = false; jwplayer().pause(); playing = false; // ADDED } else if (!minimized && !playing) { closed = true; // ADDED } utils.toggleClass(playerContainerEl, 'player-minimize', minimized); // update the player's size so the controls are adjusted playerInstance.resize(); } // namespace for whether or not we are waiting for setTimeout() to finish var isScrollTimeout = false; // window onscroll event handler window.onscroll = function() { // skip if we're waiting on a scroll update timeout to finish if (isScrollTimeout) return; // flag that a new timeout will begin isScrollTimeout = true; // otherwise, call scroll event view handler onScrollViewHandler(); // set new timeout setTimeout(function() { // reset timeout flag to false (no longer waiting) isScrollTimeout = false; }, 80); }; });

2XP Tokens in Call of Duty: Modern Warfare work differently than previous Call of Duty games in many ways.

In this post, we wanted to share the latest information on how 2XP Tokens work to ensure that you are in the know if you get tokens.

The biggest thing to know: the timer for 2XP tokens, once activated, will not stop regardless of what’s happening. This means that in the pre-game lobby, if you exit the game, while waiting for a match, the 2XP token will continue to countdown the timer.

You can earn 2XP Tokens from Challenges in-game, by completing the Campaign Missions, and via partnerships like Mountain Dew.

Here’s an FAQ from Activision Support:

HOW CAN I ACQUIRE 2XP TOKENS?

You can acquire XP Tokens to receive 2XP in two ways:

  1. Through gameplay – Call of Duty: Modern Warfare offers several objectives and challenges that reward XP Tokens upon completion.
  2. Through partnerships – Buy specially-marked products from various retailers and partners and receive codes redeemable for XP Tokens.

HOW DO I ACTIVATE A 2XP TOKEN IN GAME?

You can see the total amount of XP Tokens you have and activate an XP Token from the 2XP sidebar.

  1. Enter a pregame lobby from the Multiplayer menu.
  2. Press L3 to open the 2XP sidebar.
  3. Highlight an available XP Token tile and press Select to activate 2XP.

Once an XP Token is activated, the time to earn 2XP in Multiplayer begins, and a countdown timer appears on the righthand side of the screen in the Multiplayer pregame lobby.

CAN I SEE HOW LONG THE 2XP TOKEN IS ACTIVE FOR?

Yes. Once an XP Token is activated, the time to earn 2XP in Multiplayer begins, and you’ll see a timer counting down on the righthand side in the Multiplayer pregame lobby.

WHY DOES THE 2XP TIMER RUN WHEN I AM NOT IN A MATCH?

There is a bit of a change to the system this year, as XP Tokens count down in real time whether you’re in a match or not, including the pregame lobby, when you are adjusting your loadout, or even if you exit the game. Therefore, we recommend only activating XP Tokens when you’re sure your game session will last as long as, or longer than the time of the XP Token activated in order to maximize your experience.

SOURCE: Activision Support

comments below