Skip to content
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

Merged
merged 3 commits into from
Mar 5, 2020
Merged

ダイスボット追加(獸ノ森) #124

merged 3 commits into from
Mar 5, 2020

Conversation

mhys5
Copy link
Contributor

@mhys5 mhys5 commented Feb 19, 2020

概要

獸ノ森 のダイスボットを追加しました。

システム独自の判定ロジックについて

大成功、大失敗

獸ノ森では、後述の行為判定、継続判定ともに 1D12<={目標値} を実行します。
達成値が目標値以下であれば成功、そうでなければ失敗となります。
ただし達成値 11 は目標値に関わらず大成功、 12 は大失敗として扱います。

  • 大成功(11): 成功時の効果に加え、次の継続判定の目標値が 10 になる
  • 大失敗(12): それまでの成功度に関わらず行為判定が失敗となり、大失敗表を振る

行為判定と継続判定

行為判定 を行って成功した場合に、その達成値を次の目標値として 継続判定 を行うことができます。
継続判定で成功した場合もさらに継続判定を行うことができ、結果が 失敗 or 大失敗 になるか、プレイヤーが自発的に判定の終了を宣言しない限り続けて実施することができます。

D12以外のダイスで判定したり、複数個使用した判定を行うこともないため、コマンドは簡略化してあります。

成功度

行為判定、継続判定の結果が成功または大成功だった際に、 成功度 が加算されます。
成功するたびに加算される成功度は以下の通りです。

  • 行為判定(1D12): +(目標値の10の位の数 + 1)
  • 継続判定(1D12): +1

判定が終了した際に、それまでの行為判定・継続判定による成功度を合計します。
成功度が高いほど目覚ましい結果ということになり、回復量やダメージ量、探索の結果等に影響します。

以下の行為判定の成功度は 4

2020-02-19_20 53 04

@codecov-io
Copy link

codecov-io commented Feb 19, 2020

Codecov Report

Merging #124 into master will increase coverage by 0.21%.
The diff coverage is n/a.

Impacted file tree graph

@@            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
Impacted Files Coverage Δ
cgiDiceBot.rb 65.26% <0%> (-0.7%) ⬇️
test/testDiceBotPrefixesCompatibility.rb 88.23% <0%> (ø) ⬆️
diceBot/Cthulhu_ChineseTraditional.rb 14.91% <0%> (ø) ⬆️
test/testDiceBotLoaders.rb 100% <0%> (ø) ⬆️
diceBot/Cthulhu7th_ChineseTraditional.rb 15.3% <0%> (ø) ⬆️
test/test_srs_help_messages.rb 100% <0%> (ø) ⬆️
configBcDice.rb 100% <0%> (ø) ⬆️
diceBot/NinjaSlayer.rb 98.91% <0%> (ø) ⬆️
diceBot/KemonoNoMori.rb 96.15% <0%> (ø)
diceBot/Cthulhu7th.rb 99.2% <0%> (+0.02%) ⬆️
... and 19 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8f0c739...fcfce74. Read the comment docs.

@@ -0,0 +1,346 @@
# -*- coding: utf-8 -*-

class Kemono < DiceBot
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

この略称だと一般名詞になってしまうため、今後かぶる可能性が高い気がします。
単純に KemonoNoMori にするのがいいと思うのですがどうでしょう。

Copy link
Contributor Author

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 という公式の英語名はあるのですが、表紙のロゴに装飾的に描かれているのみで殆ど馴染みがないため、ローマ字読みを採用します)

Copy link
Contributor Author

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)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ここで ^ を使ってしまうとシークレットダイスに反応しないと思います。

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

この修正と合わせて、シークレットダイスのテストケースの追加もお願いします。

Copy link
Contributor Author

@mhys5 mhys5 Feb 20, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ご指摘のとおりですね。。修正とテストの追加を行います。

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

合わせて、各項目を文字列で指定してください。

Suggested change
setPrefixes([/^K[AC]\d[-+\d]*/i, /CTR/i] + @@tables.keys)
setPrefixes(['K[AC]\d[-+\d]*', 'CTR'] + TABLES.keys)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

コマンドの修正、テストの追加を行いました。
S を頭につけたシークレットダイスのテストケースの追加、ついでに既存のケースに小文字をランダムに混ぜています)

return "#{escapeExperience} (再登場: #{escapeDuration}時間後)"
end

@@tables =
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ から始まるクラスメソッドではなく、 TABLES = と大文字で定数扱いにしてほしいです

Copy link
Contributor Author

@mhys5 mhys5 Feb 20, 2020

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クラスを利用する方法を標準としていく方針でしょうか?
そうであれば、直近リファクタされたシノビガミの表を参考に修正しようと思います。

Copy link
Member

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

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

一旦、既存のTableクラスの機能を利用する形で実装しました。

@ochaochaocha3 ochaochaocha3 added the new dicebot 新システムの対応 label Feb 22, 2020
@mhys5 mhys5 requested a review from ysakasin March 4, 2020 18:18
@mhys5
Copy link
Contributor Author

mhys5 commented Mar 4, 2020

@ysakasin @ochaochaocha3
レビューありがとうございました。なかなか時間が取れず、対応が遅くなってしまいすみません🙇
ご指摘いただいた箇所を修正しましたので、再レビューをお願いします。

Copy link
Member

@ysakasin ysakasin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!!!

@ysakasin ysakasin merged commit 1406fa4 into bcdice:master Mar 5, 2020
ysakasin added a commit that referenced this pull request Aug 30, 2020
ダイスボット追加(獸ノ森)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new dicebot 新システムの対応
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants