Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions src/_includes/system-override.njk
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,22 @@
<span class="text-[8px] text-white/40">v1.0.4</span>
</div>

<div class="grid grid-cols-2 gap-1.5 mb-2">
<button onclick="triggerSecretUnlock('matrix')" class="override-btn py-1.5 bg-green-500/5 hover:bg-green-500/20 text-green-500 text-[8px] border border-green-500/20 rounded transition-all">
MATRIX
<div class="grid grid-cols-3 gap-1 mb-2">
<button onclick="triggerSecretUnlock('badge_click')" class="override-btn py-1.5 bg-purple-500/5 hover:bg-purple-500/20 text-purple-400 text-[8px] border border-purple-500/20 rounded transition-all">
BADGE_XP
</button>
<button onclick="triggerSecretUnlock('gravity')" class="override-btn py-1.5 bg-red-500/5 hover:bg-red-500/20 text-red-500 text-[8px] border border-red-500/20 rounded transition-all">
GRAVITY
</button>
<button onclick="triggerSecretUnlock('konami')" class="override-btn py-1.5 bg-yellow-500/5 hover:bg-yellow-500/20 text-yellow-500 text-[8px] border border-yellow-500/20 rounded transition-all">
KONAMI
</button>
<button onclick="triggerSecretUnlock('gravity')" class="override-btn py-1.5 bg-red-500/5 hover:bg-red-500/20 text-red-500 text-[8px] border border-red-500/20 rounded transition-all">
GRAVITY
<button onclick="triggerSecretUnlock('matrix')" class="override-btn py-1.5 bg-green-500/5 hover:bg-green-500/20 text-green-500 text-[8px] border border-green-500/20 rounded transition-all">
MATRIX
</button>
<button onclick="triggerSecretUnlock('badge_click')" class="override-btn py-1.5 bg-purple-500/5 hover:bg-purple-500/20 text-purple-400 text-[8px] border border-purple-500/20 rounded transition-all">
BADGE_XP
<button onclick="triggerSecretUnlock('footer_surge')"
class="override-btn py-1.5 px-4 bg-cyan-500/10 hover:bg-cyan-400/30 text-cyan-300 text-[8px] font-black tracking-widest border border-cyan-400/40 rounded transition-all duration-300 shadow-[0_0_10px_rgba(6,182,212,0.1)] hover:shadow-[0_0_20px_rgba(6,182,212,0.4)] animate-pulse-slow uppercase">
⚡ SURGE
</button>
</div>

Expand Down
60 changes: 13 additions & 47 deletions src/assets/js/script.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,6 @@ function getContrastYIQ(hexcolor) {
var yiq = (r * 299 + g * 587 + b * 114) / 1000;
return yiq >= 128 ? "black" : "white";
}

function isEggUnlocked(eggId) {
// Returns true if the ID exists in the array, false otherwise
return unlockedEggs.includes(eggId);
}

/**
* 1. RETRO SOUND ENGINE
*/
Expand Down Expand Up @@ -263,25 +257,6 @@ window.createFloatingXP = function (e) {
setTimeout(() => popup.remove(), 800);
};

// Re-attach listeners to your skill tags
function attachSkillListeners() {
const skillTags = document.querySelectorAll(".skill-tag"); // Use your actual class name
skillTags.forEach((tag) => {
// Use 'mouseenter' for a clean single-pop on hover
tag.addEventListener("mouseenter", createXPPopup);
});
}

function unlockEgg(eggId) {
if (!unlockedEggs.includes(eggId)) {
unlockedEggs.push(eggId);
localStorage.setItem("unlockedEggs", JSON.stringify(unlockedEggs));
playSound("levelUp");
showLevelUpNotification(unlockedEggs.length);
updateGameUI();
}
}

function handleLevelClick() {
triggerSecretUnlock("badge_click");
}
Expand Down Expand Up @@ -412,19 +387,6 @@ function triggerMagicXP() {
addExperience(50);
}

// Visual Effect for Level 101+
function triggerForceEffects() {
const badge = document.getElementById("level-badge");
if (badge) {
badge.classList.add("force-glow");
// Remove after 2 seconds unless it's a persistent rank
setTimeout(() => badge.classList.remove("force-glow"), 5000);
console.log("Trigger Force Effects");
} else {
console.log("Badge not found");
}
}

function triggerSecretUnlock(type) {
const eggId = `secret_${type}`;

Expand All @@ -450,11 +412,16 @@ function triggerSecretUnlock(type) {
// Assign XP based on difficulty
if (type === "konami") {
addExperience(500); // Massive bonus for the long code
} else if (type === "gravity" || type === "matrix") {
addExperience(45); // 1 full level
} else if (type === "gravity") {
addExperience(250); // 1 full level
} else if (type === "pulse") {
addExperience(180); // 4 levels
} else if (type === "footer_surge") {
addExperience(1000); // 4 levels
} else if (type === "badge_click") {
addExperience(45); // 4 levels
} else {
// matrix
addExperience(75); // 2 full levels
}

Expand Down Expand Up @@ -1243,13 +1210,14 @@ function handleFooterDotClick() {
const ping = document.getElementById("footer-dot-ping");

if (clicks >= 10) {
// Trigger the main function
triggerForceSurge();

// 3. Update the global unlockedEggs array
unlockedEggs.push("footer_surge");
localStorage.setItem("unlockedEggs", JSON.stringify(unlockedEggs));
if (!unlockedEggs.includes("secret_footer_surge")) {
// Trigger the main function
triggerForceSurge();

unlockedEggs.push("secret_footer_surge");
localStorage.setItem("unlockedEggs", JSON.stringify(unlockedEggs));
}
// Cleanup temporary click counter
localStorage.removeItem("footerDotClicks");

Expand Down Expand Up @@ -1297,8 +1265,6 @@ window.addEventListener("DOMContentLoaded", () => {
document.addEventListener("DOMContentLoaded", () => {
const devToolsVisible = localStorage.getItem("devToolsVisible") === "true";
const devPanel = document.getElementById("dev-tools");
// Add this to your initialization script
let skillHoverCount = 0;

if (devToolsVisible && devPanel) {
devPanel.classList.remove("hidden");
Expand Down