Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FullFace] ジャンク表の追加 #742

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 25 additions & 3 deletions lib/bcdice/game_system/FullFace.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@ class FullFace < Base
FF<=2,1: 能力値2,難易度1で判定し、その結果(成功数,1の目の数,6の目の数,成功・失敗,バースト)を表示。
6FF<=3,2&1:ヒート6,能力値3,難易度2,基本ダメージ1で戦闘判定し、その結果(成功数,1の目の数,6の目の数,ダメージ,バースト)を表示。

INFO_MESSAGETEXT
■ジャンク表 JKT

register_prefix('([+\d]+)*FF')
INFO_MESSAGETEXT

def initialize(command)
super(command)
Expand All @@ -33,7 +33,8 @@ def initialize(command)
end

def eval_game_system_specific_command(command)
resolute_action(command)
resolute_action(command) ||
roll_tables(command, TABLES)
end

private
Expand Down Expand Up @@ -116,6 +117,27 @@ def resolute_action(command)
result.text = sequence.join(" > ")
end
end

TABLES = {
"JKT" => DiceTable::Table.new(
"ジャンク表",
"2D6",
[
"命欲しさに重要な情報を吐いた。セッションのボスに関する情報を得る。",
"ユニットの機密文書だ。この戦闘で獲得したユニットがあるなら、そのうち好きなユニット1つを経験点を消費せずに常備化できる。",
"違法アップロードされた個人情報のデータだ。このセッション中、エネミーと出会ったとき、詳細なデータが即座に公開される(GMはできるだけ拒否しないこと)。",
"鍵を持っていた。近くに施錠された扉や箱などがあるなら、そのうちの1つを開けることができる。",
"何も見つけられなかったが、敵を倒したことによって自信を得た。このセッション中のみ、1回だけ自身の判定で出た6の目を1つ消すことができる。",
"自爆装置だ。何も残らなかった。",
"使い捨ての武器を手に入れた。このセッション中のみ、1回だけ「近接攻撃5『本能』」の攻撃アクションを行える。",
"敵が改心した。倒されたキャラクターがまだ生きているなら、そのうちの一人が君たちに協力を申し込んでくる(このセッション限定の恩恵「人脈:協力者」を得る)。",
"金を手に入れた。キャラクター全員、アフターフェイズに配布される経験点が1増加する。",
"強力なユニットを隠し持っていた。好きな組織専用ユニットを1つ獲得する。",
"大金を手に入れた。キャラクター全員、アフターフェイズに配布される経験点が3増加する。",
]
),
}.freeze
register_prefix('([+\d]+)*FF', TABLES.keys)
end
end
end
17 changes: 17 additions & 0 deletions test/data/FullFace.toml
Original file line number Diff line number Diff line change
Expand Up @@ -187,3 +187,20 @@ rands = [
{ sides = 6, value = 3 },
]

[[ test ]]
game_system = "FullFace"
input = "JKT ジャンク表"
output = "ジャンク表(2) > 命欲しさに重要な情報を吐いた。セッションのボスに関する情報を得る。"
rands = [
{ sides = 6, value = 1 },
{ sides = 6, value = 1 },
]
[[ test ]]
game_system = "FullFace"
input = "JKT ジャンク表"
output = "ジャンク表(12) > 大金を手に入れた。キャラクター全員、アフターフェイズに配布される経験点が3増加する。"
rands = [
{ sides = 6, value = 6 },
{ sides = 6, value = 6 },
]

Loading