bcdice 3.4.0 → 3.5.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 +36 -0
- data/i18n/BeginningIdol/ja_jp.yml +2806 -0
- data/i18n/BeginningIdol/ko_kr.yml +1400 -0
- data/i18n/KillDeathBusiness/ja_jp.yml +1 -1
- data/i18n/MagicaLogia/ja_jp.yml +1 -1
- data/i18n/MonotoneMuseum/ko_kr.yml +526 -53
- data/lib/bcdice/common_command/choice.rb +5 -1
- 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_table.rb +5 -1
- data/lib/bcdice/game_system/Aoharubaan.rb +91 -0
- data/lib/bcdice/game_system/AssaultEngine.rb +91 -0
- data/lib/bcdice/game_system/BadLife.rb +264 -289
- data/lib/bcdice/game_system/Bakenokawa.rb +244 -0
- 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 +6 -6
- data/lib/bcdice/game_system/DoubleCross.rb +5 -0
- data/lib/bcdice/game_system/Emoklore.rb +1 -1
- data/lib/bcdice/game_system/FateCoreSystem.rb +117 -0
- data/lib/bcdice/game_system/Karukami.rb +84 -0
- data/lib/bcdice/game_system/KurayamiCrying.rb +1 -1
- data/lib/bcdice/game_system/MonotoneMuseum_Korean.rb +4 -4
- data/lib/bcdice/game_system/{SterileLife.rb → StellarLife.rb} +162 -226
- data/lib/bcdice/game_system/SwordWorld.rb +6 -2
- data/lib/bcdice/game_system/SwordWorld2_0.rb +20 -5
- data/lib/bcdice/game_system/SwordWorld2_5.rb +6 -0
- data/lib/bcdice/game_system/TalesFromTheLoop.rb +83 -0
- 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/one_way_heroics/random_event_table.rb +4 -4
- data/lib/bcdice/game_system/sword_world/rating_parsed.rb +46 -3
- data/lib/bcdice/game_system/sword_world/rating_parser.rb +147 -106
- data/lib/bcdice/game_system.rb +8 -1
- data/lib/bcdice/version.rb +1 -1
- metadata +28 -3
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
module BCDice
|
4
4
|
module GameSystem
|
5
|
-
class
|
5
|
+
class StellarLife < Base
|
6
6
|
# ゲームシステムの識別子
|
7
|
-
ID = '
|
7
|
+
ID = 'StellarLife'
|
8
8
|
|
9
9
|
# ゲームシステム名
|
10
10
|
NAME = 'ステラーライフTRPG'
|
@@ -37,68 +37,17 @@ module BCDice
|
|
37
37
|
・超未来の宇宙船内 INT
|
38
38
|
MESSAGETEXT
|
39
39
|
|
40
|
-
register_prefix('\d*DA'
|
41
|
-
def eval_game_system_specific_command(command)
|
40
|
+
register_prefix('\d*DA')
|
41
|
+
def eval_game_system_specific_command(command)
|
42
42
|
# 通常判定部分をgetJudgeResultコマンドに切り分け
|
43
43
|
output = getJudgeResult(command)
|
44
44
|
return output unless output.nil?
|
45
45
|
|
46
46
|
# テーブル
|
47
|
-
|
48
|
-
|
49
|
-
total_n = ""
|
47
|
+
table = TABLES[command]
|
48
|
+
return table.roll(@randomizer) unless table.nil?
|
50
49
|
|
51
|
-
|
52
|
-
when 'VPFT'
|
53
|
-
type = '船名接頭辞表'
|
54
|
-
result, total_n = get_shipprefix_table
|
55
|
-
when 'VNFT'
|
56
|
-
type = '船名前半表'
|
57
|
-
result, total_n = get_shipnameformer_table
|
58
|
-
when 'VNRT'
|
59
|
-
type = '船名後半表'
|
60
|
-
result, total_n = get_shipnamelatter_table
|
61
|
-
when 'AAFT'
|
62
|
-
type = 'アバターアルファベット表①'
|
63
|
-
result, total_n = get_avataralphabetfirst_table
|
64
|
-
when 'AAST'
|
65
|
-
type = 'アバターアルファベット表②'
|
66
|
-
result, total_n = get_avataralphabetsecond_table
|
67
|
-
when 'RNST'
|
68
|
-
type = 'ランダムNPC艦表'
|
69
|
-
result, total_n = get_randomnpcship_table
|
70
|
-
when 'RET'
|
71
|
-
type = 'ランダムイベント表'
|
72
|
-
result, total_n = get_randomevent_table
|
73
|
-
when 'TRST'
|
74
|
-
type = 'お宝特徴表'
|
75
|
-
result, total_n = get_treasurespec_table
|
76
|
-
when 'TRAT'
|
77
|
-
type = 'お宝形容表'
|
78
|
-
result, total_n = get_treasureappearance_table
|
79
|
-
when 'TRMT'
|
80
|
-
type = 'お宝外見表'
|
81
|
-
result, total_n = get_treasurematerial_table
|
82
|
-
when 'TROT'
|
83
|
-
type = 'お宝物品表'
|
84
|
-
result, total_n = get_treasureobject_table
|
85
|
-
when 'TET'
|
86
|
-
type = '超未来の技術'
|
87
|
-
result, total_n = get_sftechnology_table
|
88
|
-
when 'ENT'
|
89
|
-
type = '超未来のエンタメ'
|
90
|
-
result, total_n = get_sfentertainment_table
|
91
|
-
when 'CUT'
|
92
|
-
type = '超未来の文化'
|
93
|
-
result, total_n = get_sfculture_table
|
94
|
-
when 'NAT'
|
95
|
-
type = '超未来の自然'
|
96
|
-
result, total_n = get_sfnature_table
|
97
|
-
when 'INT'
|
98
|
-
type = '超未来の宇宙船内'
|
99
|
-
result, total_n = get_sfinterior_table
|
100
|
-
end
|
101
|
-
return "#{type}(#{total_n}) > #{result}"
|
50
|
+
nil
|
102
51
|
end
|
103
52
|
|
104
53
|
def getJudgeResult(command)
|
@@ -120,9 +69,10 @@ module BCDice
|
|
120
69
|
if number <= 0 then number = 1 end
|
121
70
|
|
122
71
|
number.times do
|
123
|
-
dice = @randomizer.roll_once(10)
|
124
|
-
|
125
|
-
if (dice + correction)
|
72
|
+
dice = @randomizer.roll_once(10)
|
73
|
+
dice = 0 if dice == 10
|
74
|
+
if (dice + correction) >= single || dice == triple then success += 1 end
|
75
|
+
if (dice + correction) >= double || dice == triple then success += 1 end
|
126
76
|
if dice == triple then success += 1 end # unless triple == -1 3成功はダイス目一致時のみ
|
127
77
|
if dicetext == ""
|
128
78
|
dicetext = dice.to_s
|
@@ -148,54 +98,95 @@ module BCDice
|
|
148
98
|
return result
|
149
99
|
end
|
150
100
|
|
151
|
-
|
152
|
-
|
153
|
-
|
101
|
+
class StellarLifeD10Table < DiceTable::Table
|
102
|
+
def initialize(name, items)
|
103
|
+
super(name, '1D10', items)
|
104
|
+
end
|
154
105
|
|
155
|
-
|
106
|
+
def choice(value)
|
107
|
+
index = value - @times
|
108
|
+
return RollResult.new(@name, value, @items[index])
|
109
|
+
end
|
156
110
|
|
157
|
-
|
111
|
+
# このゲームでは D10 の出目 10 を 0 と読む
|
112
|
+
class RollResult < DiceTable::RollResult
|
113
|
+
def to_s
|
114
|
+
"#{@table_name}(#{@value == 10 ? 0 : value}) > #{@body}"
|
115
|
+
end
|
116
|
+
end
|
117
|
+
end
|
158
118
|
|
159
|
-
|
119
|
+
# 紙面上で 0 始まり 9 終わりの D10 テーブル( 0, 1, 2, ..., 8, 9 )
|
120
|
+
class StellarLifeD10_0to9_Table < StellarLifeD10Table
|
121
|
+
def initialize(name, *items)
|
122
|
+
super(name, items[1..9] + [items[0]]) # 出目 10 を 0 と読む(表示する)ため、 0 番目を末尾に回す.
|
123
|
+
end
|
124
|
+
end
|
160
125
|
|
161
|
-
|
126
|
+
# 紙面上で 1 始まり 0 終わりの D10 テーブル( 1, 2, 3, ..., 8, 9, 0 )
|
127
|
+
class StellarLifeD10_1to0_Table < StellarLifeD10Table
|
128
|
+
def initialize(name, *items)
|
129
|
+
super(name, items)
|
130
|
+
end
|
162
131
|
end
|
163
132
|
|
164
|
-
#
|
165
|
-
|
166
|
-
|
167
|
-
|
133
|
+
# D10 を 2 個振って、 100 通りの結果を得るテーブル
|
134
|
+
# (このゲームではこの振り方の表に 2D10 と書いてあるので、そういう名前にしてある)
|
135
|
+
class StellarLife2D10Table
|
136
|
+
def initialize(name, *items)
|
137
|
+
@name = name
|
138
|
+
@items = items.freeze
|
139
|
+
end
|
168
140
|
|
169
|
-
|
141
|
+
def roll(randomizer)
|
142
|
+
dices = randomizer.roll_barabara(2, 10)
|
170
143
|
|
171
|
-
|
144
|
+
row_index = dices[0] == 10 ? 0 : dices[0]
|
145
|
+
column_index = dices[1] == 10 ? 0 : dices[1]
|
172
146
|
|
173
|
-
|
147
|
+
key = row_index * 10 + column_index
|
148
|
+
chosen = @items[key]
|
174
149
|
|
175
|
-
|
150
|
+
return RollResult.new(@name, format("%02d", key), chosen)
|
151
|
+
end
|
176
152
|
|
177
|
-
|
153
|
+
# 出目 10 を 0 と読むため、ゼロパディングしなければならない
|
154
|
+
class RollResult < DiceTable::RollResult
|
155
|
+
def to_s
|
156
|
+
"#{@table_name}(#{format('%02d', @value)}) > #{@body}"
|
157
|
+
end
|
158
|
+
end
|
178
159
|
end
|
179
160
|
|
180
|
-
#
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
161
|
+
# D10 を 2 個振って、 50 通りの結果を得るテーブル
|
162
|
+
#
|
163
|
+
# イメージ図:
|
164
|
+
#
|
165
|
+
# [0-1] [2-3] .. [8-9]
|
166
|
+
# [0]
|
167
|
+
# [1]
|
168
|
+
# [2]
|
169
|
+
# :
|
170
|
+
# [8]
|
171
|
+
# [9]
|
172
|
+
#
|
173
|
+
# (c.f. ルールブック p120, p123 )
|
174
|
+
class StellarLife2D10HalfTable < StellarLife2D10Table
|
175
|
+
def initialize(name, items)
|
176
|
+
super(
|
177
|
+
name,
|
178
|
+
*items.map do |row|
|
179
|
+
row.map do |value|
|
180
|
+
[value, value]
|
181
|
+
end.flatten
|
182
|
+
end.flatten
|
183
|
+
)
|
184
|
+
end
|
194
185
|
end
|
195
186
|
|
196
|
-
|
197
|
-
|
198
|
-
|
187
|
+
TABLES = {
|
188
|
+
'VPFT' => StellarLifeD10_0to9_Table.new(
|
189
|
+
'船名接頭辞表',
|
199
190
|
'ISS(独立宇宙船)',
|
200
191
|
'PCS(惑星運搬船)',
|
201
192
|
'NSS(中立星間船)',
|
@@ -206,13 +197,9 @@ module BCDice
|
|
206
197
|
'OES(外縁探検船)',
|
207
198
|
'SSS(主権星間船)',
|
208
199
|
'HMS(陛下の船)'
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
# 船名前半表
|
214
|
-
def get_shipnameformer_table
|
215
|
-
table = [
|
200
|
+
),
|
201
|
+
'VNFT' => StellarLife2D10Table.new(
|
202
|
+
'船名前半表',
|
216
203
|
'ブラック', 'ホワイト', 'レッド', 'ブルー', 'グリーン', 'パープル', 'ライラック', 'ブラウン', 'シルバー', 'ゴールド',
|
217
204
|
'ネイビー', 'マリン', 'オーシャン', 'アクア', 'セイル', 'アンカー', 'パイレーツ', 'プライヴァティア', 'アルマダ', 'フロティラ',
|
218
205
|
'ギャリソン', 'タンク', 'センチネル', 'スクァッド', 'トループ', 'フロント', 'オフェンシブ', 'ヴァンガード', 'オーダー', 'フラッグ',
|
@@ -223,80 +210,60 @@ module BCDice
|
|
223
210
|
'フリー', 'ライト', 'リベラル', 'リッチ', 'エコノミー', 'マーケット', 'ナショナル', 'ソーシャル', 'エコロジカル', 'ナチュラル',
|
224
211
|
'ロイヤル', 'プリンシパル', 'インペリアル', 'マジェスティック', 'ノーブル', 'ロード', 'ハイネス', 'デューク', 'カウント', 'バロン',
|
225
212
|
'スモーク', 'クリア', 'ブリザード', 'ゲイル', 'ミスト', 'ヘイル', 'スノウ', 'ライトニング', 'サンダー', '(PC1人の名前)'
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
# 船名後半表
|
231
|
-
def get_shipnamelatter_table
|
232
|
-
table = [
|
213
|
+
),
|
214
|
+
'VNRT' => StellarLife2D10Table.new(
|
215
|
+
'船名後半表',
|
233
216
|
'ローズ', 'ダンデリオン', 'オーキッド', 'アザリア', 'スウォードリリー', 'アイリス', 'ラベンダー', 'プロテア', 'グラジオラス', 'マグノリア',
|
234
217
|
'ライナー', 'カッター', 'フライター', 'フェリー', 'バルジ', 'クルーザー', 'クラフト', 'リガー', 'キール', 'ヴェッセル',
|
235
218
|
'リミテッド', 'インク', 'マーチャント', 'エクスペディション', 'コンボイ', 'キャラバン', 'コマース', 'レティニュー', 'アドバイザリー', 'コンサルティング',
|
236
|
-
'テレスコープ', 'オブザーバー', 'グラス', 'コスモス', 'ヘブン', 'ノート', 'ロット', '
|
219
|
+
'テレスコープ', 'オブザーバー', 'グラス', 'コスモス', 'ヘブン', 'ノート', 'ロット', 'スペース', 'フェアラー', 'ノマド',
|
237
220
|
'ブローカー', 'ディーラー', 'ダイバー', 'ドライバー', 'アドベンチャラー', 'ランナー', 'ウォーカー', 'トラベラー', 'トレーダー', 'エクスプローラー',
|
238
221
|
'キャット', 'パンサー', 'ライオン', 'ピューマ', 'レオパルド', 'タイガー', 'ジャガー', 'オセロット', 'リンクス', 'チーター',
|
239
222
|
'ウォルフ', 'カメレオン', 'クラブ', 'オスカー', 'シャーク', 'イーグル', 'コンドル', 'ドルフィン', 'サウルス', 'フィッシュ',
|
240
223
|
'コンキスタドール', 'フサリア', 'ナイト', 'コサック', 'ヘタイロイ', 'バーサーカー', 'レギオン', 'ウォリアー', 'テルシオ', 'ライダー',
|
241
224
|
'ルール', 'ディメイン', 'レイン', 'ジャスティス', 'エンクレーブ', 'ステート', 'カントリー', 'レルム', 'ドミニオン', 'ソブリン',
|
242
|
-
'ストーム', 'テンペスト', 'アヴァランチ', 'ストライク', 'フォール', 'クエイク', 'ハリケーン', 'ブラスター', 'ブリザード', '(
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
# アバターアルファベット表①
|
248
|
-
def get_avataralphabetfirst_table
|
249
|
-
table = [
|
225
|
+
'ストーム', 'テンペスト', 'アヴァランチ', 'ストライク', 'フォール', 'クエイク', 'ハリケーン', 'ブラスター', 'ブリザード', '(PC1人の名前)'
|
226
|
+
),
|
227
|
+
'AAFT' => StellarLifeD10_0to9_Table.new(
|
228
|
+
'アバターアルファベット表①',
|
250
229
|
'A', 'F', 'G', 'I', 'J', 'K', 'R', 'S', 'T', 'V'
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
# アバターアルファベット表②
|
256
|
-
def get_avataralphabetsecond_table
|
257
|
-
table = [
|
230
|
+
),
|
231
|
+
'AAST' => StellarLifeD10_0to9_Table.new(
|
232
|
+
'アバターアルファベット表②',
|
258
233
|
'D', 'F', 'L', 'M', 'N', 'O', 'R', 'S', 'X', 'Z'
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
'大資源アステロイド 推進剤300、鋼材300を獲得', '氷火山アステロイド 推進剤300、希少金属1を獲得', 'オーガニックアステロイド 推進剤700を獲得', '金属塊 鋼材300を獲得', 'スペースデブリ 鋼材500を獲得', 'M型アステロイド 鋼材600を獲得', '放棄されたモジュール 鋼材300、希少金属1を獲得', '砕けた惑星核 希少金属3を獲得', 'レアアースアステロイド 希少金属4を獲得', 'レアアースアステロイド 希少金属4を獲得'
|
293
|
-
]
|
294
|
-
return get_table_by_d510(table)
|
295
|
-
end
|
296
|
-
|
297
|
-
# お宝特徴表
|
298
|
-
def get_treasurespec_table
|
299
|
-
table = [
|
234
|
+
),
|
235
|
+
'RNST' => StellarLife2D10HalfTable.new(
|
236
|
+
'ランダムNPC艦表',
|
237
|
+
[
|
238
|
+
['装甲+20(HP+400)', '装甲+20(HP+400)', '〈電磁パルスフィールド〉1基', '〈中性粒子ビーム砲〉2基', '〈バリアフィールド〉2基'],
|
239
|
+
['装甲+20(HP+400)', '装甲+20(HP+400)', '〈電磁パルスフィールド〉1基', '〈高機動ミサイル〉2基', '〈バリアフィールド〉2基'],
|
240
|
+
['装甲+20(HP+400)', '装甲+20(HP+400)', '〈リサイクルフォージ〉', '〈高機動ミサイル〉2基', '〈バリアフィールド〉2基'],
|
241
|
+
['装甲+20(HP+400)', '装甲+20(HP+400)', '〈リサイクルフォージ〉', '〈高機動ミサイル〉2基', '〈レーザーディフェンス〉2基'],
|
242
|
+
['装甲+20(HP+400)', '〈ホーミング量子ビーム〉2基', '〈高圧縮精製装置〉', '〈アタックドローン〉1基', '〈レーザーディフェンス〉2基'],
|
243
|
+
['装甲+20(HP+400)', '〈ホーミング量子ビーム〉2基', '〈高圧縮精製装置〉', '〈爆縮高エネルギービーム砲〉2基', '〈レーザーディフェンス〉2基'],
|
244
|
+
['装甲+20(HP+400)', '〈ホーミング量子ビーム〉2基', '〈艦載メタルディテクター〉', '〈マグネティックアロイミサイル〉2基', '〈艦内防護装甲〉'],
|
245
|
+
['装甲+20(HP+400)', '〈ロングランスミサイル〉2基', '〈「スターブレイカー」のハリボテ〉', '〈ドローンアバター〉1基', '装甲+40(HP+800)'],
|
246
|
+
['装甲+20(HP+400)', '〈ロングランスミサイル〉2基', '〈中性粒子ビーム砲〉2基', '〈拡散粒子ビーム砲〉2基', '装甲+40(HP+800)'],
|
247
|
+
['装甲+20(HP+400)', '〈ロングランスミサイル〉2基', '〈中性粒子ビーム砲〉2基', '〈マイクロミサイルポッド〉2基', '装甲+40(HP+800)'],
|
248
|
+
]
|
249
|
+
),
|
250
|
+
'RET' => StellarLife2D10HalfTable.new(
|
251
|
+
'ランダムイベント表',
|
252
|
+
[
|
253
|
+
['燃料1 《周辺探索》成功数0~1では推進剤[1D10×30]獲得', '鋼材1 《周辺探索》成功数0~1では鋼材[1D10×30]獲得', '金属塊 鋼材300を獲得', '砕けた惑星核 希少金属3を獲得', '大資源アステロイド 推進剤300、鋼材300を獲得'],
|
254
|
+
['燃料1 《周辺探索》成功数0~1では推進剤[1D10×30]獲得', '鋼材1 《周辺探索》成功数0~1では鋼材[1D10×30]獲得', 'S型アステロイド 鋼材400を獲得', '燃料1 《周辺探索》成功数0~1では推進剤[1D10×30]獲得', '氷火山アステロイド 推進剤300、希少金属1を獲得'],
|
255
|
+
['燃料1 《周辺探索》成功数0~1では推進剤[1D10×30]獲得', '巨大暗黒星雲 この星系ではビーム属性の攻撃の判定で達成値-1', 'S型アステロイド 鋼材400を獲得', '燃料1 《周辺探索》成功数0~1では推進剤[1D10×30]獲得', 'オーガニックアステロイド 推進剤700を獲得'],
|
256
|
+
['燃料1 《周辺探索》成功数0~1では推進剤[1D10×30]獲得', '超新星残骸 この星系では実体弾属性の攻撃の判定で達成値-1', 'スペースデブリ 鋼材500を獲得', '燃料1 《周辺探索》成功数0~1では推進剤[1D10×30]獲得', '金属塊 鋼材300を獲得'],
|
257
|
+
['燃料1 《周辺探索》成功数0~1では推進剤[1D10×30]獲得', 'C型アステロイド 推進剤400を獲得', 'スペースデブリ 鋼材500を獲得', '燃料1 《周辺探索》成功数0~1では推進剤[1D10×30]獲得', 'スペースデブリ 鋼材500を獲得'],
|
258
|
+
['鋼材1 《周辺探索》成功数0~1では鋼材[1D10×30]獲得', '氷のアステロイド群 推進剤500を獲得', 'M型アステロイド 鋼材600を獲得', '鋼材1 《周辺探索》成功数0~1では鋼材[1D10×30]獲得', 'M型アステロイド 鋼材600を獲得'],
|
259
|
+
['鋼材1 《周辺探索》成功数0~1では鋼材[1D10×30]獲得', '巨大アイスブロック 推進剤600を獲得', '艦船の残骸 鋼材700を獲得', '鋼材1 《周辺探索》成功数0~1では鋼材[1D10×30]獲得', '放棄されたモジュール 鋼材300、希少金属1を獲得'],
|
260
|
+
['鋼材1 《周辺探索》成功数0~1では鋼材[1D10×30]獲得', '資源アステロイド 推進剤200、鋼材200を獲得', '大資源アステロイド 推進剤300、鋼材300を獲得', '鋼材1 《周辺探索》成功数0~1では鋼材[1D10×30]獲得', '砕けた惑星核 希少金属3を獲得'],
|
261
|
+
['鋼材1 《周辺探索》成功数0~1では鋼材[1D10×30]獲得', '枯渇彗星核 実体弾攻撃でダメージ200を出すと推進剤600を獲得', '小惑星の欠片 ビーム攻撃でダメージ200を出すと鋼材600を獲得', '氷のアステロイド群 推進剤500を獲得', 'レアアースアステロイド 希少金属4を獲得'],
|
262
|
+
['鋼材1 《周辺探索》成功数0~1では鋼材[1D10×30]獲得', '放棄されたドローン 鋼材200、希少金属1を獲得', '希少金属アステロイド 希少金属2を獲得', '巨大アイスブロック 推進剤600を獲得', 'レアアースアステロイド 希少金属4を獲得'],
|
263
|
+
]
|
264
|
+
),
|
265
|
+
'TRST' => StellarLife2D10Table.new(
|
266
|
+
'お宝特徴表',
|
300
267
|
'恐竜を模した(価値+3)', 'ヘビを模した(価値+1)', '魚を模した(価値+1)', 'イヌを模した(価値+1)', 'ウマを模した(価値+1)', 'ネズミを模した(価値+1)', 'ウサギを模した(価値+1)', 'クマを模した(価値+1)', 'ネコを模した(価値+1)', '鳥を模した(価値+2)',
|
301
268
|
'触り心地の良い(価値+1)', 'ふかふかした(価値+1)', 'ふわふわの', '柔らかな', 'なめらかな', 'かすかに震える', 'とげとげした', '硬質な', 'ザラッとした', '持ちやすい(価値+1)',
|
302
269
|
'美しい(価値+1)', 'きれいな', '麗しの(価値+1)', '華美な', '派手な', 'ほのかに発光する', '色とりどりの', '鮮やかな', '変化に富む', '可憐な(価値+1)',
|
@@ -307,13 +274,9 @@ module BCDice
|
|
307
274
|
'気高き(価値+1)', '艶やかな', '気取った', '気位の高い', 'リッチな', '気品漂う', '高潔な', '格調高い(価値+1)', '典雅な', 'ロイヤルな(価値+1)',
|
308
275
|
'闇に溶けるような(価値+1)', '血塗られた', '片翼の', '円環の', '「機関」の', 'オッドアイの', '片目の', '堕天使の', '二重人格の(価値+1)', '輝きを纏う(価値+1)',
|
309
276
|
'秘密を持つ(価値+2)', 'いわく付きの(価値+1)', '歴史ある(価値+1)', '奪い合われた(価値+1)', '受け継がれた(価値+1)', '失われた文化の(価値+1)', '謎に満ちた(価値+1)', '廃墟で見つかった(価値+1)', 'あのシリーズの1つ(価値+1)', '寵愛を受けた(価値+3)'
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
# お宝形容表
|
315
|
-
def get_treasureappearance_table
|
316
|
-
table = [
|
277
|
+
),
|
278
|
+
'TRAT' => StellarLife2D10Table.new(
|
279
|
+
'お宝形容表',
|
317
280
|
'ブレスト(価値+3)', 'ホーリー(価値+1)', 'ワンダフル(価値+1)', 'シャイニング(価値+1)', 'スーパー(価値+1)', 'エクセレント(価値+1)', 'グロリアス(価値+1)', 'グレート(価値+1)', 'フラワリー(価値+1)', 'ミラクル(価値+2)',
|
318
281
|
'アース(価値+1)', 'サバンナ(価値+1)', 'マウンテン', 'リバー', 'フォレスト', 'ジャングル', 'デザート', 'ハイランド', 'レイク', 'オーシャン(価値+1)',
|
319
282
|
'スペース(価値+1)', 'コスモ', 'ワールド(価値+1)', 'ユニバーサル', 'スカイ', 'メテオール', 'コメット', 'ルナティック', 'プラネタリー', 'ステラー(価値+1)',
|
@@ -324,13 +287,9 @@ module BCDice
|
|
324
287
|
'宇宙(価値+1)', '乾坤', '世界', '森羅万象', '空の', '流星の', '隕石の', '月の(価値+1)', '惑星', '星の(価値+1)',
|
325
288
|
'大地の(価値+1)', '草原の', '山の', '川の', '森の', '林の', '砂漠の', '高地の', '湖の(価値+1)', '海の(価値+1)',
|
326
289
|
'祝福の(価値+2)', '神聖な(価値+1)', '不思議な(価値+1)', '輝かしい(価値+1)', '超(価値+1)', '素晴らしい(価値+1)', '栄光の(価値+1)', '偉大な(価値+1)', '華の(価値+1)', '奇跡の(価値+3)'
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
# お宝外見表
|
332
|
-
def get_treasurematerial_table
|
333
|
-
table = [
|
290
|
+
),
|
291
|
+
'TRMT' => StellarLife2D10Table.new(
|
292
|
+
'お宝外見表',
|
334
293
|
'ダイヤモンド(価値+3)', 'ジェイド(価値+1)', 'エメラルド(価値+1)', 'トパーズ(価値+1)', 'サファイア(価値+1)', 'ルビー(価値+1)', 'ガーネット(価値+1)', 'ラピスラズリ(価値+1)', 'アメジスト(価値+1)', 'スモーキークォーツ(価値+2)',
|
335
294
|
'ゴールデン(価値+1)', 'チタン(価値+1)', 'ブリキの', 'アイアン', 'スチール', '真鍮の', 'ブロンズ', 'カッパー', 'シルバー', 'プラチナ(価値+1)',
|
336
295
|
'マーブル(価値+1)', 'グラナイト', 'オブシディアン(価値+1)', 'スレート', 'ライムストーン', 'ガラス', 'リネン', 'ビロード', 'コットン', 'シルク(価値+1)',
|
@@ -341,13 +300,9 @@ module BCDice
|
|
341
300
|
'大理石の(価値+1)', '御影石の', '黒曜石の', '粘板岩の', '石灰岩の', '玻璃の', '麻の', '天鵞絨の(価値+1)', '綿の', '絹の(価値+1)',
|
342
301
|
'黄金の(価値+1)', 'アルミニウム', '錫の', '鉄の', '鋼鉄の', '鉛の', '青銅の', '銅の', '銀の(価値+1)', '白金の(価値+1)',
|
343
302
|
'金剛石の(価値+2)', '翡翠の(価値+1)', '翠玉の(価値+1)', '黄玉の(価値+1)', '蒼玉の(価値+1)', '紅玉の(価値+1)', '紅榴石の(価値+1)', '瑠璃の(価値+1)', '紫水晶の(価値+1)', '煙水晶の(価値+3)'
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
# お宝物品表
|
349
|
-
def get_treasureobject_table
|
350
|
-
table = [
|
303
|
+
),
|
304
|
+
'TROT' => StellarLife2D10Table.new(
|
305
|
+
'お宝物品表',
|
351
306
|
'フルート(価値+3)', 'オカリナ(価値+1)', 'ギター(価値+1)', 'ピアノ(価値+1)', 'ドラム(価値+1)', 'ティンパニー(価値+1)', '太鼓(価値+1)', 'トランペット(価値+1)', 'ハープ(価値+1)', 'マイク(価値+2)',
|
352
307
|
'ブランコ(価値+1)', '人形(価値+1)', 'シーソー', 'ベンチ', 'すべり台', 'ラケット', 'ミニカー', 'コースター', 'ボール', 'オーブ(価値+1)',
|
353
308
|
'皿(価値+1)', 'プレート', 'ティーセット(価値+1)', '箸', 'フォーク', 'スプーン', 'ナイフ', 'フライパン', '鍋', 'カップ(価値+1)',
|
@@ -358,13 +313,9 @@ module BCDice
|
|
358
313
|
'スマートドレス(価値+1)', 'タッチパネル', 'インプットグローブ', 'プロジェクター', 'ディテクター', 'アナライザー', 'インジェクター', 'エアーボトル(価値+1)', 'ワイヤーロンチャー', 'ジェットパック(価値+1)',
|
359
314
|
'ランプ(価値+1)', 'ドア', '窓', '灯籠', '棚', 'キッチン', 'ソファ', '椅子', 'テーブル(価値+1)', 'ベッド(価値+1)',
|
360
315
|
'人物像(価値+2)', 'フィギュア(価値+1)', 'モデル(価値+1)', '植物像(価値+1)', '動物像(価値+1)', 'レリーフ(価値+1)', 'オブジェ(価値+1)', 'ドーム(価値+1)', 'タペストリー(価値+1)', '絵画(価値+3)'
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
# 超未来の技術
|
366
|
-
def get_sftechnology_table
|
367
|
-
table = [
|
316
|
+
),
|
317
|
+
'TET' => StellarLifeD10_1to0_Table.new(
|
318
|
+
'超未来の技術',
|
368
319
|
'船の種、家の種、ビルの種:発達したバイオテクノロジーにより、光合成をしながらカーボン製品を作り出す「種」が作られました。土に植えると一軒家に育ったり、立派な木になってコップの実をならせたりします。',
|
369
320
|
'ワープリング:星と星の間を結ぶ空間のトンネルを作り出すのが、「ワープリング」です。中に入ると超光速で空間が周回しており、数時間から数日で数光年先の星に辿り着くことができます。',
|
370
321
|
'擬似重力発生装置:超未来の宇宙船や宇宙ステーションでは、回転による遠心力などを活用して、擬似的に床に引っ張られる力を発生させています。パラメーターを変えれば、物の重さも体重も思いのままです。',
|
@@ -375,30 +326,22 @@ module BCDice
|
|
375
326
|
'ジェットパック:個人用の強力なジェット噴射機で、誰でも空に飛び上がることができます。長く使っていると高熱を発するので注意。宇宙空間では、これとスマートワイヤーを組み合わせて移動に使います。',
|
376
327
|
'メンタルプロジェクション:ヒトの心は、様々な価値観や性格が溶け合う複層的なもの。その複雑な姿を脳波投影で視界に映して、心の整理を付けやすくする技術です。しばしば「天使と悪魔」のビジュアルを付けます。',
|
377
328
|
'スライムソファ:球体状の大きなソファで、ポリマーとカーボン素材でできており、自在に変形させたり柔らかさを変えたりできます。床や壁に吸着してくれるため、無重力空間では身体を固定してくれます。'
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
# 超未来のエンタメ
|
383
|
-
def get_sfentertainment_table
|
384
|
-
table = [
|
329
|
+
),
|
330
|
+
'ENT' => StellarLifeD10_1to0_Table.new(
|
331
|
+
'超未来のエンタメ',
|
385
332
|
'ホロシアター:劇場いっぱいにホログラムを展開して、広大な大地や美しい空の上などで大冒険のスペクタクルショーを「その場にいるような」臨場感で楽しむことができます。',
|
386
333
|
'アバターファイト!:手の平サイズの小型の人型アバターを思念で操って、ドームの中でバトルを楽しみます。フィールドはホログラム生成で、ビームやミサイルもホログラム再現なので、損傷の心配はありません。',
|
387
|
-
'VRゲーム:外接電脳さえ持っていれば、VR
|
334
|
+
'VRゲーム:外接電脳さえ持っていれば、VRゴーグルがなくても仮想現実世界にダイブできます。圧倒的なリアリティを持つ仮想世界を堪能し、育成や対戦、パズルなど様々なゲームを楽しめます。',
|
388
335
|
'ハイド・アンド・シーク:惑星全域を舞台にしたかくれんぼです。第七感覚をフル活用して都市の全域を見て回り、ときには動物たちからも情報を集めながら、この星のどこかにいる鬼を見つけ出しましょう。',
|
389
336
|
'アロマバス:リラックスできる香りがいっぱいのお湯に浸かって、心身を癒やします。神経に疲れが溜まる超未来。ハーブの香りを思い切り吸い込んで、緊張を溶きほぐします。',
|
390
337
|
'ロジックパズル:外接電脳をフル活用しないと解けないような、難解なパズルに挑戦します。一見すると無関係な2つの要素を組み合わせることで、意外な手がかりが見つかります。',
|
391
338
|
'ホロアスレチック:コンクリートや植物性ビルなどを使って組み立てた殺風景なアスレチックを、ホログラムで美しくダイナミックに彩ります。超未来人の高い運動能力を存分に発揮できます。',
|
392
339
|
'スカイレース:超未来なので人は空を飛べます。トリブリードは自前の翼で、そうでなくても自分で設計したグライダーなどで、空中にホロ投影されるリングを通過しながら、複雑なコースを高速で飛びます。',
|
393
340
|
'ミステリーハウス:宝探しや事件解決など、規定時間以内に「謎」を解くイベントです。屋敷の中には手がかりが散りばめられており、VRでもリアルでも手軽に探偵遊びを楽しむことができます。',
|
394
|
-
'SNS:超未来のSNS
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
# 超未来の文化
|
400
|
-
def get_sfculture_table
|
401
|
-
table = [
|
341
|
+
'SNS:超未来のSNSは濃密にして苛烈!超高速でやり取りが行いながら、惑星の多くの人々と触れ合い交流を深めます。惑星ごとの微妙な文化の違いに注意を払いましょう。'
|
342
|
+
),
|
343
|
+
'CUT' => StellarLifeD10_1to0_Table.new(
|
344
|
+
'超未来の文化',
|
402
345
|
'リスペクト・ユー:超未来の社会では、他人に対する「リスペクト」が何より大事にされています。見てもらうこと、尊敬されることを目指して、今日も人々はSNSで活動したり、働いたりします。',
|
403
346
|
'マインドミュージック:手を振るうことで感情を音色にする未来的な音楽です。VRやホログラフィと組み合わせれば映像効果も付き、思うままに自分の心から湧き出る音楽を演奏することができます。',
|
404
347
|
'レプロドュィーユ:オペラやバレエ、歌舞伎、ミュージカルといった歌劇の血筋を引いた文化です。物語や歴史の登場人物になりきって、身体の動きを正確に制御しつつ音楽を演奏して全身で表現を行います。',
|
@@ -409,13 +352,9 @@ module BCDice
|
|
409
352
|
'ガーデニング:平たい土地に植物や柵、椅子や机などの種を植えて、美しい庭を造成します。惑星ごとに異なる気候に適応した様々な固有種を使って、その惑星ならではの花の彩りを演出しましょう。',
|
410
353
|
'お料理!:超未来の合成肉や促成栽培野菜などを使って、舌を楽しませるおいしい料理を作りましょう。調理器具は3Dプリンターやクローナイフ、調味料は塩や砂糖、マイクロマシンに香辛料などです。',
|
411
354
|
'シリコンオフィス:角張ったオフィス机やタイムカードなど超未来の世界では絶滅しました。人々は家からでも公園からでも木の上や洞窟の中からでもワークに参加しますし、趣味と労働の区別を付けません。'
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
# 超未来の自然
|
417
|
-
def get_sfnature_table
|
418
|
-
table = [
|
355
|
+
),
|
356
|
+
'NAT' => StellarLifeD10_1to0_Table.new(
|
357
|
+
'超未来の自然',
|
419
358
|
'アニマルハート:動物たちの鳴き声の意味を解読し、また脳波分析を組み合わせることで、高等知能動物たちとある程度の意思疎通ができます。共通の話題は天気の話や景色の話、それにコイバナなど。',
|
420
359
|
'キャンプ:野外で夜を越すときは、キャンプをします。スマートテクスタイルを広げて雨風を避けるテントを作り、虫や鳥の鳴き声を聞きながら星空を眺めて一晩を過ごします。',
|
421
360
|
'ミネラルウォーター:テラフォーミングした惑星の海は、元の惑星のミネラル組成によって成分がだいぶ違ってきます。それほどしょっぱくない海もあれば、赤や緑っぽい海もあり。生息する魚等もまったく違います。',
|
@@ -426,13 +365,9 @@ module BCDice
|
|
426
365
|
'スカイハイ・ビュー:自然の環境ですばやく移動するには、グライダーや翼を使って滑空するのが手っ取り早いです。高い木や丘に上ってからジェットパック併用で舞い上がれば、空からの美しい景観も楽しめます。',
|
427
366
|
'道なき森の道:惑星を覆う森の中には、基本的に整備された道はありません。空を見上げれば陽の光を遮る樹の冠。草をかき分け、花や草いきれの臭いを感じながら、ときには木の上を通って、先に進みます。',
|
428
367
|
'テラフォーミング:この銀河で、地球以外のすべての惑星はヒトが入植するために「テラフォーミング」したものです。水と大気を形成し、植物を育て、動物たちを導入し、長い年月を経て現在の姿になりました。'
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
# 超未来の宇宙船内
|
434
|
-
def get_sfinterior_table
|
435
|
-
table = [
|
368
|
+
),
|
369
|
+
'INT' => StellarLifeD10_1to0_Table.new(
|
370
|
+
'超未来の宇宙船内',
|
436
371
|
'甲板上でお茶を:狭い宇宙船に飽きてきたら、甲板の上に出て無限に広がる宇宙を感じることもできます。気圧0なので圧力ポットで持ってくる必要がありますが、星空を眺めながら飲むお茶は乙なものです。',
|
437
372
|
'マイクロマシン隔壁:宇宙船の隔壁はメタルナノカーボンやナノスチールでできていますが、補修のためにマイクロマシンが住んでいます。ときどき壁の端がちらちら動いて見えるのも、彼らのためかもしれません。',
|
438
373
|
'ダンベル100kg持てる:惑星環境と比べれば、宇宙船の擬似重力はどうしても弱くなるもの。筋力の衰えを防ぐために、部屋にトレーニングマシンを生成して筋トレをします。適度な負荷をかけましょう。',
|
@@ -443,9 +378,10 @@ module BCDice
|
|
443
378
|
'ワープ酔い:ワープ航法は空間の歪みを利用します。装甲が最も厚いユリカゴの中でも、ワープリングを出入りするときはグラっとくる感触があります。気分が悪くなったら、おとなしく寝ていましょう。',
|
444
379
|
'1日25時間:宇宙船に「昼夜」はないため、照明を人工的に調整して生活サイクルを作ります。どうせ惑星ごとに1日の長さは違うので、24時間にこだわる必要はありません。自由に決めます。',
|
445
380
|
'スターリー・スカイ:惑星の明かりも大気もない宇宙船の上からは、星空を鮮やかに見ることができます。当然、星によって天球図も違います。月が2つや4つあったり、連星が見られたりします。'
|
446
|
-
|
447
|
-
|
448
|
-
|
381
|
+
),
|
382
|
+
}.freeze
|
383
|
+
|
384
|
+
register_prefix(TABLES.keys)
|
449
385
|
end
|
450
386
|
end
|
451
387
|
end
|
@@ -68,6 +68,10 @@ module BCDice
|
|
68
68
|
return "キーナンバーは#{keyMax}までです"
|
69
69
|
end
|
70
70
|
|
71
|
+
if command.infinite_roll?
|
72
|
+
return Result.new("C値を#{command.min_critical}以上にしてください")
|
73
|
+
end
|
74
|
+
|
71
75
|
newRates = getNewRates(rate_sw2_0)
|
72
76
|
|
73
77
|
output = "#{command} > "
|
@@ -83,7 +87,7 @@ module BCDice
|
|
83
87
|
first_modify = command.first_modify
|
84
88
|
|
85
89
|
loop do
|
86
|
-
dice_raw, diceText = rollDice(command)
|
90
|
+
dice_raw, diceText = rollDice(command, round)
|
87
91
|
dice = dice_raw
|
88
92
|
|
89
93
|
if first_to != 0
|
@@ -295,7 +299,7 @@ module BCDice
|
|
295
299
|
return newRates
|
296
300
|
end
|
297
301
|
|
298
|
-
def rollDice(_command)
|
302
|
+
def rollDice(_command, _round)
|
299
303
|
dice_list = @randomizer.roll_barabara(2, 6)
|
300
304
|
total = dice_list.sum()
|
301
305
|
dice_str = dice_list.join(",")
|
@@ -54,6 +54,12 @@ module BCDice
|
|
54
54
|
・グレイテストフォーチュンは末尾に gf
|
55
55
|
例)K20gf K30+24@8GF K40+24@8$12r10gf
|
56
56
|
|
57
|
+
・威力表を1d+sfで参照 クリティカル後も継続 sf4
|
58
|
+
例)k10sf4 k0+5SF4@13 k70+26sf3@9
|
59
|
+
|
60
|
+
・威力表を1d+tfで参照 クリティカル後は2dで参照 tf3
|
61
|
+
例)k10tf3 k0+5TF4@13 k70+26tf3@9
|
62
|
+
|
57
63
|
・超越判定用に2d6ロールに 2D6@10 書式でクリティカル値付与が可能に。
|
58
64
|
例)2D6@10 2D6@10+11>=30
|
59
65
|
|
@@ -108,14 +114,23 @@ module BCDice
|
|
108
114
|
return RatingParser.new(version: :v2_0)
|
109
115
|
end
|
110
116
|
|
111
|
-
def rollDice(command)
|
117
|
+
def rollDice(command, round)
|
118
|
+
if command.semi_fixed_val > 0
|
119
|
+
dice = @randomizer.roll_once(6)
|
120
|
+
return dice + command.semi_fixed_val, "#{dice},#{command.semi_fixed_val}"
|
121
|
+
end
|
122
|
+
if round == 0 && command.tmp_fixed_val > 0
|
123
|
+
dice = @randomizer.roll_once(6)
|
124
|
+
return dice + command.tmp_fixed_val, "#{dice},#{command.tmp_fixed_val}"
|
125
|
+
end
|
112
126
|
unless command.greatest_fortune
|
113
|
-
return super(command)
|
127
|
+
return super(command, round)
|
114
128
|
end
|
115
129
|
|
116
|
-
|
117
|
-
|
118
|
-
|
130
|
+
if command.greatest_fortune
|
131
|
+
dice = @randomizer.roll_once(6)
|
132
|
+
return dice * 2, "#{dice},#{dice}"
|
133
|
+
end
|
119
134
|
end
|
120
135
|
|
121
136
|
def growth(count = 1)
|