|  | 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 "<i>" + pickByMass(name, mass) + "</i>";
}
 |