-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathpetFull.min.js
1 lines (1 loc) · 50.7 KB
/
petFull.min.js
1
$.fn.extend({disableSelection:function(){this.each(function(){this.onselectstart=function(){return false};this.unselectable="on";$(this).css("-moz-user-select","none");$(this).css("-webkit-user-select","none")});return this}});function percentToText(a){if(a>=0.9){return"Very Good"}if(a>=0.75){return"Good"}if(a>=0.45){return"Okay"}if(a>=0.2){return"Bad"}if(a>0){return"Very Bad"}return"Terrible"}function SetUpEventHandlers(){$("#speechBubble").text(game.dialogs[game.dialogIdx].text);$("#side_wipe").on("click",function(){if(!confirm("Are you sure you want to reset everything?")){return}game.lockSaving=true;localStorage.clear();location.reload()});$("#pauseBtn").on("click",function(){$("#pauseMenu").show();game.paused=true});$("#pauseMenu").on("click",function(){$("#pauseMenu").hide();game.paused=false});$(".startGame").on("click",function(){$(".instructions").hide();game.paused=false});$(".quitGame").on("click",function(){$(".instructions,.scene,#pauseBtn").hide();$("#mainGame,#menuBtn").show()});$(".gameOverTap").on("click",function(){$(".scene,#pauseBtn").hide();$("#mainGame,#menuBtn").show()});$(document).on("click",".menuGame",function(){var a=$(this).attr("data-id");$("#secondaryMenu").empty();if(a=="watering"){wateringGame.start()}else{if(a=="sports"){footTennis.start()}else{if(a=="cups"){cupGame.start()}else{if(a=="cave"){caveGame.start()}}}}});$(document).on("click",".menuHealth",function(){var a=$(this).attr("data-id");$("#secondaryMenu").empty();if(a=="toilet"){game.cleanUpShit()}else{if(a=="bath"){game.takeABath()}else{if(a=="pill"){$("#food").attr("class","item sprite h_pill");game.feed("pill")}}}});$("#menuBtn").on("click",function(){$("#sideMenu").show()});$("#side_settings").on("click",function(){$("#sideMenu").hide();$("#sideMenuSettings").show();$("#optionLeft").text(settings.leftHanded?"On":"Off")});$(".side_close").on("click",function(){$(".side").hide()});$("#optionLeft").on("click",function(){settings.leftHanded=!settings.leftHanded;$(this).text(settings.leftHanded?"On":"Off");sFuncs.save();sFuncs.handleHandedness()});$("#speechBubble").on("click",function(){if(game.inDialog&&!$("#additionalBubbles > *").length){game.advanceDialog()}});$(document).on("click",".reply",function(){if(game.inDialog){game.selectDialog(parseInt($(this).attr("data-id")))}});$("#monster").on("click",function(){if(game.inDialog){if(!$("#additionalBubbles").length){return}game.advanceDialog()}else{game.startDialog()}});$("#petInfo").on("click",function(){$("#petInfo").hide()});$("#btnStat").on("click",function(){$("#secondaryMenu").empty();$("#monsterInfoBuddy").attr("class","sprite cave_"+pet.type);$("#petInfoName").text(pet.name);$("#info_age").text(pet.age);$("#info_health").text(percentToText(pet.health/10)+" ("+pet.health.toPrecision(2)+")");$("#info_hunger").text(percentToText(pet.hunger/10)+" ("+pet.hunger.toPrecision(2)+")");$("#info_mood").text(percentToText(pet.mood/10)+" ("+pet.mood.toPrecision(2)+")");$("#info_fitness").text(percentToText(pet.fitness/10)+" ("+pet.fitness.toPrecision(2)+")");$("#info_cleanliness").text(percentToText(pet.cleanliness/5)+" ("+pet.cleanliness.toPrecision(2)+")");var l=document.getElementById("oceanPentagon").getContext("2d");var k=25;l.fillStyle="#FFFFFF";l.beginPath();l.moveTo(75+k,4+k);l.lineTo(0+k,59+k);l.lineTo(29+k,147+k);l.lineTo(121+k,147+k);l.lineTo(150+k,54+k);l.lineTo(75+k,4+k);l.closePath();l.fill();l.strokeStyle="#BBBBBB";l.lineWidth=1;l.beginPath();l.moveTo(75+k,4+k);l.lineTo(75+k,75+k);l.closePath();l.stroke();l.beginPath();l.moveTo(0+k,59+k);l.lineTo(75+k,75+k);l.stroke();l.closePath();l.beginPath();l.moveTo(29+k,147+k);l.lineTo(75+k,75+k);l.stroke();l.closePath();l.beginPath();l.moveTo(121+k,147+k);l.lineTo(75+k,75+k);l.stroke();l.closePath();l.beginPath();l.moveTo(150+k,54+k);l.lineTo(75+k,75+k);l.stroke();l.closePath();var f=pet.personality.o/10,t=pet.personality.c/10,r=pet.personality.e/10,u=pet.personality.a/10,h=pet.personality.n/10;l.fillStyle="#00FF00CC";l.strokeStyle="#00000099";l.lineWidth=1;l.beginPath();var g=75+k,d=4+(71*(1-f))+k;var j=(1-t)*75+t*150+k,i=t*54+(1-t)*75+k;var s=(1-r)*75+r*121+k,q=r*147+(1-r)*75+k;var b=u*29+(1-u)*75+k,v=u*147+(1-u)*75+k;var p=(1-h)*75+k,m=h*59+(1-h)*75+k;l.moveTo(g,d);l.lineTo(p,m);l.lineTo(b,v);l.lineTo(s,q);l.lineTo(j,i);l.lineTo(g,d);l.closePath();l.fill();l.stroke();l.strokeStyle="#000000";l.lineWidth=2;l.beginPath();l.moveTo(75+k,4+k);l.lineTo(0+k,59+k);l.lineTo(29+k,147+k);l.lineTo(121+k,147+k);l.lineTo(150+k,54+k);l.lineTo(75+k,4+k);l.closePath();l.stroke();l.fillStyle="#FFFFFF";l.font="24px verdana";l.strokeStyle="#000000";l.lineWidth=1;l.fillText("O",90,22);l.strokeText("O",90,22);l.fillText("C",178,84);l.strokeText("C",178,84);l.fillText("E",148,193);l.strokeText("E",148,193);l.fillText("A",36,193);l.strokeText("A",36,193);l.fillText("N",4,84);l.strokeText("N",4,84);$("#petInfo").toggle()});$("#btnFood").on("click",function(){menu.toggleFoodMenu()});$("#btnBath").on("click",function(){menu.toggleHealthMenu()});$("#btnGame").on("click",function(){menu.toggleGameMenu()});$(document).on("click",".menuFood",function(){var b=$(this).attr("data-id");$("#secondaryMenu").empty();$("#food").attr("class","item sprite f_"+b);var a=game.feed(b);if(a){pet.foods[b]--}})}function StartGame(g){setInterval(function(){game.step(1)},consts.stepLength);if(!g){var b=game.getPersonalities();var e="";var f=game.timeSinceLastLoad/1000;if(f<14400){e="_shortReturn"}else{if(f<172800){e="_midReturn"}else{e="_longReturn"}}var d=b[Math.floor(Math.random()*b.length)]+e;var c=game.starters[d]||[3];var a=c[Math.floor(Math.random()*c.length)];game.dialogIdx=a}$("#nameSpot").text(pet.name);$("#nowLording").hide();$("#mainGame").show()}$(document).ready(function(){game.load();$("div").disableSelection();var a=(pet.name=="");if(a){$("#eggSelect").show();$("#nowLording").hide();game.dialogIdx=0;$(".egg").on("click",function(){if($(this).hasClass("disabled")){alert("This egg is not ready yet.");return}pet.name=pet.name||prompt("What will you name your pet?").trim()||"Chungo";pet.type=$(this).attr("data-type");$("#eggSelect").hide();$("#nowLording").show();game.setUpPet();StartGame(true)})}else{sFuncs.load();StartGame(false)}sFuncs.handleHandedness();SetUpEventHandlers()});var consts={stepLength:1000,stepCounter:600};var game={paused:false,stepIdx:0,lockSaving:false,timeSinceLastLoad:0,intervalId:0,intervalState:0,isInInterval:false,dialogIdx:0,inDialog:true,getPetAnimData:function(){return petTypes[pet.type]},setUpPet:function(){var c=$("#monster"),a=$("#eyes"),b=$("#mouth");var d=game.getPetAnimData();if(d.small){c.addClass("small")}else{c.removeClass("small")}if(d.smallEyes){a.addClass("narrow")}else{a.removeClass("narrow")}if(d.bigEyes){a.addClass("wide")}else{a.removeClass("wide")}if(d.biggerEyes){a.addClass("x-wide")}else{a.removeClass("x-wide")}if(d.noMouth){b.hide()}else{b.show();if(d.smallMouth){b.addClass("narrow")}else{b.removeClass("narrow")}if(d.bigMouth){b.addClass("wide")}else{b.removeClass("wide")}if(d.biggerMouth){b.addClass("x-wide")}else{b.removeClass("x-wide")}b.removeClass(d.mouths).removeClass(d.sadMouth).addClass(d.mouths.split(" ")[0]).css({left:d.mouthPos[0][0],top:d.mouthPos[0][1]});if(game.isPetUpset()){$("#mouth").removeClass(d.mouths).addClass(d.sadMouth)}}pet.iter=false;pet.blinking=false;game.handleAilmentDisplay();if(pet.shat){$("#shit").show()}else{$("#shit").hide()}game.doAging();c.removeClass(d.states).addClass(d.states.split(" ")[0]);a.removeClass(d.eyes).addClass(d.eyes.split(" ")[0]).css({left:d.eyePos[0][0],top:d.eyePos[0][1]});clearInterval(pet.animIdx);pet.animIdx=setInterval(game.animatePet,1000)},animatePet:function(){var b=game.getPetAnimData();$("#monster").toggleClass(b.states);$("#shit").toggleClass("shit1 shit2");$(".s1, .s2").toggleClass("s1 s2");pet.iter=!pet.iter;var a=pet.iter?1:0;game.handleAilmentDisplay();$("#eyes").css({left:b.eyePos[a][0],top:b.eyePos[a][1]});if(!b.noMouth){if(game.isPetUpset()){$("#mouth").removeClass(b.mouths).addClass(b.sadMouth)}else{if($("#mouth").hasClass(b.sadMouth)){$("#mouth").removeClass(b.sadMouth).addClass(b.mouths.split(" ")[0])}}$("#mouth").css({left:b.mouthPos[a][0],top:b.mouthPos[a][1]})}if(pet.blinking){$("#eyes").toggleClass(b.eyes);pet.blinking=false}else{if(Math.random()<0.05){$("#eyes").toggleClass(b.eyes);pet.blinking=true}}},getPersonalities:function(){var a=[""];return a},startDialog:function(){var b=game.getPersonalities();var f=["","","",""];var k=false;if(game.getEvolution()){k=true}else{game.addPersonality(0.025,"a");game.addMood(0.4);if(pet.hunger>10){f.push("full")}else{if(pet.hunger==0){f.push("starving")}else{if(pet.hunger<=4){f.push("hungry")}}}if(pet.health<2){f.push("dying")}else{if(pet.health<=5){f.push("unhealthy")}}if(pet.fitness>=8){f.push("fit")}else{if(pet.fitness<=2){f.push("unfit")}}if(pet.age==0){f.push("newborn")}else{if(pet.age<2){f.push("baby")}else{if(pet.age<4){f.push("infant")}else{if(pet.age<13){f.push("child")}else{if(pet.age<20){f.push("teenager")}else{if(pet.age<55){f.push("adult")}else{f.push("old")}}}}}}if(pet.mood>8){f.push("ecstatic")}else{if(pet.mood>6){f.push("happy")}else{if(pet.mood<2){f.push("depressed")}else{if(pet.mood<4){f.push("sad")}else{f.push("indifferent")}}}}var c=(new Date()).getHours();if(c<4){f.push("lateNight")}else{if(c<7){f.push("earlyMorning")}else{if(c<12){f.push("morning")}else{if(c<16){f.push("noon")}else{if(c<19){f.push("evening")}else{f.push("night")}}}}}}var a="_";if(k){a="evolving"}else{a=b[Math.floor(Math.random()*b.length)];if(Math.random()<0.4){a=a.toLowerCase()}a+="_"+f[Math.floor(Math.random()*f.length)]}var l=game.starters[a];var g=l[Math.floor(Math.random()*l.length)];game.inDialog=true;$("#speechBubble").show();game.dialogIdx=g;var h=game.dialogs[game.dialogIdx];$("#speechBubble").text(h.text);if(h.options){var e="";for(var d=0;d<h.options.length;d++){var j=h.options[d];e+="<div class='reply' data-id='"+j.next+"'>"+j.value+"</div>"}$("#additionalBubbles").html(e)}game.handleAnyDialogEffects()},handleAnyDialogEffects:function(){var a=game.dialogs[game.dialogIdx];if(a.filling!==undefined){game.addHunger(a.filling)}if(a.fitness!==undefined){game.addFitness(a.fitness)}if(a.mood!==undefined){game.addMood(a.mood)}if(a.o!==undefined){game.addPersonality(a.o,"o")}if(a.c!==undefined){game.addPersonality(a.c,"c")}if(a.e!==undefined){game.addPersonality(a.e,"e")}if(a.a!==undefined){game.addPersonality(a.a,"a")}if(a.n!==undefined){game.addPersonality(a.n,"n")}},selectDialog:function(a){game.dialogIdx=a;$("#additionalBubbles").html("");if(game.dialogIdx==undefined){$("#speechBubble").hide();game.inDialog=false;return}$("#speechBubble").text(game.dialogs[game.dialogIdx].text);game.handleAnyDialogEffects()},advanceDialog:function(){game.dialogIdx=game.dialogs[game.dialogIdx].next;$("#additionalBubbles").html("");if(game.dialogIdx==undefined){$("#speechBubble").hide();game.inDialog=false;return}$("#speechBubble").text(game.dialogs[game.dialogIdx].text);if(game.dialogs[game.dialogIdx].evolving){game.evolvePet()}game.handleAnyDialogEffects()},save:function(){if(game.lockSaving){return}localStorage.setItem("pet05",JSON.stringify(pet));localStorage.setItem("stepIdx",game.stepIdx);localStorage.setItem("lastRunTime",new Date())},load:function(){if(window.location.search!="?new"&&localStorage.getItem("pet05")!==null){pet=JSON.parse(localStorage.getItem("pet05"))}game.setUpPet();game.stepIdx=parseInt(localStorage.getItem("stepIdx"))||0;game.addHunger(0);var b=localStorage.getItem("lastRunTime");if(b!=undefined){var c=new Date(b);game.timeSinceLastLoad=new Date()-c;var a=game.timeSinceLastLoad/consts.stepLength;game.step(a)}game.save()},step:function(b){b=Math.round(b);game.stepIdx+=b;var a=Math.floor(game.stepIdx/consts.stepCounter);if(a>0){game.fullStep(a);game.stepIdx-=consts.stepCounter*a}game.save()},clearInterval:function(){clearInterval(game.intervalId);game.isInInterval=false;game.setUpPet()},fullStep:function(a){game.addHunger(-0.2*a);pet.cleanliness=Math.max(0,pet.cleanliness-0.0075*a);pet.mood=Math.max(0,pet.mood-0.01*a);pet.fitness=Math.max(0,pet.fitness-0.001);game.addPersonality(-0.0005*a,"a");var c=1,b=1;if(Math.random()<(0.02*a)){game.shit();c=Math.ceil(Math.random()*a)}if(!pet.sick&&pet.health<4&&Math.random()>(0.4/a)){pet.sick=true;pet.sickCount++;b=Math.ceil(Math.random()*a)}if(pet.shat||pet.sick){pet.health=Math.max(0,pet.health-0.025*Math.max(b,c));pet.mood=Math.max(0,pet.mood-0.01*b);if(pet.shat){pet.cleanliness=Math.max(0,pet.cleanliness-0.05*c);pet.mood=Math.max(0,pet.mood-0.01*c);game.addPersonality(-0.001*c,"n")}if(pet.sick){pet.fitness=Math.max(0,pet.fitness-0.01*b);game.addPersonality(-0.001*b,"o")}}game.doAging();console.log("full step! "+a);console.log(pet.hunger)},feed:function(c){if(game.isInInterval){return}var a=$("#food");a.show().css("right","440px");game.intervalState=0;game.isInInterval=true;clearInterval(pet.animIdx);if((c!="pill"&&pet.hunger>=10)||(c=="pill"&&!game.needsMedicine())){game.petDecline();return false}else{game.giveFood(c);var b=game.getPetAnimData();if(!b.noMouth){$("#mouth").removeClass(b.sadMouth).addClass(b.mouths.split(" ")[0])}game.intervalId=setInterval(function(){game.intervalState++;var e=game.getPetAnimData();var d=440-game.intervalState*15;if(!e.noMouth){$("#mouth").toggleClass(e.mouths)}a.css("right",d+"px");if(game.intervalState>10){a.hide();game.clearInterval()}},100);return true}}};var settings={leftHanded:false};var sFuncs={save:function(){localStorage.setItem("settings",JSON.stringify(settings))},load:function(){if(localStorage.getItem("settings")!==null){settings=JSON.parse(localStorage.getItem("settings"))}},handleHandedness:function(){$(".handed").removeClass("left right").addClass(settings.leftHanded?"left":"right")}};var menu={toggleFoodMenu:function(){$("#petInfo").hide();$("#secondaryMenu").empty();if($("#secondaryMenu").attr("data-id")=="food"){$("#secondaryMenu").attr("data-id","");return}$("#secondaryMenu").attr("data-id","food");var c=Object.keys(pet.foods);var b="";for(var a=0;a<c.length;a++){var d=c[a];if(pet.foods[d]==0){continue}b+="<div><div class='sprite f_"+d+" menuFood' data-id='"+d+"'></div><span>"+pet.foods[d]+"</span></div>"}$("#secondaryMenu").html(b)},toggleHealthMenu:function(){$("#petInfo").hide();$("#secondaryMenu").empty();if($("#secondaryMenu").attr("data-id")=="health"){$("#secondaryMenu").attr("data-id","");return}$("#secondaryMenu").attr("data-id","health");var d=["pill","bath","toilet"];var b="";for(var a=0;a<d.length;a++){var c=d[a];b+="<div><div class='sprite h_"+c+" menuHealth' data-id='"+c+"'></div></div>"}$("#secondaryMenu").html(b)},toggleGameMenu:function(){$("#petInfo").hide();$("#secondaryMenu").empty();if($("#secondaryMenu").attr("data-id")=="games"){$("#secondaryMenu").attr("data-id","");return}$("#secondaryMenu").attr("data-id","games");var d=["sports","cups","watering","cave"];var c="";for(var b=0;b<d.length;b++){var a=d[b];c+="<div><div class='sprite g_"+a+" menuGame' data-id='"+a+"'></div></div>"}$("#secondaryMenu").html(c)}};var foodData={burgar:{filling:6,fitness:-0.01,mood:1,e:0.25},carrot:{filling:4,fitness:0.2,mood:0,c:0.25},cayundy:{filling:1,fitness:-0.2,mood:2.5,o:0.25,c:-0.1},gwapes:{filling:2,fitness:0.1,mood:0.25,e:-0.25},malk:{filling:3,fitness:0.015,mood:1.5,n:0.3,e:-0.15},thoda:{filling:2,fitness:-0.2,mood:2.5,a:-0.15,c:-0.1}};game.dialogs=[{next:1,text:"Hello! Welcome to Pet Thing!"},{next:2,text:"I'm your virtual pet now because hey, why not!"},{text:"Raise me well or I'll die and my blood will be on your hands!"},{text:"Welcome back!"},{text:"Hello again! Good to see you again!"},{text:"Long time no see!"},{text:"I couldn't eat another bite!"},{text:"I'm so hungry. Please feed me."},{text:"I could use some food!"},{text:"I am very ill. Why are you doing this to me?"},{text:"I don't feel too good."},{text:"I feel like I could lift a car!"},{text:"I need to exercise a bit more..."},{text:"I am a baby. I don't know things yet!"},{text:"The world is new and so am I!"},{text:"I want toys!"},{text:"I am a child."},{text:"Grown-ups don't understand!"},{text:"Business. Hmm hmm hmm."},{text:"I'm old"},{text:"I am so so happy."},{text:"I am happy."},{text:"I am very very sad."},{text:"I am sad."},{text:"Eh."},{text:"You're up late!"},{text:"Wow, you're early to rise!"},{text:"Good morning!"},{text:"Good afternoon!"},{text:"Good evening!"},{text:"It's a good night, isn't it?"},{text:"Blorp"},{next:33,text:"I feel funny!"},{next:34,evolving:true,text:"Woah!"},{text:"I'm a big kid now!"},{text:"Did you know there are lots of different kinds of bees?"},{text:"Bread is an important staple food."},{text:"Baseball is a sport."},{text:"If you put a turtle on your head, you can have a turtle hat!"},{text:"I believe in you!"},{text:"Do you cut your sandwiches diagonally?",options:[{value:"Yes",next:41},{value:"No",next:42}]},{text:"Great! You should give me half next time!"},{text:"What...? Why?",mood:-0.1},{text:"How does a polar bear know what apples is?"},{text:"Be safe!"},{text:"Milk is dairy good for you."},{text:"Which of these foods sounds the most appealing to you right now?",options:[{value:"Meat",next:47},{value:"Something sugary",next:48},{value:"Ice cream",next:49},{value:"Something salty",next:51},{value:"Pasta",next:52},{value:"Anything and everything",next:53}]},{text:"That means you might be angry right now!"},{text:"That means you might be depressed right now!"},{text:"That means you might be anxious right now!"},{text:"Man, I do not even begin to care."},{text:"That means you might be stressed right now!"},{text:"That means you might be lonely right now!"},{text:"That means you might be feeling jealous right now!"},{text:"Keep on rocking!"},{text:"Remember to save the bees!"},{text:"Don't forget to bring snacks with you when you're going to be out for a while!"},{text:"Cookie dough is a sometimes food."},{text:""},{text:""},{text:""}];game.starters={evolving:[32],_:[31,35,36,37,38,39,40,43,44,45,46,54,55,56,57],_shortReturn:[3],_midReturn:[4],_longReturn:[5],_full:[6],_starving:[7],_hungry:[8],_dying:[9],_unhealthy:[10],_fit:[11],_unfit:[12],_newborn:[13],_baby:[14],_infant:[15],_child:[16],_teenager:[17],_adult:[18],_old:[19],_ecstatic:[20],_happy:[21],_depressed:[22],_sad:[23],_indifferent:[24,50],_lateNight:[25],_earlyMorning:[26],_morning:[27],_noon:[28],_evening:[29],_night:[30]};var pet={name:"",stage:0,age:0,birthday:new Date(),hunger:5,mood:6,health:8,fitness:5,cleanliness:3,sick:false,cleanCount:0,sickCount:0,personality:{o:5,c:5,e:5,a:5,n:5},foods:{burgar:5,carrot:5,cayundy:5,gwapes:5,malk:5,thoda:5},type:"biped",shat:false,timeShat:new Date(),animIdx:0,iter:false,blinking:false,intros:{watering:true,sports:true,cups:true,cave:true}};var petTypes={biped:{small:true,states:"biped1 biped2",evolveAge:2,eyes:"eyeA1 eyeA2",eyePos:[[30,19],[30,20]],mouths:"mouthA1 mouthA2",mouthPos:[[30,11],[30,12]],sadMouth:"mouthSadA",evolutions:{fitness_high:{priority:2,next:"bipedA"},mood_high:{priority:3,next:"bipedB"},health_low:{priority:4,next:"bipedC"},sick_often:{priority:1,next:"bipedC"}}},bipedA:{states:"bipedA1 bipedA2",evolveAge:10,eyes:"eyeB1 eyeB2",bigEyes:true,eyePos:[[80,100],[83,105]],mouths:"mouthB1 mouthB2",mouthPos:[[100,100],[102,105]],sadMouth:"mouthSadA",evolutions:{n_low:{priority:1,next:"bipedAA"},fitness_high:{priority:3,next:"bipedAB"},hunger_high:{priority:5,next:"bipedAC"},a_low:{priority:4,next:"bipedAD"},e_high:{priority:2,next:"bipedAE"}}},bipedB:{states:"bipedB1 bipedB2",evolveAge:11,eyes:"eyeC1 eyeC2",bigEyes:true,eyePos:[[90,125],[90,127]],mouths:"mouthC1 mouthC2",bigMouth:true,mouthPos:[[90,123],[90,129]],sadMouth:"mouthSadB",evolutions:{n_high:{priority:1,next:"bipedBA"},a_high:{priority:3,next:"bipedBB"},c_low:{priority:2,next:"bipedBC"},mood_high:{priority:4,next:"bipedBD"}}},bipedC:{states:"bipedC1 bipedC2",evolveAge:12,eyes:"eyeD1 eyeD2",bigEyes:true,eyePos:[[90,110],[91,112]],mouths:"mouthB1 mouthB2",mouthPos:[[110,100],[111,102]],sadMouth:"mouthSadA",evolutions:{e_low:{priority:2,next:"bipedCA"},sick_often:{priority:1,next:"bipedCB"},health_low:{priority:3,next:"bipedCB"}}},bipedAA:{states:"bipedAA1 bipedAA2",eyes:"eyeE1 eyeE2",biggerEyes:true,eyePos:[[65,80],[63,82]],mouths:"mouthC1 mouthC2",bigMouth:true,mouthPos:[[90,85],[88,87]],sadMouth:"mouthSadB"},bipedAB:{states:"bipedAB1 bipedAB2",eyes:"eyeA1 eyeA2",eyePos:[[100,40],[105,43]],mouths:"mouthA1 mouthA2",mouthPos:[[100,30],[105,33]],sadMouth:"mouthSadA"},bipedAC:{states:"bipedAC1 bipedAC2",eyes:"eyeC1 eyeC2",bigEyes:true,eyePos:[[80,70],[83,70]],mouths:"mouthE1 mouthE2",bigMouth:true,mouthPos:[[80,70],[83,70]],sadMouth:"mouthSadD"},bipedAD:{states:"bipedAD1 bipedAD2",eyes:"eyeF1 eyeF2",biggerEyes:true,eyePos:[[58,80],[62,80]],mouths:"mouthF1 mouthF2",biggerMouth:true,mouthPos:[[65,75],[69,75]],sadMouth:"mouthSadE"},bipedAE:{states:"bipedAE1 bipedAE2",eyes:"eyeG1 eyeG2",biggerEyes:true,eyePos:[[60,60],[59,64]],mouths:"mouthG1 mouthG2",bigMouth:true,mouthPos:[[78,65],[77,69]],sadMouth:"mouthSadC"},bipedBA:{states:"bipedBA1 bipedBA2",eyes:"eyeI1 eyeI2",biggerEyes:true,eyePos:[[70,120],[70,124]],mouths:"mouthC1 mouthC2",bigMouth:true,mouthPos:[[88,115],[87,119]],sadMouth:"mouthSadC"},bipedBB:{states:"bipedBB1 bipedBB2",eyes:"eyeH1 eyeH2",biggerEyes:true,eyePos:[[80,90],[80,88]],mouths:"mouthC1 mouthC2",bigMouth:true,mouthPos:[[93,95],[93,92]],sadMouth:"mouthSadC"},bipedBC:{states:"bipedBC1 bipedBC2",eyes:"eyeJ1 eyeJ2",bigEyes:true,eyePos:[[80,120],[80,118]],mouths:"mouthH1 mouthH2",mouthPos:[[103,115],[103,112]],sadMouth:"mouthSadF"},bipedBD:{states:"bipedBD1 bipedBD2",eyes:"eyeK1 eyeK2",biggerEyes:true,eyePos:[[65,93],[65,91]],mouths:"mouthC1 mouthC2",bigMouth:true,mouthPos:[[83,105],[83,102]],sadMouth:"mouthSadC"},bipedCA:{states:"bipedCA1 bipedCA2",eyes:"eyeL1 eyeL2",bigEyes:true,eyePos:[[72,90],[76,89]],noMouth:true},bipedCB:{states:"bipedCB1 bipedCB2",eyes:"eyeM1 eyeM2",bigEyes:true,eyePos:[[77,90],[78,95]],mouths:"mouthI1 mouthI2",mouthPos:[[92,108],[92,110]],sadMouth:"mouthSadG"},water:{small:true,states:"water1 water2",evolveAge:2,eyes:"eyeA1 eyeA2",eyePos:[[12,30],[13,35]],noMouth:true,evolutions:{any:{priority:3,next:"waterA"},clean_high:{priority:2,next:"waterB"},fitness_high:{priority:1,next:"waterC"}}},waterA:{states:"waterA1 waterA2",evolveAge:10,eyes:"eyeC1 eyeC2",bigEyes:true,eyePos:[[70,100],[73,105]],mouths:"mouthJ1 mouthJ2",biggerMouth:true,mouthPos:[[50,100],[52,105]],sadMouth:"mouthSadH"},waterB:{states:"waterB1 waterB2",evolveAge:10,eyes:"eyeN1 eyeN2",smallEyes:true,eyePos:[[70,110],[68,104]],mouths:"mouthK1 mouthK2",smallMouth:true,mouthPos:[[40,110],[42,106]],sadMouth:"mouthSadI"},waterC:{small:true,states:"waterC1 waterC2",evolveAge:10,eyes:"eyeO1 eyeO2",eyePos:[[32,25],[27,23]],mouths:"mouthL1 mouthL2",mouthPos:[[30,12],[26,10]],sadMouth:"mouthSadJ"}};game.isPetUpset=function(){return pet.sick||pet.mood<3||pet.hunger<3||pet.health<3};game.handleAilmentDisplay=function(){if(pet.sick){$("#ailment").removeClass("hungy").addClass("sick").show()}else{if(pet.hunger<3){$("#ailment").removeClass("sick").addClass("hungy").show()}else{$("#ailment").hide()}}};game.shit=function(){if(pet.shat){return}pet.shat=true;pet.timeShat=new Date();$("#shit").show()};game.cleanUpShit=function(){if(game.isInInterval){return}if(pet.shat){pet.shat=false;$("#shit").hide()}else{game.petDecline();return false}};game.addHunger=function(a){pet.hunger=clamp(pet.hunger+a,0,15)};game.petDecline=function(){game.intervalState=0;game.isInInterval=true;game.intervalId=setInterval(function(){game.intervalState++;$("#monster").toggleClass("flip");if(game.intervalState>5){$("#food").hide();$("#monster").removeClass("flip");game.clearInterval()}},500)};game.takeABath=function(){if(game.isInInterval){return}if(pet.cleanliness>=5){game.petDecline();return}$("#bathtub,#bathtoy").show().attr("class","s1");$("#bathtoy").addClass(["duck","sub","boat","whale"][Math.floor(Math.random()*4)]);if(pet.mood<8){game.addMood(0.4)}pet.cleanliness+=3;game.addPersonality(0.15,"n");pet.cleanCount++;game.intervalState=0;game.isInInterval=true;game.intervalId=setTimeout(function(){$("#bathtub,#bathtoy").hide();game.clearInterval()},4500)};game.addFitness=function(a){pet.fitness=clamp(pet.fitness+a,0,10)};game.addMood=function(a){pet.mood=clamp(pet.mood+a,0,10)};game.addPersonality=function(b,a){console.log(pet.personality[a]);pet.personality[a]=clamp(pet.personality[a]+b,0,10);console.log(pet.personality[a])};game.needsMedicine=function(){return pet.sick};game.giveMedicine=function(){pet.sick=false;pet.health=Math.min(pet.health+3,10)};game.giveFood=function(b){if(b=="pill"){game.giveMedicine();return}var a=foodData[b];game.addHunger(a.filling);game.addFitness(a.fitness);game.addMood(a.mood);if(a.o!==undefined){game.addPersonality(a.o,"o")}if(a.c!==undefined){game.addPersonality(a.c,"c")}if(a.e!==undefined){game.addPersonality(a.e,"e")}if(a.a!==undefined){game.addPersonality(a.a,"a")}if(a.n!==undefined){game.addPersonality(a.n,"n")}};game.doAging=function(){var a=new Date(),b=new Date(pet.birthday);pet.age=Math.floor((a-b)/86400000)};game.getEvolution=function(){if(petTypes[pet.type].evolveAge===undefined||petTypes[pet.type].evolveAge>pet.age){return false}var a=[];if((pet.sickCount/pet.age)>0.5){a.push("sick_often")}if((pet.cleanCount/pet.age)>=1){a.push("clean_often")}if(pet.fitness>=8){a.push("fitness_high")}else{if(pet.fitness<3){a.push("fitness_low")}}if(pet.mood>=8){a.push("mood_high")}else{if(pet.mood<3){a.push("mood_low")}}if(pet.health>=8){a.push("health_high")}else{if(pet.health<3){a.push("health_low")}}if(pet.hunger>=8){a.push("hunger_high")}else{if(pet.hunger<3){a.push("hunger_low")}}if(pet.personality.o>=8){a.push("o_high")}else{if(pet.personality.o<3){a.push("o_low")}}if(pet.personality.c>=8){a.push("c_high")}else{if(pet.personality.c<3){a.push("c_low")}}if(pet.personality.e>=8){a.push("e_high")}else{if(pet.personality.e<3){a.push("e_low")}}if(pet.personality.a>=8){a.push("a_high")}else{if(pet.personality.a<3){a.push("a_low")}}if(pet.personality.n>=8){a.push("n_high")}else{if(pet.personality.n<3){a.push("n_low")}}var c=petTypes[pet.type].evolutions;var d=[];for(var b=0;b<a.length;b++){if(c[a[b]]===undefined){continue}d.push(c[a[b]])}if(d.length==0){return false}if(d.length>=1){d.sort(function(f,e){return f.priority-e.priority})}return d[0].next};game.evolvePet=function(){var a=game.getEvolution();if(!a){return}pet.stage++;pet.type=a;game.setUpPet();game.save()};function clamp(b,c,a){return b<=c?c:b>=a?a:b}var wateringGame={mode:2,modeTimerIdx:0,modeCounter:0,totalMultiplier:1,timerIdx:0,count:function(){var b=0;for(var a=0;a<4;a++){for(var c=0;c<6;c++){if(wateringGame.board[c][a]!=0){b++}}}return b},gameOver:function(a){$(".gameOverTap").show();game.addMood(0.5);game.addPersonality(wateringGame.score/250000,"o");game.addPersonality(-wateringGame.score/250000,"n");if(wateringGame.score>=100000){game.addPersonality(-0.01,"n")}else{if(wateringGame.score>=10000){game.addPersonality(-0.005,"n")}else{if(wateringGame.score>=5000){game.addPersonality(-0.001,"n")}}}$("#cropGameOver").text(a)},advanceTimer:function(){if(game.paused){return}wateringGame.timer+=(wateringGame.mode==1)?1:-1;wateringGame.updateTimeDisplay();if(wateringGame.timer==0){clearInterval(wateringGame.timerIdx);wateringGame.gameOver("Game Over - Time's Up!")}},updateTimeDisplay:function(){var a=Math.floor(wateringGame.timer/60);var b=wateringGame.timer-(a*60);$("#cropTimer").text(a+":"+(b<10?"0":"")+b)},handleMode1:function(){wateringGame.modeCounter+=5;if(wateringGame.modeCounter>wateringGame.gameSpeed&&Math.random()>0.6){wateringGame.modeCounter=0;if(wateringGame.addNewToField()){wateringGame.settleBoard();wateringGame.drawBoard()}else{wateringGame.gameOver("Game Over - You Shouldn't See This One");clearInterval(wateringGame.modeTimerIdx);clearInterval(wateringGame.timerIdx)}}},start:function(){if(pet.intros.watering){$("#waterInstructions").show();game.paused=true}$("#mainGame,#menuBtn,.gameOverTap").hide();$("#cropGame,#pauseBtn").show();wateringGame.board=[[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]];wateringGame.gameSpeed=250;wateringGame.locked=false;wateringGame.score=0;$("#cropScore").text("0");if(wateringGame.mode==1){wateringGame.timer=0;wateringGame.modeTimerIdx=setInterval(wateringGame.handleMode1,50);$("#cropTimer").text("0:00")}else{wateringGame.timer=60;$("#cropTimer").text("1:00")}wateringGame.timerIdx=setInterval(wateringGame.advanceTimer,1000);var d=(wateringGame.mode==1)?0.2:1;var c=(wateringGame.mode==1)?6:24;while(wateringGame.count()<c){d+=0.1;for(var a=0;a<4;a++){for(var b=5;b>=0;b--){if(wateringGame.board[b][a]==0&&Math.random()<d){wateringGame.board[b][a]=wateringGame.getCrop()}}}}$(document).off("click",".crop");$(document).on("click",".crop",function(){if(wateringGame.locked){return}var h=$(this).parent();var e=parseInt(h.attr("data-x"));var i=parseInt(h.attr("data-y"));var g=wateringGame.board[i][e];if(g.stage==g.finalStage&&g.type!="pumpkin"){return}wateringGame.locked=true;var f=g.type;wateringGame.grow(e,i,true,f);wateringGame.grow(e-1,i,false,f);wateringGame.grow(e+1,i,false,f);wateringGame.grow(e,i+1,false,f);wateringGame.grow(e,i-1,false,f,true);wateringGame.totalMultiplier=1;setTimeout(wateringGame.attemptFinishTurn,wateringGame.gameSpeed)});wateringGame.settleBoard();wateringGame.drawBoard()},addNewToField:function(){var c=[0,1,2,3];while(c.length>0){var b=Math.floor(Math.random()*c.length);var a=c[b];if(wateringGame.board[0][a]==0){wateringGame.board[0][a]=wateringGame.getCrop();return true}c.splice(b,1)}return false},attemptFinishTurn:function(){var a=wateringGame.settleBoard();wateringGame.drawBoard();if(a){setTimeout(wateringGame.findPairs,wateringGame.gameSpeed/2)}else{wateringGame.findPairs()}},findPossibilities:function(){var d=[];for(var a=0;a<4;a++){for(var e=0;e<6;e++){var b=wateringGame.board[e][a];if(b.type=="pumpkin"){return}var c=wateringGame.getNeighbors(b.type,a,e,[],true);if(c.length>=2){d.push(c)}}}if(d.length==0){clearInterval(wateringGame.timerIdx);wateringGame.gameOver("Game Over - No More Options")}},findPairs:function(){var p=[];for(var n=0;n<4;n++){for(var m=0;m<6;m++){var l=wateringGame.board[m][n];if(l.stage!=l.finalStage){continue}var a=wateringGame.getNeighbors(l.type,n,m,[]);if(a.length>=2){p.push(a)}}}if(p.length==0){if(wateringGame.mode==2){var k=wateringGame.addNewToField();wateringGame.settleBoard();while(k){k=wateringGame.addNewToField();wateringGame.settleBoard()}wateringGame.drawBoard();wateringGame.findPossibilities()}wateringGame.locked=false;return}var o=0,b=0;for(var g=0;g<p.length;g++){var f=p[g];var d=0,q=1;for(var e=0;e<f.length;e++){var c=f[e];var n=Math.floor(c/10);var m=c-(n*10);var l=wateringGame.board[m][n];if(l!=0){if(l.type=="carrot"){o+=0.22}if(l.type=="strawberry"){b+=0.08}if(l.type=="pumpkin"){game.addPersonality(0.03,"c")}if(d==0){d=l.score}else{d*=q;q*=2}wateringGame.board[m][n]=0}}var h=Math.floor(wateringGame.totalMultiplier*d);if(h>0){wateringGame.score+=h;wateringGame.timer+=Math.min(180,Math.floor(h/100))}}if(Math.random()<o){pet.foods.carrot++}if(Math.random()<b){pet.foods.gwapes++}wateringGame.updateTimeDisplay();$("#cropScore").text(wateringGame.score);wateringGame.drawBoard();wateringGame.totalMultiplier+=0.25;setTimeout(wateringGame.attemptFinishTurn,wateringGame.gameSpeed)},getNeighbors:function(b,a,e,c,d){c=wateringGame.addMatch(b,a-1,e,c,d);c=wateringGame.addMatch(b,a+1,e,c,d);c=wateringGame.addMatch(b,a,e-1,c,d);c=wateringGame.addMatch(b,a,e+1,c,d);return c},addMatch:function(c,a,h,d,g){if(h>=6||h<0||a>=4||a<0){return d}var e=wateringGame.board[h][a];if(e==0||e==null||e==undefined){return d}var f=a*10+h;var b=g||e.stage==e.finalStage;if(e.type==c&&b&&d.indexOf(f)<0){d.push(f);d=wateringGame.getNeighbors(c,a,h,d,g)}return d},grow:function(a,g,e,c,f){var b=$("#crop"+a+"_"+g);if(!b.length){return}var d=wateringGame.board[g][a];if(d==0){if(f){return}d={type:c,stage:0,finalStage:wateringGame.getFinalStage(c),score:wateringGame.getPlantScore(c)}}else{if(d.type=="pumpkin"){if(d.stage==2){d.stage=3}else{if(d.stage==3){if(e){d=0}}else{d.stage=e?d.finalStage:Math.min(d.finalStage,d.stage+1)}}}else{d.stage=e?d.finalStage:Math.min(d.finalStage,d.stage+1)}}b.empty();wateringGame.board[g][a]=d;wateringGame.addCrop(b,d)},addCrop:function(a,c){var b=c.type+"_"+c.stage;a.append("<div data-type='"+c.type+"' data-stage='"+c.stage+"' class='crop sprite c_"+b+"'></div>")},getPlantScore:function(a){if(a=="pumpkin"){return 2000}if(a=="corn"){return 150}if(a=="carrot"){return 75}return 100},getFinalStage:function(a){if(a=="corn"){return 3}if(a=="carrot"){return 1}return 2},drawBoard:function(){for(var a=0;a<4;a++){for(var d=0;d<6;d++){var b=$("#crop"+a+"_"+d);b.empty();var c=wateringGame.board[d][a];if(c!=0){wateringGame.addCrop(b,c)}}}},getCrop:function(){var a=Math.random();if(a<=0.28){return{type:"eggplant",stage:0,finalStage:2,score:100}}if(a<=0.56){return{type:"strawberry",stage:0,finalStage:2,score:100}}if(a<=0.84){return{type:"cucumber",stage:0,finalStage:2,score:100}}if(a<=0.91){return{type:"carrot",stage:0,finalStage:1,score:75}}if(a<=0.97){return{type:"corn",stage:0,finalStage:3,score:150}}return{type:"pumpkin",stage:0,finalStage:2,score:2000}},settleBoard:function(){var d=0;for(var c=0;c<3;c++){for(var a=0;a<4;a++){for(var e=4;e>=0;e--){if(wateringGame.board[e+1][a]==0){d++;for(var b=e;b>=0;b--){wateringGame.board[b+1][a]=wateringGame.board[b][a]}wateringGame.board[0][a]=0}}}}return(d>0)}};var footTennis={isMouseDown:false,mousePower:0,mouseStartX:0,mouseStartY:0,timerIdx:0,start:function(){$(".targ").remove();if(pet.intros.sports){$("#sportsInstructions").show();game.paused=true}footTennis.numBalls=20;footTennis.timer=3000;footTennis.score=0;$("#footBalls").text(footTennis.numBalls);$("#footScore").text(footTennis.score);footTennis.timerIdx=setInterval(footTennis.advanceTimer,10);$("#mainGame,#menuBtn,.gameOverTap").hide();$("#footGame,#pauseBtn").show();$("#innerReticule").off("vmousedown").on("vmousedown",function(a){footTennis.isMouseDown=true;footTennis.mousePower=0;footTennis.mouseStartX=a.clientX;footTennis.mouseStartY=a.clientY});$("#aimReticule, #innerReticule").off("vmousemove").on("vmousemove",function(c){if(!footTennis.isMouseDown){return false}var b=c.clientX-footTennis.mouseStartX;var a=c.clientY-footTennis.mouseStartY;var f=Math.sqrt(b*b+a*a);if(f<10){$("#aimReticule").attr("class","reticuleNormal");footTennis.mousePower=0}else{footTennis.mousePower=Math.min(Math.floor(f/2),100);if(a>=-10){if(b<-10){$("#aimReticule").attr("class","reticuleLeft")}else{if(b>10){$("#aimReticule").attr("class","reticuleRight")}else{$("#aimReticule").attr("class","reticuleNormal")}}}else{if(b<-100){$("#aimReticule").attr("class","reticuleULeft")}else{if(b>100){$("#aimReticule").attr("class","reticuleURight")}else{$("#aimReticule").attr("class","reticuleCenter")}}}}$("#innerFill").css("top",(100-footTennis.mousePower)+"%");return false});$("#aimReticule").off("vmouseup").on("vmouseup",function(f){if(!footTennis.isMouseDown){return}$("#aimReticule").attr("class","reticuleNormal");$("#innerFill").css("top","100%");footTennis.isMouseDown=false;var b=f.clientX-footTennis.mouseStartX;var a=f.clientY-footTennis.mouseStartY;var h=Math.atan2(-a,-b)-Math.PI/2;var g=Math.sqrt(b*b+a*a);if(footTennis.numBalls==0||$(".ball").length>3){return}if(g<10||footTennis.mousePower==0){return}footTennis.numBalls--;$("#footBalls").text(footTennis.numBalls);var c="<div class='sprite ball' data-angle='"+h+"' data-power='"+(footTennis.mousePower/35)+"' data-y='10' data-x='50' style='left:50%; bottom:10%; transform:rotate("+Math.floor(Math.random()*360)+"deg)'></div>";$("#footGame").append(c)})},handleCollisions:function(){$(".ball").each(function(){var c=this.getBoundingClientRect();var a={left:c.left+90,right:c.right-45,top:c.top+90,bottom:c.bottom-45};var b=$(this);$(".targ").each(function(){var i=this.getBoundingClientRect();var f={left:i.left+90,right:i.right-45,top:i.top+90,bottom:i.bottom-45};var e=!(a.right<f.left||a.left>f.right||a.bottom<f.top||a.top>f.bottom);if(!e){return}b.remove();var h=parseFloat($(this).attr("data-mult"));var d=$(this).hasClass("Gtarget");var g=0;if(d){footTennis.numBalls+=3;$("#footBalls").text(footTennis.numBalls);g=Math.floor(h*50)}else{g=Math.floor(h*10)}footTennis.score+=g;footTennis.timer+=g;footTennis.updateTimeDisplay();$("#footScore").text(footTennis.score);$(this).remove()})})},advanceTimer:function(){if(game.paused){return}footTennis.timer--;footTennis.updateTimeDisplay();if(footTennis.numBalls==0&&$(".ball").length==0){clearInterval(footTennis.timerIdx);footTennis.gameOver("Game Over - Out of Balls!")}else{if(footTennis.timer==0){clearInterval(footTennis.timerIdx);footTennis.gameOver("Game Over - Time Up!")}else{if(Math.random()<0.05&&$(".targ").length<5){footTennis.createNewTarget()}$(".targ").each(function(){var b=parseFloat($(this).attr("data-pos"));var a=parseFloat($(this).attr("data-dir"));b+=a;$(this).attr("data-pos",b);$(this).css("left",b+"%");if(b<0||b>100){$(this).remove()}});$(".ball").each(function(){var a=parseFloat($(this).attr("data-x"));var d=parseFloat($(this).attr("data-y"));if(a<0||a>100||d<0||d>100){$(this).remove();return}var c=parseFloat($(this).attr("data-angle"));var b=parseFloat($(this).attr("data-power"));a+=b*Math.sin(c);d+=b*Math.cos(c);$(this).css("left",a+"%");$(this).css("bottom",d+"%");$(this).attr("data-x",a);$(this).attr("data-y",d)});footTennis.handleCollisions()}}},gameOver:function(a){$(".gameOverTap").show();game.addMood(0.5);game.addFitness(footTennis.score/1500);game.addPersonality(footTennis.score/10000,"e");game.addPersonality(footTennis.score/15000,"a");if(footTennis.score>=1200){game.addPersonality(-0.005,"n")}else{if(footTennis.score>=800){game.addPersonality(-0.001,"n")}}$("#footGameOver").text(a)},createNewTarget:function(){var e=Math.floor(Math.random()*4);var d=(4-e)/1.5;var b=(Math.random()-0.5)/2;if(b==0){b=1}var a=e<2&&Math.random()>0.75;if(a){if(b<0.01&&b>-0.01){b*=100}b*=3+Math.random()}var c="<div class='sprite targ "+(a?"Gtarget":"target")+"' data-mult='"+d+"' data-pos='"+(b>0?"0":"100")+"' data-dir='"+b+"'></div>";$("#tr"+e).append(c)},updateTimeDisplay:function(){var c=Math.floor(footTennis.timer/100);var a=Math.floor(c/60);var b=c-(a*60);$("#footTimer").text(a+":"+(b<10?"0":"")+b)}};var cupGame={cupAnimIdx:0,cupAnimState:0,cupIdx:0,prize:"",readyToClick:false,won:false,fullAnimState:0,cupSpeed:10,numShuffles:5,consecutiveWins:0,animIdx:0,iter:false,blinking:false,start:function(){cupGame.setUpPet();$("#mainGame,#menuBtn,.gameOverTap").hide();$("#cupsGame,#pauseBtn").show();$("#cup0,#item0").css("margin-left","-200px");$("#cup1,#item1").css("margin-left","0");$("#cup2,#item2").css("margin-left","200px");cupGame.consecutiveWins=0;if(pet.intros.cups){$("#cupsInstructions").show();game.paused=true}$("#cupStart").off("click").on("click",cupGame.beginGame)},beginGame:function(){$("#bottomCups > .cup").each(function(){$(this).attr("class","sprite cup g_cups")});var a=game.getPetAnimData();$("#cupMouth").removeClass(a.mouths+" "+a.sadMouth).addClass(a.mouths.split(" ")[0]);$("#cupActions").hide();cupGame.cupIdx=Math.floor(Math.random()*2);cupGame.prize=["f_cayundy","f_thoda","coin","frog"][Math.floor(Math.random()*4)];$("#item"+cupGame.cupIdx).attr("class","sprite cup "+cupGame.prize);cupGame.cupDOM=$("#cup"+cupGame.cupIdx);cupGame.cupAnimState=0;cupGame.fullAnimState=0;cupGame.numShuffles=Math.min(4+cupGame.consecutiveWins,20);cupGame.cupSpeed=Math.min(10+cupGame.consecutiveWins*1.25,60);cupGame.shuffleFrames=Math.max(1.5,10-cupGame.consecutiveWins*0.6);cupGame.cupAnimIdx=setInterval(cupGame.liftCup,50)},setReadyToClick:function(){cupGame.readyToClick=true;$("#bottomCups").show();var a=[-200,0,200];$("#item0").css("margin-left",$("#cup0").css("margin-left"));$("#item1").css("margin-left",$("#cup1").css("margin-left"));$("#item2").css("margin-left",$("#cup2").css("margin-left"));$("#topCups > .cup").off("click").on("click",function(){cupGame.cupAnimState=0;cupGame.fullAnimState=0;cupGame.clickedCup=$(this);$("#topCups > .cup").off("click");if($(this).attr("id")==cupGame.cupDOM.attr("id")){cupGame.won=true}else{var b=["g_sports","c_pumpkin_3","shit s1","boot","sheb"];$("#"+$(this).attr("id").replace("cup","item")).attr("class","sprite cup "+b[Math.floor(Math.random()*b.length)]);cupGame.won=false}cupGame.cupAnimIdx=setInterval(cupGame.liftClickedCup,50)})},liftClickedCup:function(){if(cupGame.fullAnimState==0){cupGame.cupAnimState=Math.min(160,cupGame.cupAnimState+cupGame.cupSpeed);cupGame.clickedCup.css("margin-bottom",cupGame.cupAnimState+"px");if(cupGame.cupAnimState>=160){cupGame.cupAnimState=0;cupGame.fullAnimState=1;var a=game.getPetAnimData();if(cupGame.won){cupGame.consecutiveWins++;game.addMood(0.02);game.addPersonality(0.0015*cupGame.consecutiveWins,"c");game.addPersonality(0.001*cupGame.consecutiveWins,"a");game.addPersonality(-0.001,"n");if(cupGame.prize=="f_cayundy"){pet.foods.cayundy++}else{if(cupGame.prize=="f_thoda"){pet.foods.thoda++}}$("#cupMouth").removeClass(a.mouths+" "+a.sadMouth).addClass(a.mouths.split(" ")[1])}else{cupGame.consecutiveWins=0;$("#cupMouth").removeClass(a.mouths+" "+a.sadMouth).addClass(a.sadMouth)}$("#cupsScore").text(cupGame.consecutiveWins)}}else{if(cupGame.fullAnimState==1){cupGame.cupAnimState+=1;if(cupGame.cupAnimState>40){cupGame.cupAnimState=160;cupGame.fullAnimState=2}}else{if(cupGame.fullAnimState==2){cupGame.cupAnimState=Math.max(0,cupGame.cupAnimState-cupGame.cupSpeed);cupGame.clickedCup.css("margin-bottom",cupGame.cupAnimState+"px");if(cupGame.cupAnimState<=0){clearInterval(cupGame.cupAnimIdx);$("#cupActions").show()}}}}},liftCup:function(){if(cupGame.fullAnimState==0){cupGame.cupAnimState=Math.min(160,cupGame.cupAnimState+cupGame.cupSpeed);cupGame.cupDOM.css("margin-bottom",cupGame.cupAnimState+"px");if(cupGame.cupAnimState>=160){cupGame.cupAnimState=0;cupGame.fullAnimState=1}}else{if(cupGame.fullAnimState==1){cupGame.cupAnimState+=1;if(cupGame.cupAnimState>10){cupGame.cupAnimState=160;cupGame.fullAnimState=2}}else{if(cupGame.fullAnimState==2){cupGame.cupAnimState=Math.max(0,cupGame.cupAnimState-cupGame.cupSpeed);cupGame.cupDOM.css("margin-bottom",cupGame.cupAnimState+"px");if(cupGame.cupAnimState<=0){clearInterval(cupGame.cupAnimIdx);cupGame.setUpCupShuffle()}}}}},setUpCupShuffle:function(){$("#bottomCups").hide();cupGame.readyToClick=false;var a=[-200,0,200];$("#topCups > .cup").each(function(){var c=parseInt($(this).css("margin-left").replace("px",""));var b=Math.floor(Math.random()*a.length);if(c==a[b]){b=Math.floor(Math.random()*a.length)}var d=a.splice(b,1);var e=Math.floor(Math.random()*3)-1;$(this).attr({"data-current":c,"data-next":d,"data-y":e})});cupGame.cupAnimState=0;cupGame.cupAnimIdx=setInterval(cupGame.shuffleCups,50)},shuffleCups:function(){var a=cupGame.shuffleFrames;cupGame.cupAnimState++;$("#topCups > .cup").each(function(){var c=parseInt($(this).attr("data-current"));var d=parseInt($(this).attr("data-next"));var g=parseInt($(this).attr("data-y"));var f=c+cupGame.cupAnimState*((d-c)/a);var b=(16*(cupGame.cupAnimState/a))-8;var e=(-(b*b)+64)*g;$(this).css({"margin-left":f+"px","margin-bottom":e+"px"})});if(cupGame.cupAnimState>=a){$("#topCups > .cup").each(function(){$(this).css({"margin-left":$(this).attr("data-next")+"px","margin-bottom":"0px"})});clearInterval(cupGame.cupAnimIdx);if(cupGame.numShuffles-->0){cupGame.setUpCupShuffle()}else{cupGame.setReadyToClick()}}},setUpPet:function(){var c=$("#cupMonster"),a=$("#cupEyes"),b=$("#cupMouth");var d=game.getPetAnimData();if(d.small){c.addClass("small")}else{c.removeClass("small")}if(d.bigEyes){a.addClass("wide")}else{a.removeClass("wide")}if(d.bigMouth){b.addClass("wide")}else{b.removeClass("wide")}cupGame.iter=false;cupGame.blinking=false;c.removeClass(d.states).addClass(d.states.split(" ")[0]);a.removeClass(d.eyes).addClass(d.eyes.split(" ")[0]).css({left:d.eyePos[0][0],top:d.eyePos[0][1]});b.removeClass(d.mouths).removeClass(d.sadMouth).addClass(d.mouths.split(" ")[0]).css({left:d.mouthPos[0][0],top:d.mouthPos[0][1]});if(game.isPetUpset()){$("#mouth").removeClass(d.mouths).addClass(d.sadMouth)}clearInterval(cupGame.animIdx);cupGame.animIdx=setInterval(cupGame.animatePet,1000)},animatePet:function(){var b=game.getPetAnimData();$("#cupMonster").toggleClass(b.states);cupGame.iter=!pet.iter;var a=cupGame.iter?1:0;$("#cupEyes").css({left:b.eyePos[a][0],top:b.eyePos[a][1]});$("#mouth").css({left:b.mouthPos[a][0],top:b.mouthPos[a][1]});if(cupGame.blinking){$("#cupEyes").toggleClass(b.eyes);cupGame.blinking=false}else{if(Math.random()<0.05){$("#cupEyes").toggleClass(b.eyes);cupGame.blinking=true}}}};var caveGame={start:function(){$("#mainGame,#menuBtn,.gameOverTap").hide();$("#caveGame,#pauseBtn").show();if(pet.intros.cave){$("#caveInstructions").show();game.paused=true}caveGame.lost=false;caveGame.floor=1;caveGame.health=3;caveGame.recreateMap();$("#dpad button").off("click").on("click",function(){var b=parseInt($(this).attr("data-x"))||0,a=parseInt($(this).attr("data-y"))||0;caveGame.movePlayer(b,a)});$(document).off("keydown").on("keydown",function(a){switch(a.which){case 37:caveGame.movePlayer(-1,0);break;case 38:caveGame.movePlayer(0,-1);break;case 39:caveGame.movePlayer(1,0);break;case 40:caveGame.movePlayer(0,1);break}})},gameOver:function(){caveGame.lost=true;$("#caveMessage").hide();$(".gameOverTap").show()},movePlayer:function(k,i){if(caveGame.lost){return}var e=clamp(caveGame.x+k,0,4);var c=clamp(caveGame.y+i,0,6);var g=$("#cave"+e+"_"+c);if(caveGame.health<=0){caveGame.gameOver();return}$(".caveSpooker").each(function(){var q=$(this).parent();var o=parseInt(q.attr("data-x"));var n=parseInt(q.attr("data-y"));var m=e-o,l=c-n;if(m==0&&l==0){return}if(m==0){if(l>0){n++}else{n--}}else{if(l==0){if(m>0){o++}else{o--}}else{if(Math.random()<0.5){if(m>0){o++}else{o--}}else{if(l>0){n++}else{n--}}}}var p=$("#cave"+o+"_"+n);if(!$(".caveWall",p).length){$(this).detach().appendTo(p)}});var d=!$(".caveWall",g).length||caveGame.flying;var f=true;if(d){if($(".caveStairs",g).length){caveGame.floor++;game.addPersonality(caveGame.floor/1500,"e");game.addPersonality(-caveGame.floor/1550,"n");game.addPersonality(-0.001,"n");game.addMood(0.0165);game.addFitness(0.005);caveGame.recreateMap();return}if($(".caveTreasure",g).length){d=false;$(".caveTreasure",g).toggleClass("caveTreasure caveTreasureOpen");var j="You found ";var b=Math.random();if(b<0.1){pet.foods.burgar++;j+="a hamburgar!"}else{if(b<0.2){pet.foods.malk++;j+="a carton of malk!"}else{if(b<0.28){$(".caveCell").removeClass("b0 b1 b2").addClass("b2").attr("data-brightness",2);j+="a light switch!";if(caveGame.health<3){caveGame.health++}}else{if(b<0.32){caveGame.flying=true;j+="the power of flight! You can walk over walls on this floor now!"}else{j+=caveGame.wackyTreasures[Math.floor(Math.random()*caveGame.wackyTreasures.length)]+"!"}}}}caveGame.showMessage(j)}else{if($(".caveTreasureF",g).length){d=false;$(".caveTreasureF",g).toggleClass("caveTreasureF caveTreasureFOpen");caveGame.showMessage("You opened the treasure chest, but it was a trick! Yikes!");game.addPersonality(-0.08,"o");caveGame.health--;$("#caveHealth").text(caveGame.health+"/3")}else{if($(".caveFriend",g).length){var h=$(".caveFriend",g);if(!h.attr("data-spoken")){h.attr("data-spoken",true);var a=null;if(h.hasClass("caveFriendR")){a=caveGame.friendRMessages}else{if(h.hasClass("caveFriendG")){a=caveGame.friendGMessages}else{a=caveGame.friendBMessages}}caveGame.showMessage('"'+a[Math.floor(Math.random()*a.length)]+'"');f=false}}else{if($(".caveSpooker",g).length){caveGame.showMessage("You were spooked by a monster! Eek!");caveGame.health--;$("#caveHealth").text(caveGame.health+"/3");$(".caveSpooker",g).remove();f=false}}}}}if(d){if(f){$("#caveMessage").hide()}caveGame.x=e;caveGame.y=c}caveGame.drawPlayer()},friendRMessages:["I am red! Like fire!","Do you like the color red? Ha ha!"],friendGMessages:["I am green! Like grass!","Did you know four leaf clovers are green? Regular clovers are, too, though, so, like, whatever."],friendBMessages:["I am blue! Like the sky!","I'm feeling pretty blue today..."],wackyTreasures:["the meaning of friendship","a cracked egg","a spoon","a half-eaten crepe","toothpaste","yourself","a perfectly intact human rib cage","a dusty hockey puck","an empty treasure chest","a copy of the classic puzzle game Blockara","left-handed scissors","moldy boxing gloves","a frog with a protractor","a kazoo. BWEEEEEEEEEET","a cigar. BWEEEEEEEEEET! No, wait, it's a kazoo. Oops","a bee! A BEEEEE!!","a duclimer","a friendly ghost! Boo! Ha ha, just kidding","an empty can of cat food","a handful of barley","a square peg","a round hole","a Taco Ring menu","enlightenment","a grapefruit rind","a tube of MobileGurt, the Carry-whilst-Moving Yogurt","a stepladder","a ska mixtape","French toast sticks","a funny meme. LOL","popcorn chicken and cupcakes","your own dead body"],showMessage:function(a){$("#caveMessage").text(a).show()},wallStructures:[[[1,1],[2,1],[3,1],[3,2],[1,4],[1,5],[2,5],[3,5]],[[2,2],[1,3],[2,3],[3,3],[2,4]],[[2,0],[0,3],[2,3],[2,4],[4,4],[6,3]],[[2,0],[2,1],[1,2],[3,4],[2,5],[2,6]],[[1,2],[2,2],[3,2],[1,4],[2,4],[3,4]],[[1,1],[3,1],[1,3],[3,3],[1,5],[3,5]],[[1,0],[3,0],[0,2],[4,2],[2,3],[0,4],[4,4],[1,5],[3,5]],[],[[2,1],[2,2],[1,4],[2,4],[3,4]],[[3,2],[3,3],[2,3],[1,3],[1,4]],[[2,1],[2,2],[2,3],[2,4],[2,5]]],getWallStructure:function(){return caveGame.wallStructures[Math.floor(Math.random()*caveGame.wallStructures.length)]},recreateMap:function(){caveGame.elements=[];caveGame.flying=false;$("#caveFloor").text(caveGame.floor+"F");$(".caveCell").empty().removeClass("b1 b2").addClass("b0").attr("data-brightness",0);var c=caveGame.getWallStructure();for(var b=0;b<c.length;b++){var j=c[b][0],f=c[b][1];$("#cave"+j+"_"+f).append("<div class='sprite caveWall data-type='wall'></div>")}var d=caveGame.getRandomCoords(1);caveGame.x=d.x;caveGame.y=d.y;caveGame.drawPlayer();caveGame.createObject("Stairs");var a=Math.min(4,Math.floor(Math.random()*caveGame.floor));var g=Math.floor(Math.random()*a);var k=Math.min(2,Math.floor(Math.random()*Math.floor(caveGame.floor/3)));var h=Math.min(4,Math.floor(Math.random()*Math.floor(caveGame.floor/4)));for(var b=0;b<a;b++){caveGame.createObject("Treasure")}for(var b=0;b<g;b++){caveGame.createObject("TreasureF")}for(var b=0;b<k;b++){var e=Math.random();if(e<0.33){caveGame.createObject("FriendR caveFriend")}else{if(e<0.67){caveGame.createObject("FriendG caveFriend")}else{caveGame.createObject("FriendB caveFriend")}}}for(var b=0;b<h;b++){var e=Math.random();if(e<0.5){caveGame.createObject("Goast caveSpooker")}else{caveGame.createObject("Skell caveSpooker")}}},createObject:function(a){var b=caveGame.getRandomCoords(1);console.log(a+": "+b.x+","+b.y);var c={x:b.x,y:b.y,type:a};caveGame.elements.push(c);$("#cave"+c.x+"_"+c.y).append("<div class='sprite cave"+a+"' data-type='"+a+"'></div>")},getRandomCoords:function(b){if(b>=4){console.log("FAILED 4 TIMES, FUCK IT");for(var a=0;a<5;a++){for(var e=0;e<7;e++){if(!$("#cave"+a+"_"+e).children().length){return{x:a,y:e}}}}}var d={x:Math.floor(Math.random()*5),y:Math.floor(Math.random()*7)};if($("#cave"+d.x+"_"+d.y).children().length){return caveGame.getRandomCoords(b+1)}return d},drawPlayer:function(){$("#cavePlayer").remove();var a=$("#cave"+caveGame.x+"_"+caveGame.y);a.append("<div id='cavePlayer' class='sprite cave_"+pet.type+"'></div>");a.removeClass("b0 b1 b2").addClass("b2").attr("data-brightness",2);caveGame.brighten(caveGame.x-1,caveGame.y);caveGame.brighten(caveGame.x+1,caveGame.y);caveGame.brighten(caveGame.x,caveGame.y+1);caveGame.brighten(caveGame.x,caveGame.y-1)},brighten:function(b,d){var a=$("#cave"+b+"_"+d);if(!a.length){return}var c=parseInt(a.attr("data-brightness"));if(c==2){return}c++;a.removeClass("b0 b1").addClass("b"+c).attr("data-brightness",c)}};