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

Activision and Treyarch have officially announced the third downloadable content pack for Call of Duty: Black Ops 3, Descent. Descent DLC Pack 3 will be available on July 12th on PlayStation 4.

“One of things I love most about Treyarch is that team just keeps going for it,” said Mark Lamia, Studio Head, Treyarch. “Descent doesn’t take its foot off the gas, serving up a flat-out scorching Zombies experience, as well as multiplayer map designs and gameplay opportunities that we think our fans are going to love.”

This pack includes four new multiplayer maps, including a remake of Call of Duty: Black Ops 2’s Raid, and a new Zombies experience, Gorod Krovi.

Multiplayer Maps: 

  • Empire: Treyarch adapts its Black Ops III movement system to the Call of Duty®: Black Ops II fan favorite map Raid. The re-imagining of this classic, medium-sized map features an authentic Roman villa that has been “recreated by a modern-day eccentric billionaire,” where a classic map structure mixes with the new gameplay mechanics of Black Ops III.
  • Cryogen: Located far off the coast in the Dead Sea, an isolated compound holds some of the world’s most dangerous criminals in frozen isolation. Sentry towers keep watch over the small map’s circular design as frenetic combat is funneled around the prison’s cryogenic tubes, where opportunities for wall running attacks abound.
  • Berserk: Ancient sentinels from a lost civilization guard the entrance to Berserk, a Viking village frozen in time. Players will fight through blizzards, and control the center bridge as they navigate this medium-sized map’s wooden buildings, deadly rocky outcroppings, and tight chokepoints.
  • Rumble: Gamers battle amongst larger-than-life mechanized warriors in Rumble, a stadium where giant robots battle to the roar of the crowd. This medium-sized map funnels high-speed combat to the central arena, where players battle their way through fallen mechs and pyrotechnics.

Zombies: 

  • Gorod Krovi: Descent also thrusts players to an alternate universe of Nikolai’s motherland, the 1940s Soviet Union, in the next highly-anticipated chapter of the Origins Zombies saga, Gorod Krovi. Players face-off against a swarm of mechanized zombie infantry and dodge hell-fire from aerial dragon assaults, all in the middle of a raging battle within the remnants of Stalingrad. Gorod Krovi delivers the most exciting Zombies experience yet, filled with horrifying new enemies, exciting new gameplay mechanics and an epic set of Zombie annihilating weapons.

TRAILER:


Call of Duty: Black Ops 3 Descent is available July 12th on PlayStation 4 and is coming soon to Xbox One and PC. Descent is available with the Black Ops 3 Season Pass or available separately for $14.99. DLC Pack 3 is not available on PS3 or Xbox 360.

comments below