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

Raginator23’s idea constructs a special new way of adding dynamic, world-changing content in incremental updates to Blackout’s Construction Site.

Black Ops 4’s popular Battle Royale mode, Blackout, contains a partly finished skyscraper and parking garage complex. It’s aptly called Construction Site and has become a fan-favorite landing zone due to its multi-layered combat and early game looting as well as long sightlines in all directions.

A user by the name of Raginator23 posted an interesting concept for Blackout’s popular landing zone, Construction Site.

The suggestion would see the site, located next to Hijacked and Estates, slowly turn from a construction zone into a fully finished building.

As updates roll in, the building could see changes in filled-in walling, finished rooms, and paint put onto its current grey-scale drywall. Each bit added through small patches, piece by piece.

After some time, a zone once riddled with iron beams and construction cranes would become a seaside resort locale. The finished location would stand marvelously aside the beach, complete with its lobby, upper-level rooms, and driveway.

Naturally, the name of the location would also required a quick-change to something more fitting.

The idea brings a unique way of updating the Blackout experience with step-by-step changes and without the need to add expansive new zones/towns.

Completely new areas take serious manpower from Treyarch to fully incorporate into the map without unbalancing the current flow of the game.

These incremental changes to Construction Site could help the game feel like a living product through reasonable content updates in between Treyarch’s title updates.

For more concepts, tips, and news, follow @CharlieIntel on Twitter to get the latest as soon as it’s released.

comments below
A life-long Call of Duty player, Bachelor of Game Design, and a lover of eSports. Floodsye is my real name, Tommi is just the gamertag my parents gave me.