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

クトゥルフテック:リファクタリング #165

Merged
merged 7 commits into from
Apr 28, 2020

Conversation

ochaochaocha3
Copy link
Member

クトゥルフテックのダイスボットをリファクタリングしました。

主な目的は、「クトゥルフテック専用」と書かれていた DiceBot#changeDiceValueByDiceText を使わないようにすることです。
クトゥルフテックのコマンドには、動作が加算ロールとは大きく異なる nD10 があります。
従来は、これを無理やり dice/AddDice.rb 内の加算ロールの処理で扱おうとしていたため、 DiceBot#changeDiceValueByDiceText のような不自然なメソッドが必要になっていました。
今回、nD10 を加算ロールではなくダイスボット固有のコマンドとして処理するように変えたため、ダイスボット外にある上記の不自然な処理が不要となり、消すことができました。

そのほかに、対抗判定成功時に表示されるダメージロールのコマンドの意味が分かりやすくなるように、出力を少し変えました。

例:

# 従来
CthulhuTech : (10D10>10) > 18[3,3,4,5,6,6,6,8,8,10] > 18 > 成功(2d10)

# 変更後
CthulhuTech : (10D10>10) > 18[3,3,4,5,6,6,6,8,8,10] > 18 > 成功(ダメージ:2D10)

* シークレットロール
* 修正値あり
* ファンブル
特に DiceBot#changeDiceValueByDiceText を使わないようにするのが目的。
クトゥルフテックのリファクタリングによって、不要になったため。
@ochaochaocha3 ochaochaocha3 added the refactoring 内部構造の改良 label Apr 27, 2020
@ochaochaocha3 ochaochaocha3 requested a review from ysakasin April 27, 2020 11:06
@ochaochaocha3 ochaochaocha3 self-assigned this Apr 27, 2020
@ochaochaocha3 ochaochaocha3 force-pushed the cthulhu_tech-refactor branch from f72c39d to 52b26e6 Compare April 27, 2020 12:14
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.

1. CthulhuTech::Compare

CthulhuTech::Test を現在の CthulhuTech::Compare 相当のクラスにし、 class Contest < Test とするのはどうでしょう。 CthulhuTech::CompareCthulhuTech::Test の差分があまりにもないのと、Compareという名前は正直しっくりきません。構造は変えない場合、少なくともクラス名は変更して欲しいです。 私の思いつく限りでは、Nodeが適切かと思います。

2. CthulhuTech#execute

これは全てCthulhuTech::TestおよびCthulhuTech::Compareの内容から算出しているので、CthulhuTechのメソッドではなくCthulhuTech::Testのメソッドにした方が良いと思いました。

@ysakasin
Copy link
Member

あぁ roll が外だしできないのか……

@ochaochaocha3
Copy link
Member Author

@ysakasin どちらも作っている途中で迷ったところでした。1については、そのようにしたいと思います。2については、dicebotを渡せばできそうかな、と考えていたところだったので、試してみます。

@ochaochaocha3
Copy link
Member Author

判定処理をひとつのクラスにまとめました。ダイスロールは、判定ノードの #execute にダイスボットを渡すことで実行できました。

@ochaochaocha3 ochaochaocha3 requested a review from ysakasin April 27, 2020 16:10
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 47461ac into master Apr 28, 2020
@ysakasin ysakasin deleted the cthulhu_tech-refactor branch April 28, 2020 15:53
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
refactoring 内部構造の改良
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants