-
Notifications
You must be signed in to change notification settings - Fork 185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RuneQuest:Roleplaying in Gloranthaのダイスボット作成 #637
Conversation
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## master #637 +/- ##
==========================================
- Coverage 95.58% 95.58% -0.01%
==========================================
Files 336 337 +1
Lines 19302 19416 +114
Branches 5023 5067 +44
==========================================
+ Hits 18450 18558 +108
- Misses 852 858 +6
☔ View full report in Codecov by Sentry. |
return "(1D100) > #{roll_value}" | ||
end | ||
|
||
ability_value = Arithmetic.eval(m[3], :round) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:round
でなく RoundType::ROUND
を用いてください。もしくは、 #initialize
で @round_type
を設定しておいて、 @round_type
を参照するようにしてください。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
了解しました。
when /RSA/i | ||
return do_resistance_active_characteristic_roll(command) | ||
end | ||
Result.nothing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Result.nothing
が返されると汎用コマンドが動作しなくなってしまう可能性があるので、 nil
を返すようにしてください。 Result.nothing
は基本的にBase#result_2d6
などで使われることを想定しているもので、専用コマンドでは使わないほうが良いです。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
こちらも了解しました。
@FredGreenfield ありがとうございます! マージしました。 |
1.背景
ルーンクエストの新版であるRuneQuest: Roleplaying in Glorantha(以下、RQG)日本語版の2023年秋発売を受け、当該システムのダイスボットを作成する。
https://ci-en.net/creator/11464/article/798357
先行して「ルーンクエスト」ダイスボットが存在するが、このダイスボットは旧システムを対象にしており、非推奨のxDyの動作を修正するスタイルとなっていることから、RQG用に新規作成するものとする。
2.方針
日本語版が発売されていないため、用語はクイックスタート日本語版を参照する。
https://www.chaosium.com/runequest-roleplaying-in-glorantha-quickstart/
RQG日本語版が発売されたときに、採用した用語と異なる場合は可能な限り速やかに修正を行う事とする。
同種の処理はクトゥルフ神話TRPGダイスボットの書式を参考にする。
3.ダイスボット名
日本語版ユーザが発見しやすく、馴染みやすいようにカタカナ日本語の「ルーンクエスト:ロールプレイング イン グローランサ」とする。「2.方針」の用語ルールに従い、RQG日本語版発売後に異なる名称だった時は変更を行う。
RQGはケイオシアム社公式で4版となっているため、命名ルールに従った読み仮名は「るうんくえすと4」とする。今後、RuneQuestの4版と呼ばれる別システムが出版され、ダイスボットを作成する際は、新たに作成されるダイスボットの方で対応されたい。
4.コマンド
RQG<=xx
⇒ 結果表示例:RQG<=55
(1D100<=55) > 01 > クリティカル/スペシャル
(1D100<=55) > 11 > スペシャル
(1D100<=55) > 55 > 成功
(1D100<=55) > 89 > 失敗
(1D100<=55) > 00 > ファンブル
上記のコマンドで1d100の結果を技能値(xx)と比較、判定する。
結果はクリティカル(1あるいは技能の1/20以下)、スペシャル(技能の1/5以下)、成功(01-05あるいは技能以下)、失敗(96-00あるいは、技能を上回る)、ファンブル(00あるいは00-失敗確率の1/20以上)の5種類。各計算はRQGルールブック p143,Ability Results Tableの通りとなる。端数は四捨五入。
ただし、技能値0はStarter Set,Book1,p5において成功確率がないと記述されているため、xxに0が指定された場合は必ず失敗の判定を返す。
RQG
⇒ 結果表示例:RQG
(1D100) > 19
クトゥルフ神話TRPGダイスボットと同じように1d100のエイリアスとして機能する。
抵抗判定(RESistance roll)RQG, p145
RES(x-y)Mz
⇒ 結果表示例:RES(10-10)M5
(1D100<=55) > 01 > クリティカル/スペシャル
(1D100<=55) > 11 > スペシャル
(1D100<=55) > 55 > 成功
(1D100<=55) > 89 > 失敗
(1D100<=55) > 00 > ファンブル
クトゥルフ神話TRPGと同じ書式の上記のコマンドで、能力値xで対抗する能力値yとの差分x5%+50%を1d100判定を行う(参考:RQG Resistance Table p147)。判定の結果は、RQGコマンドと同じとする。xのみを指定した場合は差分計算後として処理する。zは省略可能で、増強などにより直接成功率に影響する修正(%単位)を指定する(参考:RQG p146)。
RSAxMz
⇒ 結果表示例:RSA(10)M5
(1D100<=55) > 01 > 成功
クリティカル/スペシャル、ファンブルは未処理。必要なら確認すること。
(1D100<=55) > 02 > 成功
クリティカル/スペシャル、ファンブルは未処理。必要なら確認すること。
(1D100<=55) > 55 > 成功 > 相手側能力値10まで成功
クリティカル/スペシャル、ファンブルは未処理。必要なら確認すること。
(1D100<=55) > 99 > 失敗
クリティカル/スペシャル、ファンブルは未処理。必要なら確認すること。
(1D100<=55) > 00 > 失敗
クリティカル/スペシャル、ファンブルは未処理。必要なら確認すること。
クトゥルフ神話TRPGには無いコマンド。受動側の能力値が不明の時などのために、能動側の能力値のみで判定し、いくつの受動側能力値まで成功できるかを表示する。判定の結果にはクリティカル/スペシャル、ファンブルは判定しない。zは省略可能で、増強などにより直接成功率に影響する修正(%単位)を指定する(参考:RQG p146)。
判定結果は対抗相手の能力に対してどの値まで成功なのかを表記する。ただし、01-05は無条件成功、96-00は無条件失敗となる。