mirror of
https://github.com/ION606/PINK-NODDERS.git
synced 2026-05-14 22:16:52 +00:00
initial commit
This commit is contained in:
@@ -0,0 +1,142 @@
|
||||
// Function to generate a random number within a range
|
||||
function random(min, max) {
|
||||
return Math.floor(Math.random() * (max - min + 1) + min);
|
||||
}
|
||||
|
||||
// Function to create an emote element
|
||||
function createEmote() {
|
||||
const emote = document.createElement('img');
|
||||
emote.src = 'pink-nodders.gif';
|
||||
emote.classList.add('emote');
|
||||
const d = Math.random() * 100;
|
||||
|
||||
emote.style.width = `${d}px`;
|
||||
emote.style.height = `${d}px`;
|
||||
|
||||
document.body.appendChild(emote);
|
||||
return emote;
|
||||
}
|
||||
|
||||
// Function to update the emote position
|
||||
function updatePosition(emote) {
|
||||
emote.style.left = `${random(0, window.innerWidth - 150)}px`; // 150 is the emote width
|
||||
emote.style.top = `${random(0, window.innerHeight - 150)}px`; // 150 is the emote height
|
||||
}
|
||||
|
||||
// Create multiple emotes and make them bounce around
|
||||
const aLength = (localStorage.getItem('alen')) ? Number(localStorage.getItem('alen')) : 20;
|
||||
let emotes = Array.from({ length: aLength }, createEmote);
|
||||
|
||||
// Update each emote's initial position
|
||||
emotes.forEach(updatePosition);
|
||||
|
||||
// Function to animate emotes
|
||||
function animateEmotes() {
|
||||
emotes.forEach(emote => {
|
||||
const xMove = random(-100, 100);
|
||||
const yMove = random(-100, 100);
|
||||
emote.style.transform = `translate(${xMove}px, ${yMove}px)`;
|
||||
// Update the position after the transition
|
||||
setTimeout(() => updatePosition(emote), 1000);
|
||||
});
|
||||
}
|
||||
|
||||
function changeNodders() {
|
||||
const aLengthNew = document.querySelector('#cherryBlossomPopup').querySelector('input[type="number"]').value;
|
||||
localStorage.setItem('alen', aLengthNew);
|
||||
document.querySelectorAll('.emote:not(.NOCLONE)').forEach(el => el.remove());
|
||||
|
||||
emotes = Array.from({ length: aLengthNew }, createEmote);
|
||||
emotes.push(document.querySelector('.NOCLONE'));
|
||||
emotes.forEach(updatePosition);
|
||||
}
|
||||
|
||||
|
||||
function dupNodders() {
|
||||
document.querySelectorAll('.emote:not(.NOCLONE)').forEach(el => el.click());
|
||||
}
|
||||
|
||||
function changeBK() {
|
||||
let r = 255; // Red value at full to emphasize pink
|
||||
const g = Math.floor(Math.random() * 156 + 100); // Green value between 100 and 255
|
||||
const b = Math.floor(Math.random() * 156 + 100); // Blue value between 100 and 255
|
||||
let alpha = 0.5; // Set transparency to make it softer
|
||||
|
||||
// random chance of hard color
|
||||
const isRand = Math.floor(100 * Math.random());
|
||||
if (isRand === 1 || isRand >= 99) {
|
||||
r = Math.floor(Math.random() * 156 + 100);
|
||||
alpha = 1;
|
||||
}
|
||||
|
||||
const backgroundColor = `rgba(${r}, ${g}, ${b}, ${alpha})`;
|
||||
document.body.style.backgroundColor = backgroundColor;
|
||||
}
|
||||
|
||||
// Animate emotes every second
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
emotes.push(document.querySelector('.NOCLONE'));
|
||||
setInterval(animateEmotes, 2000);
|
||||
|
||||
const konamiCode = ['ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight', 'b', 'a', 'Enter'];
|
||||
let userInput = [];
|
||||
|
||||
let intId = setInterval(() => {userInput = []}, 3000);
|
||||
|
||||
document.addEventListener('keydown', (event) => {
|
||||
userInput.push(event.key);
|
||||
|
||||
clearInterval(intId);
|
||||
intId = setInterval(() => {userInput = []}, 3000);
|
||||
|
||||
// Remove the first element if it exceeds the length
|
||||
if (userInput.length > konamiCode.length) userInput.shift();
|
||||
|
||||
// Check if the userInput array matches the konamiCode
|
||||
if (userInput.join('') === konamiCode.join('')) {
|
||||
let gradient = document.getElementById('neonRainbowGradient');
|
||||
if (!gradient) {
|
||||
gradient = document.createElement('div');
|
||||
gradient.id = 'neonRainbowGradient';
|
||||
gradient.className = 'neon-rainbow';
|
||||
document.body.appendChild(gradient);
|
||||
}
|
||||
else gradient.remove();
|
||||
}
|
||||
else if (event.ctrlKey && event.key === 's') {
|
||||
event.preventDefault();
|
||||
console.log("%cINSANITY", "color:red;font-weight:bold;font-size:100px;");
|
||||
emotes.forEach(e => e.classList.add('rotneon'));
|
||||
|
||||
const container = document.querySelector("#fullscreenTextContainer");
|
||||
container.style.opacity = 1;
|
||||
container.style.zIndex = 1000;
|
||||
setTimeout(() => {
|
||||
container.style.zIndex = 0;
|
||||
container.style.opacity = 0;
|
||||
}, 3000);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Listen for click events on emotes for possible future interactivity
|
||||
document.addEventListener('click', e => {
|
||||
if (e.target.classList.contains('NOCLONE')) {
|
||||
const popupEl = document.getElementById('cherryBlossomPopup');
|
||||
popupEl.style.display = "block";
|
||||
popupEl.querySelector('input[type="number"]').value = emotes.length;
|
||||
}
|
||||
else if (e.target.classList.contains('emote')) {
|
||||
const pink_clone = e.target.cloneNode(true);
|
||||
document.body.appendChild(pink_clone);
|
||||
|
||||
// Move the original element to the left relative to its current position
|
||||
e.target.style.transform = `translateX(-${e.target.offsetWidth}px)`;
|
||||
|
||||
// Move the cloned element to the right relative to the original position
|
||||
pink_clone.style.transform = `translateX(${e.target.offsetWidth}px)`;
|
||||
|
||||
emotes.push(pink_clone);
|
||||
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user