bcdice 3.3.0 → 3.6.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 +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
|