bcdice 3.3.0 → 3.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +158 -74
- data/README.md +2 -1
- data/i18n/BeginningIdol/ja_jp.yml +2806 -0
- data/i18n/BeginningIdol/ko_kr.yml +1400 -0
- data/i18n/Cthulhu/zh_hans.yml +11 -0
- data/i18n/FutariSousa/ja_jp.yml +705 -9
- data/i18n/KillDeathBusiness/ja_jp.yml +2 -2
- data/i18n/MagicaLogia/ja_jp.yml +1 -1
- data/i18n/MonotoneMuseum/ko_kr.yml +526 -53
- data/i18n/SwordWorld/ja_jp.yml +6 -0
- data/i18n/SwordWorld2_0/ja_jp.yml +37 -0
- data/i18n/SwordWorld2_5/ja_jp.yml +57 -0
- data/lib/bcdice/common_command/add_dice/node.rb +28 -4
- data/lib/bcdice/common_command/add_dice/parser.rb +149 -85
- data/lib/bcdice/common_command/choice.rb +82 -7
- data/lib/bcdice/common_command/tally_dice/node.rb +135 -0
- data/lib/bcdice/common_command/tally_dice/parser.rb +302 -0
- data/lib/bcdice/common_command/tally_dice.rb +19 -0
- data/lib/bcdice/common_command.rb +2 -0
- data/lib/bcdice/dice_table/d66_left_range_table.rb +29 -0
- data/lib/bcdice/dice_table/d66_parity_table.rb +8 -0
- data/lib/bcdice/dice_table/d66_table.rb +5 -1
- data/lib/bcdice/dice_table.rb +1 -0
- data/lib/bcdice/game_system/AngelGear.rb +9 -4
- data/lib/bcdice/game_system/Aoharubaan.rb +91 -0
- data/lib/bcdice/game_system/AssaultEngine.rb +91 -0
- data/lib/bcdice/game_system/Avandner.rb +1 -2
- data/lib/bcdice/game_system/Ayabito.rb +229 -0
- data/lib/bcdice/game_system/BadLife.rb +264 -289
- data/lib/bcdice/game_system/Bakenokawa.rb +244 -0
- data/lib/bcdice/game_system/BattleTech.rb +1 -1
- data/lib/bcdice/game_system/BeginningIdol.rb +116 -2390
- data/lib/bcdice/game_system/BeginningIdol_Korean.rb +10 -2312
- data/lib/bcdice/game_system/CastleInGray.rb +133 -0
- data/lib/bcdice/game_system/Cthulhu.rb +2 -2
- data/lib/bcdice/game_system/Cthulhu7th.rb +10 -10
- data/lib/bcdice/game_system/Cthulhu_SimplifiedChinese.rb +60 -0
- data/lib/bcdice/game_system/CyberpunkRed.rb +135 -0
- data/lib/bcdice/game_system/DarkDaysDrive.rb +76 -41
- data/lib/bcdice/game_system/DoubleCross.rb +5 -0
- data/lib/bcdice/game_system/Dracurouge.rb +2 -1
- data/lib/bcdice/game_system/Elysion.rb +36 -20
- data/lib/bcdice/game_system/Emoklore.rb +1 -1
- data/lib/bcdice/game_system/FateCoreSystem.rb +117 -0
- data/lib/bcdice/game_system/FutariSousa.rb +48 -4
- data/lib/bcdice/game_system/GranCrest.rb +171 -406
- data/lib/bcdice/game_system/Irisbane.rb +154 -0
- data/lib/bcdice/game_system/Karukami.rb +84 -0
- data/lib/bcdice/game_system/KemonoNoMori.rb +17 -17
- data/lib/bcdice/game_system/KurayamiCrying.rb +1 -1
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +4 -4
- data/lib/bcdice/game_system/NeverCloud.rb +19 -8
- data/lib/bcdice/game_system/PersonaO.rb +86 -0
- data/lib/bcdice/game_system/Revulture.rb +2 -2
- data/lib/bcdice/game_system/Shiranui.rb +145 -0
- data/lib/bcdice/game_system/ShuumatsuKikou.rb +298 -0
- data/lib/bcdice/game_system/StarryDolls.rb +318 -0
- data/lib/bcdice/game_system/SteamPunkers.rb +14 -1
- data/lib/bcdice/game_system/StellarKnights.rb +1 -1
- data/lib/bcdice/game_system/{SterileLife.rb → StellarLife.rb} +162 -226
- data/lib/bcdice/game_system/StrangerOfSwordCity.rb +18 -5
- data/lib/bcdice/game_system/SwordWorld.rb +11 -7
- data/lib/bcdice/game_system/SwordWorld2_0.rb +30 -38
- data/lib/bcdice/game_system/SwordWorld2_5.rb +9 -63
- data/lib/bcdice/game_system/TalesFromTheLoop.rb +83 -0
- data/lib/bcdice/game_system/TorgEternity.rb +2 -2
- data/lib/bcdice/game_system/ToshiakiHolyGrailWar.rb +92 -0
- data/lib/bcdice/game_system/VampireTheMasquerade5th.rb +29 -28
- data/lib/bcdice/game_system/YearZeroEngine.rb +40 -19
- data/lib/bcdice/game_system/beginning_idol/accessories_table.rb +31 -0
- data/lib/bcdice/game_system/beginning_idol/bad_status_table.rb +43 -0
- data/lib/bcdice/game_system/beginning_idol/chain_d66_table.rb +29 -0
- data/lib/bcdice/game_system/beginning_idol/chain_table.rb +37 -0
- data/lib/bcdice/game_system/beginning_idol/costume_table.rb +37 -0
- data/lib/bcdice/game_system/beginning_idol/d6_twice_table.rb +36 -0
- data/lib/bcdice/game_system/beginning_idol/item_table.rb +51 -0
- data/lib/bcdice/game_system/beginning_idol/my_skill_name_table.rb +44 -0
- data/lib/bcdice/game_system/beginning_idol/random_event_table.rb +31 -0
- data/lib/bcdice/game_system/beginning_idol/skill_table.rb +63 -0
- data/lib/bcdice/game_system/beginning_idol/table.rb +193 -0
- data/lib/bcdice/game_system/beginning_idol/with_abnormality.rb +74 -0
- data/lib/bcdice/game_system/beginning_idol/work_table.rb +57 -0
- data/lib/bcdice/game_system/cyberpunk_red/tables.rb +530 -0
- data/lib/bcdice/game_system/meikyu_kingdom/tables.rb +1 -1
- data/lib/bcdice/game_system/meikyu_kingdom_basic/table.rb +1 -1
- data/lib/bcdice/game_system/one_way_heroics/random_event_table.rb +4 -4
- data/lib/bcdice/game_system/satasupe/tables.rb +1 -1
- data/lib/bcdice/game_system/sword_world/rating_options.rb +47 -0
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +40 -45
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +172 -141
- data/lib/bcdice/game_system/sword_world/transcendent_test.rb +14 -10
- data/lib/bcdice/game_system.rb +16 -1
- data/lib/bcdice/randomizer.rb +1 -1
- data/lib/bcdice/version.rb +1 -1
- metadata +45 -5
@@ -0,0 +1,91 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module BCDice
|
4
|
+
module GameSystem
|
5
|
+
class AssaultEngine < Base
|
6
|
+
# ゲームシステムの識別子
|
7
|
+
ID = 'AssaultEngine'
|
8
|
+
|
9
|
+
# ゲームシステム名
|
10
|
+
NAME = 'アサルトエンジン'
|
11
|
+
|
12
|
+
# ゲームシステム名の読みがな
|
13
|
+
SORT_KEY = 'あさるとえんしん'
|
14
|
+
|
15
|
+
# ダイスボットの使い方
|
16
|
+
HELP_MESSAGE = <<~MESSAGETEXT
|
17
|
+
・判定 AEt (t目標値)
|
18
|
+
例: AE45 (目標値45)
|
19
|
+
・リロール nAEt (nロール前の値、t目標値)
|
20
|
+
例: 76AE45 (目標値45で、76を振り直す)
|
21
|
+
|
22
|
+
・スワップ(t目標値) エネミーブックP11
|
23
|
+
例: AES45 (目標値45、スワップ表示あり)
|
24
|
+
MESSAGETEXT
|
25
|
+
|
26
|
+
register_prefix('\d*AE')
|
27
|
+
|
28
|
+
def initialize(command)
|
29
|
+
super(command)
|
30
|
+
@round_type = RoundType::FLOOR # 端数切り捨て
|
31
|
+
end
|
32
|
+
|
33
|
+
def eval_game_system_specific_command(command)
|
34
|
+
cmd = Command::Parser.new(/AES?/, round_type: round_type).enable_prefix_number
|
35
|
+
.has_suffix_number.parse(command)
|
36
|
+
return nil unless cmd
|
37
|
+
|
38
|
+
target = cmd.suffix_number
|
39
|
+
target = 99 if target >= 100
|
40
|
+
|
41
|
+
if cmd.command.include?("AES") # SWAP初回
|
42
|
+
total = @randomizer.roll_once(100) % 100 # 0-99
|
43
|
+
swap = (total % 10) * 10 + (total / 10)
|
44
|
+
r1 = judge(target, total)
|
45
|
+
r2 = judge(target, swap)
|
46
|
+
text = "(AES#{format00(target)}) > #{r1.text} / スワップ#{r2.text}"
|
47
|
+
check_result(r1, r2, text)
|
48
|
+
elsif cmd.prefix_number.nil? # 初回ロール
|
49
|
+
total = @randomizer.roll_once(100) % 100 # 0-99
|
50
|
+
judge(target, total).tap do |r|
|
51
|
+
r.text = "(AE#{format00(target)}) > #{r.text}"
|
52
|
+
end
|
53
|
+
else # リロール
|
54
|
+
now = cmd.prefix_number
|
55
|
+
die = @randomizer.roll_once(10) % 10 # 0-9
|
56
|
+
new1 = judge(target, (now / 10 * 10) + die) # 1の位を振り直す
|
57
|
+
new2 = judge(target, now % 10 + die * 10) # 10の位を振り直す
|
58
|
+
|
59
|
+
text = "(#{format00(now)}AE#{format00(target)}) > #{die} > #{new1.text} / #{new2.text}"
|
60
|
+
check_result(new1, new2, text)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def format00(dice)
|
65
|
+
format("%02d", dice)
|
66
|
+
end
|
67
|
+
|
68
|
+
def check_result(result1, result2, text)
|
69
|
+
if result1.critical? || result2.critical?
|
70
|
+
Result.critical(text)
|
71
|
+
elsif result1.success? || result2.success?
|
72
|
+
Result.success(text)
|
73
|
+
elsif result1.fumble? && result2.fumble?
|
74
|
+
Result.fumble(text)
|
75
|
+
else
|
76
|
+
Result.failure(text)
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def judge(target, total)
|
81
|
+
double = (total / 10) == (total % 10)
|
82
|
+
total_text = format00(total)
|
83
|
+
if total <= target
|
84
|
+
double ? Result.critical("(#{total_text})クリティカル") : Result.success("(#{total_text})成功")
|
85
|
+
else
|
86
|
+
double ? Result.fumble("(#{total_text})ファンブル") : Result.failure("(#{total_text})失敗")
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
@@ -48,8 +48,7 @@ module BCDice
|
|
48
48
|
target = Regexp.last_match(2).to_i
|
49
49
|
damage = (Regexp.last_match(5) || 0).to_i
|
50
50
|
criticalTrigger = (Regexp.last_match(7) || 0).to_i
|
51
|
-
criticalNumber = (Regexp.last_match(9) || 1).to_i
|
52
|
-
criticalNumber = 2 if criticalNumber > 3
|
51
|
+
criticalNumber = (Regexp.last_match(9) || 1).to_i.clamp(0, 2)
|
53
52
|
return checkRoll(diceCount, target, damage, criticalTrigger, criticalNumber)
|
54
53
|
end
|
55
54
|
|
@@ -0,0 +1,229 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bcdice/command/parser'
|
4
|
+
|
5
|
+
module BCDice
|
6
|
+
module GameSystem
|
7
|
+
class Ayabito < Base
|
8
|
+
# ゲームシステムの識別子
|
9
|
+
ID = "Ayabito"
|
10
|
+
|
11
|
+
# ゲームシステム名
|
12
|
+
NAME = "あやびと"
|
13
|
+
|
14
|
+
# ゲームシステム名の読みがな
|
15
|
+
SORT_KEY = "あやひと"
|
16
|
+
|
17
|
+
HELP_MESSAGE = <<~TEXT
|
18
|
+
・判定コマンド(xAB±y@c>=z)
|
19
|
+
x:サイコロの数(10以上の場合9個振り、それ以降を成功数2として加算する)
|
20
|
+
±y:成功数への補正(省略可)
|
21
|
+
c:クリティカル値(@ごと省略可。省略時は6)
|
22
|
+
z:目標値(妨害値など。>=ごと省略可)
|
23
|
+
(例) 4AB
|
24
|
+
11AB>=5
|
25
|
+
5AB+1
|
26
|
+
6AB@5>=3
|
27
|
+
|
28
|
+
・各種表
|
29
|
+
感情表 ET
|
30
|
+
帝都東京シーン表 TST / 場面演出シーン表 BST
|
31
|
+
交流表 CET
|
32
|
+
ファンブル表 FT
|
33
|
+
封印期間表 LT
|
34
|
+
TEXT
|
35
|
+
|
36
|
+
def initialize(command)
|
37
|
+
super(command)
|
38
|
+
@sort_barabara_dice = true
|
39
|
+
@round_type = RoundType::CEIL
|
40
|
+
end
|
41
|
+
|
42
|
+
def eval_game_system_specific_command(command)
|
43
|
+
return check_action(command) || roll_tables(command, TABLES)
|
44
|
+
end
|
45
|
+
|
46
|
+
def check_action(command)
|
47
|
+
parser = Command::Parser.new("AB", round_type: RoundType::CEIL).has_prefix_number.enable_critical.restrict_cmp_op_to(nil, :>=)
|
48
|
+
parsed = parser.parse(command)
|
49
|
+
return nil if parsed.nil?
|
50
|
+
|
51
|
+
if parsed.prefix_number < 10
|
52
|
+
dice_cnt = parsed.prefix_number
|
53
|
+
over_modify = 0
|
54
|
+
else
|
55
|
+
dice_cnt = 9
|
56
|
+
over_modify = parsed.prefix_number - 9
|
57
|
+
end
|
58
|
+
modify = parsed.modify_number
|
59
|
+
critical_target = parsed.critical || 6
|
60
|
+
target = parsed.target_number
|
61
|
+
|
62
|
+
dice_arr = @randomizer.roll_barabara(dice_cnt, 6).sort
|
63
|
+
dice_str = dice_arr.join(",")
|
64
|
+
has_critical = dice_arr.any? { |x| x >= critical_target }
|
65
|
+
success_cnt = dice_arr.count { |x| x >= 4 } + dice_arr.count(6) + over_modify * 2
|
66
|
+
has_fumble = success_cnt == 0 && dice_arr.include?(1)
|
67
|
+
if has_fumble
|
68
|
+
success_cnt = 0
|
69
|
+
else
|
70
|
+
success_cnt += modify
|
71
|
+
end
|
72
|
+
result = target.nil? ? success_cnt >= 1 : success_cnt > target
|
73
|
+
|
74
|
+
Result.new.tap do |r|
|
75
|
+
r.text = "(#{dice_cnt}B6>=4)#{over_modify > 0 ? "+#{over_modify * 2}" : ''} > [#{dice_str}]#{over_modify > 0 ? "+#{over_modify * 2}" : ''} > 成功数#{success_cnt} > #{result ? '成功' : '失敗'}#{has_critical ? '(クリティカル)' : ''}#{has_fumble ? '(ファンブル)' : ''}"
|
76
|
+
r.critical = has_critical
|
77
|
+
r.fumble = has_fumble
|
78
|
+
r.success = result
|
79
|
+
r.failure = !result
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
TABLES = {
|
84
|
+
'ET' => DiceTable::D66Table.new(
|
85
|
+
'感情表',
|
86
|
+
D66SortType::NO_SORT,
|
87
|
+
{
|
88
|
+
11 => '信頼/不信感',
|
89
|
+
12 => '好奇心/無関心',
|
90
|
+
13 => '優越感/劣等感',
|
91
|
+
14 => '好意/敵意',
|
92
|
+
15 => '安心感/不安感',
|
93
|
+
16 => '愛情/偏愛',
|
94
|
+
21 => '同情/憐憫',
|
95
|
+
22 => '親近感/疎外感',
|
96
|
+
23 => '連帯感/隔意',
|
97
|
+
24 => '尽力/面倒',
|
98
|
+
25 => '貸し/借り',
|
99
|
+
26 => '庇護欲/食傷',
|
100
|
+
31 => '期待/反発',
|
101
|
+
32 => '熱狂/心酔',
|
102
|
+
33 => '幸福感/不快感',
|
103
|
+
34 => '尊敬/軽蔑',
|
104
|
+
35 => '憧憬/嫉妬',
|
105
|
+
36 => '忠誠/服従',
|
106
|
+
41 => '友情/侮蔑',
|
107
|
+
42 => '競争心/警戒',
|
108
|
+
43 => '感謝/後悔',
|
109
|
+
44 => '感服/恐怖',
|
110
|
+
45 => '興味/屈辱',
|
111
|
+
46 => '誠意/憎悪',
|
112
|
+
51 => '羨望/嫌悪',
|
113
|
+
52 => '共感/懸念',
|
114
|
+
53 => '傾倒/厭気',
|
115
|
+
54 => '赦し/怒り',
|
116
|
+
55 => '有為/苦手',
|
117
|
+
56 => '恩義/不満',
|
118
|
+
61 => '予感/困惑',
|
119
|
+
62 => '懐旧/忘却',
|
120
|
+
63 => '慕情/執着',
|
121
|
+
64 => '夢中/退屈',
|
122
|
+
65 => '贖罪/罪悪感',
|
123
|
+
66 => '慈愛/殺意',
|
124
|
+
}
|
125
|
+
),
|
126
|
+
'TST' => DiceTable::D66LeftRangeTable.new(
|
127
|
+
'帝都東京シーン表',
|
128
|
+
D66SortType::NO_SORT,
|
129
|
+
[
|
130
|
+
[1..1, Array.new(6, "子~巳までの任意の十二支を選択する。")],
|
131
|
+
[2..3, [
|
132
|
+
"[子]帝国大学の赤門、学生たちが今日も勉学に励んでいる。",
|
133
|
+
"[丑]吉原の歓楽街。昼間は静かだが、夜は活気を見せてくれる。",
|
134
|
+
"[寅]上野公園。桜に新緑、紅葉など、季節の顔を見せてくれる。",
|
135
|
+
"[卯]浅草六区は今日も賑やか。浅草寺や仲見世には、多くの人々が行き交う。",
|
136
|
+
"[辰]凌雲閣。浅草十二階として親しまれる塔に昇り、周囲を一望する。",
|
137
|
+
"[巳]丸の内の東京駅。構内の喧騒とは裏腹に、霞ヶ関は静かに時が流れる。",
|
138
|
+
]],
|
139
|
+
[4..5, [
|
140
|
+
"[午]銀座をぶらぶらと歩く。百貨店が立ち並ぶこの街では、何でも買うことができるらしい。",
|
141
|
+
"[未]日比谷の帝国劇場。演目は、話題のトップスタアによる華やかなる歌劇のようだ。",
|
142
|
+
"[申]皇居のほとり。水面にうかぶ蓮の葉が、しずかに揺れている。",
|
143
|
+
"[酉]明治神宮の境内。神聖なる雰囲気を味わうことができる。",
|
144
|
+
"[戌]新たな東京の名所である新宿。今では東西を二分する街である。",
|
145
|
+
"[亥]日本帝国軍駐屯地。妖怪人間共同実働部隊の本部も敷地内にある。",
|
146
|
+
]],
|
147
|
+
[6..6, Array.new(6, "午~亥まで任意の十二支を選択する。")],
|
148
|
+
]
|
149
|
+
),
|
150
|
+
'BST' => DiceTable::D66LeftRangeTable.new(
|
151
|
+
'場面演出シーン表',
|
152
|
+
D66SortType::NO_SORT,
|
153
|
+
[
|
154
|
+
[1..1, Array.new(6, "子~巳までの任意の十二支を選択する。")],
|
155
|
+
[2..3, [
|
156
|
+
"[子]人々が寝静まる帝都の夜。月に雲がかかるとともに、魔の香りが漂っている。",
|
157
|
+
"[丑]草木も眠る静けさの中、犬の遠吠えだけが聞こえてくる。",
|
158
|
+
"[寅]一陣の風が吹き抜ける。風に乗った匂いが、妙に鼻をくすぐってきた。",
|
159
|
+
"[卯]霧や朝もやに包まれる。向こうに見える姿は誰だろうか……",
|
160
|
+
"[辰]帝都に朝日が射す。人々は起き出し、日々の営みを始める。",
|
161
|
+
"[巳]清廉な雰囲気の風景。鳥や虫の声、風にそよぐ木々の音が聞こえてくる。",
|
162
|
+
]],
|
163
|
+
[4..5, [
|
164
|
+
"[午]時計の針がある時間を指し示す。刻を告げるチャイムや鐘が響き渡る。",
|
165
|
+
"[未]昼間の大通り。自動車や路面電車が走り、行き交う人々の雑踏が至るところで見られる。",
|
166
|
+
"[申]夕刻、どこからともなく、定かではない声や物音が漏れてくる。",
|
167
|
+
"[酉]瓦斯灯(がすとう)が通りを鮮やかに照らす。夜が街のもうひとつの顔を出し始める。",
|
168
|
+
"[戌]星空の下、月明かりが微かに夜道を照らしている。",
|
169
|
+
"[亥]光ひとつない暗闇の中。何者かの気配が蠢いている……",
|
170
|
+
]],
|
171
|
+
[6..6, Array.new(6, "午~亥まで任意の十二支を選択する。")],
|
172
|
+
]
|
173
|
+
),
|
174
|
+
'CET' => DiceTable::D66LeftRangeTable.new(
|
175
|
+
'交流表',
|
176
|
+
D66SortType::NO_SORT,
|
177
|
+
[
|
178
|
+
[1..1, Array.new(6, "感情~性格までの任意のテーマを選択する。")],
|
179
|
+
[2..3, [
|
180
|
+
"[感情]相手に抱いている感情、伝えるべきか伝えないべきか。",
|
181
|
+
"[人間]相手に人間という存在をどう思うか、聞いてみるとしよう。",
|
182
|
+
"[友達]相手に友人や仲間について語ろう。話すことで分かる想いもあるだろう。",
|
183
|
+
"[告白]相手に話していいか分からないが、自分の秘めたる想いを語ろう。",
|
184
|
+
"[思い出]相手に、過去の思い出を話してみよう。相手から昔話をきけるかもしれない。",
|
185
|
+
"[性格]相手に自身の性格を語ろう。表向きのみ話すか、奥底まで話してしまうかは、事と次第による。",
|
186
|
+
]],
|
187
|
+
[4..5, [
|
188
|
+
"[関係性]相手とは、いつからこうした関係だったのか。相手と関係性について話そう。",
|
189
|
+
"[妖怪]相手に妖怪という存在をどう思うか、聞いてみるとしよう。",
|
190
|
+
"[あやびと]相手に、自分があやびとである意味や意義を語ってみよう。",
|
191
|
+
"[想い]相手が今、何かしら想う人や物事について聞いてみよう。",
|
192
|
+
"[夢]相手に自分の夢を語ろう。未来の夢、かつて捨てた夢かもしれない。",
|
193
|
+
"[半生]相手に自身の半生を語ろう。半生こそが、今の自分となるきっかけなのだから……",
|
194
|
+
]],
|
195
|
+
[6..6, Array.new(6, "関係性~半生までの任意のテーマを選択する。")],
|
196
|
+
]
|
197
|
+
),
|
198
|
+
'FT' => DiceTable::Table.new(
|
199
|
+
'ファンブル表',
|
200
|
+
'1D6',
|
201
|
+
[
|
202
|
+
'PCの【耐久値】を-5する(最低1)。',
|
203
|
+
'PCの【活力値】を-5する(最低1)',
|
204
|
+
'PCは戦闘ないしフェイズが終了するまで《アビリティ》を使用できない。',
|
205
|
+
'PCは戦闘ないしフェイズが終了するまで[絆]を使用できない。',
|
206
|
+
'セッション終了時まで、登場するエネミーすべての【耐久値】を+3する',
|
207
|
+
'セッション終了時まで、登場するエネミーすべてのダメージを+2する。',
|
208
|
+
]
|
209
|
+
),
|
210
|
+
'LT' => DiceTable::Table.new(
|
211
|
+
'封印期間表',
|
212
|
+
'1D6',
|
213
|
+
[
|
214
|
+
# '1日',
|
215
|
+
'1週間',
|
216
|
+
'1ヶ月',
|
217
|
+
'1年',
|
218
|
+
'10年',
|
219
|
+
'50年',
|
220
|
+
'100年',
|
221
|
+
# '500年',
|
222
|
+
]
|
223
|
+
),
|
224
|
+
}.freeze
|
225
|
+
|
226
|
+
register_prefix('\d*AB', TABLES.keys)
|
227
|
+
end
|
228
|
+
end
|
229
|
+
end
|