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

Following the launch of Black Ops 4’s DLC3 ‘Alpha Omega’ Zombies experience, Activision has shared a Questions and Answers blog post with Craig Houston, Lead Writer, and the rest of the Zombies team at Treyarch.

Topics covered include the end of the Aether storyline, the team’s thoughts on Zombies growing into the massive success that it is today since its introduction in World at War, and more.

Activision Games Blog (AGB): As a team with some of Treyarch’s most veteran writers, how have you felt the Zombies franchise has grown from being a secret game mode in Call of Duty®: World at War to today? Did you ever imagine back then that you and the team would be deep into hiding easter eggs and building these worlds?

Zombies Team (ZT): We don’t think any of us could have imagined what it would turn into. We remember those first ‘baby steps’ – the meetings about how to introduce a narrative element with the intro video…? Even though Zombies has grown so much that it now has these huge – epic – cinematic intros, we honestly thought and stressed more about that Nacht intro than anyone will ever know….

AGB: What has Nuketown meant to the Treyarch Zombies team, ever since its debut in Multiplayer in the original Black Ops?

ZT: We’ve always loved Nuketown’s ability to have high engagement and chaos in such a small place – it’s still a favorite MP map – and the Zombies version was fun because we were able to start building our narrative on such an iconic map.

AGB: Following that question, was that the reason why Nuketown became the setting of Alpha Omega? Or does its in-game significance also play a role into coming back?

ZT: The real reason to go back to Nuketown in Alpha Omega is that it brings together several strands of the story – Ultimis, Primis, Broken Arrow – and in turn… Victis?

AGB: Are there any tie-ins to Alpha Omega from the original Zombies Nuketown from Black Ops II?

ZT: Well… There are some significant ‘cameos’ from characters that our fans may be familiar with… We’ve heard from some of these characters before, but others have never really had a chance to… Speak.

We’ll just leave it at that for now 🙂

AGB: Since this is Alpha Omega, a beginning and an end, can we expect anything in this map to be from World at War or the older Black Ops titles that will give players that nostalgic feel from their favorite maps?

ZT: This is a bit of a nostalgia hit for so many reasons. Besides the iconic location – and weapons like the Ray Gun MK II – the biggest one of all for many of us is that the ULTIMIS CREW from WAW and BO1 are back…


AGB: Are any classic wonder weapons like the Microwave Gun or the Ray Gun MKII that may make an appearance in this new experience? Or is there something new on the horizon?

ZT: Oops. I think I just spoiled that in my last answer. The Ray Gun MKII is indeed back – with some twists. Four times the fun!

AGB: For the operation itself, what other plans and features are there that will tie into Alpha Omega?

ZT: Zombies gets to spread across the whole game – outside of the restrictions of ‘story canon’ – so it’s really a chance to just have some fun with areas that we wouldn’t normally infect… After all, having fun is the most important thing, even for the undead.

AGB: Is this truly the end of this story? If so, how hard was it to put a bow on this epic legend and say goodbye to our favorite characters?

ZT: Honestly? We’re still processing it. We’re in the middle of writing some major stuff for our beloved characters and it’s… emotional. With the multi-verse established, there will always be other stories to imagine – but in terms of Primis, Ultimis and Victis – This IS the end of the line.

Bless them X.

AGB: Finally, we’re really looking forward to the next operation and what it holds… but we’re still wondering this: are there still Easter Eggs that have yet to be discovered within the Aether story? Even going as far back as World at War or the original Black Ops?

ZT: Yes.

SOURCE: Activision Blog

comments below
Staff Writer at @CharlieINTEL and @FortniteINTEL. Full-Stack Developer.