Lookas123

Cookie Clicker Garden Randomizer

Dec 8th, 2021 (edited)
384
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function RandomizeMuts(seed){
  2. let extradiff = Number(prompt("Do you want the mutations to be easier or harder (negative = easier, positive = harder, leave 0 if you want to have them be somewhat balanced or whatever)"))
  3. M=Game.Objects.Farm.minigame;
  4. if(!seed) seed=Game.fullDate+"GR"+M.convertTimes;
  5. for(let i=0; i<M.plantsById.length; i++){
  6. M.plantsById[i].children=[]
  7. }
  8. Math.seedrandom(seed);
  9. let keys = Object.keys(M.plants);
  10. let availablePlants=[keys[0]];
  11. let mutations=[];
  12. let plantsLeft=keys.slice(1);
  13. while(plantsLeft.length>0){
  14.     let plantID=Math.floor(Math.random()*plantsLeft.length);
  15.     let plant=plantsLeft[plantID];
  16.     plantsLeft.splice(plantID, 1);
  17.     let avPlants=[...availablePlants];
  18.     if(M.plants[plant].fungus||M.plants[plant].weed)
  19.     {
  20.     if(avPlants.includes('tidygrass'))avPlants.splice(avPlants.indexOf('tidygrass'),1);
  21.     if(avPlants.includes('everdaisy'))avPlants.splice(avPlants.indexOf('everdaisy'),1);
  22.     }
  23.     availablePlants.push(plant);
  24.     let muts=[];
  25.     let maxNeighs=8;
  26.     let p=10**((Math.random()-1)*(3+extradiff));
  27.     while(avPlants.length>0&&(muts.length==0||Math.random()<0.8*(1+extradiff)/muts.length))
  28.     {
  29.         let xplantID=Math.floor(Math.random()*avPlants.length);
  30.         let xplant=avPlants[xplantID];
  31.         let count=Math.ceil(maxNeighs*((1-Math.random())**3));
  32.         if(!M.plants[xplant].plantable) count=Math.min(count, 4);
  33.         maxNeighs-=count;
  34.         let mature = Math.random()<(0.9+extradiff/20)
  35.         muts.push([count, xplant, mature]);
  36.         avPlants.splice(xplantID, 1)
  37.         M.plants[xplant].children.push(plant)
  38.     }
  39.     mutations.push({plant:plant, reqs:muts, chance: p})
  40. }
  41. return mutations
  42. }
  43. const mutations=RandomizeMuts()
  44. Game.Objects.Farm.minigame.getMuts=(All, Mature)=>{
  45. let muts = []
  46. for(let i=0; i<mutations.length; i++){
  47. let met=true;
  48. for(let a=0; a<mutations[i].reqs.length; a++){
  49. let req=mutations[i].reqs[a]
  50. if(!((!req[2]&&All[req[1]]>=req[0])||(Mature[req[1]]>=req[0])))met=false
  51. }
  52. if(met)muts.push([mutations[i].plant, mutations[i].chance])
  53. }
  54. return muts
  55. }
  56. Game.Objects.Farm.minigame.plants["meddleweed"].onKill=undefined;
  57. eval('Game.Objects.Farm.minigame.logic='+Game.Objects.Farm.minigame.logic.toString().replace("else if (loop==0)\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t//weeds in empty tiles (no other plants must be nearby)\r\n\t\t\t\t\t\t\t\t\t\tvar chance=0.002*weedMult*M.plotBoost[y][x][2];\r\n\t\t\t\t\t\t\t\t\t\tif (Math.random()<chance) M.plot[y][x]=[M.plants['meddleweed'].id+1,0];\r\n\t\t\t\t\t\t\t\t\t}",""))
Add Comment
Please, Sign In to add comment