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

Treyarch today launched the brand new Operation content stream for Call of Duty: Black Ops 4 called Dark Divide.

Dark Divide is the 6th Operation for Call of Duty: Black Ops 4, with the first released back in December 2018.

Back when before Black Ops 4 launched, Treyarch hyped up the Black Ops 4 post launch content season as the most content they’ll ever release and that Black Ops 4 will be a game played for years to come. They stated in a blog post in September 2018 that ‘we’re committed to supporting the Black Ops community for the long haul.’

Just one year later, the studio today announced that Operation Dark Divide is the last new Operation for Call of Duty: Black Ops 4 – ending the content season just one year after the game’s launch.

“For our final operation of the Black Ops Season, the team at Treyarch had a blast creating the ultimate battle between good and evil, imagined through alternate universe versions of our Specialist characters as heroes and villains,” said Dan Bunting, Co-Studio Head, Treyarch. “In addition to the heroic experiences of the operation, we can’t wait to share the epic final chapter of the Zombies Aether story – the end of an adventure more than ten years in the making.”

Mark Gordon, Co-Studio Head, Treyarch, continued, “Having introduced Zombies as an easter egg in Call of Duty®: World at War, this final chapter for the Aether storyline marks an emotional moment for us as developers. We’ve poured all of that energy and emotion into Tag Der Toten, and we can’t wait for players to experience it for themselves.”

It’s an interesting thing to see as the studio provided years of support for Call of Duty: Black Ops 3, which released in 2015.

Rumors and reports from May of this year has suggested that Treyarch is now developing the 2020 Call of Duty release with Sledgehammer Games supporting them. SHG was supposed to be the lead with Raven on the 2020 release, but Activision put Treyarch in charge this year after a disastrous development cycle between SHG and Raven to produce the 2020 game.

For this year’s new game, Call of Duty: Modern Warfare from Infinity Ward, Activision has already started to hype up the post launch season as the ‘largest content pipeline’ in the franchise history, but declined to provide specifics. The game will feature a big change, though: no Season Pass, as post launch maps will be free for everyone.

comments below