-
Notifications
You must be signed in to change notification settings - Fork 186
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
ダイスボット追加(獸ノ森) #124
ダイスボット追加(獸ノ森) #124
Conversation
Codecov Report
@@ Coverage Diff @@
## master #124 +/- ##
==========================================
+ Coverage 86% 86.22% +0.21%
==========================================
Files 188 189 +1
Lines 21781 22119 +338
==========================================
+ Hits 18733 19072 +339
+ Misses 3048 3047 -1
Continue to review full report at Codecov.
|
src/diceBot/Kemono.rb
Outdated
@@ -0,0 +1,346 @@ | |||
# -*- coding: utf-8 -*- | |||
|
|||
class Kemono < DiceBot |
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.
この略称だと一般名詞になってしまうため、今後かぶる可能性が高い気がします。
単純に KemonoNoMori
にするのがいいと思うのですがどうでしょう。
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.
クラス名等を KemonoNoMori
に変更します。
(一応 Things in the Woods
という公式の英語名はあるのですが、表紙のロゴに装飾的に描かれているのみで殆ど馴染みがないため、ローマ字読みを採用します)
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.
ファイル名、クラス名等をリネームしました。
src/diceBot/Kemono.rb
Outdated
} | ||
} | ||
|
||
setPrefixes([/^K[AC]\d[-+\d]*/i, /CTR/i] + @@tables.keys) |
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.
ここで ^
を使ってしまうとシークレットダイスに反応しないと思います。
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.
この修正と合わせて、シークレットダイスのテストケースの追加もお願いします。
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.
ご指摘のとおりですね。。修正とテストの追加を行います。
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.
合わせて、各項目を文字列で指定してください。
setPrefixes([/^K[AC]\d[-+\d]*/i, /CTR/i] + @@tables.keys) | |
setPrefixes(['K[AC]\d[-+\d]*', 'CTR'] + TABLES.keys) |
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.
コマンドの修正、テストの追加を行いました。
( S
を頭につけたシークレットダイスのテストケースの追加、ついでに既存のケースに小文字をランダムに混ぜています)
src/diceBot/Kemono.rb
Outdated
return "#{escapeExperience} (再登場: #{escapeDuration}時間後)" | ||
end | ||
|
||
@@tables = |
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.
@@
から始まるクラスメソッドではなく、 TABLES =
と大文字で定数扱いにしてほしいです
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.
@ysakasin 今後、表関係は定数化した上で utils/table.rb のTableクラスを利用する方法を標準としていく方針でしょうか?
そうであれば、直近リファクタされたシノビガミの表を参考に修正しようと思います。
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.
ご推察の方針で進める予定ですが、 utils/tables.rb はまだ機能が出揃っていないので、無理に使う必要はありません。
もし、機能追加等含めて対応してくださる場合には下記Pull Requestをご一読ください。Tableクラスの拡張方法について議論されています。
#107
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.
一旦、既存のTableクラスの機能を利用する形で実装しました。
@ysakasin @ochaochaocha3 |
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.
LGTM!!!
概要
獸ノ森 のダイスボットを追加しました。
システム独自の判定ロジックについて
大成功、大失敗
獸ノ森では、後述の行為判定、継続判定ともに
1D12<={目標値}
を実行します。達成値が目標値以下であれば成功、そうでなければ失敗となります。
ただし達成値
11
は目標値に関わらず大成功、12
は大失敗として扱います。10
になる行為判定と継続判定
行為判定 を行って成功した場合に、その達成値を次の目標値として 継続判定 を行うことができます。
継続判定で成功した場合もさらに継続判定を行うことができ、結果が 失敗 or 大失敗 になるか、プレイヤーが自発的に判定の終了を宣言しない限り続けて実施することができます。
D12以外のダイスで判定したり、複数個使用した判定を行うこともないため、コマンドは簡略化してあります。
成功度
行為判定、継続判定の結果が成功または大成功だった際に、
成功度
が加算されます。成功するたびに加算される成功度は以下の通りです。
+(目標値の10の位の数 + 1)
+1
判定が終了した際に、それまでの行為判定・継続判定による成功度を合計します。
成功度が高いほど目覚ましい結果ということになり、回復量やダメージ量、探索の結果等に影響します。
例
以下の行為判定の成功度は
4