feat: add plain text dice roll detail
Introduces `plainDetail` to the dice engine to provide a non-HTML version of the roll results. This allows components to display the roll breakdown without needing to parse or render HTML.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { customElement, noShadowDOM } from "solid-element";
|
||||
import { createSignal, onMount } from "solid-js";
|
||||
import {rollFormula} from "./md-commander/hooks";
|
||||
import { rollFormula } from "./md-commander/hooks";
|
||||
|
||||
export interface DiceProps {
|
||||
key?: string;
|
||||
@@ -34,7 +34,7 @@ customElement("md-dice", { key: "" }, (props, { element }) => {
|
||||
|
||||
// 从 element 的 textContent 获取骰子公式
|
||||
const formula = element?.textContent?.trim() || "";
|
||||
|
||||
|
||||
// 隐藏原始文本内容
|
||||
if (element) {
|
||||
element.textContent = "";
|
||||
@@ -57,9 +57,9 @@ customElement("md-dice", { key: "" }, (props, { element }) => {
|
||||
const handleRoll = (e: MouseEvent) => {
|
||||
e.preventDefault();
|
||||
// 点击骰子图标:总是重 roll
|
||||
const rollResult = rollFormula(formula).result;
|
||||
setResult(rollResult.total);
|
||||
setRollDetail(rollResult.detail);
|
||||
const rollResult = rollFormula(formula);
|
||||
setResult(rollResult.result.total);
|
||||
setRollDetail(rollResult.result.plainDetail);
|
||||
setIsRolled(true);
|
||||
if (effectiveKey()) {
|
||||
setDiceResultToUrl(effectiveKey(), rollResult.total);
|
||||
|
||||
Reference in New Issue
Block a user