Skip to content

Commit

Permalink
[GhostLive] 「霊障リスト」「霊障効果リスト」を追加
Browse files Browse the repository at this point in the history
  • Loading branch information
ViVi committed May 16, 2022
1 parent 1dceb46 commit 7d4fdcd
Show file tree
Hide file tree
Showing 2 changed files with 192 additions and 0 deletions.
96 changes: 96 additions & 0 deletions lib/bcdice/game_system/GhostLive.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,24 @@ class GhostLive < Base
HELP_MESSAGE = <<~MESSAGE
■追加目標表(p11)
ATT, AdditionalTargetTable
■種別:地縛霊(p26)
□A.霊障リスト
JHA, JibakuHauntA
□B.霊障効果リスト
JHB, JibakuHauntB
■種別:シャイな幽霊(p27)
□A.霊障リスト
SHA, ShyHauntA
□B.霊障効果リスト
SHB, ShyHauntB
■種別:ぐちゃぐちゃ(p28)
□A.霊障リスト
GHA, GuchaHauntA
□B.霊障効果リスト
GHB, GuchaHauntB
MESSAGE

def eval_game_system_specific_command(command)
Expand All @@ -36,10 +54,88 @@ def eval_game_system_specific_command(command)
"すべての[回収品]を集める。(依頼主:専門家/報酬:5L)",
]
),
"JibakuHauntA" => DiceTable::Table.new(
"地縛霊:霊障リスト",
"1D6",
[
"隙間――家具の隙間、扉の隙間、そんな暗がりから視線を感じる。",
"腐臭――吐き気を催すような、下水に似た臭いが漂ってくる。",
"吐息――「ハァ……」耳元に、やけに湿った吐息が吹きかけられる。",
"足音――立ち止まる度に、ひとつ多く足音が響く。誰か、いる……?",
"背後――振り向いても、そこには誰もいない。それなのに、ずっと後ろに気配を感じる。",
"鏡――鏡に背を向けた瞬間、あり得ない強さでそちらへ引き寄せられた。肩には手の形のアザができている。",
]
),
"JibakuHauntB" => DiceTable::Table.new(
"地縛霊:霊障効果リスト",
"1D6",
[
"[精神力]減少:[1D2+PC人数]点/[視聴回数]増加:とくになし/特殊効果:とくになし",
"[精神力]減少:[1D4+PC人数]点/[視聴回数]増加:とくになし/特殊効果:とくになし",
"[精神力]減少:[1D6+PC人数]点/[視聴回数]増加:2倍/特殊効果:とくになし",
"[精神力]減少:[1D10+PC人数]点/[視聴回数]増加:3倍/特殊効果:シーンに登場しているPCの[アイテム]を1つ破壊する。",
"[精神力]減少:[1D20+PC人数]点/[視聴回数]増加:5倍/特殊効果:シーンに登場しているPCのスマホを破壊する。",
"[精神力]減少:[1D100+PC人数]点/[視聴回数]増加:10倍/特殊効果:シーンに登場しているPCのスマホを破壊する。",
]
),
"ShyHauntA" => DiceTable::Table.new(
"シャイな幽霊:霊障リスト",
"1D6",
[
"倦怠感――歩くのも辛いくらいの倦怠感。生きているのも辛い。",
"ラップ音――弾けるような、叩くような音が連続して聞こえる。",
"空飛ぶ皿――棚に収まっていた食器が、不意に飛び出し、けたたましい音を立てて砕けていく。",
"頭痛――頭が、割れそうに痛い。小さな物音ですら頭に響いてくる。",
"点滅――灯りが明滅する。……あれ、ここ電気通ってたっけ?",
"血文字――壁に、床に、赤⿊い液体が滲み出す。それは文字を形作った。「か え れ」",
]
),
"ShyHauntB" => DiceTable::Table.new(
"シャイな幽霊:霊障効果リスト",
"1D6",
[
"[精神力]減少:[2+PC人数]点/[視聴回数]増加:とくになし/特殊効果:とくになし",
"[精神力]減少:[4+PC人数]点/[視聴回数]増加:2倍/特殊効果:シーンに登場しているPCがふたりの場合、追加で[精神力]を2減少させる。",
"[精神力]減少:[6+PC人数]点/[視聴回数]増加:3倍/特殊効果:シーンに登場しているPCがひとりの場合、追加で[精神力]を4減少させる。",
"[精神力]減少:[10+PC人数]点/[視聴回数]増加:5倍/特殊効果:シーンに登場しているPCがふたりの場合、追加で[精神力]を6減少させる。",
"[精神力]減少:[20+PC人数]点/[視聴回数]増加:10倍/特殊効果:シーンに登場しているPCがひとりの場合、追加で[精神力]を2減少させる。",
"[精神力]減少:[40+PC人数]点/[視聴回数]増加:20倍/特殊効果:シーンに登場しているPCのスマホを破壊する。",
]
),
"GuchaHauntA" => DiceTable::Table.new(
"ぐちゃぐちゃ:霊障リスト",
"1D6",
[
"走る人形――ひび割れた人形が落ちている。一瞬視線をそらした瞬間、それはありえない動きで走り去っていった。",
"血痕――天井から血が滴ってくる。その量は、おおよそ人一人分……いや、それ以上だ。",
"着信――スマホの着信音が鳴る。こんな時に誰が――表示されていたのは、死んだはずの知り合いの名前だった。",
"自分に似た他人――自分にそっくりな人が目の前に立っていた、気がする。",
"衝撃――誰かに思いっきり押された気がしたのに誰もいない。",
"記憶がない――数分間のことを何も覚えてない。コメント欄がリスナーの心配する声でいっぱいだ。いったい何が……?",
]
),
"GuchaHauntB" => DiceTable::Table.new(
"ぐちゃぐちゃ:霊障効果リスト",
"1D6",
[
"[精神力]減少:[5+PC人数]点/[視聴回数]増加:2倍/特殊効果:とくになし",
"[精神力]減少:[10+PC人数]点/[視聴回数]増加:3倍/特殊効果:とくになし",
"[精神力]減少:[2D10+PC人数]点/[視聴回数]増加:4倍/特殊効果:シーンに登場しているPCがふたりの場合、追加で[精神力]を5減少させる。",
"[精神力]減少:[3D10+PC人数]点/[視聴回数]増加:5倍/特殊効果:シーンに登場しているPCがひとりの場合、[アイテム]をランダムに1つ壊す。",
"[精神力]減少:[1D100+PC人数]点/[視聴回数]増加:10倍/特殊効果:シーンに登場しているPCのスマホを破壊する。",
"[精神力]減少:[1D100+10+PC人数]点/[視聴回数]増加:20倍/特殊効果:すべてのPCのスマホを破壊する。",
]
),
}.transform_keys(&:upcase).freeze

ALIAS = {
"ATT" => "AdditionalTargetTable",
"JHA" => "JibakuHauntA",
"JHB" => "JibakuHauntB",
"SHA" => "ShyHauntA",
"SHB" => "ShyHauntB",
"GHA" => "GuchaHauntA",
"GHB" => "GuchaHauntB",
}.transform_values(&:upcase).freeze

register_prefix(TABLES.keys, ALIAS.keys)
Expand Down
96 changes: 96 additions & 0 deletions test/data/GhostLive.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,99 @@ output = "追加目標表(6) > すべての[回収品]を集める。(
rands = [
{ sides = 6, value = 6 },
]

[[ test ]]
game_system = "GhostLive"
input = "jibakuHauntA"
output = "地縛霊:霊障リスト(1) > 隙間――家具の隙間、扉の隙間、そんな暗がりから視線を感じる。"
rands = [
{ sides = 6, value = 1 },
]

[[ test ]]
game_system = "GhostLive"
input = "jha"
output = "地縛霊:霊障リスト(6) > 鏡――鏡に背を向けた瞬間、あり得ない強さでそちらへ引き寄せられた。肩には手の形のアザができている。"
rands = [
{ sides = 6, value = 6 },
]

[[ test ]]
game_system = "GhostLive"
input = "jibakuHauntB"
output = "地縛霊:霊障効果リスト(1) > [精神力]減少:[1D2+PC人数]点/[視聴回数]増加:とくになし/特殊効果:とくになし"
rands = [
{ sides = 6, value = 1 },
]

[[ test ]]
game_system = "GhostLive"
input = "jhb"
output = "地縛霊:霊障効果リスト(6) > [精神力]減少:[1D100+PC人数]点/[視聴回数]増加:10倍/特殊効果:シーンに登場しているPCのスマホを破壊する。"
rands = [
{ sides = 6, value = 6 },
]

[[ test ]]
game_system = "GhostLive"
input = "shyHauntA"
output = "シャイな幽霊:霊障リスト(1) > 倦怠感――歩くのも辛いくらいの倦怠感。生きているのも辛い。"
rands = [
{ sides = 6, value = 1 },
]

[[ test ]]
game_system = "GhostLive"
input = "sha"
output = "シャイな幽霊:霊障リスト(6) > 血文字――壁に、床に、赤⿊い液体が滲み出す。それは文字を形作った。「か え れ」"
rands = [
{ sides = 6, value = 6 },
]

[[ test ]]
game_system = "GhostLive"
input = "shyHauntB"
output = "シャイな幽霊:霊障効果リスト(1) > [精神力]減少:[2+PC人数]点/[視聴回数]増加:とくになし/特殊効果:とくになし"
rands = [
{ sides = 6, value = 1 },
]

[[ test ]]
game_system = "GhostLive"
input = "shb"
output = "シャイな幽霊:霊障効果リスト(6) > [精神力]減少:[40+PC人数]点/[視聴回数]増加:20倍/特殊効果:シーンに登場しているPCのスマホを破壊する。"
rands = [
{ sides = 6, value = 6 },
]

[[ test ]]
game_system = "GhostLive"
input = "guchaHauntA"
output = "ぐちゃぐちゃ:霊障リスト(1) > 走る人形――ひび割れた人形が落ちている。一瞬視線をそらした瞬間、それはありえない動きで走り去っていった。"
rands = [
{ sides = 6, value = 1 },
]

[[ test ]]
game_system = "GhostLive"
input = "gha"
output = "ぐちゃぐちゃ:霊障リスト(6) > 記憶がない――数分間のことを何も覚えてない。コメント欄がリスナーの心配する声でいっぱいだ。いったい何が……?"
rands = [
{ sides = 6, value = 6 },
]

[[ test ]]
game_system = "GhostLive"
input = "guchaHauntB"
output = "ぐちゃぐちゃ:霊障効果リスト(1) > [精神力]減少:[5+PC人数]点/[視聴回数]増加:2倍/特殊効果:とくになし"
rands = [
{ sides = 6, value = 1 },
]

[[ test ]]
game_system = "GhostLive"
input = "ghb"
output = "ぐちゃぐちゃ:霊障効果リスト(6) > [精神力]減少:[1D100+10+PC人数]点/[視聴回数]増加:20倍/特殊効果:すべてのPCのスマホを破壊する。"
rands = [
{ sides = 6, value = 6 },
]

0 comments on commit 7d4fdcd

Please sign in to comment.