bcdice 3.12.0 → 3.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +72 -0
  3. data/i18n/Arianrhod/ko_kr.yml +3 -0
  4. data/i18n/Cthulhu/en_us.yml +11 -0
  5. data/i18n/CyberpunkRed/ja_jp.yml +389 -0
  6. data/i18n/FinalFantasyXIV/en_us.yml +4 -0
  7. data/i18n/FinalFantasyXIV/ja_jp.yml +4 -0
  8. data/i18n/FutariSousa/ja_jp.yml +158 -1
  9. data/i18n/KizunaBullet/ja_jp.yml +653 -0
  10. data/i18n/MonotoneMuseum/ja_jp.yml +246 -14
  11. data/i18n/SkynautsBouken/ja_jp.yml +114 -0
  12. data/i18n/TensaiGunshiNiNaro/ja_jp.yml +126 -0
  13. data/i18n/UnsungDuet/ja_jp.yml +62 -0
  14. data/i18n/UnsungDuet/ko_kr.yml +62 -0
  15. data/i18n/en_us.yml +5 -0
  16. data/lib/bcdice/arithmetic/parser.rb +4 -2
  17. data/lib/bcdice/base.rb +1 -1
  18. data/lib/bcdice/command/parser.rb +4 -2
  19. data/lib/bcdice/common_command/add_dice/parser.rb +4 -2
  20. data/lib/bcdice/common_command/barabara_dice/parser.rb +4 -2
  21. data/lib/bcdice/common_command/calc/parser.rb +4 -2
  22. data/lib/bcdice/common_command/reroll_dice/parser.rb +4 -2
  23. data/lib/bcdice/common_command/tally_dice/parser.rb +4 -2
  24. data/lib/bcdice/common_command/upper_dice/parser.rb +4 -2
  25. data/lib/bcdice/dice_table/range_table.rb +24 -0
  26. data/lib/bcdice/game_system/Agnostos.rb +248 -0
  27. data/lib/bcdice/game_system/Airgetlamh.rb +1 -1
  28. data/lib/bcdice/game_system/Alsetto.rb +2 -2
  29. data/lib/bcdice/game_system/AniMalus.rb +261 -0
  30. data/lib/bcdice/game_system/Arianrhod_Korean.rb +30 -0
  31. data/lib/bcdice/game_system/ArknightsFan.rb +182 -0
  32. data/lib/bcdice/game_system/Avandner.rb +1 -1
  33. data/lib/bcdice/game_system/BBN.rb +1 -1
  34. data/lib/bcdice/game_system/BadLife.rb +3 -3
  35. data/lib/bcdice/game_system/BarnaKronika.rb +1 -1
  36. data/lib/bcdice/game_system/BlackJacket.rb +244 -0
  37. data/lib/bcdice/game_system/Chill3.rb +6 -6
  38. data/lib/bcdice/game_system/ConvictorDrive.rb +5 -4
  39. data/lib/bcdice/game_system/Cthulhu_English.rb +59 -0
  40. data/lib/bcdice/game_system/CyberpunkRed.rb +14 -4
  41. data/lib/bcdice/game_system/DarkSouls.rb +1 -1
  42. data/lib/bcdice/game_system/DivineCharger.rb +841 -0
  43. data/lib/bcdice/game_system/Elric.rb +1 -1
  44. data/lib/bcdice/game_system/FinalFantasyXIV.rb +115 -0
  45. data/lib/bcdice/game_system/FinalFantasyXIV_English.rb +39 -0
  46. data/lib/bcdice/game_system/FullFace.rb +121 -0
  47. data/lib/bcdice/game_system/FutariSousa.rb +88 -8
  48. data/lib/bcdice/game_system/InfiniteFantasia.rb +4 -1
  49. data/lib/bcdice/game_system/Insane_Korean.rb +1 -1
  50. data/lib/bcdice/game_system/InvisibleLiar.rb +79 -0
  51. data/lib/bcdice/game_system/Irisbane.rb +1 -1
  52. data/lib/bcdice/game_system/KillDeathBusiness.rb +1 -1
  53. data/lib/bcdice/game_system/KizunaBullet.rb +240 -0
  54. data/lib/bcdice/game_system/KyokoShinshoku.rb +201 -0
  55. data/lib/bcdice/game_system/Liminal.rb +136 -0
  56. data/lib/bcdice/game_system/MetalHead.rb +1 -1
  57. data/lib/bcdice/game_system/MetalHeadExtream.rb +1 -1
  58. data/lib/bcdice/game_system/MonotoneMuseum.rb +14 -1
  59. data/lib/bcdice/game_system/NRR.rb +122 -0
  60. data/lib/bcdice/game_system/NSSQ.rb +1 -1
  61. data/lib/bcdice/game_system/NightWizard.rb +1 -1
  62. data/lib/bcdice/game_system/NightWizard3rd.rb +15 -2
  63. data/lib/bcdice/game_system/OneWayHeroics.rb +1 -1
  64. data/lib/bcdice/game_system/PastFutureParadox.rb +1238 -0
  65. data/lib/bcdice/game_system/Postman.rb +3 -3
  66. data/lib/bcdice/game_system/RecordOfSteam.rb +1 -1
  67. data/lib/bcdice/game_system/RuneQuestRoleplayingInGlorantha.rb +1 -1
  68. data/lib/bcdice/game_system/Ryutama.rb +4 -4
  69. data/lib/bcdice/game_system/ShuumatsuBargainWars.rb +203 -0
  70. data/lib/bcdice/game_system/Siren.rb +97 -0
  71. data/lib/bcdice/game_system/Skynauts.rb +1 -1
  72. data/lib/bcdice/game_system/SkynautsBouken.rb +45 -130
  73. data/lib/bcdice/game_system/Strave.rb +1 -1
  74. data/lib/bcdice/game_system/SwordWorld.rb +1 -1
  75. data/lib/bcdice/game_system/TensaiGunshiNiNaro.rb +228 -0
  76. data/lib/bcdice/game_system/TheOneRing2nd.rb +406 -0
  77. data/lib/bcdice/game_system/TheUnofficialHollowKnightRPG.rb +185 -0
  78. data/lib/bcdice/game_system/TherapieSein.rb +1 -1
  79. data/lib/bcdice/game_system/TrailOfCthulhu.rb +139 -0
  80. data/lib/bcdice/game_system/TrinitySeven.rb +1 -1
  81. data/lib/bcdice/game_system/UnsungDuet.rb +17 -75
  82. data/lib/bcdice/game_system/UnsungDuet_Korean.rb +41 -0
  83. data/lib/bcdice/game_system/Utakaze.rb +55 -2
  84. data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +12 -6
  85. data/lib/bcdice/game_system/Warhammer4.rb +124 -3
  86. data/lib/bcdice/game_system/WerewolfTheApocalypse5th.rb +12 -6
  87. data/lib/bcdice/game_system/Yotabana.rb +62 -0
  88. data/lib/bcdice/game_system/cthulhu7th/full_auto.rb +1 -1
  89. data/lib/bcdice/game_system/cyberpunk_red/tables.rb +111 -473
  90. data/lib/bcdice/game_system/kizuna_bullet/tables.rb +171 -0
  91. data/lib/bcdice/game_system/sword_world/rating_parser.rb +4 -2
  92. data/lib/bcdice/game_system.rb +24 -0
  93. data/lib/bcdice/loader.rb +1 -1
  94. data/lib/bcdice/version.rb +1 -1
  95. metadata +55 -5
@@ -0,0 +1,126 @@
1
+ ja_jp:
2
+ TensaiGunshiNiNaro:
3
+ JUDGE:
4
+ critical: スペシャル
5
+ fumble: ファンブル
6
+ NORMAL:
7
+ critical: 【戦略ポイント】が1点上昇する。
8
+ fumble: 天才軍師のプレイヤーは、【イレギュラー】を山札から1枚引く。
9
+ BLADE:
10
+ critical: そのラウンドの間、自分の【攻撃力】が1点上昇する。この効果は2回まで重複する。
11
+ YOU:
12
+ critical: 獲得した準英傑に好きな英傑汎用スキルを1つ選んで獲得させることができる。
13
+ DAMAGE:
14
+ success: "%{damage}ダメージ, 成功, 【HP】が%{dec}点減少する"
15
+ failure: "%{damage}ダメージ, 失敗, 【HP】はそのまま"
16
+ table:
17
+ RELA:
18
+ name: 関係決定表
19
+ d66_sort_type: ASC
20
+ items:
21
+ 11: おじやおばのような関係/遠い親戚
22
+ 12: 尊敬できる存在/嫉妬した相手
23
+ 13: その能力に心を打たれた/その能力は危険だと感じた
24
+ 14: いつも助かっている/もっと頑張ってほしい
25
+ 15: いっしょにいると楽しい/鬱陶しい
26
+ 16: 国のために働いている忠臣/油断ならない人物
27
+ 22: 私の宝物/俗物
28
+ 23: 死ぬときは一緒だ/一緒に生き残ろう
29
+ 24: この剣を預ける/共に研鑽しよう
30
+ 25: すべてを捧げたい/恩に報いたい
31
+ 26: 守ると決めた/幸せになってほしい
32
+ 33: 自分にはできない/自分でもできそうだと思う
33
+ 34: からかいがいのある相手/真面目な話ばかりする
34
+ 35: 盟友!/友達
35
+ 36: いい人/怖い人
36
+ 44: 半身/仇敵
37
+ 45: 幼いころからの親友/知り合ったばかりでよくわからない
38
+ 46: 兄弟姉妹(のようなもの)/仕事仲間
39
+ 55: 憧れる/同類と思われると困る
40
+ 56: いいところを知っている/皆に隠している顔を知っているのは自分だけ
41
+ 66: 生き別れのきょうだいに似ている……/同郷
42
+ PTGS:
43
+ name: 平時天才軍師表
44
+ d66_sort_type: ASC
45
+ items:
46
+ 11: サボっている
47
+ 12: 内政の改革を進めている
48
+ 13: 軍の様子を見ている
49
+ 14: 山のような書類を片付けている
50
+ 15: 密偵と影の中で会話をしている
51
+ 16: 戦術書を読んでいる
52
+ 22: 釣りをしている
53
+ 23: 街に出て人々の様子を見ている
54
+ 24: 芸術を嗜んでいる
55
+ 25: 音楽を聴いてリラックスしている
56
+ 26: よい食事を求めて町を彷徨っている
57
+ 33: 王族や貴族のパーティに参加している
58
+ 34: 近隣諸国を観光しつつ内情を探る
59
+ 35: 自国の経済状況を見つめ直している
60
+ 36: 自国の歴史を改めて確かめている
61
+ 44: 頭を休めるため寝ている
62
+ 45: 一人自然の中に身を置いている
63
+ 46: 自分の軍略を書籍にまとめている
64
+ 55: 不敵な笑みを浮かべているが何をしているかは秘密
65
+ 56: 次なる計略を考えてニヤついている
66
+ 66: よからぬことをしていると噂されている
67
+ PTHE:
68
+ name: 平時英傑表
69
+ d66_sort_type: ASC
70
+ items:
71
+ 11: 堂々とサボっている
72
+ 12: 村同士の諍いを収めている
73
+ 13: 軍の指南をしている
74
+ 14: 自らの技を磨いている
75
+ 15: 仲間と国の未来について話している
76
+ 16: 書類仕事をこなしている
77
+ 22: 狩りをしている
78
+ 23: 街に出て人々と触れ合っている
79
+ 24: 街の食事を楽しんでいる
80
+ 25: 街で買い物を楽しんでいる
81
+ 26: 話を聞き困りごとを解決している
82
+ 33: 自分にできることは何か考えている
83
+ 34: 教師のような立場となって人に教えている
84
+ 35: 趣味に走っている
85
+ 36: 誰かと一緒に出かけている
86
+ 44: 自国の観光地を回って楽しむ
87
+ 45: 自分たちが置かれている状況を再確認する
88
+ 46: 周辺国を回りどんな状況下確認する
89
+ 55: 自然の中に身を置いて集中する
90
+ 56: 一人で静かに過ごしている
91
+ 66: 軍師のことを見張っている
92
+ SCOU:
93
+ name: スカウト表
94
+ d66_sort_type: ASC
95
+ items:
96
+ 11: 仮面で顔を隠した怪しげな騎士が仲間に入れてほしいと言ってきた。その素性はわからない。いったい何者なんだ……。
97
+ 12: 酒場や飯屋で出会った人物と国や世界について語り合う機会があり、その問答によって同志になりえると確信した。
98
+ 13: 兵の中に、目立つ者がいたので実力を試してみた。試験の結果は散々だったが、一点だけ優れたところがあり、これは使えるかもしれないと考えた。
99
+ 14: PCや準英傑の師匠や先生が自分にもできることはないかとやってきた。現役を退いて長い人物ではあるが、その経験は役に立つだろう。
100
+ 15: PCの親戚を名乗る者がやってきた。その真偽はともかく(PCが真偽を決めても構いません)、実力はあるようだ。
101
+ 16: 見聞を広めるために旅行に出かけていた者が帰ってきた。外の世界で身につけた技能を使い、この国に尽くしたいという。
102
+ 22: 王族が前線で働きたいと申し出てきた。覚悟は本物のようで、何度言っても申し出を変えなかった。
103
+ 23: 準英傑の一族の者が現れた。その人物は自分も準英傑のように働きたいという。
104
+ 24: 暴れっぷりで街で噂になっていた人物がいたので、会いに行ってみると中々気持ちの良い人物であった。声をかけてみることにする。
105
+ 25: 賊のアジトを殲滅したら、その賊に囚われていた者が感謝をしながら協力を申し出てきた。賊を一人でなんとかしようとしていたらしい。
106
+ 26: 敵軍に雇われていた部隊の中に、PCや準英傑の親族がいた。PCや準英傑の説得によって、仲間になってくれた。
107
+ 33: 釣りをしていると、声をかけてきた人がいた。その人物との問答でただ者ではないと直感し、軍に誘った。
108
+ 34: 古い知り合いが危機のただ中にいるPCを心配して訪ねてきた。逃げ出すことを勧めているが、逆に協力を要請できないだろうか。
109
+ 35: 敵や賊の奇襲に遭ったが、腕の立つ傭兵に偶然にも助けられた。その人物の腕を見込んで、これからも協力してもらえないか交渉する。
110
+ 36: 若い騎士たちの中で、頭角を現した者がいる。会ってみると中々気が利く真面目な人物で、好意が持てた。
111
+ 44: (海や湖に近いなら)漁師や船員と出会い、(山に近いなら)山師や山に住む者たちと出会い、彼の助力を受けた。
112
+ 45: 義憤に燃えてやってきた国民がいた。情熱は確かだが、ただの農民で本当に役に立つのかはまだわからない。
113
+ 46: 国の貴族が自ら志願をしてきてくれた。高貴な精神を持っており、その精神は誉れ高い。ただ、少しお坊ちゃん(お嬢様)育ちすぎる。
114
+ 55: 「あえて不利な方につきたい」と言う物好きな人がやってきて、協力を願い出てくれた。変わった人物だが、助かる申し出だ。
115
+ 56: 敵国の兵だったが、こちらの行動に胸を打たれてやって来た者がいる。こちら側に歩み寄ってくれたこの人物を説得して仲間にできないだろうか。
116
+ 66: PCや準英傑に惚れているという人物がやってきて、協力を約束してくれた。その想いはまだ秘めいているようだが、いつか明かす日が来るのだろうか。
117
+ BDST:
118
+ name: 変調表
119
+ type: 1D6
120
+ items:
121
+ - "加重:決戦フェイズ中、自分は「移動」を行えない。スキルの効果によってエリアを移動することはできる。"
122
+ - "毒:ラウンド終了時に、自分は【HP】が1点減少する。また、自分が参加した判定ではスペシャルが発生しない"
123
+ - "暴走:自分キャラクターがこの変調を受けている場合、天才軍師が【イレギュラー】を公開するとき、「好きな【イレギュラー】を1枚選んで公開する」ではなく「ランダムに1枚選んで公開する」となる。敵軍がこの変調を受けている場合、【防御力】が2点減少する。"
124
+ - "激昂:自分が参加した判定でファンブルが発生した場合、通常のファンブルの処理に加え山札から【イレギュラー】を1枚引いて公開する。敵軍がこの変調を受けている場合、【攻撃力】が1点減少する。"
125
+ - "猛暑:自分は【防御力】が2点減少する。また、自分が使用するスキルはコストが1点上昇する。"
126
+ - "凍え:自分は【攻撃力】が1点減少する。また、自分は「移動」を行うたびに【戦略ポイント】が1点減少する。"
@@ -0,0 +1,62 @@
1
+ ja_jp:
2
+ UnsungDuet:
3
+ MutatingInjuryTable:
4
+ name: "変異表:外傷"
5
+ type: "1D6"
6
+ items:
7
+ - "顔の傷 → 顔にできた傷。じわりと血がにじむ"
8
+ - "大きな怪我 → 早く手当てをしないと命に関わる"
9
+ - "痛みのない傷 → 大きな傷なのに、なぜか痛くない"
10
+ - "喪失 → 身体のどこかが消えてしまった"
11
+ - "文字のような傷跡 → 読めない文字のような傷"
12
+ - "模様を描くアザ → 模様のような、身体にできたアザ"
13
+ MutatingPhysicalConditionTable:
14
+ name: "変異表:体調の変化"
15
+ type: "1D6"
16
+ items:
17
+ - "視界がぼやける → 目の焦点が合わない"
18
+ - "耳鳴り → ずっと甲高い音が鳴り続けている気がする"
19
+ - "異様な寒気 → 凍えそうなほどに寒く感じる"
20
+ - "発汗 → 暑いわけでもないのに、汗がだらだらと"
21
+ - "幻覚 → それが本物か幻か、区別がつかない"
22
+ - "走馬灯 → 過去のことを次々と思い出してしまう"
23
+ MutatingFearTable:
24
+ name: "変異表:恐怖"
25
+ type: "1D6"
26
+ items:
27
+ - "不安 → 漠然とした不安が心を蝕む"
28
+ - "狭い場所が怖い → 狭い場所に入りたくない"
29
+ - "震えが止まらない → どうしても落ち着かない"
30
+ - "物音が怖い → ほんの小さな物音にも怯えてしまう"
31
+ - "暗い場所が怖い → 灯りのない場所がひどく恐ろしい"
32
+ - "誰かがついてくる → 誰かが後ろにいる気がする……"
33
+ MutatingFantasyTable:
34
+ name: "変異表:幻想化"
35
+ type: "1D6"
36
+ items:
37
+ - "硝子化 → 身体の一部がガラスのように透明に"
38
+ - "羽毛化 → 身体のどこかから羽毛が生えてくる"
39
+ - "植物化 → ツタや葉が身体から生えてくる"
40
+ - "動物の瞳 → 瞳の形が動物のそれに変わってしまう"
41
+ - "有角化 → 額や側頭部から角が生えてくる"
42
+ - "陶器化 → 皮膚が陶器のようなものに変わっていく"
43
+ MutatingMindTable:
44
+ name: "変異表:精神"
45
+ type: "1D6"
46
+ items:
47
+ - "記憶の混乱 → ここはどこ、どうしてこんなところに?"
48
+ - "幼少期の記憶 → 口調や態度が幼くなってしまう"
49
+ - "素直 → 思ったことを全部言ってしまう"
50
+ - "蛮勇 → パートナーを守るために無茶ばかりする"
51
+ - "疑心暗鬼 → 何もかもが悪い方向にしか考えられない"
52
+ - "食べちゃいたい → パートナーをかじりたくなる"
53
+ MutatingOtherTable:
54
+ name: "変異表:そのほか"
55
+ type: "1D6"
56
+ items:
57
+ - "影絵化 → 身体の一部が影のようになる"
58
+ - "水槽化 → 身体の一部が水槽のようなものになる"
59
+ - "涙が止まらない → なぜか涙が流れ続ける"
60
+ - "鉤爪 → 手や足が、獣のような鉤爪になる"
61
+ - "未来視 → 未来が見えてしまう。本当かどうかは不明"
62
+ - "帰りたくない → 現実に帰りたくないと微かに思う"
@@ -0,0 +1,62 @@
1
+ ko_kr:
2
+ UnsungDuet:
3
+ MutatingInjuryTable:
4
+ name: "변이표: 상처"
5
+ type: "1D6"
6
+ items:
7
+ - "얼굴의 상처 → 얼굴에 생긴 상처. 천천히 피가 배어 나온다"
8
+ - "큰 부상 → 빨리 조치를 취하지 않으면 생명이 위험"
9
+ - "아프지 않은 상처 → 큰 상처인데 왠지 아프지 않다"
10
+ - "상실 → 몸의 어딘가가 사라져 버린다"
11
+ - "글씨 같은 상처 → 읽을 수 없는 글씨 같은 상처"
12
+ - "문양 같은 멍 → 무늬나 모양 같은 멍"
13
+ MutatingPhysicalConditionTable:
14
+ name: "변이표: 몸 상태의 변화"
15
+ type: "1D6"
16
+ items:
17
+ - "눈 앞이 흐려짐 → 눈의 초점이 맞지 않는다"
18
+ - "이명 → 고음이 계속 울리는 것 같다"
19
+ - "이상한 한기 → 얼어버릴 것처럼 춥게 느껴진다"
20
+ - "발한 → 덥지도 않은데 땀이 잔뜩 난다"
21
+ - "환각 → 이것이 진짜인지 환상인지 구별이 가지 않는다"
22
+ - "주마등 → 과거의 일을 계속해서 떠올리게 된다"
23
+ MutatingFearTable:
24
+ name: "변이표: 공포"
25
+ type: "1D6"
26
+ items:
27
+ - "불안 → 막연한 불안감이 마음을 좀먹는다"
28
+ - "좁은 장소가 두려움 → 좁은 곳에 들어가고 싶지 않다"
29
+ - "몸이 떨림 → 도무지 진정이 되지 않는다"
30
+ - "소리가 두려움 → 정말 작은 소리에도 겁이 난다"
31
+ - "어두운 곳이 두려움 → 빛이 없는 장소가 엄청나게 무섭다"
32
+ - "누가 뒤따라 옴 → 누군가가 뒤에 있는 것만 같다…"
33
+ MutatingFantasyTable:
34
+ name: "변이표: 환상화"
35
+ type: "1D6"
36
+ items:
37
+ - "유리화 → 몸의 일부가 유리처럼 투명해진다"
38
+ - "깃털 → 몸의 어딘가에서 깃털이 자라난다"
39
+ - "식물화 → 몸에서 덩굴이나 잎이 자라난다"
40
+ - "동물의 눈 → 눈 모양이 동물처럼 변한다"
41
+ - "뿔 → 이마나 머리 옆쪽에 뿔이 돋아난다"
42
+ - "도기화 → 피부가 도자기처럼 변한다"
43
+ MutatingMindTable:
44
+ name: "변이표: 정신"
45
+ type: "1D6"
46
+ items:
47
+ - "기억의 혼란 → 여기는 어디? 어쩌다 이런 데 왔지?"
48
+ - "유년기의 기억 → 말투나 태도가 어려진다"
49
+ - "솔직 → 생각한 것을 전부 말해 버린다"
50
+ - "만용 → 파트너를 지키기 위해 무모한 짓만 한다"
51
+ - "의심 → 무엇이든 안 좋은 방향으로만 생각한다"
52
+ - "먹어버리고 싶다 → 파트너를 베어 먹고 싶어진다"
53
+ MutatingOtherTable:
54
+ name: "변이표: 기타"
55
+ type: "1D6"
56
+ items:
57
+ - "그림자 → 몸의 일부가 그림자가 된다"
58
+ - "어항 → 몸의 일부가 어항처럼 된다"
59
+ - "눈물이 멈추지 않음 → 왠지 계속 눈물이 난다"
60
+ - "갈퀴 → 손이나 발에 짐승 같은 갈퀴손톱/발톱이 난다"
61
+ - "미래가 보임 → 앞일이 보이지만 진짜인지는 불명"
62
+ - "돌아가고 싶지 않다 → 현실에 돌아가기 싫다는 생각이 어렴풋이 든다"
data/i18n/en_us.yml ADDED
@@ -0,0 +1,5 @@
1
+ en_us:
2
+ success: Success
3
+ failure: Failure
4
+ critical: Critical
5
+ fumble: Fumble
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.2
4
- # from Racc grammar file "".
3
+ # This file is automatically generated by Racc 1.7.3
4
+ # from Racc grammar file "parser.y".
5
5
  #
6
6
 
7
7
  require 'racc/parser.rb'
@@ -130,6 +130,7 @@ Racc_arg = [
130
130
  racc_shift_n,
131
131
  racc_reduce_n,
132
132
  racc_use_result_var ]
133
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
133
134
 
134
135
  Racc_token_to_s_table = [
135
136
  "$end",
@@ -151,6 +152,7 @@ Racc_token_to_s_table = [
151
152
  "unary",
152
153
  "round_type",
153
154
  "term" ]
155
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
154
156
 
155
157
  Racc_debug_parser = false
156
158
 
data/lib/bcdice/base.rb CHANGED
@@ -58,7 +58,7 @@ module BCDice
58
58
  @prefixes.freeze
59
59
  pattarns = CommonCommand::COMMANDS.map { |c| c::PREFIX_PATTERN.source } + @prefixes
60
60
 
61
- @command_pattern = /^S?(#{pattarns.join("|")})/i.freeze
61
+ @command_pattern = /^S?(#{pattarns.join('|')})/i.freeze
62
62
  end
63
63
 
64
64
  # @param command [String]
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.2
4
- # from Racc grammar file "".
3
+ # This file is automatically generated by Racc 1.7.3
4
+ # from Racc grammar file "parser.y".
5
5
  #
6
6
 
7
7
  require 'racc/parser.rb'
@@ -312,6 +312,7 @@ Racc_arg = [
312
312
  racc_shift_n,
313
313
  racc_reduce_n,
314
314
  racc_use_result_var ]
315
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
315
316
 
316
317
  Racc_token_to_s_table = [
317
318
  "$end",
@@ -344,6 +345,7 @@ Racc_token_to_s_table = [
344
345
  "mul",
345
346
  "add",
346
347
  "round_type" ]
348
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
347
349
 
348
350
  Racc_debug_parser = false
349
351
 
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.2
4
- # from Racc grammar file "".
3
+ # This file is automatically generated by Racc 1.7.3
4
+ # from Racc grammar file "parser.y".
5
5
  #
6
6
 
7
7
  require 'racc/parser.rb'
@@ -200,6 +200,7 @@ Racc_arg = [
200
200
  racc_shift_n,
201
201
  racc_reduce_n,
202
202
  racc_use_result_var ]
203
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
203
204
 
204
205
  Racc_token_to_s_table = [
205
206
  "$end",
@@ -242,6 +243,7 @@ Racc_token_to_s_table = [
242
243
  "filter_type",
243
244
  "filter_type_with_shorthand",
244
245
  "filter_shorthand" ]
246
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
245
247
 
246
248
  Racc_debug_parser = false
247
249
 
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.2
4
- # from Racc grammar file "".
3
+ # This file is automatically generated by Racc 1.7.3
4
+ # from Racc grammar file "parser.y".
5
5
  #
6
6
 
7
7
  require 'racc/parser.rb'
@@ -154,6 +154,7 @@ Racc_arg = [
154
154
  racc_shift_n,
155
155
  racc_reduce_n,
156
156
  racc_use_result_var ]
157
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
157
158
 
158
159
  Racc_token_to_s_table = [
159
160
  "$end",
@@ -190,6 +191,7 @@ Racc_token_to_s_table = [
190
191
  "mul",
191
192
  "unary",
192
193
  "round_type" ]
194
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
193
195
 
194
196
  Racc_debug_parser = false
195
197
 
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.2
4
- # from Racc grammar file "".
3
+ # This file is automatically generated by Racc 1.7.3
4
+ # from Racc grammar file "parser.y".
5
5
  #
6
6
 
7
7
  require 'racc/parser.rb'
@@ -138,6 +138,7 @@ Racc_arg = [
138
138
  racc_shift_n,
139
139
  racc_reduce_n,
140
140
  racc_use_result_var ]
141
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
141
142
 
142
143
  Racc_token_to_s_table = [
143
144
  "$end",
@@ -162,6 +163,7 @@ Racc_token_to_s_table = [
162
163
  "unary",
163
164
  "round_type",
164
165
  "term" ]
166
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
165
167
 
166
168
  Racc_debug_parser = false
167
169
 
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.2
4
- # from Racc grammar file "".
3
+ # This file is automatically generated by Racc 1.7.3
4
+ # from Racc grammar file "parser.y".
5
5
  #
6
6
 
7
7
  require 'racc/parser.rb'
@@ -175,6 +175,7 @@ Racc_arg = [
175
175
  racc_shift_n,
176
176
  racc_reduce_n,
177
177
  racc_use_result_var ]
178
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
178
179
 
179
180
  Racc_token_to_s_table = [
180
181
  "$end",
@@ -212,6 +213,7 @@ Racc_token_to_s_table = [
212
213
  "mul",
213
214
  "unary",
214
215
  "round_type" ]
216
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
215
217
 
216
218
  Racc_debug_parser = false
217
219
 
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.2
4
- # from Racc grammar file "".
3
+ # This file is automatically generated by Racc 1.7.3
4
+ # from Racc grammar file "parser.y".
5
5
  #
6
6
 
7
7
  require 'racc/parser.rb'
@@ -144,6 +144,7 @@ Racc_arg = [
144
144
  racc_shift_n,
145
145
  racc_reduce_n,
146
146
  racc_use_result_var ]
147
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
147
148
 
148
149
  Racc_token_to_s_table = [
149
150
  "$end",
@@ -173,6 +174,7 @@ Racc_token_to_s_table = [
173
174
  "mul",
174
175
  "unary",
175
176
  "round_type" ]
177
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
176
178
 
177
179
  Racc_debug_parser = false
178
180
 
@@ -1,7 +1,7 @@
1
1
  #
2
2
  # DO NOT MODIFY!!!!
3
- # This file is automatically generated by Racc 1.6.2
4
- # from Racc grammar file "".
3
+ # This file is automatically generated by Racc 1.7.3
4
+ # from Racc grammar file "parser.y".
5
5
  #
6
6
 
7
7
  require 'racc/parser.rb'
@@ -181,6 +181,7 @@ Racc_arg = [
181
181
  racc_shift_n,
182
182
  racc_reduce_n,
183
183
  racc_use_result_var ]
184
+ Ractor.make_shareable(Racc_arg) if defined?(Ractor)
184
185
 
185
186
  Racc_token_to_s_table = [
186
187
  "$end",
@@ -220,6 +221,7 @@ Racc_token_to_s_table = [
220
221
  "term",
221
222
  "unary",
222
223
  "round_type" ]
224
+ Ractor.make_shareable(Racc_token_to_s_table) if defined?(Ractor)
223
225
 
224
226
  Racc_debug_parser = false
225
227
 
@@ -67,6 +67,30 @@ module BCDice
67
67
  # @return [Integer] 振るダイスの面数
68
68
  attr_reader :num_of_sides
69
69
 
70
+ class << self
71
+ def from_i18n(key, locale)
72
+ table = I18n.t(key, locale: locale)
73
+ converted_items = table[:items].map do |item|
74
+ [conv_string_range(item[0]), item[1]]
75
+ end
76
+ new(table[:name], table[:type], converted_items)
77
+ end
78
+
79
+ def conv_string_range(x)
80
+ case x
81
+ when Integer
82
+ return x
83
+ when String
84
+ return x.include?("..") ? Range.new(*x.split("..", 2).map { |n| Integer(n) }) : Integer(x)
85
+ end
86
+
87
+ raise(
88
+ TypeError,
89
+ "#{@name}: #{x} (#{x.class}) must be a String or an Integer"
90
+ )
91
+ end
92
+ end
93
+
70
94
  # 表を初期化する
71
95
  #
72
96
  # ブロックを与えると、独自の結果整形処理を指定できる。