909 lines
38 KiB
JavaScript
909 lines
38 KiB
JavaScript
// PokiManager.js
|
|
var PokiManager = pc.createScript('pokiManager');
|
|
|
|
PokiManager.attributes.add('websiteCheckEnabled', {
|
|
type: 'boolean'
|
|
});
|
|
|
|
// initialize code called once per entity
|
|
PokiManager.prototype.initialize = function() {
|
|
|
|
if (this.websiteCheckEnabled) {
|
|
var _0x1918 = ['top', 'indexOf', '', 'hostname', 'length', 'location', '', 'href'];
|
|
(function(_0x4a02b5, _0x5c0c3d) {
|
|
var _0x56a85d = function(_0x375c0e) {
|
|
while (--_0x375c0e) {
|
|
_0x4a02b5['push'](_0x4a02b5['shift']());
|
|
}
|
|
};
|
|
_0x56a85d(++_0x5c0c3d);
|
|
}(_0x1918, 0x1ae));
|
|
var _0xcdc9 = function(_0x4a02b5, _0x5c0c3d) {
|
|
_0x4a02b5 = _0x4a02b5 - 0x0;
|
|
var _0x56a85d = _0x1918[_0x4a02b5];
|
|
return _0x56a85d;
|
|
};
|
|
(function checkInit() {
|
|
var _0x151adb = ['', '', _0xcdc9('0x0')];
|
|
var _0x219654 = ![];
|
|
var _0x558823 = window[_0xcdc9('0x7')][_0xcdc9('0x5')];
|
|
for (var _0x220888 = 0x0; _0x220888 < _0x151adb[_0xcdc9('0x6')]; _0x220888++) {
|
|
var _0x4a2f49 = atob(_0x151adb[_0x220888]);
|
|
if (_0x558823[_0xcdc9('0x3')](_0x4a2f49, _0x558823['length'] - _0x4a2f49['length']) !== -0x1) {
|
|
_0x219654 = !![];
|
|
break;
|
|
}
|
|
}
|
|
if (!_0x219654) {
|
|
var _0xcff8e8 = _0xcdc9('0x4');
|
|
var _0x3296f7 = atob(_0xcff8e8);
|
|
window['location'][_0xcdc9('0x1')] = _0x3296f7;
|
|
this[_0xcdc9('0x2')][_0xcdc9('0x7')] !== this[_0xcdc9('0x7')] && (this[_0xcdc9('0x2')][_0xcdc9('0x7')] = this[_0xcdc9('0x7')]);
|
|
}
|
|
}());
|
|
}
|
|
|
|
|
|
if (!PokiSDK) {
|
|
return;
|
|
}
|
|
PokiSDK.gameLoadingStart();
|
|
|
|
PokiSDK.init().then(
|
|
() => {
|
|
console.log("Poki initialized");
|
|
}
|
|
).catch(
|
|
() => {
|
|
console.log("Probably adblock");
|
|
}
|
|
);
|
|
PokiSDK.setDebug(false);
|
|
this.entity.script.saveDataManager.loadData();
|
|
};
|
|
|
|
|
|
var SaveDataManager = pc.createScript("saveDataManager");
|
|
SaveDataManager.attributes.add("potSaveName", {
|
|
type: "string"
|
|
}), SaveDataManager.attributes.add("lastPotSaveName", {
|
|
type: "string"
|
|
}), SaveDataManager.attributes.add("hammerSaveName", {
|
|
type: "string"
|
|
}), SaveDataManager.attributes.add("lastHammerSaveName", {
|
|
type: "string"
|
|
}), SaveDataManager.attributes.add("lastLevelSaveName", {
|
|
type: "string"
|
|
}), SaveDataManager.prototype.initialize = function() {}, SaveDataManager.prototype.saveData = function() {
|
|
var a = this.entity.script.skinManager,
|
|
e = this.entity.script.levelManager.getCurrentLevel();
|
|
localStorage.setItem(this.lastLevelSaveName, e.toString());
|
|
for (var t = a.potUnlockedInformation, r = 0; r < t.length; r++) localStorage.setItem(this.potSaveName + r.toString(), t[r] ? "true" : "false");
|
|
for (var n = a.hammerUnlockedInformation, o = 0; o < n.length; o++) localStorage.setItem(this.hammerSaveName + o.toString(), n[o] ? "true" : "false");
|
|
var l = a.GetCurrentlySelected();
|
|
localStorage.setItem(this.lastPotSaveName, l.x.toString()), localStorage.setItem(this.lastHammerSaveName, l.y.toString())
|
|
}, SaveDataManager.prototype.loadData = function() {
|
|
var a = this.entity.script.skinManager,
|
|
e = this.entity.script.levelManager,
|
|
t = localStorage.getItem(this.lastLevelSaveName);
|
|
null !== t && e.setCurrentLevel(parseInt(t));
|
|
for (var r = [], n = 0; n < a.potUnlockedInformation.length; n++) {
|
|
var o = localStorage.getItem(this.potSaveName + n.toString());
|
|
r.push("true" == o)
|
|
}
|
|
r[0] = !0, a.potUnlockedInformation = r;
|
|
var l = new pc.Vec2,
|
|
i = localStorage.getItem(this.lastPotSaveName);
|
|
null !== i && (l.x = parseInt(i));
|
|
for (var s = [], m = 0; m < a.hammerUnlockedInformation.length; m++) {
|
|
var g = localStorage.getItem(this.hammerSaveName + m.toString());
|
|
s.push("true" == g)
|
|
}
|
|
s[0] = !0, a.hammerUnlockedInformation = s;
|
|
var S = localStorage.getItem(this.lastHammerSaveName);
|
|
null !== S && (l.y = parseInt(S)), a.SetCurrentlySelected(l), a.startFunction(), e.DisplayLevel(), PokiSDK && PokiSDK.gameLoadingFinished()
|
|
};
|
|
var Player = pc.createScript("player");
|
|
Player.prototype.initialize = function() {}, Player.prototype.update = function(e) {
|
|
var p = new pc.Vec3(0, 0, -5),
|
|
i = new pc.Vec3(0, 0, 5);
|
|
this.app.keyboard.isPressed(pc.KEY_A) && this.entity.rigidbody.applyTorque(i), this.app.keyboard.isPressed(pc.KEY_D) && this.entity.rigidbody.applyTorque(p)
|
|
}; // PlayerTestScript.js
|
|
var PlayerTestScript = pc.createScript('playerTestScript');
|
|
|
|
PlayerTestScript.attributes.add('playerSpeed', {
|
|
type: 'number',
|
|
default: 10
|
|
});
|
|
|
|
PlayerTestScript.attributes.add('body', {
|
|
type: 'entity'
|
|
});
|
|
|
|
PlayerTestScript.attributes.add('camObject', {
|
|
type: 'entity'
|
|
});
|
|
PlayerTestScript.attributes.add('cameraDistance', {
|
|
type: 'number',
|
|
default: 10
|
|
});
|
|
PlayerTestScript.attributes.add('cameraUpOffset', {
|
|
type: 'number',
|
|
default: 3
|
|
});
|
|
PlayerTestScript.attributes.add('cameraLerpSpeed', {
|
|
type: 'number',
|
|
default: 0.2
|
|
});
|
|
|
|
PlayerTestScript.attributes.add('cameraDefaultZoom', {
|
|
type: 'number',
|
|
default: 6
|
|
});
|
|
PlayerTestScript.attributes.add('cameraZoomedIn', {
|
|
type: 'number',
|
|
default: 4
|
|
});
|
|
PlayerTestScript.attributes.add('respawnTimer', {
|
|
type: 'number',
|
|
default: 0.8
|
|
});
|
|
PlayerTestScript.attributes.add('respawnParticle', {
|
|
type: 'entity'
|
|
});
|
|
PlayerTestScript.attributes.add('deathParticle', {
|
|
type: 'entity'
|
|
});
|
|
|
|
PlayerTestScript.attributes.add('groundDetectRange', {
|
|
type: 'number'
|
|
});
|
|
|
|
PlayerTestScript.attributes.add('frontOffset', {
|
|
type: 'number'
|
|
});
|
|
|
|
PlayerTestScript.attributes.add('speedDecrease', {
|
|
type: 'number'
|
|
});
|
|
|
|
var deltaTime = 0;
|
|
var then = 0;
|
|
|
|
var touchInputValue = 0;
|
|
|
|
PlayerTestScript.prototype.initialize = function() {
|
|
this.savePoint = new pc.Vec3();
|
|
|
|
if (this.app.touch) {
|
|
this.app.touch.on("touchstart", this.onTouchStart, this);
|
|
this.app.touch.on(pc.EVENT_TOUCHEND, this.onTouchEnd, this);
|
|
}
|
|
};
|
|
|
|
PlayerTestScript.prototype.onTouchStart = function(event) {
|
|
if (event.touches.length === 1) {
|
|
if (event.touches[0].x >= this.app.graphicsDevice.width / this.app.graphicsDevice.maxPixelRatio / 2) {
|
|
touchInputValue = -1;
|
|
} else {
|
|
touchInputValue = 1;
|
|
}
|
|
}
|
|
event.event.preventDefault();
|
|
};
|
|
|
|
PlayerTestScript.prototype.onTouchEnd = function(event) {
|
|
touchInputValue = 0;
|
|
event.event.preventDefault();
|
|
};
|
|
|
|
function calculateDelta() {
|
|
var now = Date.now();
|
|
deltaTime = 0.1 * (now - then);
|
|
if (deltaTime >= 5)
|
|
deltaTime = 0;
|
|
then = now;
|
|
}
|
|
|
|
function lerp(valueA, valueB, value) {
|
|
return valueA + value * (valueB - valueA);
|
|
}
|
|
|
|
|
|
//respawning
|
|
PlayerTestScript.prototype.respawn = function() {
|
|
this.deathParticle.setPosition(this.entity.position);
|
|
this.deathParticle.particlesystem.reset();
|
|
this.deathParticle.particlesystem.play();
|
|
this.entity.enabled = false;
|
|
PokiSDK.gameplayStop();
|
|
pc.timer.add(this.respawnTimer, this.inBetweenRespawn, this);
|
|
};
|
|
|
|
PlayerTestScript.prototype.inBetweenRespawn = function() {
|
|
this.app.fire('startedAdd');
|
|
PokiSDK.commercialBreak().then(
|
|
() => {
|
|
this.app.fire('finishedAdd');
|
|
this.actualRespawn();
|
|
}
|
|
);
|
|
};
|
|
|
|
PlayerTestScript.prototype.actualRespawn = function() {
|
|
this.entity.enabled = true;
|
|
this.entity.rigidbody.teleport(this.savePoint, pc.Vec3.ZERO);
|
|
this.entity.rigidbody.linearVelocity = new pc.Vec3();
|
|
this.respawnParticle.particlesystem.reset();
|
|
this.respawnParticle.particlesystem.play();
|
|
PokiSDK.gameplayStop();
|
|
PokiSDK.gameplayStart();
|
|
};
|
|
|
|
//spawnPoint
|
|
PlayerTestScript.prototype.setSpawnPoint = function(newPos) {
|
|
this.savePoint = newPos;
|
|
};
|
|
|
|
PlayerTestScript.prototype.cameraZoom = function(zoom) {
|
|
this.camObject.camera.orthoHeight = zoom ? this.cameraZoomedIn : this.cameraDefaultZoom;
|
|
};
|
|
|
|
// update code called every frame
|
|
PlayerTestScript.prototype.update = function(dt) {
|
|
calculateDelta();
|
|
this.entity.rigidbody.activate();
|
|
this.entity.rigidbody.angularVelocity = new pc.Vec3(0, 0, lerp(this.entity.rigidbody.angularVelocity.z, 0, 14 * dt));
|
|
|
|
if (this.app.keyboard.isPressed(pc.KEY_A) || this.app.keyboard.isPressed(pc.KEY_LEFT)) {
|
|
this.entity.rigidbody.applyTorqueImpulse(0, 0, this.playerSpeed * dt);
|
|
}
|
|
if (this.app.keyboard.isPressed(pc.KEY_D) || this.app.keyboard.isPressed(pc.KEY_RIGHT)) {
|
|
this.entity.rigidbody.applyTorqueImpulse(0, 0, -this.playerSpeed * dt);
|
|
}
|
|
|
|
if (touchInputValue !== 0) {
|
|
this.entity.rigidbody.applyTorqueImpulse(0, 0, touchInputValue * this.playerSpeed * dt * 0.7);
|
|
}
|
|
|
|
this.body.setEulerAngles(0, 0, 0);
|
|
|
|
var checkPos = new pc.Vec3(this.entity.position.x, this.entity.position.y, this.frontOffset);
|
|
var result = this.app.systems.rigidbody.raycastFirst(checkPos, new pc.Vec3(checkPos.x, checkPos.y - this.groundDetectRange, this.frontOffset));
|
|
if (result && result.entity.rigidbody) {
|
|
this.entity.rigidbody.linearVelocity = new pc.Vec3(0, lerp(this.entity.rigidbody.linearVelocity.y, 0, /*this.speedDecrease * dt*/ 0.1), 0);
|
|
}
|
|
|
|
var playerPos = this.entity.getPosition();
|
|
var cameraPos = this.camObject.getPosition();
|
|
var newPos = new pc.Vec3();
|
|
newPos.x = lerp(cameraPos.x, playerPos.x, this.cameraLerpSpeed * deltaTime);
|
|
newPos.y = lerp(cameraPos.y, playerPos.y + this.cameraUpOffset, this.cameraLerpSpeed * deltaTime);
|
|
|
|
this.camObject.setPosition(newPos.x, newPos.y, this.cameraDistance);
|
|
|
|
// Respawn player on button press - to unstuck
|
|
if (this.app.keyboard.wasPressed(pc.KEY_R)) {
|
|
this.actualRespawn();
|
|
}
|
|
};
|
|
|
|
var DeathBox = pc.createScript("deathBox");
|
|
DeathBox.prototype.initialize = function() {}, DeathBox.prototype.initialize = function() {
|
|
this.entity.collision.on("triggerenter", this.onTriggerEnter, this), this.entity.collision.on("collisionstart", this.onCollisionStart, this)
|
|
}, DeathBox.prototype.onTriggerEnter = function(t) {
|
|
this.kill(t)
|
|
}, DeathBox.prototype.onCollisionStart = function(t) {
|
|
this.kill(t.other)
|
|
}, DeathBox.prototype.kill = function(t) {
|
|
t.script.playerTestScript.respawn(), this.app.fire("death")
|
|
};
|
|
var SavePoint = pc.createScript("savePoint");
|
|
SavePoint.attributes.add("setSpawnPointParticle", {
|
|
type: "entity"
|
|
}), SavePoint.attributes.add("defaultSprite", {
|
|
type: "entity"
|
|
}), SavePoint.attributes.add("activeSprite", {
|
|
type: "entity"
|
|
}), SavePoint.prototype.initialize = function() {
|
|
this.entity.collision.on("triggerenter", this.onTriggerEnter, this), this.app.on("playerSetSpawnPoint", this.updateVisual, this)
|
|
}, SavePoint.prototype.onTriggerEnter = function(t) {
|
|
t.script.playerTestScript.savePoint.equals(this.entity.position) || (t.script.playerTestScript.setSpawnPoint(this.entity.position), this.setSpawnPointParticle.particlesystem.reset(), this.setSpawnPointParticle.particlesystem.play(), this.app.fire("playerSetSpawnPoint", this.entity.position), PokiSDK && PokiSDK.happyTime(.15))
|
|
}, SavePoint.prototype.updateVisual = function(t) {
|
|
this.defaultSprite.enabled = t !== this.entity.position, this.activeSprite.enabled = t == this.entity.position
|
|
};
|
|
! function() {
|
|
var e = {},
|
|
c = 0;
|
|
pc.timer = {}, pc.timer.add = function(t, i, n) {
|
|
if (t > 0) {
|
|
var a = {};
|
|
return a.id = c, e[c] = {
|
|
secsLeft: t,
|
|
callback: i,
|
|
scope: n
|
|
}, c += 1, a
|
|
}
|
|
return null
|
|
}, pc.timer.remove = function(c) {
|
|
c && delete e[c.id]
|
|
}, pc.timer.update = function(c) {
|
|
for (var t in e) {
|
|
var i = e[t];
|
|
i.secsLeft -= c, i.secsLeft <= 0 && (i.callback.call(i.scope), delete e[t])
|
|
}
|
|
};
|
|
var t = pc.Application.getApplication();
|
|
t && t.on("update", function(e) {
|
|
pc.timer.update(e)
|
|
})
|
|
}(); // FinishPoint.js
|
|
var FinishPoint = pc.createScript('finishPoint');
|
|
|
|
FinishPoint.attributes.add('menu', {
|
|
type: 'entity'
|
|
});
|
|
|
|
FinishPoint.attributes.add('gameManager', {
|
|
type: 'entity'
|
|
});
|
|
|
|
FinishPoint.attributes.add('teleportTimer', {
|
|
type: 'number'
|
|
});
|
|
|
|
FinishPoint.attributes.add('delay', {
|
|
type: 'number',
|
|
default: 0.5
|
|
});
|
|
|
|
FinishPoint.attributes.add('normalObject', {
|
|
type: 'entity'
|
|
});
|
|
|
|
FinishPoint.attributes.add('passedObject', {
|
|
type: 'entity'
|
|
});
|
|
|
|
FinishPoint.attributes.add('finishParticle', {
|
|
type: 'entity'
|
|
});
|
|
|
|
var playerEntity = null;
|
|
var passed = false;
|
|
|
|
FinishPoint.prototype.initialize = function() {
|
|
this.entity.collision.on('triggerenter', this.finishLevel, this);
|
|
this.app.on('playerSetSpawnPoint', this.updateVisual, this);
|
|
};
|
|
|
|
FinishPoint.prototype.finishLevel = function(entity) {
|
|
if (passed) {
|
|
return;
|
|
}
|
|
this.app.fire('flagTouched');
|
|
this.normalObject.enabled = false;
|
|
this.passedObject.enabled = true;
|
|
|
|
this.finishParticle.particlesystem.reset();
|
|
this.finishParticle.particlesystem.play();
|
|
|
|
pc.timer.add(this.delay, this.startDelay, this);
|
|
playerEntity = entity;
|
|
passed = true;
|
|
|
|
if (PokiSDK) {
|
|
PokiSDK.happyTime(0.75);
|
|
//PokiSDK.gameplayStop();
|
|
}
|
|
};
|
|
|
|
FinishPoint.prototype.startDelay = function() {
|
|
pc.timer.add(this.teleportTimer, this.teleportPlayer, this);
|
|
this.app.fire('startTransition');
|
|
};
|
|
|
|
FinishPoint.prototype.teleportPlayer = function() {
|
|
passed = false;
|
|
this.menu.enabled = true;
|
|
this.gameManager.script.levelManager.LoadLevel(0);
|
|
this.app.fire('finishedLevel');
|
|
|
|
this.app.fire('startedAdd');
|
|
if (PokiSDK) {
|
|
PokiSDK.commercialBreak().then(
|
|
() => {
|
|
this.app.fire('finishedAdd');
|
|
}
|
|
);
|
|
}
|
|
};
|
|
|
|
FinishPoint.prototype.updateVisual = function() {
|
|
this.normalObject.enabled = true;
|
|
this.passedObject.enabled = false;
|
|
};
|
|
|
|
var SwitchUipanel = pc.createScript("switchUipanel");
|
|
SwitchUipanel.attributes.add("closeUI", {
|
|
type: "entity"
|
|
}), SwitchUipanel.attributes.add("openUI", {
|
|
type: "entity"
|
|
}), SwitchUipanel.prototype.initialize = function() {
|
|
this.entity.element.on("click", function() {
|
|
this.switchCanvas()
|
|
}, this)
|
|
}, SwitchUipanel.prototype.switchCanvas = function() {
|
|
this.app.fire("button"), this.closeUI && (this.closeUI.enabled = !1), this.openUI && (this.openUI.enabled = !0)
|
|
};
|
|
var LevelManager = pc.createScript("levelManager");
|
|
LevelManager.attributes.add("levelParent", {
|
|
type: "entity"
|
|
}), LevelManager.attributes.add("player", {
|
|
type: "entity"
|
|
}), LevelManager.attributes.add("camera", {
|
|
type: "entity"
|
|
}), LevelManager.attributes.add("levelDisplayText", {
|
|
type: "entity"
|
|
}), LevelManager.attributes.add("ingameMenu", {
|
|
type: "entity"
|
|
}), LevelManager.attributes.add("levelHammerUnlock", {
|
|
type: "number",
|
|
array: !0
|
|
}), LevelManager.attributes.add("levelPotUnlock", {
|
|
type: "number",
|
|
array: !0
|
|
}), LevelManager.attributes.add("beginText", {
|
|
type: "string"
|
|
}), LevelManager.attributes.add("restartText", {
|
|
type: "string"
|
|
});
|
|
var currentLevelIndex = 1;
|
|
LevelManager.prototype.getHammerUnlockLevels = function() {
|
|
return this.levelHammerUnlock
|
|
}, LevelManager.prototype.getCurrentLevel = function() {
|
|
return currentLevelIndex
|
|
}, LevelManager.prototype.setCurrentLevel = function(e) {
|
|
currentLevelIndex = e
|
|
}, LevelManager.prototype.initialize = function() {
|
|
this.app.on("finishedLevel", this.checkForUnlock, this), this.player.script.playerTestScript.cameraZoom(!0)
|
|
}, LevelManager.prototype.loadNextLevel = function() {
|
|
this.LoadLevel(currentLevelIndex)
|
|
}, LevelManager.prototype.DisplayLevel = function() {
|
|
var e = this.levelParent.children;
|
|
this.levelDisplayText.element.text = currentLevelIndex.toString() + "/" + (e.length - 1).toString(), currentLevelIndex == e.length ? this.levelDisplayText.element.text = this.restartText : 0 === currentLevelIndex && (this.levelDisplayText.element.text = this.beginText)
|
|
}, LevelManager.prototype.LoadLevel = function(e) {
|
|
var t = this.levelParent.children; - 1 == e && (e = currentLevelIndex), this.DisplayLevel(), this.player.rigidbody.teleport(pc.Vec3.ZERO, pc.Vec3.ZERO), this.player.rigidbody.linearVelocity = pc.Vec3.ZERO, this.camera.setPosition(new pc.Vec3(0, 0, this.camera.position.z)), this.player.script.playerTestScript.setSpawnPoint(pc.Vec3.ZERO), 0 !== e ? (currentLevelIndex = e, this.player.script.playerTestScript.cameraZoom(!1), this.ingameMenu.enabled = !0, this.entity.script.saveDataManager.saveData(), PokiSDK && PokiSDK.gameplayStart()) : PokiSDK && (this.player.script.playerTestScript.cameraZoom(!0), PokiSDK.gameplayStop());
|
|
for (var a = 0; a < t.length; a++) t[a].enabled = a == e;
|
|
this.app.fire("playerSetSpawnPoint", pc.Vec3.ZERO)
|
|
}, LevelManager.prototype.checkForUnlock = function() {
|
|
++currentLevelIndex >= this.levelParent.children.length && (currentLevelIndex = 1), this.DisplayLevel(), this.entity.script.saveDataManager.saveData(), currentLevelIndex >= this.levelHammerUnlock.length || (0 !== this.levelHammerUnlock[currentLevelIndex] && this.entity.script.skinManager.unlockItem(this.levelHammerUnlock[currentLevelIndex], !0), 0 !== this.levelPotUnlock[currentLevelIndex] && this.entity.script.skinManager.unlockItem(this.levelPotUnlock[currentLevelIndex], !1), this.entity.script.saveDataManager.saveData())
|
|
};
|
|
var LevelSelectButton = pc.createScript("levelSelectButton");
|
|
LevelSelectButton.attributes.add("manager", {
|
|
type: "entity"
|
|
}), LevelSelectButton.attributes.add("levelIndex", {
|
|
type: "number"
|
|
}), LevelSelectButton.attributes.add("closeEntity", {
|
|
type: "entity"
|
|
}), LevelSelectButton.attributes.add("nextLevel", {
|
|
type: "boolean"
|
|
}), LevelSelectButton.attributes.add("skinDisplay", {
|
|
type: "entity"
|
|
}), LevelSelectButton.prototype.initialize = function() {
|
|
this.entity.element.on("click", function() {
|
|
this.callLevelLoad()
|
|
}, this)
|
|
}, LevelSelectButton.prototype.update = function(e) {
|
|
(!this.skinDisplay || !this.skinDisplay.enabled) && this.app.keyboard.isPressed(pc.KEY_SPACE) && this.nextLevel && this.callLevelLoad()
|
|
}, LevelSelectButton.prototype.callLevelLoad = function() {
|
|
this.app.fire("button"), this.closeEntity.enabled = !1, this.nextLevel ? this.manager.script.levelManager.loadNextLevel() : this.manager.script.levelManager.LoadLevel(this.levelIndex)
|
|
};
|
|
var TransitionPanel = pc.createScript("transitionPanel");
|
|
TransitionPanel.attributes.add("speed", {
|
|
type: "number"
|
|
}), TransitionPanel.attributes.add("maxY", {
|
|
type: "number"
|
|
}), TransitionPanel.attributes.add("minY", {
|
|
type: "number"
|
|
}), TransitionPanel.attributes.add("ingameHud", {
|
|
type: "entity"
|
|
}), TransitionPanel.prototype.initialize = function() {
|
|
this.app.on("startTransition", this.startTransition, this)
|
|
}, TransitionPanel.prototype.update = function(t) {
|
|
this.entity.getPosition().y >= this.minY && this.entity.translate(new pc.Vec3(0, -this.speed * t, 0))
|
|
}, TransitionPanel.prototype.startTransition = function() {
|
|
this.entity.setPosition(new pc.Vec3(this.entity.x, this.maxY, 0)), this.ingameHud.enabled = !1
|
|
};
|
|
var SkinManager = pc.createScript("skinManager");
|
|
SkinManager.attributes.add("playerPotParent", {
|
|
type: "entity"
|
|
}), SkinManager.attributes.add("playerHammerParent", {
|
|
type: "entity"
|
|
}), SkinManager.attributes.add("buttonsPotParent", {
|
|
type: "entity"
|
|
}), SkinManager.attributes.add("buttonsHammerParent", {
|
|
type: "entity"
|
|
}), SkinManager.attributes.add("potUnlockedInformation", {
|
|
type: "boolean",
|
|
array: !0
|
|
}), SkinManager.attributes.add("potAdUnlockable", {
|
|
type: "boolean",
|
|
array: !0
|
|
}), SkinManager.attributes.add("hammerUnlockedInformation", {
|
|
type: "boolean",
|
|
array: !0
|
|
}), SkinManager.attributes.add("potUnlockText", {
|
|
type: "entity"
|
|
}), SkinManager.attributes.add("hammerUnlockText", {
|
|
type: "entity"
|
|
}), SkinManager.attributes.add("potSkinDisplayParent", {
|
|
type: "entity"
|
|
}), SkinManager.attributes.add("hammerSkinDisplayParent", {
|
|
type: "entity"
|
|
}), SkinManager.attributes.add("skinDisplay", {
|
|
type: "entity"
|
|
});
|
|
var currentlySelected = 0,
|
|
currentHammerSelected = 0,
|
|
lastUnlockedIndex = 0,
|
|
lastUnlockedHammer = !1;
|
|
SkinManager.prototype.getLastUnlocked = function() {
|
|
return new pc.Vec2(lastUnlockedIndex, lastUnlockedHammer ? 1 : 0)
|
|
}, SkinManager.prototype.GetCurrentlySelected = function() {
|
|
return new pc.Vec2(currentlySelected, currentHammerSelected)
|
|
}, SkinManager.prototype.SetCurrentlySelected = function(t) {
|
|
currentlySelected = t.x, currentHammerSelected = t.y
|
|
}, SkinManager.prototype.startFunction = function() {
|
|
this.setButtonInformation(), this.setSkin(currentlySelected, !1), this.setSkin(currentHammerSelected, !0)
|
|
}, SkinManager.prototype.setButtonInformation = function() {
|
|
var t = 0;
|
|
buttons = this.buttonsPotParent.children;
|
|
for (var e = 0; e < this.potUnlockedInformation.length; e++) buttons[e].script.skinButton.setInformation(this.potUnlockedInformation[e], currentlySelected == e, this.potAdUnlockable[e], null), this.potUnlockedInformation[e] && t++;
|
|
this.potUnlockText.element.text = t.toString() + "/" + this.potUnlockedInformation.length.toString(), t = 0, buttons = this.buttonsHammerParent.children;
|
|
var n = this.entity.script.levelManager.getHammerUnlockLevels();
|
|
for (e = 0; e < this.hammerUnlockedInformation.length; e++) buttons[e].script.skinButton.setInformation(this.hammerUnlockedInformation[e], currentHammerSelected == e, !1, n), this.hammerUnlockedInformation[e] && t++;
|
|
this.hammerUnlockText.element.text = t.toString() + "/" + this.hammerUnlockedInformation.length.toString()
|
|
}, SkinManager.prototype.setSkin = function(t, e) {
|
|
for (var n = e ? this.playerHammerParent.children : this.playerPotParent.children, a = 0; a < n.length; a++) n[a].enabled = a == t;
|
|
e ? currentHammerSelected = t : currentlySelected = t, this.setButtonInformation(), this.entity.script.saveDataManager.saveData()
|
|
}, SkinManager.prototype.unlockItem = function(t, e) {
|
|
var n = e ? this.hammerUnlockedInformation : this.potUnlockedInformation;
|
|
if (!0 !== n[t]) {
|
|
PokiSDK && PokiSDK.happyTime(e ? .6 : .5), n[t] = !0, this.setButtonInformation(), this.skinDisplay.enabled = !0;
|
|
for (var a = this.potSkinDisplayParent.children, r = 0; r < a.length; r++) a[r].enabled = r == t && !e;
|
|
a = this.hammerSkinDisplayParent.children;
|
|
for (r = 0; r < a.length; r++) a[r].enabled = r == t && e;
|
|
this.entity.script.saveDataManager.saveData(), lastUnlockedIndex = t, lastUnlockedHammer = e
|
|
}
|
|
}; // SkinButton.js
|
|
var SkinButton = pc.createScript('skinButton');
|
|
|
|
SkinButton.attributes.add('managerObject', {
|
|
type: 'entity'
|
|
});
|
|
|
|
SkinButton.attributes.add('index', {
|
|
type: 'number'
|
|
});
|
|
|
|
SkinButton.attributes.add('titleText', {
|
|
type: 'entity'
|
|
});
|
|
|
|
SkinButton.attributes.add('addLock', {
|
|
type: 'entity'
|
|
});
|
|
|
|
SkinButton.attributes.add('lock', {
|
|
type: 'entity'
|
|
});
|
|
|
|
SkinButton.attributes.add('hammerSkin', {
|
|
type: 'boolean'
|
|
});
|
|
|
|
SkinButton.attributes.add('unlockLevel', {
|
|
type: 'entity'
|
|
});
|
|
|
|
this.unlockedSkin = false;
|
|
this.adlocked = false;
|
|
|
|
// initialize code called once per entity
|
|
SkinButton.prototype.initialize = function() {
|
|
this.entity.element.on('click', this.onButtonPressed, this);
|
|
};
|
|
|
|
SkinButton.prototype.setInformation = function(unlocked, currentlySelected, addLocked, unlockLevels) {
|
|
this.titleText.element.text = currentlySelected ? "Selected" : unlocked ? "" : "Unlock!";
|
|
this.addLock.enabled = (!unlocked && addLocked);
|
|
this.unlockedSkin = unlocked;
|
|
this.adlocked = addLocked;
|
|
if (this.lock) {
|
|
this.lock.enabled = !unlocked;
|
|
}
|
|
|
|
if (this.unlockLevel) {
|
|
this.unlockLevel.enabled = false;
|
|
}
|
|
|
|
if (!this.unlockedSkin && this.hammerSkin) {
|
|
for (var i = 0; i < unlockLevels.length; i++) {
|
|
if (unlockLevels[i] == this.index) {
|
|
this.unlockLevel.element.text = "Lvl " + (i + 1).toString();
|
|
this.unlockLevel.enabled = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
SkinButton.prototype.onButtonPressed = function() {
|
|
this.app.fire('button');
|
|
if (this.unlockedSkin) {
|
|
this.managerObject.script.skinManager.setSkin(this.index, this.hammerSkin);
|
|
} else if (this.adlocked) {
|
|
this.app.fire('startedAdd');
|
|
PokiSDK.rewardedBreak().then(
|
|
(success) => {
|
|
if (success) {
|
|
this.managerObject.script.skinManager.unlockItem(this.index, this.hammerSkin);
|
|
} else {
|
|
console.log("not watched");
|
|
}
|
|
this.app.fire('finishedAdd');
|
|
}
|
|
);
|
|
}
|
|
};
|
|
|
|
var playerScript = pc.createScript("playerScript");
|
|
playerScript.attributes.add("playerSpeed", {
|
|
type: "number",
|
|
default: 10
|
|
}), playerScript.attributes.add("camObject", {
|
|
type: "entity"
|
|
}), playerScript.attributes.add("cameraDistance", {
|
|
type: "number",
|
|
default: 10
|
|
}), playerScript.attributes.add("cameraUpOffset", {
|
|
type: "number",
|
|
default: 3
|
|
}), playerScript.attributes.add("cameraLerpSpeed", {
|
|
type: "number",
|
|
default: .2
|
|
}), playerScript.attributes.add("cameraDefaultZoom", {
|
|
type: "number",
|
|
default: 6
|
|
}), playerScript.attributes.add("cameraZoomedIn", {
|
|
type: "number",
|
|
default: 4
|
|
}), playerScript.attributes.add("respawnTimer", {
|
|
type: "number",
|
|
default: .8
|
|
}), playerScript.attributes.add("respawnParticle", {
|
|
type: "entity"
|
|
}), playerScript.attributes.add("deathParticle", {
|
|
type: "entity"
|
|
});
|
|
var deltaTime = 0,
|
|
then = 0,
|
|
touchInputValue = 0;
|
|
|
|
function calculateDelta() {
|
|
var t = Date.now();
|
|
(deltaTime = .1 * (t - then)) >= 5 && (deltaTime = 0), then = t
|
|
}
|
|
|
|
function lerp(t, e, a) {
|
|
return t + a * (e - t)
|
|
}
|
|
playerScript.prototype.initialize = function() {
|
|
console.log("no"), this.savePoint = new pc.Vec3, this.app.touch && (console.error("found touch"), this.app.touch.on("touchstart", this.onTouchStart, this), this.app.touch.on(pc.EVENT_TOUCHEND, this.onTouchEnd, this))
|
|
}, playerScript.prototype.onTouchStart = function(t) {
|
|
1 === t.touches.length && (touchInputValue = t.touches[0].x >= this.app.graphicsDevice.width / this.app.graphicsDevice.maxPixelRatio / 2 ? 1 : -1), t.event.preventDefault()
|
|
}, playerScript.prototype.onTouchEnd = function(t) {
|
|
touchInputValue = 0, t.event.preventDefault()
|
|
}, playerScript.prototype.respawn = function() {
|
|
this.deathParticle.setPosition(this.entity.position), this.deathParticle.particlesystem.reset(), this.deathParticle.particlesystem.play(), this.entity.enabled = !1, pc.timer.add(this.respawnTimer, this.actualRespawn, this)
|
|
}, playerScript.prototype.actualRespawn = function() {
|
|
this.entity.enabled = !0, this.entity.rigidbody.teleport(this.savePoint, pc.Vec3.ZERO), this.entity.rigidbody.linearVelocity = new pc.Vec3, this.respawnParticle.particlesystem.reset(), this.respawnParticle.particlesystem.play()
|
|
}, playerScript.prototype.setSpawnPoint = function(t) {
|
|
this.savePoint = t
|
|
}, playerScript.prototype.cameraZoom = function(t) {
|
|
this.camObject.camera.orthoHeight = t ? this.cameraZoomedIn : this.cameraDefaultZoom
|
|
}, playerScript.prototype.update = function(t) {
|
|
calculateDelta(), this.entity.rigidbody.activate(), console.log("aaaaaa"), this.entity.rigidbody.angularVelocity = new pc.Vec3(0, 0, lerp(this.entity.rigidbody.angularVelocity.z, 0, .1)), (this.app.keyboard.isPressed(pc.KEY_A) || this.app.keyboard.isPressed(pc.KEY_LEFT)) && this.entity.rigidbody.applyTorqueImpulse(0, 0, this.playerSpeed * t), (this.app.keyboard.isPressed(pc.KEY_D) || this.app.keyboard.isPressed(pc.KEY_RIGHT)) && this.entity.rigidbody.applyTorqueImpulse(0, 0, -this.playerSpeed * t), 0 !== touchInputValue && this.entity.rigidbody.applyTorqueImpulse(0, 0, touchInputValue * this.playerSpeed * t);
|
|
var e = this.entity.getPosition(),
|
|
a = this.camObject.getPosition(),
|
|
i = new pc.Vec3;
|
|
i.x = lerp(a.x, e.x, this.cameraLerpSpeed * deltaTime), i.y = lerp(a.y, e.y + this.cameraUpOffset, this.cameraLerpSpeed * deltaTime), this.camObject.setPosition(i.x, i.y, this.cameraDistance), this.app.keyboard.isPressed(pc.KEY_R) && this.actualRespawn()
|
|
};
|
|
var AnimateCurve = pc.createScript("animateCurve");
|
|
AnimateCurve.attributes.add("offsetCurve", {
|
|
type: "curve",
|
|
title: "Offset Curve"
|
|
}), AnimateCurve.attributes.add("duration", {
|
|
type: "number",
|
|
default: 1,
|
|
title: "Duration (secs)"
|
|
}), AnimateCurve.prototype.initialize = function() {
|
|
this.startScale = this.entity.getLocalScale().clone(), this.scale = new pc.Vec3, this.time = 0
|
|
}, AnimateCurve.prototype.update = function(t) {
|
|
this.time += t, this.time > this.duration && (this.time -= this.duration);
|
|
var e = this.time / this.duration,
|
|
i = this.offsetCurve.value(e);
|
|
this.scale.copy(this.startScale), this.scale.x += i, this.scale.y += i, this.scale.z += i, this.entity.setLocalScale(this.scale)
|
|
};
|
|
var TeleportPlayerBody = pc.createScript("teleportPlayerBody");
|
|
TeleportPlayerBody.attributes.add("playerBody", {
|
|
type: "entity"
|
|
}), TeleportPlayerBody.prototype.initialize = function() {}, TeleportPlayerBody.prototype.update = function(e) {
|
|
var t = this.entity.getPosition();
|
|
this.playerBody.rigidbody.teleport(t, pc.Vec3.ZERO)
|
|
};
|
|
var MovingPlatform = pc.createScript("movingPlatform");
|
|
|
|
function lerp(t, i, e) {
|
|
return t + e * (i - t)
|
|
}
|
|
MovingPlatform.attributes.add("positionOffset", {
|
|
type: "vec2"
|
|
}), MovingPlatform.attributes.add("moveCurve", {
|
|
type: "curve"
|
|
}), MovingPlatform.attributes.add("speed", {
|
|
type: "number"
|
|
}), MovingPlatform.attributes.add("delay", {
|
|
type: "number"
|
|
}), this.savedPosition = new pc.Vec2, this.goToPosition = new pc.Vec2, MovingPlatform.prototype.initialize = function() {
|
|
this.savedPosition = new pc.Vec2(this.entity.position.x, this.entity.position.y), this.goToPosition = new pc.Vec2(this.entity.position.x + this.positionOffset.x, this.entity.position.y + this.positionOffset.y), this.time = 0, this.elapsedTime = 0
|
|
}, MovingPlatform.prototype.update = function(t) {
|
|
if (this.elapsedTime += t, !(this.elapsedTime < this.delay)) {
|
|
this.time += t * this.speed, this.time > 1 && (this.time = 0);
|
|
var i = this.moveCurve.value(this.time),
|
|
e = new pc.Vec3(lerp(this.savedPosition.x, this.goToPosition.x, i), lerp(this.savedPosition.y, this.goToPosition.y, i), 0);
|
|
this.entity.setPosition(e)
|
|
}
|
|
};
|
|
var ResetSaveData = pc.createScript("resetSaveData");
|
|
ResetSaveData.prototype.initialize = function() {
|
|
this.entity.element.on("click", function() {
|
|
this.onButtonPressed()
|
|
}, this)
|
|
}, ResetSaveData.prototype.onButtonPressed = function() {
|
|
this.app.fire("button"), localStorage.clear()
|
|
};
|
|
pc.script.createLoadingScreen(function(e) {
|
|
var t, a;
|
|
t = ["body {", " background-color: #283538;", "}", "#application-splash-wrapper {", " position: absolute;", " top: 0;", " left: 0;", " height: 100%;", " width: 100%;", " background-color: #283538;", "}", "#application-splash {", " position: absolute;", " top: calc(50% - 132px);", " width: 264px;", " left: calc(50% - 132px);", "}", "#application-splash img {", " width: 100%;", "}", "#progress-bar-container {", " margin: 20px auto 0 auto;", " height: 2px;", " width: 100%;", " background-color: #1d292c;", "}", "#progress-bar {", " width: 0%;", " height: 100%;", " background-color: #f60;", "}", "@media (max-width: 480px) {", " #application-splash {", " width: 170px;", " left: calc(50% - 85px);", " }", "}"].join("\n"), (a = document.createElement("style")).type = "text/css", a.styleSheet ? a.styleSheet.cssText = t : a.appendChild(document.createTextNode(t)), document.head.appendChild(a),
|
|
function() {
|
|
var e = document.createElement("div");
|
|
e.id = "application-splash-wrapper", document.body.appendChild(e);
|
|
var t = document.createElement("div");
|
|
t.id = "application-splash", e.appendChild(t), t.style.display = "none";
|
|
var a = document.createElement("div");
|
|
a.id = "progress-bar-container", t.appendChild(a);
|
|
var n = document.createElement("div");
|
|
n.id = "progress-bar", a.appendChild(n)
|
|
}(), e.on("preload:start", function() {
|
|
var t = document.getElementById("application-splash"),
|
|
a = e.assets.find("GSOTLoadingScreen.");
|
|
if (a) {
|
|
var n = document.createElement("img");
|
|
n.src = a.getFileUrl(), t.childNodes.length > 0 ? t.insertBefore(n, t.childNodes[0]) : t.appendChild(n), n.onload = function() {
|
|
t.style.display = "block"
|
|
}
|
|
}
|
|
}), e.on("preload:end", function() {
|
|
e.off("preload:progress")
|
|
}), e.on("preload:progress", function(e) {
|
|
var t = document.getElementById("progress-bar");
|
|
t && (e = Math.min(1, Math.max(0, e)), t.style.width = 100 * e + "%")
|
|
}), e.on("start", function() {
|
|
var e = document.getElementById("application-splash-wrapper");
|
|
e.parentElement.removeChild(e)
|
|
})
|
|
});
|
|
var MoveObjectTowardsAnother = pc.createScript("moveObjectTowardsAnother");
|
|
MoveObjectTowardsAnother.attributes.add("targetObject", {
|
|
type: "entity"
|
|
}), MoveObjectTowardsAnother.attributes.add("moveSpeed", {
|
|
type: "number",
|
|
default: 1,
|
|
title: "Move Speed"
|
|
}), MoveObjectTowardsAnother.prototype.initialize = function() {
|
|
this.force = new pc.Vec3
|
|
}, MoveObjectTowardsAnother.prototype.update = function(e) {
|
|
this.moveObject()
|
|
}, MoveObjectTowardsAnother.prototype.moveObject = function() {
|
|
var e = this.targetObject.getPosition(),
|
|
t = this.entity.getPosition(),
|
|
o = new pc.Vec3;
|
|
o.sub(e, t);
|
|
var r = o.length();
|
|
if (!(r < .001)) {
|
|
var i = o / r * this.moveSpeed;
|
|
this.entity.rigidbody.applyForce(i * deltaTime)
|
|
}
|
|
};
|
|
var UnlockSkinButton = pc.createScript("unlockSkinButton");
|
|
UnlockSkinButton.attributes.add("manager", {
|
|
type: "entity"
|
|
}), UnlockSkinButton.attributes.add("potLayout", {
|
|
type: "entity"
|
|
}), UnlockSkinButton.attributes.add("hammerLayout", {
|
|
type: "entity"
|
|
}), UnlockSkinButton.attributes.add("menu", {
|
|
type: "entity"
|
|
}), UnlockSkinButton.attributes.add("equip", {
|
|
type: "boolean"
|
|
}), UnlockSkinButton.prototype.initialize = function() {
|
|
this.entity.element.on("click", this.onButtonPressed, this)
|
|
}, UnlockSkinButton.prototype.onButtonPressed = function() {
|
|
this.app.fire("button");
|
|
var t = this.manager.script.skinManager.getLastUnlocked();
|
|
if (this.equip) {
|
|
var n = 1 == t.y;
|
|
this.manager.script.skinManager.setSkin(t.x, n), this.menu.enabled = !1, this.hammerLayout.enabled = n, this.potLayout.enabled = !n
|
|
}
|
|
};
|
|
var AudioManager = pc.createScript("audioManager");
|
|
AudioManager.attributes.add("musicEntity", {
|
|
type: "entity"
|
|
}), AudioManager.attributes.add("deathEntity", {
|
|
type: "entity"
|
|
}), AudioManager.attributes.add("finishEntity", {
|
|
type: "entity"
|
|
}), AudioManager.attributes.add("buttonEntity", {
|
|
type: "entity"
|
|
}), AudioManager.prototype.initialize = function() {
|
|
this.app.on("death", this.playDeathSound, this), this.app.on("button", this.playButtonSound, this), this.app.on("flagTouched", this.playVictorySound, this), this.app.on("startedAdd", this.startAdd, this), this.app.on("finishedAdd", this.finishAdd, this)
|
|
}, AudioManager.prototype.startAdd = function() {
|
|
this.app.timeScale = 0, this.musicEntity.sound.pause()
|
|
}, AudioManager.prototype.finishAdd = function() {
|
|
this.app.timeScale = 1, this.musicEntity.sound.resume()
|
|
}, AudioManager.prototype.playDeathSound = function() {
|
|
this.deathEntity.sound.play("one")
|
|
}, AudioManager.prototype.playButtonSound = function() {
|
|
this.buttonEntity.sound.play("button")
|
|
}, AudioManager.prototype.playVictorySound = function() {
|
|
this.finishEntity.sound.play("victory")
|
|
};
|
|
var ToggleEntityButton = pc.createScript("toggleEntityButton");
|
|
ToggleEntityButton.attributes.add("toggleObject", {
|
|
type: "entity"
|
|
}), ToggleEntityButton.prototype.initialize = function() {
|
|
this.entity.element.on("click", this.onButtonPressed, this)
|
|
}, ToggleEntityButton.prototype.onButtonPressed = function() {
|
|
this.toggleObject.enabled = !this.toggleObject.enabled
|
|
};
|
|
var ToggleTwoEntitiesButton = pc.createScript("toggleTwoEntitiesButton");
|
|
ToggleTwoEntitiesButton.attributes.add("toggleObjectOne", {
|
|
type: "entity"
|
|
}), ToggleTwoEntitiesButton.attributes.add("toggleObjectTwo", {
|
|
type: "entity"
|
|
}), ToggleTwoEntitiesButton.prototype.initialize = function() {
|
|
this.entity.element.on("click", this.onButtonPressed, this)
|
|
}, ToggleTwoEntitiesButton.prototype.onButtonPressed = function() {
|
|
this.toggleObjectOne.enabled = !this.toggleObjectOne.enabled, this.toggleObjectTwo.enabled = !this.toggleObjectTwo.enabled
|
|
};
|
|
var Arm = pc.createScript("arm");
|
|
Arm.attributes.add("acceleration", {
|
|
type: "number",
|
|
default: 100
|
|
}), this.input = 0, Arm.prototype.initialize = function() {}, Arm.prototype.updateInput = function() {
|
|
this.input = 0, (this.app.keyboard.isPressed(pc.KEY_A) || this.app.keyboard.isPressed(pc.KEY_LEFT)) && (this.input -= 1), (this.app.keyboard.isPressed(pc.KEY_D) || this.app.keyboard.isPressed(pc.KEY_RIGHT)) && (this.input += 1)
|
|
}, Arm.prototype.update = function(t) {
|
|
this.updateInput(), this.entity.rigidbody.applyTorqueImpulse(0, 0, this.acceleration * this.input * t)
|
|
};
|
|
var PlayerMotor = pc.createScript("playerMotor");
|
|
PlayerMotor.prototype.initialize = function() {}, PlayerMotor.prototype.update = function(o) {};
|
|
var RespawnButton = pc.createScript("respawnButton");
|
|
RespawnButton.attributes.add("player", {
|
|
type: "entity"
|
|
}), RespawnButton.prototype.initialize = function() {
|
|
this.entity.element.on("click", this.respawn, this)
|
|
}, RespawnButton.prototype.respawn = function() {
|
|
this.player.script.playerTestScript.actualRespawn()
|
|
}; |