redneckDice

Ein Würfel-Plugin für alle Pen-&-Paper-Webapps: echte 3D-Würfel mit Physik, Würfel-Log, eigene Würfel und eine Formelsprache von 3w20 bis 12w6>=5. Eine Datei, keine Abhängigkeiten, keine externen Aufrufe.

v · MIT

Charakterbogen

Jedes Element mit data-pnp-roll würfelt beim Klick, das Ergebnis landet im Log links.

Angriff1W20+5
Langschwert2W6+3
Krit-Schaden(2W6+3)×2
Initiative2W20kh1+4
Attribut4W6kh3
Würfelpool8W6≥5
Probe1W100

Würfelteppich

Würfel können statt über der ganzen Seite auch in einem eigenen Bereich rollen und liegen bleiben.

Hier rollen die Würfel

Mitspieler & SL

Würfe kommen als kurze JSON-Daten übers Netz und werden mit genau diesen Werten nachanimiert. Verdeckte SL-Würfe kommen ohne Werte an.

    Einbinden

    <script src="redneck-dice.js"></script>
    <div id="wuerfel"></div>
    <script>
      RedneckDice.mount('#wuerfel');
      RedneckDice.bindAttributes();
    
      // Würfel-Looks: jeder Knopf zeigt eine Vorschau und würfelt alle Körper in diesem Look
      const looks = document.getElementById('looks');
      function paintLooks() {
        looks.innerHTML = '';
        for (const t of RedneckDice.listThemes()) {
          const b = document.createElement('button');
          b.className = 'btn';
          b.setAttribute('aria-pressed', String(t.name === RedneckDice.config.theme));
          b.innerHTML = `${t.label}`;
          looks.appendChild(b);
          RedneckDice.renderPreview(b.querySelector('canvas'), { theme: t.name, size: 30, color: '#dc2626' });
          b.addEventListener('click', () => {
            RedneckDice.roll('1w4+1w6+1w8+1w10+1w12+1w20+1w100', { tray: '#mat', theme: t.name, label: t.label });
          });
        }
      }
      paintLooks();
      RedneckDice.on('settle', r =>
        sendToDiscord(r.text));
    </script>