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

Here’s everything we know about Ancient Evil so far!

Earlier during the March 25th Studio Livestream, Zombies leads Jason Blundell and Craig Houston had a lot to share regarding the upcoming Zombies experience, Ancient Evil.

Setting up the story, Jason explained that this map follows the direct events of IX, following the players adventure in the cave we see them in the beginning of that map. After experiencing the trial that took them into a roman coliseum, they leave the cave to find out they are in the ancient city of Delphi, Greece.

Treyarch then showed off a cutscene detailing the High Priest of Chaos who is behind all the events in the Chaos storyline. Essentially, he converts people to his cult by killing them, then reviving them with the Staff of Ra as we’ve seen happen to Bruno and Godfrey in the past.

They then went on to explain how the Spartan Warriors are the skeleton enemies and will have a stop-motion feel hearkening back to the film Jason and the Argonauts. This was a technical hurdle but should look very unique in game.

Moving on to the weapons on the map, the two talked briefly on the four wonder weapons that are inspired by greek gods. Earth, Wind, Light, and Death gauntlets will be featured on Ancient Evil and have already been mentioned in the trophy list.

Talking about allies on the map, there will be friendly assistance from the Oracle and the Pegasus. The Pegasus seems to function sort of like a special weapon that reigns down from above dropping area of effect damage on the map. The Oracle will help you during the game by highlighting some buildable pieces, giving players points, and even opening some doors.

The buildable shield on this map is a classic circular greek shield with a throwable flaming spear. This is different than other map’s shields that all fire bullets.

Moving away from Ancient Evil, they talked about the new perk, “Zombshell” that gives a chance for zombies to explode upon death and causes a gas cloud around the dead zombie. When used in your modifier slot, when the player runs into the smoke, they have a zombie blood effect that has zombies ignore them for a short period of time.

New Elixirs and Talismans are coming as well including a “Quacknarok” Elixir that gives zombies rubber ducky inflatables.

Lastly, the team reiterated that Server and Split-screen pausing is still coming in the future and is being worked on. Also, new gauntlets will continue to reflect community feedback.

Full video can be watched here:

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