// 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); };});

During the Infinity Ward intel live stream on Facebook, the developers shared new details on the weapons and vehicles that are available in Call of Duty: Infinite Warfare.

Vehicles:

There are many vehicles in Call of Duty: Infinite Warfare, from both the friendly and enemy sides of the game. On the SATO side, there are three ones mentioned thus far: Jackal, Raven, and Retribution. On the SDF’s side, there is the Olympus Mons — which is the SDF’s main ship — and the Skelter.

For the ships that players can actually fly in the campaign, Infinity Ward has confirmed that the Jackal is the only ship that players can directly pilot in Call of Duty: Infinite Warfare’s campaign.

The stream also showcased detailed look at each of the vehicles mentioned, as well as some new in-game videos showing the transition from Earth to space combat.


Weapons:

Infinity Ward talked about how they are offering a large variety and arsenal of weapons in Call of Duty: Infinite Warfare. The game features the familiar ballistic weapons and new energy weapons, alongside new lethal and tactical grenades. One of the new equipments was previously talked about is the anti-gravity grenade, which causes a small area of anti-gravity basically stopping all incoming enemies in that area.

The game also features many different weapon manufacturers that are part of the Infinite Warfare’s story.

In addition, Infinity Ward mentioned that there is a weapon in the game that can switch between being a sniper rifle and an assault rifle, which looks like it works similar to the Maverick weapon they released in Call of Duty: Ghosts’ first DLC Pack, Onslaught. This weapon can put down its scope and transition into an assault rifle to use in game.

Here’s some images from the stream showcasing the new weapons:


If you missed Infinity Ward’s stream, you can watch the replay now on Facebook:

More details on Call of Duty: Infinite Warfare’s campaign, including never-before-seen footage from the game, is coming at San Diego Comic-Con on July 21 with the Infinity Ward panel, which starts at 1PM PT. We will be attending the panel and providing the latest news directly from the show floor.

comments below