let last_used = {}; let sounds = { "crush": [["Thump.", "Thoomp."], ["Crunch."], ["Crrruunch."], ["CRUNCH!"], ["CRRRUNNCH!"], ["SKRRRRUNCH!"], ["SKRRRRRRRSMASH!"]], "swallow": [["Ulp.", "Glp.", "Slurp."], ["Glrph.", "Glurk."], ["Gluuuurrkph!", "Glurp - GLK."], ["GLRP!", "GULP!", "GLUK!"], ["GLRRRRPKH!", "GLUUUURK!"], ["GLUUUUURRPKH!", "GLOOOORPH-GLK!"]], "drip": [["Drip."], ["Dribble"], ["Drip-sploosh"], ["Dribble-SPLOOSH!"], ["SPLOOOOOSH!!"]], "liquid": [["Sploosh."], ["Gush!"], ["SPLOOSH!"], ["SPLOOSH!"], ["SPLOOOOOOSH!"]], "insert": [["Slp.", "Shlk."], ["Shlp.", "Shlrp."], ["Shlllp."], ["SHLP!", "SQUELCH!"], ["SHLLLLRP!"]], "drop": [["Thump."], ["Thump!"], ["Splat."], ["Splat!"], ["SPLAT!"]], "belch": [["Burp.", "Urp."], ["Urph.", "Burph."], ["Urrrrrph."], ["UuuuuuuRRRRRPPHHHhhhh."], ["UUUURRRRPHH!"], ["BUUUURRRRRRRRPPPHHH!"]], "fart": [["Pft."], ["Pffft."], ["Pfffffbt."], ["Frrrrrrrt."], ["FRRRRRRRRPBBT!"]], "scat": [["Clench."], ["Squeeeeeze."], ["Squeeeeeeeeeeeze."], ["Sqlllllch."], ["SQLLLLLLCH!"]], "digest": [["Grrgle."], ["Grrrrgle"], ["Grrrrlglorp."], ["GrrrrGLRRRLPH!"], ["GRRRRRLGPRLHK!"]], "goo": [["Splat."], ["Squish."], ["Squish!"], ["SQLCH!"], ["SQLLLLRCH!"], ["SQQQQUEEEEELLCH!"]], "vomit": [["Hurk."], ["Hurrk."], ["Bleugh."], ["Bleugh!"], ["Bleeeugh!"], ["BLEEEUGHK!"]], "breath": [["Woosh."], ["Fwoosh."], ["FWOOSH."], ["FWOOSH!"], ["FWOOOOOOSH!"]], "chew": [["Snap.", "Crack."], ["Crunch."], ["Crack!"], ["CRUNCH!"], ["CRRRUNCH!"]], "magic": [["Zap."], ["Zap!"], ["Fwoosh!"]] }; function pickByMass(name, mass) { let list = sounds[name]; let index = Math.floor(Math.log10(mass / 100) / 2); index = Math.max(index, 0); choice = index < list.length ? list[index] : list[list.length - 1]; let subindex = Math.floor(Math.random() * Math.floor(choice.length)); // less likely to repeat if (last_used[name] != undefined && last_used[name] == subindex) { subindex = Math.floor(Math.random() * Math.floor(choice.length)); } last_used[name] = subindex; return choice[subindex]; } function getSound(name, mass) { return "" + pickByMass(name, mass) + ""; }