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

Youtuber, TheXclusiveAce, dives deep into Black Ops 4 Hardcore mode to find out which guns are a cut above the rest.

With game setting updates dropping left and right, keeping track of gun stats may seem like a daunting task. However, as of November 24, one Youtuber has cataloged and organized each and every guns one shot kill ranges for fans to pour over.

Since TheXclusiveAce is specifically talking about Hardcore mode, that means every gun has one shot kill potential, but where the variables lay is range. Ace also specifies these stats only apply to players with no armor, no health boost by Crash, and bullets that are not penetrated by any objects.

“Out of all of the SMGs, the one that feels the best to me in Hardcore is definitely the GKS,” Ace says.

“This just has to do with the fact that it’s extremely accurate, it’s got a very solid one-shot kill potential and you can increase that one-shot kill potential with long barrel as well, which is great.

“Also, since you get the handling of an SMG, this is just a great all-around gun for Hardcore modes.”

In this graphic by TheXclusiveAce, note his inclusion of the long barrel and suppressor attachments that both increase and decrease range.

When talking about Assault Rifles, Ace says “I would likely pick the ICR as the best Assault Rifle in Hardcore modes mainly just due to the fact that it’s extremely accurate and versatile.

“Having said that,” Ace adds, “You really can’t go wrong with any of the Assault Rifles in this game aside from the Maddox.”

In this graphic by TheXclusiveAce, he shows the Rampart has infinite range.

“Out of all of the LMGs, I would say the Hades is definitely your best bet within Hardcore simply because it’s the most forgiving,” the YouTuber says whilst breaking down why that’s his favourite LMG.

In this graphic by TheXclusiveAce, while they all have infinite range, rate of fire is a big factor – which the Hades excels at.

For more detailed breakdown, like his comparisons of Shotguns and Sidearms, be sure to check out the full video linked below.

comments below