// 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 Infinity Ward have officially announced the fourth and final DLC Pack for Call of Duty: Infinite Warfare, Retribution. Retribution DLC Pack 4 will be available on September 12 on PlayStation 4, featuring four new multiplayer maps and an all new Zombies adventure.

“Our team has had so much fun this year creating content for the Infinite Warfare community,” said Dave Stohl, Studio Head of Infinity Ward. “So with Retribution, it’s the culmination of our thrilling zombies storyline, where players will head to a new setting with tons of surprises, and find out what evil force has been pulling the strings all along. For multiplayer fans, we’re delivering four new maps that really showcase combat rig abilities and great gameplay. September 12 can’t come soon enough.”

Multiplayer Maps:

  • Carnage – A post-apocalyptic race track along the California coast, Carnage features long sightlines and environmental hazards including a fire trap players can activate on command to roast their enemies.
  • Heartland – In Heartland, teams will go head-to-head in a simulation of small town America that is a re-imagining of the classic Call of Duty: Ghosts map, Warhawk. Players can pop into the local ice cream shop for a treat, and then take out enemies down the street with a Black Hole Generator.
  • Altitude – Set in a high-end, sky high shopping mall located on the edges of the universe, Altitude pushes teams around a chaotic center where quick flank routes are key to victory. Additional features include floating lush waterfalls that border the map.
  • Depot 22 – Depot 22 is a watering hole at the end of civilization that focuses on mid-ranged encounters waged in a medium-sized, three-lane map. Players can battle in the cantina for close-quarter combat or engage with enemies wall-running off of a moving train.

Zombies:

  • The Beast from Beyond: The Beast from Beyond, the final chapter of the five-part Call of Duty: Infinite Warfare zombies experience, features the return of Willard Wyler, the enigmatic movie director villain portrayed with voice and likeness by Paul Reubens (Pee-wee’s Big Holiday, Gotham). Wyler once again has trapped the four protagonists inside an all-new horror film, now set in a desolate military station on a distant ice planet. As players begin to discover more and more infected crew members, they’ll need to battle hordes of the undead to uncover the truth and escape Wyler’s films once and for all. The Beast from Beyond also features new weapons, traps and more, in addition to the hallmark Call of Duty action, with Seth Green (Robot Chicken, Austin Powers) as “Poindexter;” Ike Barinholtz (Neighbors, Suicide Squad) as “AJ;” Jay Pharoah (White Famous, Saturday Night Live) as “Andre;” and Sasheer Zamata (Saturday Night Live, Inside Amy Schumer) as “Sally,” all making a return from the ongoing story.

Trailer


Call of Duty: Infinite Warfare Retribution DLC Pack 4 is available September 12 on PlayStation 4, with release on Xbox One and PC to follow at a later date.

Call of Duty: Infinite Warfare Retribution DLC Pack 4 is included with the Call of Duty: Infinite Warfare Season Pass or can be bought separately for $14.99.

comments below