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

The next entry in the Chaos story line is almost here!

Treyarch has shared a new teaser video and said that all will be revealed tomorrow, March 21.

Here’s the latest teaser video:

Treyarch has just announced the date for the next Call of Duty Black Ops 4 Zombies map, Ancient Evil. The map will come to Playstation 4 first on March 26th, and will presumably release on PC and Xbox One the following week.

The tweet reads “Where one journey ends, a new one begins. #AncientEvil 3.26.19″

Last month during a Developer Livestream, Zombies director, Jason Blundell, confirmed that this will be the last Chaos map “this season.” The remaining two Zombies experiences will take place in the Aether story line that classic Zombies fans should be more familiar with.

Check out the tweet below along with the short teaser trailer:

The map will take place in Greece and is the chronological follow up to the map “IX”. My guess is that the “journey” that the tweet says is ending has to do with the end cutscene of IX that shows the four characters getting decapitated. The new one that is beginning must be related to the arch they are walking towards in the trailer.

Eagle-eyed Reddit user “Zslayer321” translated the letters in the archway to read “Poseidon”, the Greek god of the sea.

Symbols translate to “Poseidon” from r/CODZombies

The most recent Call of Duty Black Ops 4 Zombies map is Dead of the Night which is a prequel story featuring celebrity guest actors. That maps release coincided with Operation Absolute Zero, whereas Ancient Evil will arrive a month after the launch of Operation Grand Heist.

With this short teaser trailer, expect to see a full length trailer for Ancient Evil sometime before release.

For more information on what else is coming to Call of Duty Black Ops 4 in this Operation, be sure to check out the roadmap below:

comments below
Brooklyn boy, born and raised. @MrBrawl96 everywhere on the World Wide Web.