Class: BCDice::GameSystem::ShuumatsuKikou

Inherits:
Base
  • Object
show all
Defined in:
lib/bcdice/game_system/ShuumatsuKikou.rb

Defined Under Namespace

Classes: FiveItemsTable

Constant Summary collapse

ID =

ゲームシステムの識別子

'ShuumatsuKikou'
NAME =

ゲームシステム名

'終末紀行RPG'
SORT_KEY =

ゲームシステム名の読みがな

'しゆうまつきこう'
HELP_MESSAGE =

ダイスボットの使い方

<<~HELP
  ■判定
  xB6>=5
  x: 能力値
  (汎用コマンドそのままです)

  ■各種表
  資源の減少チェック: ResourceLose, RLose
  獲得資源決定: ResourceGain, RGain

  □ランダムエリア決定表
  都市/荒野決定: RandomArea, RArea
  荒野エリア決定: RandomWaste, RWaste
  都市エリア決定: RandomUrban, RUrban

  □ランダム障害シーン決定表
  シーン決定: RandomObs, RObs
  技術系A: RandomObsTechA, ROTA
  技術系B: RandamObsTechB, ROTB
  生存系A: RandomObsSurviveA, ROSA
  生存系B: RandomObsSurviveB, ROSB
  戦闘系A: RandomObsCombatA, ROCA
  戦闘系B: RandomObsCombatB, ROCB

  □ランダム旅情シーン決定表
  シーン決定: RandomEmo, REmo
  日常系A: RandomEmoDailyA, REDA
  日常系B: RandomEmoDailyB, REDB
  日常系C: RandomEmoDailyC, REDC
  追憶系A: RandomEmoReminiscenceA, RERA
  追憶系B: RandomEmoReminiscenceB, RERB
  追憶系C: RandomEmoReminiscenceC, RERC

  □ランダム難所シーン決定表
  荒野系: RandomDangerousWaste, RDW
  都市系: RandomDangerousUrban, RDU
HELP
TABLES =
{
  "ResourceLose" => DiceTable::Table.new(
    "資源の減少チェック",
    "1D6",
    [
      "〈食料〉",
      "〈健康〉",
      "〈電力〉",
      "〈パーツ〉",
      "〈ヴィークル〉",
      "[資源の減少チェック]をもう1回行なう。その際、減少する資源は1ではなく2となる。",
    ]
  ),
  "ResourceGain" => DiceTable::Table.new(
    "獲得資源決定",
    "1D6",
    [
      "〈食料〉",
      "〈健康〉",
      "〈電力〉",
      "〈パーツ〉",
      "〈ヴィークル〉",
      "任意、好きな資源を手に入れる。",
    ]
  ),
  "RandomArea" => DiceTable::RangeTable.new(
    "都市/荒野決定",
    "1D6",
    [
      [1..3, "荒野エリア決定表へ( → RWaste )"],
      [4..6, "都市エリア決定表へ( → RUrban )"],
    ]
  ),
  "RandomWaste" => FiveItemsTable.new(
    "荒野エリア決定",
    "平原――地平線の果てまで続く、茫漠とした荒野。それを貫くように走るハイウェイの痕跡。その沿道に廃墟が点在している。",
    "砂漠――砂漠がどこまでも広がっている。大海に浮かぶ島のように、倒壊した高層ビルが顔を出している。熱と渇きが旅人を苛む。",
    "汚染地帯――土も、水も、空気さえも、汚染物質で満たされた区域。ここでは呼吸すらも死を招く。あまり長居したい土地ではない。",
    "雪原――視界一面を覆う雪の大地。ただそこにいるだけで、身体の熱が奪われていく。生命の活動を許さないモノトーンの世界だ。",
    "山岳――旅人の前にそびえる巨大な山塊。山越えは落石や崩落の危険性など、通過するだけでリスクが高い。だが他に道はない。"
  ),
  "RandomUrban" => FiveItemsTable.new(
    "都市エリア決定",
    "無人都市――かつて栄華を誇ったメトロポリス。だが今、旅人のほかに動いているものはいない。無数のビル群が墓標のようにそびえる。",
    "要塞都市――巨大な城壁と、朽ち果てた無人防衛兵器群によって守られた要塞都市。この都市が守ろうとした住人はもういない。",
    "地下都市――放棄された広大な地下シェルター。光の届かない暗黒の地下空間。ある時期の人類は、地下に生活拠点を移していたようだ。",
    "密林都市――この都市の廃墟は、繁茂したミュータント植物の密林に覆われている。そこには異形の生態系が成立している。",
    "水没都市――水没した都市。かつての人類の遺構群が、上昇した海面下に沈んでいる。都市の新たな主は、ミュータント魚群だ。"
  ),
  "RandomObs" => DiceTable::Table.new(
    "障害シーン決定",
    "1D6",
    [
      "技術系A( → ROTA )",
      "技術系B( → ROTB )",
      "生存系A( → ROSA )",
      "生存系B( → ROSB )",
      "戦闘系A( → ROCA )",
      "戦闘系B( → ROCB )",
    ]
  ),
  "RandomObsTechA" => FiveItemsTable.new(
    "ランダム障害シーン/技術系A",
    "電子ロック――電子ロックが生きている倉庫を発見。ロックを開けて中の資源を回収する。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら[資源の減少チェック]1回。",
    "発電機の再生――停止した風力発電機(風車)を発見。発電効率は低いが、復旧させればロボットのバッテリーを充電できる。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈電力〉-1。",
    "オーバーホール――ヴィークルが不調だ。一度しっかり分解整備(オーバーホール)しなければ。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈ヴィークル〉-1。",
    "リフォーム――居心地の良さそうな住居跡を発見。ちょっとリフォームすれば、快適な休息を取れる。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈健康〉-1。",
    "ロボット工場――ロボット工場跡を発見。残された部品をうまく加工すれば、劣化したパーツを交換できる。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈パーツ〉-1。"
  ),
  "RandomObsTechB" => FiveItemsTable.new(
    "ランダム障害シーン/技術系B",
    "悪路走破――ヴィークルで悪路を走る。スピードを落とさず走り抜ければ、時間的消耗を抑えることができる。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら[資源の減少チェック]を1回行なう。",
    "食料生産プラント――食料生産プラント跡を発見。うまく復旧すれば、最後に残った材料で食料を生産できる。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈食料〉-1。",
    "パーツ交換――ロボットのパーツが劣化、破損する。予備パーツはあるが、自力では交換が難しい。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈パーツ〉-1。",
    "バッテリー回収――ドローンの残骸を発見。うまく解体すれば、バッテリーを回収できそうだ。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈電力〉-1。",
    "ロボットの行商人――ロボットの行商人と出会う。彼は旅人たち(「数十年ぶりの客」らしい)に取り引きを持ちかけてくる。行商人の提示する品物の質を見極めろ。【技術】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0ならボッタくられ、[資源の減少チェック]を1回行なう。"
  ),
  "RandomObsSurviveA" => FiveItemsTable.new(
    "ランダム障害シーン/生存系A",
    "迷い路――入り組んだ地域を進む。方向感覚を失えば、さらなる消耗を強いられる。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら道に迷い、[資源の減少チェック]を1回行なう。",
    "危険地帯――ガスや汚染物質に満ちた危険地帯を通過する。ロボットはともかく、人間は長居できない。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら人間は負傷し〈健康〉-1。",
    "カビ――ロボットにミュータントのカビが生える。このカビは特定の貴金属を好む。すぐに除去しなければ。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈パーツ〉-1。",
    "水不足――水不足が深刻化し始める。一刻も早く水源を探して、補充しなければ。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈食料〉-1。",
    "崩壊寸前――崩れかかった遺跡から、資源を回収する。時間をかければ崩落に巻き込まれる。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら[資源の減少チェック]を1回行なう。"
  ),
  "RandomObsSurviveB" => FiveItemsTable.new(
    "ランダム障害シーン/生存系B",
    "隠れんぼ――狂暴なミュータントの群を発見。隠れてやりすごせ。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら[資源の減少チェック]を1回行なう。",
    "ソーラーパネル掃除――ソーラーパネルを繁茂したミュータント植物が覆っている。植物を刈り取ってパネルを復旧し、電力を得よう。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈電力〉-1。",
    "スタック――泥や砂地にハマって、ヴィークルがスタックする。力づくで引きずり出せ。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈ヴィークル〉-1。",
    "体調不良――汚染物質を吸引したか、毒に当たったか、体調が急変する。うまく療養(看病)せよ。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈健康〉-1。",
    "保存食の加工――食料の確保。小型の可食ミュータントを捕獲した。うまく保存用に加工せよ。【生存】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈食料〉-1。"
  ),
  "RandomObsCombatA" => FiveItemsTable.new(
    "ランダム障害シーン/戦闘系A",
    "大群との遭遇――狂暴なミュータントの群の襲撃を受ける。激しい戦闘で消耗戦となる。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら[資源の減少チェック]を1回行なう。",
    "地獄の毒々ミュータント――猛毒を持つ狂暴なミュータントが襲ってくる。うまく毒を避けて倒さなければ。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈健康〉-1。",
    "暴走ドローン――暴走ドローンを発見。ロボットと共通のパーツを使っているようだ。うまく破壊すればパーツを回収できる。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈パーツ〉-1。",
    "生体発電機――発電器官を有するミュータントに遭遇。発電器官を潰さずにしとめれば、電池代わりになるかもしれない。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈電力〉-1。",
    "高速戦闘――ヴィークル型の高速ドローンが襲ってくる。ヴィークルを破壊して部品を奪うつもりのようだ。返り討ちにして逆に部品を奪え。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈ヴィークル〉を1失う。"
  ),
  "RandomObsCombatB" => FiveItemsTable.new(
    "ランダム障害シーン/戦闘系B",
    "瓦礫撤去――巨大な瓦礫が進路を塞いでいる。破壊して通らなければ、遠回りを強いられ消耗する。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら[資源の減少チェック]を1回行なう。",
    "溶解ミュータント――金属や樹脂を溶かすミュータントに遭遇。執拗にロボットを狙ってくる。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈パーツ〉-1。",
    "電気食らい――電気を食う蟲型ドローンが寄ってくる。ロボットの体内にある電池は、彼らの食糧だ。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈電力〉-1。",
    "殺人機械――暴走ドローンが襲ってくる。対人殺傷用らしく、人間だけを執拗に狙ってくる。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈健康〉-1。",
    "ごちそうミュータント――大型の可食ミュータントに遭遇。貴重な食糧だ、可食部位を傷つけずに倒そう。【戦闘】の協力判定を行なう。成功数3以上なら[リワード]を1得る。成功数0なら〈食料〉-1。"
  ),
  "RandomEmo" => DiceTable::Table.new(
    "旅情シーン決定",
    "1D6",
    [
      "日常系A( → REDA )",
      "日常系B( → REDB )",
      "日常系C( → REDC )",
      "追憶系A( → RERA )",
      "追憶系B( → RERB )",
      "追憶系C( → RERC )",
    ]
  ),
  "RandomEmoDailyA" => FiveItemsTable.new(
    "ランダム旅情シーン/日常系A",
    "野営――ふたりぼっちの夜がくる。熱を失わないよう、火を焚き、寄り添う。",
    "暇つぶし――悪天候などにより、停滞を余儀なくされる。暇だ。とにかく暇だ。",
    "遊ぶ――遊ぶ。かくれんぼでも、しりとりでも、雪合戦でも、なんでもいい。まったく無意味だが、それがいい。",
    "訓練――いつ、どんな危険が襲ってくるか解らない。武器の扱いを訓練しよう。",
    "移動――ヴィークルに揺られて移動する。淡々と、黄昏の景色がゆっくりと流れていく。"
  ),
  "RandomEmoDailyB" => FiveItemsTable.new(
    "ランダム旅情シーン/日常系B",
    "食事――人間は、ものを食べなければ生きていけない。どうせいつかは死ぬのに、不便なことだ。",
    "観察――もうひとりの旅人を観察する。今まで知らなかった一面が見られるかもしれない。知らない方がよかったかもしれない。",
    "整備――ヴィークルを整備する。こいつも大事な旅の仲間だ。だが、いつかは部品や燃料が尽き、動かなくなるだろう。",
    "星空――星空を見上げる。世界は激変したが、星の光はほとんど変わらない。ちょっと北極星がズレたぐらいだ。",
    "水浴び――水場を発見。水浴びして汚れを落とす。ついでに洗濯も済ませてしまおう。どうせまた汚れるけど。"
  ),
  "RandomEmoDailyC" => FiveItemsTable.new(
    "ランダム旅情シーン/日常系C",
    "記録――日記でも、写真、スケッチ、なんでもいい。今この瞬間を、形にして残しておきたい。",
    "酒――なんと生きている酒蔵を発見。飲もうぜ、今宵、銀河を杯にして。ロボットが酔えるかは知らん。",
    "歌う――なぜかメロディーが口をついて出る。郷愁を覚える。かつて好きだった歌なのかもしれない。",
    "悪夢――悪夢にうなされ目が覚める。だが目覚めたこの世界が、悪夢よりマシであると言えるだろうか?",
    "ケンカ――ささいなことが原因で仲たがいする。セッション中に仲直りしておけ。理由は「大事なもの」を壊してしまった、などがよいだろう、"
  ),
  "RandomEmoReminiscenceA" => FiveItemsTable.new(
    "ランダム旅情シーン/追憶系A",
    "住居――住居跡を訪れる。ミイラ化した人間の死体を発見する。だいぶ前に死んだものだ。この死体はどう生き、どう死んだのだろう?",
    "届かなかった手紙――郵便ポストを発見する。配達されなかった手紙が残されている。恋文、借金の督促など、往時の人類の日常を垣間見る。",
    "ゆうえんち――娯楽施設跡(遊園地、テーマパーク)を訪れる。システムが生きており、稼働している遊具がある。少し遊んで行こう。きっと旅人は最後の客だ。",
    "終末ショッピング――商業施設跡(ショッピングモールなど)を訪れる。半壊した接客ロボットが現れ、何もない店内を案内する。その後「彼」は機能を停止する。",
    "天国なんてあるのかな――宗教施設跡(墓所や教会など)を訪れる。旅人が死んだら、誰が弔うのか? 天国はあるのか? ロボットもそこに行けるのか?"
  ),
  "RandomEmoReminiscenceB" => FiveItemsTable.new(
    "ランダム旅情シーン/追憶系B",
    "人の遺したもの――文化施設跡(博物館、図書館、美術館)を訪れる。人類が築いた文化の残滓を垣間見る。",
    "残骸――旅人のロボットとよく似た、別のロボットの残骸を発見する。このロボットは何のために動き、ここで力尽きたのだろう。",
    "飛ばない鳥――飛行場跡を訪れる。無数の航空機が擱座している。この人工の鳥たちが、ふたたび空を舞うことはないだろう。",
    "湯けむり終末紀行――温泉レジャー施設跡を訪れる。施設は半壊しているが、なんと未だに温泉が湧き続けている。世界が終わっても、温泉は心地よい。",
    "終末学校――学校の跡を訪れる。机とイスが散乱している。人間の子供たちは、ここでさまざまなことを学んだのだろう。"
  ),
  "RandomEmoReminiscenceC" => FiveItemsTable.new(
    "ランダム旅情シーン/追憶系C",
    "兵どもが夢の跡――戦場跡を通過する。動かなくなった兵器があちこちに散らばっている。彼らは何と、何のために戦ったのだろう?",
    "地下鉄――廃墟の地下鉄。旅人が車両に乗ると、自動制御で勝手に走り出す。次の駅に到着すると、最後まで残っていた電力が尽きる。終電だったらしい。",
    "謎のプラント――巨大なプラント跡を訪れる。爆発でもあったらしく、中心部が半壊している。あちこちにある表示は「ぬーくりあ」「でんじゃー」と読める。",
    "メリークリスマス――廃墟が、電飾や植物を模した模型で飾り立てられている。赤い服を着て袋を持ち、動物のひくソリに乗った老人の人形が置かれている。",
    "せめてよい夢を――完全に停止した冷凍睡眠施設を発見。眠ったまま干からびた人々がいる。旅人もこうなっていたかもしれない。その方が幸せだったかも。"
  ),
  "RandomDangerousWaste" => DiceTable::Table.new(
    "ランダム難所シーン/荒野系",
    "1D6",
    [
      "渡河( p27 )",
      "ワイルドレース( p27 )",
      "冬来たる( p27 )",
      "果てなき熱砂( p28 )",
      "鋼鉄の嵐( p28 )",
      "殺戮兵器、起動( p28 )",
    ]
  ),
  "RandomDangerousUrban" => DiceTable::Table.new(
    "ランダム難所シーン/都市系",
    "1D6",
    [
      "亀裂を超える( p29 )",
      "プラント復旧( p29 )",
      "地下迷宮( p29 )",
      "塔を登る( p29 )",
      "自動防衛システム( p30 )",
      "地底よりの恐怖( p30 )",
    ]
  ),
}.transform_keys(&:upcase).freeze
ALIAS =
{
  "RLose" => "ResourceLose",
  "RGain" => "ResourceGain",
  "RArea" => "RandomArea",
  "RWaste" => "RandomWaste",
  "RUrban" => "RandomUrban",
  "RObs" => "RandomObs",
  "ROTA" => "RandomObsTechA",
  "ROTB" => "RandomObsTechB",
  "ROSA" => "RandomObsSurviveA",
  "ROSB" => "RandomObsSurviveB",
  "ROCA" => "RandomObsCombatA",
  "ROCB" => "RandomObsCombatB",
  "REmo" => "RandomEmo",
  "REDA" => "RandomEmoDailyA",
  "REDB" => "RandomEmoDailyB",
  "REDC" => "RandomEmoDailyC",
  "RERA" => "RandomEmoReminiscenceA",
  "RERB" => "RandomEmoReminiscenceB",
  "RERC" => "RandomEmoReminiscenceC",
  "RDW" => "RandomDangerousWaste",
  "RDU" => "RandomDangerousUrban",
}.transform_keys(&:upcase).transform_values(&:upcase).freeze

Instance Attribute Summary

Attributes inherited from Base

#d66_sort_type, #default_cmp_op, #default_target_number, #randomizer, #reroll_dice_reroll_threshold, #round_type, #sides_implicit_d, #upper_dice_reroll_threshold

Instance Method Summary collapse

Methods inherited from Base

#change_text, #check_result, command_pattern, #enable_debug, #enabled_d9?, #eval, eval, #grich_text, #initialize, prefixes_pattern, register_prefix, register_prefix_from_super_class, #sort_add_dice?, #sort_barabara_dice?

Methods included from Translate

#translate

Constructor Details

This class inherits a constructor from BCDice::Base

Instance Method Details

#eval_game_system_specific_command(command) ⇒ Object



54
55
56
# File 'lib/bcdice/game_system/ShuumatsuKikou.rb', line 54

def eval_game_system_specific_command(command)
  roll_tables(ALIAS[command] || command, TABLES)
end