أسطوانة النرد هذه عبارة عن محلل سلسلة يقوم بإرجاع كائن يحتوي على الأجزاء المكونة للفة النرد. وهو يدعم مواصفات النرد Roll20 الكاملة. يستخدم قواعد pegjs لإنشاء تمثيل لتنسيق رمي النرد. ويمكن بعد ذلك تحويل ذلك إلى قيمة رقمية بسيطة، أو إلى كائن معقد يستخدم لعرض تفاصيل اللفة الكاملة.
هذا هو شوكة مشروع dice_roller الخاص بـ Ben Morton. كان يحتوي على بعض الأخطاء، لذا أعيد النشر مع الإصلاحات والميزات اللازمة لمشاريعي.
تثبيت المكتبة باستخدام:
npm install dice-roller-parser
بمجرد التثبيت، ما عليك سوى تحميل المكتبة، إما في المتصفح:
< script src =" node_modules/dice-roller-parser/dist/index.js " > </ script >
أو في العقدة:
import { DiceRoller } from "dice-roller-parser" ;
ثم قم بإنشاء مثيل جديد لفئة DiceRoller
، واستخدمه لتنفيذ بعض رميات النرد.
const diceRoller = new DiceRoller ( ) ;
// Returns the total rolled value
const roll = diceRoller . rollValue ( "2d20kh1" ) ;
console . log ( roll ) ;
// Returns an object representing the dice roll, use to display the component parts of the roll
const rollObject = diceRoller . roll ( "2d20kh1" ) ;
console . log ( rollObject . value ) ;
تعرض هذه المكتبة فئتين، DiceRoller
و DiscordRollRenderer
.
DiceRoller
تدير فئة DiceRoller
تحليل سلسلة النرد وتنفيذ اللفات بناءً على النتيجة.
// Creates a new instance of the DiceRoller class
const roller = new DiceRoller ( ) ;
يستخدم المنشئ الافتراضي Math.random
ويطبق الحد الأقصى لعدد اللفات لكل قالب وهو 1000. ويمكن تحديد ذلك باستخدام التحميل الزائد للمنشئ التالي.
DiceRoller(GeneratorFunction)
يمكنك تحديد وظيفة لاستخدامها كمولد أرقام عشوائية بواسطة بكرة النرد. يجب أن تكون هذه الدالة من النوع () => number
وترجع رقمًا بين 0 و1. افتراضيًا، تستخدم طريقة Math.random
المضمنة.
// Default constructor using Math.random
const roller = new DiceRoller ( ) ;
// Uses a custom random generator that always returns 0.5
const roller = new DiceRoller ( ( ) => 0.5 ) ;
يمكن قراءة هذا أو تعديله باستخدام خاصية randFunction
.
roller . randFunction = ( ) => 0.5 ;
DiceRoller(GeneratorFunction, MaxRollsPerDie)
لمنع محاولة تحليل أعداد كبيرة جدًا من لفات القالب، يمكن تحديد الحد الأقصى لعدد لفات القالب. يتم تعيين القيمة الافتراضية على 1000.
// Uses the default constructor with a limit of 100 rolls per die
const roller = new DiceRoller ( null , 100 ) ;
// Uses a custom random generator that always returns 0.5, and a limit of 10 rolls per die
const roller = new DiceRoller ( ( ) => 0.5 , 10 ) ;
يمكن قراءة هذا أو تعديله باستخدام خاصية maxRollCount
.
roller . maxRollCount = 75 ;
بمجرد إنشاء فئة DiceRoller
، هناك ثلاثة خيارات لأداء رمي النرد:
تأخذ طريقة rollValue
مدخلات سلسلة النرد، وتوزعها، وتنفذ لفة وترجع نتيجة القيمة الرقمية المحسوبة.
// Rolls 2 d20 dice and keeps the value of the highest
const roll = roller . rollValue ( "2d20kh1" ) ;
// Prints out the numeric value result
console . log ( roll ) ;
تأخذ طريقة roll
مدخلات سلسلة النرد، وتوزعها، وتنفذ اللفة، ثم ترجع كائنًا يمثل اللفة. باستخدام كائنات اللفة، يمكنك إنشاء وظيفة عرض اللفة الخاصة بك، بدلاً من مجرد إخراج القيمة النهائية.
// Rolls 2 d20 dice and keeps the value of the highest
const roll = roller . roll ( "2d20kh1" ) ;
// Print out the full roll breakdown
printDiceRoll ( roll ) ;
// Prints out the numeric value result
console . log ( `Final roll value: ${ roll . Value } ` ) ;
راجع إخراج نتيجة اللفة في قسم أنواع المخرجات أدناه للحصول على مزيد من التفاصيل حول الكائن الذي تم إرجاعه.
تأخذ طريقة parse
مدخلات سلسلة النرد، وتقوم بتحليلها وإرجاع تمثيل للمدخلات التي تم تحليلها. يمكن استخدام هذا إما لرمي النرد أو إعادة بناء الإدخال الأصلي. تأخذ طريقة rollParsed
هذه النتيجة التي تم تحليلها كمدخل، وتقوم بإجراء اللفة وإرجاع نفس الإخراج من طريقة roll
.
// Rolls 2 d20 dice and keeps the value of the highest
const parsedInput = roller . parse ( "2d20kh1" ) ;
// Print out a re-constructed input string
printParsedInput ( parsedInput ) ;
// Run the roller on the parsed object
const roll = roller . rollParsed ( parsedInput ) ;
// Print out the full roll breakdown
printDiceRoll ( roll ) ;
// Print out the numeric value result
console . log ( `Final roll value: ${ roll . Value } ` ) ;
راجع مخرجات اللفة التي تم تحليلها في قسم أنواع المخرجات أدناه للحصول على مزيد من التفاصيل حول الكائن الذي تم إرجاعه.
DiscordRollRenderer
فئة DiscordRollRenderer
هي فئة عارض نموذجية تأخذ مدخلات ملفوفة ممثلة بكائن RollBase
وتعرضها إلى سلسلة بتنسيق تخفيض السعر، متوافق مع Discord.
// Creates a new instance of the DiceRoller class
const renderer = new DiscordRollRenderer ( ) ;
يعرض DiscordRollRenderer
طريقة render
واحدة بمعلمة واحدة، وكائن RollBase
المطلوب عرضه، وإرجاع السلسلة المعروضة.
// Rolls 2 d20 dice and keeps the value of the highest
const roll = roller . rollValue ( "2d20kh1" ) ;
// Get the formatted string
const render = renderer . render ( roll ) ;
console . log ( render ) ;
لتطوير هذه المكتبة، ما عليك سوى استنساخ المستودع وتشغيل التثبيت:
npm install
ثم قم بالبناء:
npm run build
وهذا يفعل أربعة أشياء:
# Clean any existing builds
npm run clean
# Build the dice grammer
npx pegjs src/diceroll.pegjs
# Run tslint against the project
tslint -c tslint.json --project tsconfig.json
# Then run webpack to build and package everything up nicely
webpack
لتشغيل مجموعة الاختبار، استخدم:
npm run test
هذا كل ما في الأمر!
أنواع الكائنات التالية هي مخرجات من فئة DiceRoller
، وهي متاحة كواجهات لمستخدمي الآلة الكاتبة.
يتكون الكائن الذي يتم إرجاعه بواسطة نتيجة اللفة من الأنواع التالية.
RollBase
الفئة الأساسية لجميع لفات القالب، ممتدة بناءً على خاصية النوع.
ملكية | يكتب | وصف |
---|---|---|
نجاح | boolean | هل كانت اللفة ناجحة بالنسبة لفات الرقم المستهدف. مثال: 3d6 > 3 |
يكتب | RollType | نوع اللفة التي يمثلها هذا الكائن. |
صالح | boolean | هل اللفة لا تزال صالحة، ومدرجة في الحسابات. |
قيمة | number | القيمة المدرفلة أو المحسوبة لهذه اللفة. |
ملصق | string | تسمية العرض لهذه اللفة. هذه الخاصية اختيارية. |
طلب | number | خاصية تستخدم للحفاظ على ترتيب لفات النرد داخل المجموعات. |
RollType
تعداد لأنواع اللفة الصالحة. القيم المحتملة هي:
"number"
"diceexpressionroll"
"expressionroll"
"mathfunction"
"grouproll"
"fate"
"die"
"roll"
"fateroll"
GroupedRoll
واجهة وسيطة ممتدة لمجموعات النرد. تعمل هذه الواجهة على توسيع RollBase
.
ملكية | يكتب | وصف |
---|---|---|
النرد | Array< RollBase > | القوائم المدرجة كجزء من هذه المجموعة. |
DiceExpressionRoll
تمثيل تعبير النرد. تمتد هذه الواجهة إلى GroupedRoll
.
مثال
2d20 + 6d6
ملكية | يكتب | وصف |
---|---|---|
يكتب | "diceexpressionroll" | نوع اللفة التي يمثلها هذا الكائن. |
مكتب خدمات المشاريع | Array< DiceGroupMathOperation > | العمليات التي يجب تنفيذها على القوائم. |
ExpressionRoll
تمثيل التعبير الرياضي. تمتد هذه الواجهة إلى GroupedRoll
.
مثال
20 * 17
ملكية | يكتب | وصف |
---|---|---|
يكتب | "expressionroll" | نوع اللفة التي يمثلها هذا الكائن. |
مكتب خدمات المشاريع | Array< MathOperation > | العمليات التي يجب تنفيذها على القوائم. |
MathFunctionRoll
تمثيل وظيفة رياضية. تعمل هذه الواجهة على توسيع RollBase
.
مثال
floor(20 / 17)
ملكية | يكتب | وصف |
---|---|---|
يكتب | "expressionfunc" | نوع اللفة التي يمثلها هذا الكائن. |
مرجع سابق | MathFunction | العمليات التي يجب تنفيذها على القوائم. |
EXPR | RollBase | التعبير الذي يتم تطبيق الوظيفة عليه. |
GroupRoll
تمثيل لمجموعة من اللفات
مثال
{4د6،3د6}. تمتد هذه الواجهة إلى
GroupedRoll
.
ملكية | يكتب | وصف |
---|---|---|
يكتب | "grouproll" | نوع اللفة التي يمثلها هذا الكائن. |
DiceRollResult
النتيجة المدرفلة لمجموعة من النرد. تعمل هذه الواجهة على توسيع RollBase
.
مثال
6d20
ملكية | يكتب | وصف |
---|---|---|
يموت | RollBase | القالب الذي تمثله هذه النتيجة. |
يكتب | "die" | نوع اللفة التي يمثلها هذا الكائن. |
لفات | DieRollBase [] | كل لفة من الموت. |
عدد | RollBase | عدد لفات القالب. |
متطابق | boolean | ما إذا كانت هذه نتيجة المباراة. |
DieRollBase
واجهة وسيطة ممتدة لفات القالب الفردية (انظر أدناه). تعمل هذه الواجهة على توسيع RollBase
.
ملكية | يكتب | وصف |
---|---|---|
لفافة | number | النتيجة المدرفلة للموت. |
متطابق | boolean | ما إذا كانت هذه اللفة متطابقة. |
DieRoll
لفة على حجر النرد العادي. تمتد هذه الواجهة إلى DieRollBase
.
مثال
d20
ملكية | يكتب | وصف |
---|---|---|
يموت | number | رقم القالب المراد دحرجته. |
يكتب | "roll" | نوع اللفة التي يمثلها هذا الكائن. |
شديد الأهمية | CriticalType | إذا كان هذا الدور يمثل نجاحًا أو فشلًا حاسمًا (للتقديم). |
FateDieRoll
لفة على مصير يموت. تمتد هذه الواجهة إلى DieRollBase
.
مثال
dF
ملكية | يكتب | وصف |
---|---|---|
يكتب | "fateroll" | نوع اللفة التي يمثلها هذا الكائن. |
تعرض المكتبة الواجهات التالية كإعادة تمثيل لسلسلة الإدخال التي تم تحليلها. الاستجابة من أسلوب parse
هي كائن RootType
ويمكن أن تكون أيًا من الواجهات التي تعمل على توسيعه.
ParsedObjectType
تعداد لأنواع اللفة الصالحة. القيم المحتملة هي:
"number"
"inline"
"success"
"failure"
"crit"
"critfail"
"match"
"keep"
"drop"
"group"
"diceExpression"
"sort"
"explode"
"compound"
"penetrate"
"reroll"
"rerollOnce"
"target"
"die"
"fate"
"expression"
"math"
"mathfunction"
ParsedType
هذه هي الواجهة الأساسية لجميع الأنواع التي تم تحليلها.
ملكية | يكتب | وصف |
---|---|---|
يكتب | string | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
RootType
هذه هي الواجهة الأساسية لمجموعة فرعية من الأنواع التي تم تحليلها، فقط تلك التي يمكن أن تكون النوع الجذري. يقوم هذا الكائن بتوسيع واجهة ParsedType
.
ملكية | يكتب | وصف |
---|---|---|
ملصق؟ | string | تسمية النص المرفقة بهذه اللفة. هذه الخاصية اختيارية. |
جذر | boolean | علامة منطقية للإشارة إلى ما إذا كان هذا هو جذر شجرة التحليل. |
NumberType
يمثل هذا الكائن رقمًا واحدًا في الإدخال. يقوم هذا الكائن بتوسيع واجهة RootType
.
ملكية | يكتب | وصف |
---|---|---|
يكتب | "number" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
قيمة | number | قيمة الرقم. |
InlineExpression
يمثل هذا الكائن تعبير النرد المضمن داخل سلسلة، ملفوفًا بين قوسين مربعين مزدوجين. يقوم هذا الكائن بتوسيع واجهة RootType
.
مثال
I want to roll [[2d20]] dice
ملكية | يكتب | وصف |
---|---|---|
يكتب | "inline" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
EXPR | Expression | التعبير الذي تم تحليله كسلسلة مضمنة. |
AnyRoll
نوع مدمج يمثل أي لفة صالحة. هذا مزيج من الأنواع التالية:
GroupedRoll
FullRoll
NumberType
ModGroupedRoll
يمثل هذا الكائن لفة مجمعة مع معدل اختياري. يقوم هذا الكائن بتوسيع واجهة RootType
.
مثال
{4d6+3d8}kh1
ملكية | يكتب | وصف |
---|---|---|
تعديل | Array< KeepDropModType , SuccessFailureModType > | المعدلات التي سيتم تطبيقها على اللفة المجمعة. |
SuccessFailureCritModType
كائن يمثل معدّل اختبار النجاح. يقوم هذا الكائن بتوسيع واجهة ParsedType
. يقوم معدِّل "success"
أو "failure"
بتحويل النتيجة إلى نتيجة من نوع النجاح والتي تُرجع عدد اللفات التي تلبي الهدف. يقوم معدِّل "crit"
أو "critfail"
باختبار اللفة لمعرفة ما إذا كان يجب عرض اللفة على أنها نجاح حرج أو فشل فادح أم لا.
مثال
النجاح:
3d6>3
الفشل:3d6f<3
ملكية | يكتب | وصف |
---|---|---|
يكتب | "success", "failure", "crit", "critfail" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
وزارة الدفاع | CompareOperation | نوع الشيك الذي سيتم استخدامه للحالة. |
EXPR | RollExpression | تعبير يمثل شرط النجاح. |
SuccessFailureModType
يعادل SuccessFailureCritModType
ولكنه يدعم فقط معدّلات "النجاح" و"الفشل". يقوم هذا الكائن بتوسيع واجهة SuccessFailureCritModType
.
مثال
النجاح:
3d6>3
الفشل:3d6f<3
ملكية | يكتب | وصف |
---|---|---|
يكتب | "success", "failure" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
وزارة الدفاع | CompareOperation | نوع الشيك الذي سيتم استخدامه للحالة. |
EXPR | RollExpression | تعبير يمثل شرط النجاح. |
MatchModType
كائن يمثل معدِّل نوع المطابقة، يُستخدم لتعديل عرض مخرجات النرد في roll20. يقوم هذا الكائن بتوسيع واجهة ParsedType
.
مثال
2d6m
عند استخدامه مع ملحق mt
، سيتم إرجاع عدد التطابقات التي تم العثور عليها.
مثال
20d6mt
يمكن تحديد وسيطات إضافية لزيادة العدد المطلوب من المطابقات أو لإضافة قيد للمطابقات.
مثال
20d6mt3 counts matches of 3 items
مثال
20d6m>3 Only counts matches where the rolled value is > 3
ملكية | يكتب | وصف |
---|---|---|
يكتب | "match" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
دقيقة | NumberType | الحد الأدنى لعدد المطابقات للقبول. القيمة الافتراضية لهذه الخاصية هي 2 كنوع NumberType . |
عدد | boolean | أم لا لحساب المباريات. |
وزارة الدفاع؟ | CompareOperation | نوع الشيك الذي سيتم استخدامه لشرط المطابقة، إذا تم تحديده. هذا الحقل اختياري. |
إكسبر؟ | RollExpression | تعبير يمثل شرط المطابقة، إذا تم تحديده. هذا الحقل اختياري. |
KeepDropModType
كائن يمثل معدل الاحتفاظ أو الإسقاط، ويحدد عدد لفات النرد للاحتفاظ بها أو إسقاطها، إما أعلى أو أدنى اللفات. يقوم هذا الكائن بتوسيع واجهة ParsedType
.
مثال
احتفظ:
2d20kh1
قطرة:2d20dl1
ملكية | يكتب | وصف |
---|---|---|
يكتب | "keep", "drop" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
com.highlow | HighLowType | ما إذا كان سيتم الاحتفاظ/إسقاط أعلى أو أدنى لفة. |
EXPR | RollExpression | تعبير يمثل عدد اللفات التي سيتم الاحتفاظ بها/إسقاطها. القيمة الافتراضية لهذه الخاصية هي 1 كنوع NumberType . مثال: 2d6 |
GroupedRoll
يمثل هذا الكائن مجموعة من اللفات مجتمعة، مع معدلات اختيارية. يقوم هذا الكائن بتوسيع واجهة ModGroupedRoll
.
مثال
{2d6,3d6}
ملكية | يكتب | وصف |
---|---|---|
يكتب | "group" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
لفات | Array< RollExpression > | مجموعة اللفات المتضمنة في هذه المجموعة. |
RollExpressionType
الكائن الذي يمثل تعبير لفة يتضمن لفات ومجموعات معقدة، يسمح فقط بعمليات الإضافة. يقوم هذا الكائن بتوسيع واجهة RootType
.
مثال
{2d6,3d6}kh1 + {3d6 + 2d6}kh2
ملكية | يكتب | وصف |
---|---|---|
رأس | RollOrExpression | اللفة أو التعبير الأولي لتعبير اللفة. |
يكتب | "diceExpression" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
مكتب خدمات المشاريع | Array< MathType < RollOrExpression , DiceGroupMathOperation >> | العمليات التي سيتم تطبيقها على اللفة أو التعبير الأولي. |
RollExpression
مجموعة من النوع المساعد مكونة من تعبير لفة معقد، أو لفة، أو تعبير رياضي. يمثل الأنواع التالية:
RollExpressionType
RollOrExpression
RollOrExpression
مجموعة من النوع المساعد مكونة من لفة أو تعبير رياضي. يمثل الأنواع التالية:
FullRoll
Expression
FullRoll
كائن يمثل لفة بما في ذلك لفة النرد وأي معدلات. يقوم هذا الكائن بتوسيع واجهة DiceRoll
.
مثال
2d6kh1
ملكية | يكتب | وصف |
---|---|---|
تعديل؟ | Array< ReRollMod , KeepDropModType > | أي معدّلات مرفقة باللفة. هذه الخاصية اختيارية. |
الأهداف؟ | Array< SuccessFailureCritModType > | أي نجاح أو فشل يستهدف اللفة. هذه الخاصية اختيارية. |
مباراة؟ | MatchModTyp | أي معدّلات مطابقة لللفة. هذه الخاصية اختيارية. |
نوع؟ | SortRollType | أي عمليات فرز يتم تطبيقها على القائمة. هذه الخاصية اختيارية. |
SortRollType
عملية فرز لتطبيقها على لفة. يقوم هذا الكائن بتوسيع واجهة ParsedType
.
مثال
10d6sa
ملكية | يكتب | وصف |
---|---|---|
يكتب | "sort" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
تصاعدي | boolean | سواء للفرز تصاعديا أو تنازليا. |
ReRollMod
كائن يمثل عملية إعادة التدحرج لتطبيقها على اللفة. يمكن أن يكون أحد الأنواع التالية:
"explode"
: إعادة رمي أي حجر نرد يحقق الهدف، ويستمر في حالة تطابق الرمية الجديدة"compound"
: إعادة رمي أي حجر نرد يحقق الهدف، والاستمرار في حالة تطابق الرمية الجديدة وإضافة النتائج إلى رمية واحدة"penetrate"
: إعادة رمي أي حجر نرد يحقق الهدف مع طرح 1 من القيمة الجديدة، والاستمرار في حالة تطابق الرمية الجديدة"reroll"
: إعادة رمي حجر النرد طالما أنه يحقق الهدف، مع الحفاظ على اللفة النهائية"rerollOnce"
: إعادة رمي حجر النرد مرة واحدة إذا حقق الهدف، مع الاحتفاظ بالرمية الجديدةمثال
2d6!
ملكية | يكتب | وصف |
---|---|---|
يكتب | "explode", "compound", "penetrate", "reroll", "rerollOnce" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
هدف | TargetMod | المُعدِّل الهدف لمقارنة قيمة اللفة به. |
TargetMod
كائن يعيد ضبط معدّل الهدف لتطبيقه على اللفة. يقوم هذا الكائن بتوسيع واجهة ParsedType
.
ملكية | يكتب | وصف |
---|---|---|
يكتب | "target" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
وزارة الدفاع | CompareOperation | نوع الشيك الذي سيتم استخدامه للحالة. |
قيمة | RollExpr | تعبير يمثل قيمة الشرط المستهدف. |
DiceRoll
تمثيل لفة الموت. يقوم هذا الكائن بتوسيع واجهة RootType
.
مثال
2d6
ملكية | يكتب | وصف |
---|---|---|
يموت | RollExpr , FateExpr | يمكن أن تكون قيمة القالب التي سيتم التدحرج عليها عبارة عن قالب مصير أو رقم أو تعبير لفة معقد. |
عدد | RollExpr | عدد الوقت الذي يجب فيه دحرجة هذا النرد. |
يكتب | "die" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
FateExpr
تمثيل لفة يموت القدر. يقوم هذا الكائن بتوسيع واجهة ParsedType
.
مثال
2dF
ملكية | يكتب | وصف |
---|---|---|
يكتب | "fate" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
RollExpr
مجموعة من النوع المساعد مكونة من رقم أو قيمة ليست تعبيرًا. يمثل الأنواع التالية:
MathExpression
NumberType
Expression
مزيج نوع مساعد من أنواع التعبير. يمثل الأنواع التالية:
InlineExpression
MathExpression
MathExpression
تعبير نوع رياضي بين اثنين أو أكثر من لفات النرد. يقوم هذا الكائن بتوسيع واجهة RootType
.
مثال
2d6 + 3d6 * 4d6
ملكية | يكتب | وصف |
---|---|---|
رأس | AnyRoll | اللفة الأولية لتنفيذ العمليات ضدها. |
يكتب | "expression" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
مكتب خدمات المشاريع | Array< MathType < AnyRoll >> | العمليات التي سيتم تطبيقها على اللفة الأولية. |
MathType
كائن يمثل عملية حسابية سيتم تطبيقها والقيمة التي سيتم تطبيقها عليها. يقوم هذا الكائن بتوسيع واجهة ParsedType
. تأخذ الواجهة الخاصة بهذا الكائن نوعًا من النوع TailType
الذي يحدد نوع القيمة الثانية المستخدمة في العملية. يوجد نوع ثانٍ OpValues
والذي يحدد نوع العمليات التي يمكن استخدامها. هذا الإعداد الافتراضي هو Array<
MathOperation
>`.
مثال
+ 3d6 (as part of 2d6 + 3d6)
ملكية | يكتب | وصف |
---|---|---|
يكتب | "math" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
مرجع سابق | OpValues | عملية الرياضيات لأداء. |
ذيل | TailType | القيمة الثانية لاستخدامها في العملية. |
MathFunctionExpression
كائن يمثل دالة رياضية سيتم تطبيقها والتعبير الذي سيتم تطبيقها عليه. يقوم هذا الكائن بتوسيع واجهة RootType
.
مثال
floor(3d6 / 2d4)
ملكية | يكتب | وصف |
---|---|---|
يكتب | "mathfunction" | نوع العنصر الذي تم تحليله الذي يمثله هذا الكائن. |
مرجع سابق | MathFunction | الوظيفة المراد تطبيقها. |
EXPR | AnyRoll | التعبير الذي سيتم تطبيق الدالة عليه. |
فيما يلي أنواع الدعم التي تستخدمها الواجهات المذكورة أعلاه.
DiceGroupMathOperation
نوع مساعد يمثل العمليات الصحيحة لعملية حسابية على مجموعة من أحجار النرد.
"+" | "-"
MathOperation
نوع مساعد يمثل العمليات الصالحة لعملية رياضية.
"+" | "-" | "*" | "/" | "%" | "**"
MathFunction
نوع مساعد يمثل العمليات الصالحة لعملية رياضية.
"floor" | "ceil" | "round" | "abs"
CriticalType
نوع مساعد يُستخدم عند وضع علامة على اللفة باعتبارها نجاحًا أو فشلًا حاسمًا.
"success" | "failure" | null
CompareOperation
نوع مساعد للعمليات المتاحة لنقطة المقارنة.
">" | "<" | "="
HighLowType
نوع مساعد يستخدم لتحديد اللفات التي يجب الاحتفاظ بها أو إسقاطها.
"h" | "l" | null