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

IDを指定してゲームシステムを取得するように #286

Merged
merged 9 commits into from
Nov 8, 2020

Conversation

ysakasin
Copy link
Member

@ysakasin ysakasin commented Nov 7, 2020

v3でIDの廃止を検討していたが、到底廃止できるものではないという結論に至った。そのため、ゲームシステムを取得する際にクラス名ではなくIDを指定するようにする。

それに伴い、IDとクラス名に解離がある以下のゲームシステムのIDを変更する。

ゲームシステム クラス名 旧ID 新ID
真・女神転生TRPG 覚醒篇 ShinMegamiTenseiKakuseihen SMTKakuseihen ShinMegamiTenseiKakuseihen
トーグ Torg TORG Torg
トーグ1.5版 Torg1_5 TORG1.5 Torg1.5
NJSLYRBATTLE NjslyrBattle NJSLYRBATTLE NjslyrBattle

また、以下のクラス名を変更する。

ゲームシステム 旧クラス名 新クラス名 ID
ガープス Gurps GURPS GURPS

経緯

ID廃止を検討した理由

v2ではゲームシステムに識別はクラス名を用いれば可能であるにもかかわらず、IDも設定するようになっている。これは同じような情報を二重に管理しており、単に無駄だと考えていた。

このように識別子が二通りあると、オンセツールによってどちらの識別子を使うか別れてしまい、エンドユーザーがどちらの形式の識別子で指定すれば良いのか混乱する恐れがあると考えていた。

IDとクラス名がなぜ解離するのか

. を用いたいため解離してしまう。

ダイスコマンドが実行されたとき、オンセツールではどのダイスボットで実行されたのか表示するために、慣例的にIDを結果と併せて表示する。そこでソードワールド2.5のような小数点が名称に含まれる場合には SwordWorld2.5 と表示したくなる。 クラス名の SwordWorld2_5 や、小数点を省略した SwordWorld25 ではエンドユーザーの認識に誤解を与えるためである。

IDを廃止できない理由

理由の一つ目はテキストベースでゲームシステムを選択する場合の利便性である。エンドユーザーが普段目にしているのは SwordWorld2.5 であって、クラス名の SwordWorld2_5 ではない。BCDiceがチャットボットに組み込まれていて、テキストベースでゲームシステムを選択する場合、SwordWorld2.5の方が入力しやすい。

理由の二つ目は誤字だと誤解される可能性である。SwordWorld25 : (2D6) ... などどオンセツールに表示されたら、サポートチャットに「.が抜けている」という誤字報告で溢れ返るのが容易に想像できる。

解決策

IDによる検索を行うインターフェースのみを提供することで、識別子が二重になる問題を防ぐ。

@codecov
Copy link

codecov bot commented Nov 7, 2020

Codecov Report

Merging #286 (60e0306) into master (2a923da) will increase coverage by 0.00%.
The diff coverage is 100.00%.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #286   +/-   ##
=======================================
  Coverage   93.59%   93.60%           
=======================================
  Files         252      252           
  Lines       18103    18102    -1     
=======================================
  Hits        16944    16944           
+ Misses       1159     1158    -1     
Impacted Files Coverage Δ
lib/bcdice/game_system.rb 100.00% <100.00%> (ø)
lib/bcdice/game_system/GURPS.rb 86.06% <100.00%> (ø)
lib/bcdice/game_system/NjslyrBattle.rb 100.00% <100.00%> (ø)
...b/bcdice/game_system/ShinMegamiTenseiKakuseihen.rb 100.00% <100.00%> (ø)
lib/bcdice/game_system/Torg.rb 96.07% <100.00%> (ø)
lib/bcdice/game_system/Torg1_5.rb 91.66% <100.00%> (ø)
lib/bcdice/loader.rb 83.33% <100.00%> (+6.41%) ⬆️

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 2a923da...60e0306. Read the comment docs.

@ysakasin ysakasin merged commit 47f7933 into master Nov 8, 2020
@ysakasin ysakasin deleted the find_by_id branch November 8, 2020 02:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant