153 lines
4.4 KiB
JavaScript
153 lines
4.4 KiB
JavaScript
window.adsControllerLoaded = true;
|
|
let adsVisible = false;
|
|
|
|
if (/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)) {
|
|
container.className = "unity-mobile";
|
|
// Avoid draining fillrate performance on mobile devices,
|
|
// and default/override low DPI mode on mobile browsers.
|
|
config.devicePixelRatio = 1;
|
|
mobileWarning.style.display = "block";
|
|
setTimeout(() => {
|
|
mobileWarning.style.display = "none";
|
|
}, 5000);
|
|
}
|
|
|
|
document.onkeydown = function (e) {
|
|
if (e.altKey || e.ctrlKey || e.key === "F1" || e.key === "F2" || e.key === "F3" || e.key === "F4") {
|
|
e.preventDefault();
|
|
}
|
|
}
|
|
|
|
document.onmouseup = function (e) {
|
|
e.preventDefault();
|
|
}
|
|
|
|
document.addEventListener('pointerlockchange', lockChangeAlert, false);
|
|
document.addEventListener('mozpointerlockchange', lockChangeAlert, false);
|
|
|
|
let lockedOccured = false;
|
|
function lockChangeAlert() {
|
|
if (!lockedOccured && document.pointerLockElement)
|
|
lockedOccured = true;
|
|
if (!document.pointerLockElement && lockedOccured){
|
|
lockedOccured = false;
|
|
window.unityInstance.SendMessage("Pause Menu", "OnCursorUnlocked");
|
|
}
|
|
}
|
|
|
|
window.addEventListener('resize', injectAdByWindowSize);
|
|
|
|
function injectAdByWindowSize() {
|
|
if(!window.cpmstarAPI)
|
|
return;
|
|
// Inject small ad if screen is small, or large ad if screen is large
|
|
if (window.innerHeight < 900) {
|
|
if (document.getElementById("adRectangleBottom") == null) {
|
|
var el = document.getElementsByClassName("ad-rectangle-bottom")[0];
|
|
el.id = "adRectangleBottom";
|
|
cpmstarAPI({kind:'go',module:'POOL 83025', config: { conditions: { target: { el: el, kind: 'replace' }}}});
|
|
}
|
|
}
|
|
else {
|
|
if (document.getElementById("adLeaderboardBottom") == null) {
|
|
var el = document.getElementsByClassName("ad-leaderboard-bottom")[0];
|
|
el.id = "adLeaderboardBottom";
|
|
cpmstarAPI({kind:'go',module:'POOL 85420', config: { conditions: { target: { el: el, kind: 'replace' }}}});
|
|
}
|
|
}
|
|
}
|
|
|
|
injectAdByWindowSize();
|
|
|
|
var refreshNextTime = true;
|
|
|
|
async function showAds() {
|
|
while (window.cpmstarAPI === undefined) {
|
|
await sleep(500)
|
|
}
|
|
|
|
document.getElementsByClassName("ad-rectangle-bottom")[0].style.display = "block";
|
|
document.getElementsByClassName("ad-leaderboard-bottom")[0].style.display = "block";
|
|
document.getElementsByClassName("ad-rectangle-upper")[0].style.display = "block";
|
|
|
|
if (typeof counter === 'undefined') {
|
|
startCounter();
|
|
resumeCounter();
|
|
}
|
|
else {
|
|
resumeCounter();
|
|
refresh();
|
|
}
|
|
}
|
|
|
|
async function hideAds() {
|
|
while (window.cpmstarAPI === undefined) {
|
|
await sleep(500)
|
|
}
|
|
|
|
document.getElementsByClassName("ad-rectangle-bottom")[0].style.display = "none";
|
|
document.getElementsByClassName("ad-leaderboard-bottom")[0].style.display = "none";
|
|
document.getElementsByClassName("ad-rectangle-upper")[0].style.display = "none";
|
|
|
|
pauseCounter();
|
|
}
|
|
|
|
function refresh() {
|
|
|
|
//console.log("time since ads refresh = " + timeSinceRefresh + " seconds");
|
|
//console.log("time ads visible = " + timeAdsVisible + " seconds");
|
|
|
|
if (timeSinceRefresh <= 30 || timeAdsVisible <= 2) {
|
|
//console.log("don't refresh");
|
|
return;
|
|
}
|
|
|
|
if (document.getElementById("adRectangleBottom") != null &&
|
|
window.getComputedStyle(document.getElementsByClassName("ad-smallscreen")[0]).display != "none") {
|
|
cpmstarAPI({ kind: "adcmd", module: "POOL 83023", command: "refresh" });
|
|
}
|
|
|
|
if (document.getElementById("adLeaderboardBottom") != null &&
|
|
window.getComputedStyle(document.getElementsByClassName("ad-largescreen")[0]).display != "none") {
|
|
cpmstarAPI({ kind: "adcmd", module: "POOL 85420", command: "refresh" });
|
|
}
|
|
|
|
cpmstarAPI({ kind: "adcmd", module: "POOL 83025", command: "refresh" });
|
|
|
|
timeSinceRefresh = 0;
|
|
timeAdsVisible = 0;
|
|
//console.log("refresh ads");
|
|
}
|
|
|
|
window.onfocus = function () {
|
|
//console.log("onfocus");
|
|
resumeCounter();
|
|
refresh();
|
|
};
|
|
|
|
window.onblur = function () {
|
|
//console.log("onblur");
|
|
pauseCounter();
|
|
};
|
|
|
|
var timeSinceRefresh = 0;
|
|
var timeAdsVisible = 0;
|
|
var counter;
|
|
|
|
function startCounter() {
|
|
timeSinceRefresh++;
|
|
if (adsVisible)
|
|
timeAdsVisible++;
|
|
|
|
counter = setTimeout(function () {
|
|
startCounter();
|
|
}, 1000);
|
|
}
|
|
|
|
function resumeCounter() {
|
|
adsVisible = true;
|
|
}
|
|
|
|
function pauseCounter() {
|
|
adsVisible = false;
|
|
} |