mirror of
https://github.com/MrEidam/PetPet.git
synced 2026-04-17 07:33:31 +00:00
296 lines
7.4 KiB
JavaScript
296 lines
7.4 KiB
JavaScript
const Dage = document.querySelector('#ageN');
|
|
const Aimg = document.querySelector('#anim')
|
|
const NameC = document.querySelector('#nameCa')
|
|
|
|
const Djoy = document.querySelector('#joyN');
|
|
const Dfood = document.querySelector('#fooN');
|
|
const Dclean = document.querySelector('#cleN');
|
|
const Dhealth = document.querySelector('#heaN');
|
|
|
|
let coins = 0;
|
|
|
|
let chosenAnimal = '';
|
|
|
|
function getAnimalImage(stage){
|
|
const stages = ['baby', 'teen', 'adult', 'senior'];
|
|
if(stage >= 0 && stage < stages.length){
|
|
return `./img/${chosenAnimal}/${stages[stage]}.png`;
|
|
}
|
|
return '';
|
|
}
|
|
|
|
function getDeadImage(){
|
|
return `./img/dead/${chosenAnimal}.png`;
|
|
}
|
|
|
|
function getGoneImage(){
|
|
return `./img/gone/${chosenAnimal}.png`;
|
|
}
|
|
|
|
|
|
const animalImage = {
|
|
animal: {
|
|
Normal: {
|
|
age: [
|
|
`./img/${chosenAnimal}/baby.png`,
|
|
`./img/${chosenAnimal}/teen.png`,
|
|
`./img/${chosenAnimal}/adult.png`,
|
|
`./img/${chosenAnimal}/senior.png`,
|
|
]
|
|
},
|
|
Dead: function(){ return `./img/dead/${chosenAnimal}.png`; },
|
|
Gone: function(){ return `./img/gone/${chosenAnimal}.png`; }
|
|
}
|
|
};
|
|
|
|
let attributes = {
|
|
Name: [],
|
|
Joy: {
|
|
value: 10,
|
|
max: 306,
|
|
min: -100,
|
|
abszero: 3.06,
|
|
},
|
|
Hunger: {
|
|
value: 30,
|
|
max: 100,
|
|
min: 0,
|
|
},
|
|
Clean: {
|
|
value: 50.6,
|
|
max: 253,
|
|
min: 0,
|
|
},
|
|
Hp: {
|
|
value: 100,
|
|
max: 100,
|
|
min: 0,
|
|
},
|
|
Age: {
|
|
value: 0,
|
|
max: 100,
|
|
min: 0,
|
|
},
|
|
/*Joy: {
|
|
value: 10,
|
|
max: 100,
|
|
min: -100,
|
|
}*/
|
|
Life: {
|
|
dead: 0,
|
|
away: 0,
|
|
}
|
|
}
|
|
function choseTime(){
|
|
document.querySelector('#chui').style.display = 'flex';
|
|
document.querySelector('#blurs').style.display = 'flex';
|
|
}
|
|
function option(num){
|
|
document.querySelector('#chui').style.display = 'none';
|
|
document.querySelector('#blurs').style.display = 'none';
|
|
|
|
switch(num){
|
|
case 0:
|
|
chosenAnimal = 'tiger';
|
|
break;
|
|
case 1:
|
|
chosenAnimal = 'shiba';
|
|
break;
|
|
default:
|
|
alert('MrEidam did a oopsie dopsie');
|
|
break;
|
|
}
|
|
display();
|
|
time();
|
|
money();
|
|
}
|
|
|
|
window.addEventListener('load',() => {
|
|
choseTime();
|
|
});
|
|
|
|
function money(){
|
|
setTimeout (() => {
|
|
if(loadMoney != null){
|
|
localStorage.setItem('PetPet-Money', JSON.stringify(coins));
|
|
}
|
|
|
|
|
|
display();
|
|
money();
|
|
},1000);
|
|
}
|
|
|
|
function loadMoney(){
|
|
const boardString = localStorage.getItem('PetPet-Money'); // Retrieve the JSON string from local storage
|
|
return boardString ? JSON.parse(boardString) : null; // Parse the JSON string back into an array
|
|
}
|
|
|
|
function choseTime(){//todo Drop down displaying fucken thing
|
|
console.log('add stuff');
|
|
}
|
|
|
|
function toCPercen(varr){
|
|
let num = Math.floor((varr.value/(varr.max/100))*10)/10;
|
|
|
|
if(num>100) num = 100; //todo special MAX for >100%
|
|
if(num<varr.min){
|
|
num = varr.min;
|
|
varr.value = varr.min;
|
|
}
|
|
|
|
let colorClass;
|
|
switch(true){
|
|
case num >= 80:
|
|
colorClass = "Lime";
|
|
break;
|
|
case num >= 60:
|
|
colorClass = "Yellow";
|
|
break;
|
|
case num >= 40:
|
|
colorClass = "Orange";
|
|
break;
|
|
case num >= 20:
|
|
colorClass = "DarkOrange";
|
|
break;
|
|
default:
|
|
colorClass = "Red";
|
|
}
|
|
return `<p class="${colorClass}">${num}%</p>`;
|
|
}
|
|
|
|
|
|
function display(){
|
|
Dage.innerHTML = (attributes.Age.value);
|
|
Djoy.innerHTML = toCPercen(attributes.Joy);
|
|
Dfood.innerHTML = toCPercen(attributes.Hunger);
|
|
Dclean.innerHTML = toCPercen(attributes.Clean);
|
|
Dhealth.innerHTML = toCPercen(attributes.Hp);
|
|
|
|
if(attributes.Age.value <= 6){
|
|
NameC.innerHTML = `Junior`;
|
|
Aimg.src = getAnimalImage(0);
|
|
}else if(attributes.Age.value < 18){
|
|
NameC.innerHTML = `Teen`;
|
|
Aimg.src = getAnimalImage(1);
|
|
}else if(attributes.Age.value < 60){
|
|
NameC.innerHTML = `Adult`;
|
|
Aimg.src = getAnimalImage(2);
|
|
}else if(attributes.Age.value < attributes.Age.max){
|
|
NameC.innerHTML = `Senior`;
|
|
Aimg.src = getAnimalImage(3);
|
|
}else{
|
|
NameC.innerHTML = `Dead`;
|
|
attributes.Life.dead = 1;
|
|
btnHide();
|
|
Aimg.src = getDeadImage();
|
|
}
|
|
|
|
if(attributes.Hp.value<attributes.Hp.min) attributes.Life.dead = 1;
|
|
|
|
if(attributes.Life.dead){
|
|
btnHide();
|
|
Aimg.src = animalImage.animal.Dead();
|
|
}
|
|
|
|
if(attributes.Life.away) {
|
|
btnHide();
|
|
Aimg.src = animalImage.animal.Gone();
|
|
}
|
|
}
|
|
|
|
function play(){
|
|
if(attributes.Joy.value<attributes.Joy.max){
|
|
attributes.Joy.value += Math.floor(Math.random()*20);
|
|
attributes.Clean.value -= Math.floor(Math.random()*8);
|
|
}else{
|
|
attributes.Clean.value -= Math.floor(Math.random()*5);
|
|
}
|
|
display();
|
|
}
|
|
|
|
function feed(){
|
|
if(attributes.Hunger.value<attributes.Hunger.max){
|
|
if(attributes.Hunger.value<100){
|
|
attributes.Hunger.value += Math.floor(Math.random()*15);
|
|
attributes.Clean.value -= Math.floor(Math.random()*7);
|
|
}else{
|
|
attributes.Hunger.value += Math.floor(Math.random()*5);
|
|
attributes.Clean.value -= Math.floor(Math.random()*7);
|
|
attributes.Hp.value -= Math.floor(Math.random()*4);
|
|
}
|
|
}else{
|
|
attributes.Hp.value -= Math.floor(Math.random()*5);
|
|
return;
|
|
}
|
|
display();
|
|
}
|
|
|
|
function clearBoy(){
|
|
if(attributes.Clean.value<attributes.Clean.max){
|
|
attributes.Clean.value += Math.floor(Math.random()*15);
|
|
attributes.Joy.value -= Math.floor(Math.random()*7);
|
|
}
|
|
display();
|
|
}
|
|
|
|
function healBoy(){
|
|
alert('Not enough money!');
|
|
}
|
|
|
|
function hapiHeal(){
|
|
if( attributes.Hunger.value > (attributes.Hunger.max/100)* 70 && //? Hunger heal
|
|
attributes.Joy.value > (attributes.Joy.max/100)* 80 && //? Joy heal
|
|
attributes.Clean.value > (attributes.Clean.max/100)* 69 && //? Clean heal
|
|
attributes.Hp.value < attributes.Hp.max){
|
|
|
|
attributes.Hp.value += 0.1;
|
|
|
|
}
|
|
}
|
|
|
|
function btnHide(){
|
|
const actBTN = document.querySelectorAll('.actBTN');
|
|
actBTN.forEach((e) => {
|
|
e.style.display='none';
|
|
});
|
|
}
|
|
|
|
function sadDetection(){
|
|
if((attributes.Joy.value <= attributes.Joy.abszero)&&(attributes.Joy.value<0)){
|
|
if(Math.abs(attributes.Joy.value) >= Math.floor(Math.random()*100)){
|
|
attributes.Life.away = 1;
|
|
}
|
|
}
|
|
}
|
|
|
|
function addStuff(){
|
|
if(!attributes.Life.away && !attributes.Life.dead){
|
|
if(attributes.Hunger.value>0) attributes.Hunger.value -= 3;
|
|
if(attributes.Clean.value>0) attributes.Clean.value -= 1;
|
|
if(attributes.Joy.value>-100) attributes.Joy.value -= 1;
|
|
if(attributes.Hp.value>0) attributes.Age.value = (attributes.Age.value*10 + 1)/10;
|
|
if((attributes.Hunger.value<=0)&&(attributes.Hp.value!=0)) attributes.Hp.value -= 4;
|
|
}
|
|
}
|
|
|
|
function time(){
|
|
setTimeout (() => {
|
|
addStuff();
|
|
hapiHeal();
|
|
sadDetection();
|
|
|
|
|
|
display();
|
|
time();
|
|
},1000);
|
|
}
|
|
|
|
function debug(){
|
|
attributes.Clean.value = Infinity;
|
|
attributes.Hp.value = Infinity;
|
|
attributes.Hunger.value = Infinity;
|
|
attributes.Joy.value = Infinity;
|
|
attributes.Age.max = Infinity
|
|
display();
|
|
} |