|  | 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>";
}
 |