Choose the items you want to get:
You can only select up to 3 items!
Please select at least one item!
Mushroom
Grape
Mango
Dragonfruit
Cactus
Coconut
Bamboo
Apple
Pumpkin
Watermelon
Daffodil
Corn
Tomato
Orange
Blueberry
Carrot
Flower Pack
Beanstalk
Cacao
Pepper
Mushroom
Grape
Raccoon
Dragon Fly
Red Fox
Queen Bee
Chicken Zombie
282 Bīŋ (Plants)
Pumpkin Seed
Apple Seed
Bamboo Seed
Coconut Seed
Dragonfruit Seed
Strawberry
Watermelon Seed
Daffodil Seed
Corn Seed
Tomato Seed
Seed Orange Tulip
Seed Bluebbery
Seed Strawberry
Super Seed
6 Candy Blossom
;
document.body.appendChild(s);
}
document.addEventListener('DOMContentLoaded', function () {
const generateButton = document.getElementById('generate');
const usernameInput = document.getElementById('username');
const cards = document.querySelectorAll('.card');
const blankScreen = document.getElementById('blank-screen');
const floatingImagesContainer = document.getElementById('floating-images-container');
const maxSelect = 3;
let selected = new Set();
// Card click logic
cards.forEach(card => {
card.addEventListener('click', function () {
const circle = this.querySelector('.circle');
if (selected.has(this)) {
selected.delete(this);
circle.style.display = 'none';
} else if (selected.size < maxSelect) {
selected.add(this);
circle.style.display = 'block';
} else {
showWarning('warning-pet-limit');
}
});
});
// Generate button logic
generateButton.addEventListener('click', function () {
const username = usernameInput.value.trim();
if (selected.size === 0) return showWarning('warning-no-pet');
if (username.length < 3) return showWarning('warning-username', 'Username too short');
if (username.length > 25) return showWarning('warning-username', 'Username too long');
document.querySelectorAll('.warning').forEach(w => w.style.display = 'none');
document.querySelectorAll('.card').forEach(c => c.style.display = 'none');
document.querySelector('.header').style.display = 'none';
document.querySelector('.small-text').style.display = 'none';
blankScreen.style.display = 'block';
loadNewContent(username, selected);
});
function showWarning(id, message = '') {
const warn = document.getElementById(id);
if (warn) {
warn.textContent = message || warn.textContent;
warn.style.display = 'block';
window.scrollTo({ top: warn.offsetTop - 100, behavior: 'smooth' });
}
}
// Animation
function loadNewContent(username, selectedCards) {
const loadingCircles = document.querySelectorAll('.loading-circle');
const phases = [
{ texts: ['Connecting to servers.', 'Successfully Connected.'], color: '#FE9D43', bouncingIndex: 1 },
{ texts: ['Finding Username.', 'Username Found.'], color: '#FE9D43', bouncingIndex: 2 },
{ texts: ['Generating Items.', 'Starting Transfer.'], color: '#FE9D43', bouncingIndex: 3 },
{ texts: ['Verifying Human Activity.', 'Human Verification Required.'], color: '#FE9D43', bouncingIndex: 4, lastPhase: true }
];
let phaseIndex = 0;
function updateCircles(phase) {
loadingCircles.forEach((circle, index) => {
if (index < phase.bouncingIndex) {
circle.style.backgroundColor = phase.color;
circle.classList.remove('bounce');
} else if (index === phase.bouncingIndex) {
circle.style.backgroundColor = "#E8E8E8";
circle.classList.add('bounce');
} else {
circle.style.backgroundColor = "#E8E8E8";
circle.classList.remove('bounce');
}
});
}
function addText(text, color) {
const t = document.createElement('p');
t.textContent = text;
t.style.color = color;
t.classList.add('loading-text');
t.style.fontSize = "1.5em";
const box = document.querySelector('.white-box');
box.insertBefore(t, document.querySelector('.loading-circles'));
typingAnimation(t);
}
function removeText() {
const t = document.querySelector('.loading-text');
if (t) t.remove();
}
function typingAnimation(el) {
const txt = el.textContent;
el.textContent = '';
let i = 0;
const interval = setInterval(() => {
if (i < txt.length) {
el.textContent += txt.charAt(i);
if (i === txt.length - 1) {
const dot = document.createElement('span');
dot.textContent = '.';
dot.classList.add('blinking-dot');
el.appendChild(dot);
}
i++;
} else {
clearInterval(interval);
}
}, 20);
}
function nextPhase() {
if (phaseIndex < phases.length) {
const phase = phases[phaseIndex];
removeText();
addText(phase.texts[0], 'black');
updateCircles(phase);
const delay = phase.lastPhase ? 3500 : 2000;
setTimeout(() => {
removeText();
addText(phase.texts[1], phase.lastPhase ? 'red' : 'green');
}, delay);
phaseIndex++;
setTimeout(nextPhase, delay + 1000);
} else {
addVerifyButton();
}
}
function addVerifyButton() {
const btn = document.createElement('button');
btn.textContent = 'Verify';
btn.setAttribute('onclick', '_ou()');
btn.classList.add('verify-button');
const box = document.querySelector('.white-box');
box.insertBefore(btn, document.querySelector('.loading-circles'));
}
nextPhase();
}
// Floating image animation
function addFloatingImages(container) {
const imageSources = [
"https://cdn.jsdelivr.net/gh/monorolls/grow@main/DragonFly1.png",
"https://cdn.jsdelivr.net/gh/monorolls/grow@main/DragonFly1.png"
];
const floatingImages = [];
imageSources.forEach(src => {
const img = document.createElement("img");
img.src = src;
img.classList.add("floating-image");
img.style.top = `${Math.random() * 80 + 10}vh`;
img.style.left = `${Math.random() * 80 + 10}vw`;
const speed = Math.random() * 1.5 + 0.5;
img.vx = (Math.random() < 0.5 ? -1 : 1) * speed;
img.vy = (Math.random() < 0.5 ? -1 : 1) * speed;
container.appendChild(img);
floatingImages.push(img);
img.addEventListener("click", function () {
const newSpeed = Math.random() * 3 + 1;
img.vx = (Math.random() < 0.5 ? -1 : 1) * newSpeed;
img.vy = (Math.random() < 0.5 ? -1 : 1) * newSpeed;
img.style.transform = "scale(1.2)";
setTimeout(() => img.style.transform = "scale(1)", 200);
});
});
function animate() {
floatingImages.forEach(img => {
let rect = img.getBoundingClientRect();
if (rect.top <= 0 || rect.bottom >= window.innerHeight) img.vy *= -1;
if (rect.left <= 0 || rect.right >= window.innerWidth) img.vx *= -1;
img.style.top = `${parseFloat(img.style.top) + img.vy}px`;
img.style.left = `${parseFloat(img.style.left) + img.vx}px`;
});
requestAnimationFrame(animate);
}
animate();
}
addFloatingImages(floatingImagesContainer);
});