bcdice 3.13.0 → 3.15.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +104 -0
- data/i18n/Arianrhod/ko_kr.yml +3 -0
- data/i18n/Cthulhu/en_us.yml +11 -0
- data/i18n/Cthulhu/zh_hant.yml +1 -1
- data/i18n/CyberpunkRed/ja_jp.yml +389 -0
- data/i18n/CyberpunkRed/ko_kr.yml +389 -0
- data/i18n/DoubleCross/ja_jp.yml +53 -0
- data/i18n/DoubleCross/ko_kr.yml +52 -0
- data/i18n/FinalFantasyXIV/en_us.yml +4 -0
- data/i18n/FinalFantasyXIV/ja_jp.yml +4 -0
- data/i18n/FutariSousa/ja_jp.yml +284 -127
- data/i18n/KillDeathBusiness/ja_jp.yml +198 -0
- data/i18n/KizunaBullet/ja_jp.yml +653 -0
- data/i18n/MagicaLogia/ko_kr.yml +2 -2
- data/i18n/MonotoneMuseum/ja_jp.yml +246 -14
- data/i18n/MonotoneMuseum/ko_kr.yml +227 -0
- data/i18n/SkynautsBouken/ja_jp.yml +114 -0
- data/i18n/SkynautsBouken/ko_kr.yml +114 -0
- data/i18n/StratoShout/ko_kr.yml +102 -102
- data/i18n/TensaiGunshiNiNaro/ja_jp.yml +126 -0
- data/i18n/UnsungDuet/ja_jp.yml +62 -0
- data/i18n/UnsungDuet/ko_kr.yml +62 -0
- data/i18n/en_us.yml +5 -0
- data/i18n/zh_hant.yml +5 -0
- data/lib/bcdice/dice_table/range_table.rb +24 -0
- data/lib/bcdice/game_system/Agnostos.rb +248 -0
- data/lib/bcdice/game_system/Aionia.rb +131 -0
- data/lib/bcdice/game_system/AniMalus.rb +99 -59
- data/lib/bcdice/game_system/Arianrhod_Korean.rb +32 -0
- data/lib/bcdice/game_system/ArknightsFan.rb +245 -87
- data/lib/bcdice/game_system/BlackJacket.rb +244 -0
- data/lib/bcdice/game_system/BlackJacket_Korean.rb +244 -0
- data/lib/bcdice/game_system/CharonSanctions.rb +112 -0
- data/lib/bcdice/game_system/ConvictorDrive.rb +5 -4
- data/lib/bcdice/game_system/Cthulhu7th.rb +1 -1
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional/full_auto.rb +293 -0
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional/rollable.rb +43 -0
- data/lib/bcdice/game_system/Cthulhu7th_ChineseTraditional.rb +470 -306
- data/lib/bcdice/game_system/Cthulhu_English.rb +59 -0
- data/lib/bcdice/game_system/CyberpunkRed.rb +15 -6
- data/lib/bcdice/game_system/CyberpunkRed_Korean.rb +66 -0
- data/lib/bcdice/game_system/DivineCharger.rb +841 -0
- data/lib/bcdice/game_system/DoubleCross.rb +18 -1
- data/lib/bcdice/game_system/DoubleCross_Korean.rb +5 -1
- data/lib/bcdice/game_system/FinalFantasyXIV.rb +115 -0
- data/lib/bcdice/game_system/FinalFantasyXIV_English.rb +39 -0
- data/lib/bcdice/game_system/FullFace.rb +63 -12
- data/lib/bcdice/game_system/FutariSousa.rb +105 -13
- data/lib/bcdice/game_system/Garactier.rb +479 -0
- data/lib/bcdice/game_system/GardenOrder.rb +390 -9
- data/lib/bcdice/game_system/GundogRevised.rb +8 -8
- data/lib/bcdice/game_system/Insane_Korean.rb +1 -1
- data/lib/bcdice/game_system/InvisibleLiar.rb +79 -0
- data/lib/bcdice/game_system/KillDeathBusiness.rb +155 -3
- data/lib/bcdice/game_system/KimitoYell.rb +568 -0
- data/lib/bcdice/game_system/KizunaBullet.rb +240 -0
- data/lib/bcdice/game_system/KyokoShinshoku.rb +51 -8
- data/lib/bcdice/game_system/Magius.rb +125 -0
- data/lib/bcdice/game_system/Magius_3rdNewTokyoCity.rb +62 -0
- data/lib/bcdice/game_system/MonotoneMuseum.rb +14 -1
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +4 -4
- data/lib/bcdice/game_system/NRR.rb +2 -2
- data/lib/bcdice/game_system/NSSQ.rb +17 -9
- data/lib/bcdice/game_system/NervWhitePaper.rb +129 -0
- data/lib/bcdice/game_system/RogueLikeHalf.rb +198 -0
- data/lib/bcdice/game_system/RuneQuestRoleplayingInGlorantha.rb +16 -13
- data/lib/bcdice/game_system/ShinobiGami.rb +73 -43
- data/lib/bcdice/game_system/ShuumatsuBargainWars.rb +203 -0
- data/lib/bcdice/game_system/SkynautsBouken.rb +49 -134
- data/lib/bcdice/game_system/SkynautsBouken_Korean.rb +57 -0
- data/lib/bcdice/game_system/StratoShout_Korean.rb +1 -1
- data/lib/bcdice/game_system/SwordWorld.rb +5 -1
- data/lib/bcdice/game_system/SwordWorld2_5.rb +3 -2
- data/lib/bcdice/game_system/TensaiGunshiNiNaro.rb +262 -0
- data/lib/bcdice/game_system/TheIndieHack.rb +82 -0
- data/lib/bcdice/game_system/TheOneRing2nd.rb +406 -0
- data/lib/bcdice/game_system/TheUnofficialHollowKnightRPG.rb +185 -0
- data/lib/bcdice/game_system/TorgEternity.rb +35 -6
- data/lib/bcdice/game_system/TrailOfCthulhu.rb +139 -0
- data/lib/bcdice/game_system/UnsungDuet.rb +17 -75
- data/lib/bcdice/game_system/UnsungDuet_Korean.rb +41 -0
- data/lib/bcdice/game_system/Utakaze.rb +55 -2
- data/lib/bcdice/game_system/Warhammer4.rb +124 -3
- data/lib/bcdice/game_system/WoW.rb +161 -0
- data/lib/bcdice/game_system/YankeeMustDie.rb +192 -0
- data/lib/bcdice/game_system/YearZeroEngine.rb +225 -28
- data/lib/bcdice/game_system/Yotabana.rb +62 -0
- data/lib/bcdice/game_system/YuMyoKishi.rb +141 -0
- data/lib/bcdice/game_system/cyberpunk_red/tables.rb +111 -473
- data/lib/bcdice/game_system/kizuna_bullet/tables.rb +171 -0
- data/lib/bcdice/game_system/sword_world/rating_lexer.rb +1 -0
- data/lib/bcdice/game_system/sword_world/rating_options.rb +4 -1
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +5 -0
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +129 -115
- data/lib/bcdice/game_system.rb +31 -0
- data/lib/bcdice/version.rb +1 -1
- metadata +50 -6
@@ -0,0 +1,62 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BCDice
|
4
|
+
module GameSystem
|
5
|
+
class Yotabana < Base
|
6
|
+
# ゲームシステムの識別子
|
7
|
+
ID = "Yotabana"
|
8
|
+
|
9
|
+
# ゲームシステム名
|
10
|
+
NAME = "ヨタバナ"
|
11
|
+
|
12
|
+
# ゲームシステム名の読みがな
|
13
|
+
SORT_KEY = "よたはな"
|
14
|
+
|
15
|
+
# ダイスボットの使い方
|
16
|
+
HELP_MESSAGE = <<~INFO_MESSAGE_TEXT
|
17
|
+
▪️ 各種表
|
18
|
+
COT 収束表
|
19
|
+
EVT イベント表
|
20
|
+
INFO_MESSAGE_TEXT
|
21
|
+
|
22
|
+
def eval_game_system_specific_command(command)
|
23
|
+
roll_tables(command, TABLES)
|
24
|
+
end
|
25
|
+
|
26
|
+
TABLES = {
|
27
|
+
"COT" => DiceTable::Table.new(
|
28
|
+
"収束表",
|
29
|
+
"1D6",
|
30
|
+
[
|
31
|
+
"サプライズ忍者/唐突に忍者が乱入し、場面にいるキャラクターを倒して去っていく",
|
32
|
+
"仙人/唐突に仙人が乱入し、不思議な力で事態を収束させて帰っていく",
|
33
|
+
"洗脳薬/不思議な薬が散布され、キャラクターを洗脳し、事態を収束させる",
|
34
|
+
"作者の手/キャラクターたちの言動が唐突に変わり、事態が収束する。作者の大いなる手だ……",
|
35
|
+
"神の奇跡/神が奇跡を起こし事態を収束させる。または神の信徒になり、信仰の前に争いは無意味であると悟る",
|
36
|
+
"和解/話し合えば分かり合えた。この世は対話で通じ合える",
|
37
|
+
]
|
38
|
+
),
|
39
|
+
"EVT" => DiceTable::Table.new(
|
40
|
+
"イベント表",
|
41
|
+
"1D12",
|
42
|
+
[
|
43
|
+
"道端に刺さっていた聖剣を拾う",
|
44
|
+
"ゾンビの群れと遭遇する",
|
45
|
+
"落ちていたコインを拾う。ちょっとラッキーな気分になる",
|
46
|
+
"あらゆるところで爆発が!?",
|
47
|
+
"唐突に冬が訪れ、猛吹雪が襲う",
|
48
|
+
"無人のトラックが突っ込んでくる",
|
49
|
+
"ネコちゃんに懐かれる",
|
50
|
+
"料金滞納で水道を止められる",
|
51
|
+
"ゴキゲンな音楽が鳴り響く",
|
52
|
+
"水着になる",
|
53
|
+
"オークションにかけられる",
|
54
|
+
"殺人アンドロイドが襲いかかってくる",
|
55
|
+
]
|
56
|
+
),
|
57
|
+
}.freeze
|
58
|
+
|
59
|
+
register_prefix(TABLES.keys)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,141 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bcdice/base'
|
4
|
+
|
5
|
+
module BCDice
|
6
|
+
module GameSystem
|
7
|
+
class YuMyoKishi < Base
|
8
|
+
# ゲームシステムの識別子
|
9
|
+
ID = 'YuMyoKishi'
|
10
|
+
|
11
|
+
# ゲームシステム名
|
12
|
+
NAME = '幽冥鬼使'
|
13
|
+
|
14
|
+
# ゲームシステム名の読みがな
|
15
|
+
#
|
16
|
+
# 「ゲームシステム名の読みがなの設定方法」(docs/dicebot_sort_key.md)を参考にして
|
17
|
+
# 設定してください
|
18
|
+
SORT_KEY = 'ゆうみようきし'
|
19
|
+
|
20
|
+
# ダイスボットの使い方
|
21
|
+
HELP_MESSAGE = <<~MESSAGETEXT
|
22
|
+
■判定 YM+a>=b a:技能値(省略可) b:目標値(省略可)
|
23
|
+
例:YM+4>=8: 技能値による修正が+4で、目標値8の克服判定を行う
|
24
|
+
YM>=8 : 技能値による修正なしで、目標値8の克服判定を行う
|
25
|
+
YM+6 : 技能値による修正が+6で、達成値を確認する
|
26
|
+
|
27
|
+
■代償表 COT
|
28
|
+
■転禍表 TRT
|
29
|
+
MESSAGETEXT
|
30
|
+
|
31
|
+
TABLES = {
|
32
|
+
"COT" => DiceTable::Table.new(
|
33
|
+
"代償表",
|
34
|
+
"2D6",
|
35
|
+
[
|
36
|
+
"不慮の出逢い",
|
37
|
+
"深淵を覗くとき",
|
38
|
+
"時間の消費",
|
39
|
+
"奇妙な情報",
|
40
|
+
"優柔不断",
|
41
|
+
"注意散漫",
|
42
|
+
"心身耗弱",
|
43
|
+
"不穏な情報",
|
44
|
+
"遺留品",
|
45
|
+
"迫りくる危機",
|
46
|
+
"正体の露見",
|
47
|
+
]
|
48
|
+
),
|
49
|
+
"TRT" => DiceTable::Table.new(
|
50
|
+
"転禍表",
|
51
|
+
"2D6",
|
52
|
+
[
|
53
|
+
"○○と瓜二つ",
|
54
|
+
"絶対絶命",
|
55
|
+
"悪癖災う",
|
56
|
+
"冷酷な指令",
|
57
|
+
"おびえる視線",
|
58
|
+
"絡みつく妖気",
|
59
|
+
"容赦ない評定",
|
60
|
+
"無力な市民",
|
61
|
+
"未練阻む",
|
62
|
+
"縁の枷",
|
63
|
+
"邪悪な刻印",
|
64
|
+
]
|
65
|
+
),
|
66
|
+
}.freeze
|
67
|
+
|
68
|
+
# ダイスボットで使用するコマンドを配列で列挙する
|
69
|
+
register_prefix("YM", TABLES.keys)
|
70
|
+
|
71
|
+
def eval_game_system_specific_command(command)
|
72
|
+
debug("eval_game_system_specific_command Begin")
|
73
|
+
|
74
|
+
return roll_command(command) || roll_tables(command, TABLES)
|
75
|
+
end
|
76
|
+
|
77
|
+
def roll_command(command)
|
78
|
+
parser = Command::Parser.new('YM', round_type: round_type)
|
79
|
+
.restrict_cmp_op_to(:>=, nil)
|
80
|
+
cmd = parser.parse(command)
|
81
|
+
|
82
|
+
unless cmd
|
83
|
+
return nil
|
84
|
+
end
|
85
|
+
|
86
|
+
dice_list = @randomizer.roll_barabara(4, 6)
|
87
|
+
value, status = sip_pat_a(dice_list)
|
88
|
+
achievement = status == :wumian ? 0 : value + cmd.modify_number
|
89
|
+
roll_text = [
|
90
|
+
cmd.to_s,
|
91
|
+
dice_list.join(','),
|
92
|
+
value,
|
93
|
+
value == achievement ? nil : achievement,
|
94
|
+
].compact.join(" > ")
|
95
|
+
|
96
|
+
if cmd.target_number.nil?
|
97
|
+
if status == :wumian
|
98
|
+
Result.failure(roll_text)
|
99
|
+
elsif status == :yise
|
100
|
+
Result.critical(roll_text)
|
101
|
+
else
|
102
|
+
Result.new(roll_text)
|
103
|
+
end
|
104
|
+
elsif status == :wumian
|
105
|
+
Result.failure([roll_text, "可"].join(" > "))
|
106
|
+
elsif status == :yise
|
107
|
+
Result.critical([roll_text, "優"].join(" > "))
|
108
|
+
elsif achievement >= cmd.target_number
|
109
|
+
Result.success([roll_text, "良"].join(" > "))
|
110
|
+
else
|
111
|
+
Result.failure([roll_text, "可"].join(" > "))
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
def sip_pat_a(dice_list) # 十八仔
|
116
|
+
result = dice_list.each_with_object(Hash.new(0)) do |cur, acc|
|
117
|
+
acc[cur] += 1
|
118
|
+
end
|
119
|
+
case result.count
|
120
|
+
when 1
|
121
|
+
# 全てゾロ目
|
122
|
+
[20, :yise] # 一色
|
123
|
+
when 2
|
124
|
+
if result.values == [2, 2]
|
125
|
+
# 同値のダイスが2つずつ
|
126
|
+
[result.keys.max * 2, :normal]
|
127
|
+
else
|
128
|
+
# 3つの同値と1つの目のダイス
|
129
|
+
[result.keys.sum, :normal]
|
130
|
+
end
|
131
|
+
when 3
|
132
|
+
# 2つの同値と1つずつの目のダイス
|
133
|
+
[result.select { |_k, v| v == 1 }.keys.sum, :normal]
|
134
|
+
else
|
135
|
+
# 全部バラバラ
|
136
|
+
[0, :wumian] # 無面
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|