Class: BCDice::GameSystem::FilledWith

Inherits:
Base
  • Object
show all
Defined in:
lib/bcdice/game_system/FilledWith.rb,
lib/bcdice/game_system/filled_with/lot_tables.rb,
lib/bcdice/game_system/filled_with/cook_tables.rb,
lib/bcdice/game_system/filled_with/event_tables.rb,
lib/bcdice/game_system/filled_with/tresure_tables.rb,
lib/bcdice/game_system/filled_with/enemy_data_tables.rb

Defined Under Namespace

Classes: D66Table, Difficulty, EventTable, FW, Row

Constant Summary collapse

ID =

ゲームシステムの識別子

'FilledWith'
NAME =

ゲームシステム名

'フィルトウィズ'
SORT_KEY =

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

'ふいるとういす'
HELP_MESSAGE =

ダイスボットの使い方

<<~MESSAGETEXT
  ・判定 (3FW@x#y<=z or z-3FW@x#y)
   3個の6面ダイスを振る判定。
   @x:xにクリティカル値を入力。省略可。(省略時クリティカル値4)
   #y:yにファンブル値を入力。省略可(省略時ファンブル値17)
   <=z or z-:zに目標値を入力。±の計算に対応。省略可。
  ・【必殺技!】 (HST)
   ホムンクルス特技【必殺技!】表。
  ・マジカルクッキング (COOKx)
   マジカルクッキングのシェフのおすすめコース。
   xにクッキングレベルを入力。(1-8)
  ・ナンバーワンくじ (LOTN or LOTP)
   LOTNでノーマルくじ、LOTPでプレミアムくじ。(GURPS-FW版)
  ----------夢幻の迷宮用----------
  ・共通書式
   a:aに地形(1-6の数字)を入力。省略可。(省略時ランダム決定)
    (1:洞窟 2:遺跡 3:山岳 4:水辺 5:森林 6:墓場)
   d:dに難易度を入力。(E:初級 N:中級 H:上級 L:悪夢 X:伝説)
  ・ランダムイベント表 (RANDda)
  ・ランダムエンカウント表 (RENCda)
  ・エネミーデータ表 (REDde)
   エネミーデータ参照表。
   GMがシークレットダイスで参照するとPLに知られずにエネミーデータを参照可能。
   e:3桁のイベントダイスを入力(D666の結果)。
  ・トラップ表 (TRAPd)
  ・財宝表 (TRSr±x)
   r:rに財宝ランクを入力。
   ±x:xに財宝ランク修正値を入力。省略可。
  ・迷宮追加オプション表(ROPd)
MESSAGETEXT
TABLES =
{
  "HST" => DiceTable::Table.new(
    "【必殺技!】",
    "1D6",
    [
      '〔命中〕判定に出目[1,1,1]でクリティカル。更に致傷力に「SLv×20」のボーナスを得る。',
      '〔命中〕判定と致傷力に「SLv×10」のボーナスを得る。',
      '致傷力に「SLv×10」のボーナスを得る。',
      '攻撃が命中するとバッドステータス「転倒」を与える。',
      '通常攻撃。',
      '〔命中〕判定に[6,6,6]でファンブル。更に、使用者がバッドステータス「転倒」を受ける。',
    ]
  )
}.freeze
TRAP_TABLE =
[
  Row.new("トライディザスター:宝箱から広範囲に火炎・冷気・電撃が放たれる罠。PC全員に「%s」の「火炎」「冷気」「電撃」属性ダメージ。", ['3D6+3', '3D6+50', '3D6+70', '3D6+100', '300']),
  Row.new("ペトロブラスター:広範囲に石化光線を放つ罠。PC全員[抵抗-%s]判定を行い、失敗したPCはBS「石化」を受ける。", [2, 4, 6, 8, 10]),
  Row.new("クロスボウストリーム:宝箱から矢の嵐が放たれる罠。PC全員に「%s」の「刺突」属性ダメージ。「ドッジ-%s」で〔回避〕が可能。", ['3D6+20', '3D6+40', '3D6+60', '3D6+90', '200'], [4, 6, 8, 10, 20]),
  Row.new("フォーチュンイーター:PC全員の幸運を食らい、Ftを%s点減少させる。Ftが0の場合「%s」点の防護点無視ダメージ。", [1, 2, 3, 4, 5], ['3D6+30', '3D6+50', '3D6+70', '3D6+100', '300']),
  Row.new("スロット:解除に失敗しても害はないが、スロットが揃うまで開かない宝箱。スロットを1回まわすには%sGPが必要。行動を消費して[感覚-%s]判定に成功すればスロットは揃う。有利な特異点「ビビット反射」があれば判定に+4のボーナス。", [100, 300, 600, 1000, 10000], [4, 6, 8, 10, 15]),
  Row.new("テレポーター:PC全員(とエンカウントしているエネミー)を転送して道に迷わせる。「財宝ランク」が1段階減少する。"),
  Row.new("アイスコフィン:宝箱を開けようとしたキャラクターを氷漬けにする罠。対象1体に「%s」の「冷気」属性ダメージ。更にFPにも%s点の防護点無視ダメージ。", ['3D6+30', '3D6+50', '3D6+70', '3D6+100', '300'], [5, 10, 15, 20, 30]),
  Row.new("クロスボウ:宝箱を開けようとしたキャラクターに強力な矢が放たれる罠。対象1体に「%s」の「刺突」属性ダメージ。「ドッジ-%s」", ['3D6+20', '3D6+40', '3D6+60', '3D6+90', '200'], [4, 6, 8, 10, 20]),
  Row.new("毒針:宝箱を開けようとしたキャラクターに毒針を突き刺す罠対象1体に%s点の防護点無視ダメージ。更に[抵抗-%s]判定に失敗するとシナリオ終了まであらゆる判定に-2のペナルティ。", [15, 30, 45, 60, 150], [4, 6, 8, 10, 15]),
  Row.new("アラーム:即座にその地形のエンカウント表を振って、それに対応したエネミーが出現する。出現したエネミーはそのターンから行動順に組み込まれる。出現するエネミー以外の記述は無視する。"),
  Row.new("殺人鬼の斧:宝箱を開けようとしたキャラクターに斧が振り下ろされる罠。対象1体に「%s」の「打撃」「斬撃」属性ダメージ。「ドッジ-%s」か「シールド-%s」で〔回避〕が可能。", ['3D6+30', '3D6+50', '3D6+70', '3D6+100', '300'], [4, 6, 8, 10, 20], [4, 6, 8, 10, -20]),
  Row.new("死神:宝箱を開けようとしたキャラクターに死神を取り憑かせる罠。4ラウンド目が終了するまであらゆる判定に-3のペナルティを受け、4ラウンド目の終了と同時に「%s」の防護点無視ダメージ。", ['3D6+30', '3D6+50', '3D6+70', '3D6+100', '300']),
  Row.new("幻の宝:宝箱に偽の財宝を入れ、本物の財宝を入手させない罠。トラップが発動すると価値の無い偽の宝物「幻の宝」を入手してしまう。「幻の宝」はアイテム欄を3つ占有し、シナリオ終了まで捨てられない。アイテム欄に空きがない場合は、何かを捨てて誰かが必ず持たなくてはならない。"),
  Row.new("エクスプロージョン:宝箱が大爆発を起こし、中身を粉々にしてしまう罠。宝箱の中身は消滅する。PC全員に「%s」の「打撃」「火炎」属性ダメージ。", ['3D6+10', '3D6+30', '3D6+50', '3D6+80', '200']),
  Row.new("レインボーポイズン:宝箱から七色の毒ガスが放たれる罠。PC全員に「%s」の防護点無視ダメージ。更にシナリオ終了まであらゆる判定に-2のペナルティ。[抵抗-%s]判定に成功すれば無効。", ['3D6+10', '3D6+30', '3D6+50', '3D6+80', '200'], [4, 6, 8, 10, 15]),
  Row.new("デスクラウド:宝箱から致死性の毒ガスを放つ罠。PC全員を即死させる。[抵抗-%s]判定に成功すれば無効。", [2, 4, 6, 8, 12]),
].freeze
OPTION_TABLE =
D66Table.new(
  "迷宮追加オプション表",
  {
    11 => Row.new("黄金の迷宮(財宝ランク+2):全てが黄金で彩られた迷宮。財宝ランクが大きく上昇する。"),
    12 => Row.new("密林の迷宮(財宝ランク+1):密林の中にひっそりとたたずむ迷宮。分類が「魔獣」「獣人」「霊獣」のエネミーが行うあらゆる判定に+2のボーナス。"),
    13 => Row.new("カラクリの迷宮:複雑なカラクリが周囲で絶え間なく動いている迷宮。分類「ギア」のエネミーが行うあらゆる判定に+2のボーナス。クリア時に「アタッチメント割引券」を全員が%s枚獲得。", [1, 2, 3, 5, 10]),
    14 => Row.new("フラウの舞踏会:あちこちに花畑のある迷宮。フラウが発生するランダムイベントが発生した際、「この迷宮を制覇して、私達が舞踏会を開けるようにしてね」とお願いされ、クリア時の報酬に%sが追加される。", ['「キノコの帽子」(装飾品)', '「猛毒の花」(装飾品)', '「フルブロウン」(鎧)', '「緊急召喚の宝珠」(装飾品)', '魔将樹の大剣(剣)']),
    15 => Row.new("アズマ風の迷宮:風流なアズマ風の迷宮。武器に「刀」を持つエネミーが行うあらゆる判定に+2のボーナス。クリア時に「アタッチメント割引券」を全員が%s枚獲得。", [1, 2, 3, 5, 10]),
    16 => Row.new("枯れた泉の迷宮:「全地形1-1」の回復の泉が全て枯れており、回復効果を得ることができない。「山岳1-6」の貴重な水源や、「水辺1-6」の毒の泉などはそのまま存在する。"),
    21 => Row.new("天空への道(財宝ランク+1):上へ上へと果てしなく登っていく迷宮。空気が薄くなって疲労しやすくなる。【特技】特技などによるFP消費が全て+3。"),
    22 => Row.new("灼熱焦土の迷宮(財宝ランク+1):とてつもなく暑く、あちこちで炎が燃え盛る迷宮。エネミーが行う「火炎」属性を含む攻撃の致傷力に+%sのボーナス。", [10, 20, 30, 50, 100]),
    23 => Row.new("灼熱焦土の迷宮(財宝ランク+1):とてつもなく寒く、気温が氷点下の迷宮。エネミーが行う「冷気」属性を含む攻撃の致傷力に+%sのボーナス。", [10, 20, 30, 50, 100]),
    24 => Row.new("盗賊王の迷宮:迷宮内での罠や鍵を解除する[感覚]判定に-3のペナルティ。4ラウンドまでに出現した宝箱の「財宝ランク」+1。"),
    25 => Row.new("ミミック狂暴化:「全地形2-5」のミミックの致傷力に+%sのボーナス。ミミックを見破った場合に得られるGPが%sGP増加する。", [20, 30, 50, 80, 150], [500, 1000, 3000, 5000, 20000]),
    26 => Row.new("トレジャーイーター狂暴化:「全地形2-6」のトレジャーイーターを見破る[知力]判定に-3のペナルティ。4ラウンドまでに出現した宝箱の「財宝ランク」+1。"),
    31 => Row.new("暗闇の迷宮:どこもかしこも真っ暗な迷宮。「猫の目」などがなければ視覚に関する[感覚]判定に-5のペナルティ。"),
    32 => Row.new("騒音の迷宮:常に大音量で謎の音楽(BGM)が鳴っている迷宮。聴覚に関する[感覚]判定に-5のペナルティ。"),
    33 => Row.new("未知の怪物の迷宮(財宝ランク+1):エネミーの姿がシルエットのみになる迷宮。エネミーのデータがいかなる手段でも判明させられなくなる。(通常通り〔HP〕〔FP〕〔先制〕は判明する)"),
    34 => Row.new("氾濫中の迷宮:大雨が降っており、川などが氾濫している迷宮。水泳を行う際の[敏捷]判定に-5のペナルティ。「森林3-6」の山火事イベントの効果は無視できる。"),
    35 => Row.new("間抜けの迷宮(財宝ランク+1):頭がおかしくなりそうな極彩色の迷宮。[知力][意志]判定に-2のペナルティ。[知力]や[意志]そのものが下がるわけではない。"),
    36 => Row.new("瘴気の迷宮(財宝ランク+1):生命力を奪う紫の霧で満ちた迷宮。〔HP〕の最大値に-%sのペナルティ。", [10, 20, 30, 40, 50]),
    41 => Row.new("加速する迷宮:狂ったように針の動く時計が多数された迷宮。「CT:安息の日」以外の【特技】が「CT:なし」になる。"),
    42 => Row.new("停滞する迷宮(財宝ランク+1):動かない時計が多数設置された迷宮。「CT:安息の日」以外のCTの存在する【特技】が「CT:シナリオ終了」になる。この効果はシナリオ終了まで持続する。"),
    43 => Row.new("猛毒の迷宮(財宝ランク+1):見るからに毒々しい紫色の沼があちこちにある迷宮。エネミーが行う、名称に「毒」もしくは「ポイズン」が入る【特技】や、名称に「毒」もしくは「ポイズン」が入るトラップの致傷力に+%sのボーナス。", [10, 20, 40, 50, 100]),
    44 => Row.new("死の迷宮(財宝ランク+2):死の運命から逃れることのできない、血まみれの迷宮。「生命保険証」の効果が適用されない。"),
    45 => Row.new("幸運の迷宮:何者かの加護を感じる迷宮。PC全員のFtの最大値と現在値に+1のボーナス。この効果はシナリオ終了まで持続する。"),
    46 => Row.new("不運の迷宮:PC全員のFt最大値と現在値に-1のペナルティ。この効果はシナリオ終了まで持続する。"),
    51 => Row.new("レアメタルの迷宮:非常にレアなエネミー「レアメタルキャンディー」「レアメタルクラウン」が生息している迷宮。キャンディークラウン(CL40)、ゴールデンクラウン(CL177)から獲得できる通常ドロップのGPが5倍になる。"),
    52 => Row.new("魔力の泉:PCとエネミーの双方が、〔FP〕を消費せずに【魔法】を使用できるようになる。最終的な消費〔FP〕が最大〔FP〕より大きい【魔法】は使用できない。"),
    53 => Row.new("ブルーの迷宮:陰鬱な気分になり、他のキャラクターと関わる気力を失う。PC全員が不利な特異点「嫌な奴」を1段階得る。"),
    54 => Row.new("レッドの迷宮:なぜか興奮して非常に好戦的になる。PC全員が不利な特異点「脳みそ筋肉」を得る。交戦中に「1:回復系」のイベントが発生しても戦闘を終了させることができない。"),
    55 => Row.new("ピンクの迷宮:なんだか身近な異性(同性も?)が気になって仕方なくなる。PC全員が不利な特異点「英雄色を好む」を得る。魔族も戦闘意欲を失い、「分類:魔族」のエネミーが出現するイベントは無視する。"),
    56 => Row.new("ハズレの迷宮(財宝ランク-1):ツギハギだらけの壁などでできた、ハリボテのような貧相な迷宮。宝箱の中身もなんだか貧相になる。"),
    61 => Row.new("ラダマンティスの迷宮(財宝ランク+2):第一魔将ラダマンティスの像が入口に設置された迷宮。全てのエネミーが行うあらゆる判定に+2のボーナス。また、「遺跡6-6」のイベントのダメージ+%s。", [20, 40, 60, 80, 150]),
    62 => Row.new("グレイヴディガーの迷宮(財宝ランク+2):第二魔将グレイヴディガーの像が入口に設置された迷宮。「分類:アンデッド」のエネミーが行うあらゆる判定に+5のボーナス。"),
    63 => Row.new("ハイペリオンの迷宮(財宝ランク+2):第三魔将ハイペリオンの像が入口に設置された迷宮。全てのエネミーが「ターン開始」時に〔HP〕を全回復する。"),
    64 => Row.new("ムスペルニヴルの迷宮(財宝ランク+2):勇ましくも美しい女性の像が設置された迷宮。エネミーが行う「火炎」もしくは「冷気」属性を含む攻撃の致傷力に+%sのボーナス。", [20, 40, 60, 80, 150]),
    65 => Row.new("ウェルスの迷宮:人懐っこそうなアズマ風の青年が設置された迷宮。シナリオ上で第五魔将の正体が明らかに鳴っている場合のみ、PC全員のFtの最大値と現在値に+5のボーナス。この効果はシナリオ終了まで持続する。"),
    66 => Row.new("バロールの迷宮(財宝ランク+2):第六魔将バロールの像が入口に設置された迷宮。「分類:ギア」のエネミーが行うあらゆる判定に+5のボーナス。"),
  }
)
LOT_NORMAL_TABLES =

ナンバーワンノーマルくじ表(GURPS-FW版)

別の表に飛ぶ場合は、遅延評価のためにlambdaでジャンプ先の表を括る。

{
  1 => DiceTable::RangeTable.new(
    "ナンバーワンノーマルくじ(phase 1)",
    "1D6",
    [
      [1..3, "イレブンチキン"],
      [4..5, lambda { LOT_NORMAL_TABLES[2] }],
      [6, lambda { LOT_NORMAL_TABLES[3] }],
    ]
  ).freeze,

  2 => DiceTable::RangeTable.new(
    "ナンバーワンノーマルくじ(phase 2)",
    "1D6",
    [
      [1, "バロールたわし"],
      [2, "イグニスジッポ"],
      [3, "ヤコ仮面or梟の文鎮(選択可)"],
      [4, "ナレッジのハンモックorジンジャビースト"],
      [5..6, lambda { LOT_NORMAL_TABLES[3] }],
    ]
  ).freeze,

  3 => DiceTable::RangeTable.new(
    "ナンバーワンノーマルくじ(phase 3)",
    "1D6",
    [
      [1, "特性HPポーション"],
      [2, "特性MPポーション"],
      [3, "黒い甲冑"],
      [4, "天体望遠鏡"],
      [5, "金獅子の剥製"],
      [6, lambda { LOT_NORMAL_TABLES[4] }],
    ]
  ).freeze,

  4 => DiceTable::RangeTable.new(
    "ナンバーワンノーマルくじ(phase 4)",
    "1D6",
    [
      [1, "特性スタミナポーション"],
      [2, "戦乙女の兜"],
      [3, "フェンリルの首輪"],
      [4, "フェニックスカーペット"],
      [5, "動くアダマンゴーレム"],
      [6, lambda { LOT_NORMAL_TABLES[5] }],
    ]
  ).freeze,

  5 => DiceTable::RangeTable.new(
    "ナンバーワンノーマルくじ(phase 5)",
    "1D6",
    [
      [1, "キャンディークッション"],
      [2, "屑鉄の金床"],
      [3, "薪割り王の斧"],
      [4, "ロジエの水差し"],
      [5, "箱舟の模型"],
      [6, lambda { LOT_PREMIUM_TABLES[5] }],
    ]
  ).freeze,
}.freeze
LOT_PREMIUM_TABLES =

ナンバーワンプレミアムくじ表(GURPS-FW版)

別の表に飛ぶ場合は、遅延評価のためにlambdaでジャンプ先の表を括る。

{
  1 => DiceTable::RangeTable.new(
    "ナンバーワンプレミアムくじ(phase 1)",
    "1D6",
    [
      [1..3, "プレミアムチキン"],
      [4, lambda { LOT_NORMAL_TABLES[3] }],
      [5..6, lambda { LOT_PREMIUM_TABLES[2] }],
    ]
  ).freeze,

  2 => DiceTable::RangeTable.new(
    "ナンバーワンプレミアムくじ(phase 2)",
    "1D6",
    [
      [1, "親衛隊バッジ"],
      [2, "ハタモトチャブダイ"],
      [3, "星のコンパス"],
      [4, "白銀の甲冑"],
      [5, lambda { LOT_NORMAL_TABLES[4] }],
      [6, lambda { LOT_PREMIUM_TABLES[3] }],
    ]
  ).freeze,

  3 => DiceTable::RangeTable.new(
    "ナンバーワンプレミアムくじ(phase 3)",
    "1D6",
    [
      [1, "特性クイックHPポーション"],
      [2, "特性クイックMPポーション"],
      [3, "特製クイックスタミナポーション"],
      [4, "火龍のフィギュアor氷龍のフィギュア(選択可)"],
      [5, "ヒメショーグンドレス"],
      [6, lambda { LOT_PREMIUM_TABLES[4] }],
    ]
  ).freeze,

  4 => DiceTable::RangeTable.new(
    "ナンバーワンプレミアムくじ(phase 4)",
    "1D6",
    [
      [1, "クイックユグドラポーション"],
      [2, "銀河龍のフィギュア/ドラゴン"],
      [3, "銀河龍のフィギュア/魔族"],
      [4, "魔族チェスセット"],
      [5, "イグニスコンロ"],
      [6, lambda { LOT_PREMIUM_TABLES[5] }],
    ]
  ).freeze,

  5 => DiceTable::RangeTable.new(
    "ナンバーワンプレミアムくじ(phase 5)",
    "1D6",
    [
      [1, "グレヴディバリウス"],
      [2, "天使の望遠鏡orデスの目覚まし時計(選択可)"],
      [3, "世界樹の蔦"],
      [4, "死神の飾りドレス"],
      [5, "ザバーニヤ等身大フィギュア"],
      [6, lambda { LOT_PREMIUM_TABLES[6] }],
    ]
  ).freeze,

  6 => DiceTable::RangeTable.new(
    "ナンバーワンプレミアムくじ(phase 6)",
    "1D6",
    [
      [1, "イレブンチキン"],
      [2, "イレブンチキン(2ピース)"],
      [3, "イレブンチキン(3ピース)"],
      [4, "イレブンチキン(6ピース)"],
      [5, "イレブンチキン(12ピース)"],
      [6, "wish star"],
    ]
  ).freeze,
}.freeze
COOK_TABLES =

マジカルクッキング表

別の表に飛ぶ場合は、遅延評価のためにlambdaでジャンプ先の表を括る。

{
  1 => DiceTable::RangeTable.new(
    "マジカルクッキング(Lv 1)",
    "1D6",
    [
      [1, "おべんとミートボール"],
      [2, "パリパリ小魚"],
      [3, "キャロットタルト"],
      [4, "おにぎり"],
      [5..6, lambda { COOK_TABLES[2] }],
    ]
  ).freeze,

  2 => DiceTable::RangeTable.new(
    "マジカルクッキング(Lv 2)",
    "1D6",
    [
      [1, "カリカリミミズ肉"],
      [2, "竹つきチクワ"],
      [3, "トロピカルジュース"],
      [4, "イナリ寿司"],
      [5..6, lambda { COOK_TABLES[3] }],
    ]
  ).freeze,

  3 => DiceTable::RangeTable.new(
    "マジカルクッキング(Lv 3)",
    "1D6",
    [
      [1, "ホットミートパイ"],
      [2, "魔界魚の目玉"],
      [3, "パンプキンプリン"],
      [4, "スタミナ丼"],
      [5..6, lambda { COOK_TABLES[4] }],
    ]
  ).freeze,

  4 => DiceTable::RangeTable.new(
    "マジカルクッキング(Lv 4)",
    "1D6",
    [
      [1, "ジャンボ串焼き"],
      [2, "シルヴァまっしぐら"],
      [3, "フラウアイスクリーム"],
      [4, "ピクニックランチ"],
      [5..6, lambda { COOK_TABLES[5] }],
    ]
  ).freeze,

  5 => DiceTable::RangeTable.new(
    "マジカルクッキング(Lv 5)",
    "1D6",
    [
      [1, "グラント風香草焼き"],
      [2, "エドマエスシ"],
      [3, "スターフルーツパフェ"],
      [4, "具沢山本格カレー"],
      [5..6, lambda { COOK_TABLES[6] }],
    ]
  ).freeze,

  6 => DiceTable::RangeTable.new(
    "マジカルクッキング(Lv 6)",
    "1D6",
    [
      [1, "ドラゴンステーキ"],
      [2, "刺身盛り合わせ"],
      [3, "エデンのアップルパイ"],
      [4, "フォートレス炒飯"],
      [5..6, lambda { COOK_TABLES[7] }],
    ]
  ).freeze,

  7 => DiceTable::RangeTable.new(
    "マジカルクッキング(Lv 7)",
    "1D6",
    [
      [1, "マツザカスペシャル"],
      [2, "オオトロスシ"],
      [3, "スノーホワイトボンブ"],
      [4, "よもつへぐい"],
      [5..6, lambda { COOK_TABLES[8] }],
    ]
  ).freeze,

  8 => DiceTable::RangeTable.new(
    "マジカルクッキング(Lv 8)",
    "1D6",
    [
      [1, "超特大マンガ肉"],
      [2, "特上うな丼"],
      [3, "魔将樹のかき氷"],
      [4, "ヘブンズランチ"],
      [5..6, lambda { COOK_TABLES[9] }],
    ]
  ).freeze,

  9 => DiceTable::RangeTable.new(
    "マジカルクッキング(Lv 9)",
    "1D6",
    [
      [1..3, "世界樹のサラダ"],
      [4..6, "黄金のラダマン鍋"],
    ]
  ).freeze,
}.freeze
EVENT_TABLES =
[
  cave,
  ruin,
  mountain,
  waterside,
  forest,
  graveyard,
].freeze
TRESURE_TABLES =
{
  0 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "HPポーション(消耗品)",
      "FPポーション(消耗品)",
      "マジックパウダー:火(消耗品)",
      "マジックパウダー:氷(消耗品)",
      "マジックパウダー:雷(消耗品)",
      "500GP",
    ]
  ),
  1 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "高級HPポーション(消耗品)",
      "高級FPポーション(消耗品)",
      "高級抵抗ポーション(消耗品)",
      "高級鉄壁ポーション(消耗品)",
      "マジックパウダー:火、氷、雷の3点セット(消耗品)",
      "1000GP",
    ]
  ),
  2 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "鈴のお守り(装飾品)",
      "盗賊の小手(装飾品)",
      "狩人の羽帽子(装飾品)",
      "狙撃手の指貫(装飾品)",
      "「スタミナバンド」「健康お守り」「レザーマント」3点セット",
      "2000GP",
    ]
  ),
  3 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "最高級HPポーション×2(消耗品)",
      "最高級FPポーション×2(消耗品)",
      "最高級抵抗ポーション×2(消耗品)",
      "任意の装飾品1つ(4000GPまでのもの)",
      "アタッチメント割引券(全員に1枚)",
      "3000GP",
    ]
  ),
  4 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "任意の「ミスリル」武器1つ",
      "ミスリルシールド(盾)",
      "ミスリルスケイル(鎧)",
      "任意の装飾品1つ(5000GPまでのもの)",
      "アタッチメント割引券(全員に2枚)",
      "5000GP",
    ]
  ),
  5 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "任意の武器1つ(10000GPまでのもの)",
      "任意の盾1つ(10000GPまでのもの)",
      "任意の鎧1つ(10000GPまでのもの)",
      "最高級HPポーション(人数分)",
      "任意の装飾品1つ(10000GPまでのもの)",
      "7500GP",
    ]
  ),
  6 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "任意の武器1つ(15000GPまでのもの)",
      "任意の盾1つ(15000GPまでのもの)",
      "任意の鎧1つ(15000GPまでのもの)",
      "任意の装飾品1つ(15000GPまでのもの)",
      "最高級FPポーション(人数分)",
      "10000GP",
    ]
  ),
  7 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "任意の武器1つ(30000GPまでのもの)",
      "任意の盾1つ(30000GPまでのもの)",
      "任意の鎧1つ(30000GPまでのもの)",
      "任意の装飾品1つ(30000GPまでのもの)",
      "蘇生ポーション(消耗品)",
      "20000GP",
    ]
  ),
  8 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "任意の武器1つ(60000GPまでのもの)",
      "任意の盾1つ(60000GPまでのもの)",
      "任意の鎧1つ(60000GPまでのもの)",
      "任意の装飾品1つ(60000GPまでのもの)",
      "蘇生ポーション(装飾品)+アタッチメント割引券10枚(割引券は人数分)",
      "40000GP",
    ]
  ),
  9 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "任意の武器1つ(100000GPまでのもの)",
      "任意の盾1つ(100000GPまでのもの)",
      "任意の鎧1つ(100000GPまでのもの)",
      "任意の装飾品1つ(100000GPまでのもの)",
      "蘇生ポーション(装飾品)+アタッチメント割引券20枚(割引券は人数分)",
      "60000GP",
    ]
  ),
  10 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "任意の武器1つ(150000GPまでのもの)",
      "任意の盾1つ(150000GPまでのもの)",
      "任意の鎧1つ(150000GPまでのもの)",
      "任意の装飾品1つ(200000GPまでのもの)",
      "蘇生ポーション(装飾品)+アタッチメント割引券30枚(割引券は人数分)",
      "黄金の守護者の証(装飾品)(【ハッキング】があれば黄金の電子暗号キー(装飾品)も追加)",
    ]
  ),
  11 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "体力の欠片(大事なもの)(全員に10個)",
      "敏捷の欠片(大事なもの)(全員に10個)",
      "感覚の欠片(大事なもの)(全員に10個)",
      "知力の欠片(大事なもの)(全員に10個)",
      "意志の欠片(大事なもの)(全員に10個)",
      "お好きな副能力の欠片(大事なもの)(1人ずつ好きなものを選択して全員に50個)",
    ]
  ),
  12 => DiceTable::Table.new(
    "財宝表",
    "1D6",
    [
      "体力の欠片(大事なもの)(全員に20個)",
      "敏捷の欠片(大事なもの)(全員に20個)",
      "感覚の欠片(大事なもの)(全員に20個)",
      "知力の欠片(大事なもの)(全員に20個)",
      "意志の欠片(大事なもの)(全員に20個)",
      "お好きな副能力の欠片(大事なもの)(1人ずつ好きなものを選択して全員に100個)",
    ]
  )
}.freeze
AREA_LIST =
[
  "洞窟",
  "遺跡",
  "山岳",
  "水辺",
  "森林",
  "墓場",
].freeze
ENEMY_DATA =
{
  "141" => [
    "キャンディークラウン(CL40)1匹",
    "キャンディクラウン(CL40)「1D-3」匹(最低1匹)",
    "キャンディークラウン「1D-2」匹(最低1匹)出目が6だった場合ゴールデンクラウン(CL177)1匹",
    "ゴールデンクラウン(CL177)とエンカウント",
    "キャンディークラウン(CL40/オリジン)1匹"
  ],
  "142" => [
    "ベルセルク(CL7)3匹",
    "ベルセルク(CL7)3匹(〔命中〕+4、〔HP〕+30、〔FP〕+10、あらゆる致傷力+20)",
    "ベルセルク(CL7)3匹(〔命中〕+8、〔HP〕+60、〔FP〕+20、あらゆる致傷力+40)",
    "ベルセルク(CL7)3匹(〔命中〕+16、〔HP〕+120、〔FP〕+40、あらゆる致傷力+80)",
    "ベルセルク(CL7/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "143" => [
    "ガーゴイル(CL10)2匹",
    "ガーゴイル(CL10)2匹(〔命中〕+4、〔HP〕+20、〔FP〕+10、あらゆる致傷力と防護点+20)",
    "ガーゴイル(CL10)2匹(〔命中〕+8、〔HP〕+40、〔FP〕+20、あらゆる致傷力と防護点+40)",
    "ザッハーク(CL39)3匹",
    "ガーゴイル(CL10/オリジン)2匹(〔HP〕+500、あらゆる致傷力と防護点+100)"
  ],
  "144" => [
    "デビルホイール(CL18)1匹",
    "デビルホイール(CL18)1匹、あらゆる致傷力+20",
    "デビルホイール(CL18)1匹、あらゆる致傷力+40",
    "ムスペルヘイムの獣(CL65)、あらゆる防護点+20",
    "デビルホイール(CL18/オリジン)1匹(〔HP〕+1000、あらゆる致傷力+100)"
  ],
  "145" => [
    "ヘルハウンド(CL12)1匹、インプ(CL3)2匹",
    "フェニックス(CL25)2匹",
    "火龍ヘルブレイザー(CL50)1匹、ケルベロス(CL33)1匹",
    "煉獄龍バーガトリ(CL100)1匹",
    "ヘルハウンド(CL12/オリジン)1匹、インプ(CL3/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "146" => [
    "アイスメイデン(CL10)1匹、アイスリザード(CL7)2匹",
    "クリスタルビースト(CL25)2匹",
    "氷河龍グレイシャル(CL65)1匹",
    "冥界龍コキュートス(CL110)1匹",
    "アイスメイデン(CL10/オリジン)1匹、アイスリザード(CL7/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "241" => [
    "スケルトン(CL3)、アルテミス(CL8)、スターゲイザー(CL10)、ヤシャ(CL10)、ヘルハウンド(CL12)、ゴーレム(CL13)",
    "ナイトスケルトン(CL12)、カラクリフラウ弐式(CL16)、コスモロジスト(CL20)、クリスタルビースト(CL25)、ミスリルゴーレム(CL27)",
    "コガラシ(CL27)、アダマンゴーレム(CL45)、アシュラ(CL48)、火龍ヘルブレイザー(CL50)、氷龍グレイシャル(CL65)",
    "ロックダンサー(CL39)、デスサジタリー(CL45)、コンゴウ(CL60)、カラクリヒメショーグン(CL75)、フェンリル(CL85)、ゴールデンクラウン(CL177)\nゴールデンクラウンが最後に残り【逃走】した場合ドロップ品は入手できない",
    "スケルトン(CL3/オリジン)、アルテミス(CL8/オリジン)、スターゲイザー(CL10/オリジン)、ヤシャ(CL10/オリジン)、ヘルハウンド(CL12/オリジン)、ゴーレム(CL13/オリジン)(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "242" => [
    "アルテミス(CL8)3匹",
    "アルテミス(CL8)3匹(〔命中〕+4、〔HP〕+30、〔FP〕+20、あらゆる致傷力+20)",
    "アルテミス(CL8)3匹(〔命中〕+8、〔HP〕+60、〔FP〕+30、あらゆる致傷力+40)",
    "アルテミス(CL8)3匹(〔命中〕+16、〔HP〕+120、〔FP〕+40、あらゆる致傷力+80)",
    "アルテミス(CL8/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "243" => [
    "スターゲイザー(CL10)2匹",
    "コスモロジスト(CL20)2匹",
    "コスモロジスト(CL20)4匹",
    "デスサジタリー(CL45)2匹",
    "スターゲイザー(CL10/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "244" => [
    "ヤシャ(CL10)1匹、スケルトン(CL3)3匹",
    "ヤシャ(CL10)3匹(〔命中〕+4、〔HP〕+30、〔FP〕+10、あらゆる致傷力+15)",
    "アシュラ(CL48)2匹",
    "コンゴウ(CL60)2匹",
    "ヤシャ(CL10/オリジン)1匹、スケルトン(CL3/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "245" => [
    "ヘルハウンド(CL12)2匹",
    "クリスタルビースト(CL25)2匹",
    "火龍ヘルブレイザー(CL50)1匹、氷河龍グレイシャル(CL65)",
    "『単眼の巨神』アイングロース(CL100/ネームド)",
    "ヘルハウンド(CL12/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "246" => [
    "ゴーレム(CL13)1匹",
    "ミスリルゴーレム(CL27)1匹",
    "アダマンゴーレム(CL45)1匹",
    "カラクリヒメショーグン(CL75)1匹",
    "ゴーレム(CL13/オリジン)1匹(〔HP〕+1000、あらゆる致傷力+100)"
  ],
  "341" => [
    "アイアンプリチン(CL5)5匹",
    "アイアンプリチン(CL5)5匹(〔命中〕+4、〔HP〕+30、〔FP〕+10)",
    "アイアンプリチン(CL5)5匹(〔命中〕+8、〔HP〕+60、〔FP〕+20)",
    "アイアンプリチン(CL5)5匹(〔命中〕+16、〔HP〕+120、〔FP〕+40)",
    "アイアンプリチン(CL5/オリジン)5匹(〔HP〕+300、あらゆる致傷力+100)"
  ],
  "342" => [
    "ウイングスレイブ(CL4)5匹",
    "ウイングスレイブ(CL4)5匹(〔命中〕+4、〔HP〕+30、〔FP〕+10、あらゆる致傷力+20)",
    "ガルーダ(CL40)2匹",
    "栄光の天使(CL60)2匹",
    "ウイングスレイブ(CL4/オリジン)5匹(〔HP〕+300、あらゆる致傷力+100)"
  ],
  "343" => [
    "ブラックナイト(CL10)1匹、ソルジャー(CL4)3匹",
    "デュラハン(CL22)1匹、ブラックナイト(CL10)2匹",
    "サーバントマスター(CL35)1匹、デュラハン(CL22)2匹",
    "ジェネラル(CL55)1匹、サーバントマスター(CL35)2匹",
    "ブラックナイト(CL10/オリジン)1匹、ソルジャー(CL4/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "344" => [
    "ソルジャーアント(CL8)2匹",
    "ソルジャーアント(CL8)2匹(〔命中〕+4、〔HP〕+30、〔FP〕+10、あらゆる致傷力+20)",
    "インペリアルアント(CL30)2匹",
    "『女王キノコ』アカシックツリー(CL50/ネームド)1匹、インペリアルアント(CL30)2匹",
    "ソルジャーアント(CL8/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "345" => [
    "カボチャの魔女(CL8)2匹",
    "カボチャの魔女(CL8)2匹(〔命中〕+4、〔HP〕+30、〔FP〕+10、あらゆる致傷力+20)",
    "カボチャの大魔女(CL35)2匹",
    "堕落の黒天使(CL60)2匹",
    "カボチャの魔女(CL8/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "346" => [
    "フェニックス(CL25)2匹",
    "フェニックス(CL25)2匹(〔命中〕+4、〔HP〕+40、〔FP〕+10、あらゆる致傷力+30)",
    "フェニックス(CL25)2匹(〔命中〕+8、〔HP〕+80、〔FP〕+20、あらゆる致傷力+60)",
    "煉獄フェニックス(CL85)2匹",
    "フェニックス(CL25/オリジン)2匹(〔HP〕+1000、あらゆる致傷力+200)"
  ],
  "441" => [
    "フロストクラブ(CL6)2匹",
    "フロストクラブ(CL6)3匹",
    "『氷海の主』ギガントキャンサー(CL20/ネームド)",
    "『氷海の主』ギガントキャンサー(CL20/ネームド)、フロストクラブ(CL6)3匹",
    "フロストクラブ(CL6/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "442" => [
    "アシガル(CL4)3匹",
    "ハタモト(CL10)3匹",
    "ヒトキリ(CL33)2匹",
    "スカーレス(CL38)3匹",
    "アシガル(CL4/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "443" => [
    "アンブッシュマン(CL5)3匹",
    "アンブッシュマン(CL5)3匹(〔命中〕+4、〔HP〕+20、〔FP〕+10、あらゆる致傷力+10)",
    "シャドウストーカー(CL35)2匹",
    "シャドウストーカー(CL35)3匹",
    "アンブッシュマン(CL5/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "444" => [
    "アップルドール(CL12)2匹",
    "アップルドール(CL12)2匹、ポイズンリリー(CL7)2匹",
    "テラードール(CL30)2匹",
    "テラードール(CL30)2匹、バリアリーフ(CL27)2匹",
    "アップルドール(CL12/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "445" => [
    "ナイトライダー(CL15)1匹",
    "ナイトライダー(CL15)2匹",
    "ジェネラル(CL55)1匹",
    "ジェネラル(CL55)2匹",
    "ナイトライダー(CL15/オリジン)1匹(〔HP〕+800、あらゆる致傷力+100)"
  ],
  "446" => [
    "ジェルスケルトン(CL10)1匹",
    "ジェルスケルトン(CL10)1匹(〔命中〕+4、〔FP〕+10、あらゆる致傷力+20)",
    "ジェルスケルトン(CL10)1匹(〔命中〕+8、〔FP〕+20、あらゆる致傷力+40)",
    "ジェルスケルトン(CL10)1匹(〔命中〕+12、〔FP〕+40、あらゆる致傷力+80)",
    "ジェルスケルトン(CL10/オリジン)1匹(〔HP〕+1500、あらゆる致傷力+200)"
  ],
  "541" => [
    "スナッチャー(CL4)3匹",
    "ゴールデンビースト(CL10)3匹",
    "ヨウコ(CL30)2匹",
    "イビルオーメン(CL42)2匹",
    "スナッチャー(CL4/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "542" => [
    "スターゲイザー(CL10)1匹、オーク(CL3)3匹",
    "スターゲイザー(CL10)1匹、ヘルハウンド(CL12)2匹",
    "コスモロジスト(CL20)1匹、ケルベロス(CL33)1匹",
    "サーバントマスター(CL35)1匹、ケルベロス(CL33)2匹",
    "スターゲイザー(CL10/オリジン)1匹、オーク(CL3/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "543" => [
    "オウルセージ(CL5)1匹、インプ(CL3)3匹。指定エネミー:オウルセージ",
    "オウルセージ(CL5)3匹。指定エネミー:オウルセージ",
    "オウルコマンダー(CL18)1匹、キメラ(CL15)2匹。指定エネミー:オウルコマンダー",
    "オウルコマンダー(CL18)2匹、キメラグレート(CL60)1匹。指定エネミー:オウルコマンダー",
    "オウルセージ(CL/オリジン5)1匹、インプ(CL3/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)。指定エネミー:オウルセージ"
  ],
  "544" => [
    "グリーンアクトレス(CL22)1匹",
    "魔将樹の騎士(CL40)1匹",
    "魔将樹の番人(CL80)1匹",
    "『魔将樹の剣姫』ロジエモール(CL120/ネームド)1匹",
    "グリーンアクトレス(CL22/オリジン)1匹(〔HP〕+200、あらゆる致傷力+200、分類「ネームド」と【始原の力】を追加)"
  ],
  "545" => [
    "ポイズンリリー(CL7)1匹、リリーの尖兵(CL5)1匹",
    "ポイズンリリー(CL7)1匹、リリーの尖兵(CL5)1匹(〔命中〕+4、〔HP〕+30、〔FP〕+10、あらゆる致傷力+20)",
    "バリアリーフ(CL27)1匹、リリーの尖兵(CL5)1匹(〔命中〕+8、〔HP〕+60、〔FP〕+20、あらゆる致傷力+40)",
    "『密林の女王』クイーンリリー(CL70/ネームド)1匹、リリーの尖兵(CL5)1匹(〔命中〕+16、〔HP〕+120、〔FP〕+40、あらゆる致傷力+80)",
    "ポイズンリリー(CL7/オリジン)1匹、リリーの尖兵(CL5/オリジン)1匹(〔HP〕+800、あらゆる致傷力+100)"
  ],
  "546" => [
    "ブラックナイト(CL10)1匹、ソルジャー(CL4)3匹",
    "ヴァルキリー(CL20)1匹、ブラックナイト(CL10)2匹",
    "フレイヤ(CL45)1匹、ヴァルキリー(CL20)2匹",
    "ジェネラル(CL55)1匹、フレイヤ(CL45)2匹",
    "ブラックナイト(CL10/オリジン)1匹、ソルジャー(CL4/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "641" => [
    "ヤコ(CL6)3匹(【狐の送り火】のデータを「疲労:なし」に変更)",
    "ヨウコ(CL30)1匹(【狐の送り火】のデータを「疲労:なし」に変更)",
    "ヨウコ(CL30)3匹(【狐の送り火】のデータを「疲労:なし」に変更)",
    "タタリドラゴン(CL60/ネームド)1匹(【狐の送り火】のデータを「疲労:なし」に変更)",
    "ヤコ(CL6/オリジン)3匹((〔HP〕+500、あらゆる致傷力+100、【狐の送り火】のデータを「疲労:なし」に変更)"
  ],
  "642" => [
    "スケルトン(CL3)4匹",
    "ナイトスケルトン(CL12)3匹",
    "ヒトキリ(CL33)2匹(「分類:アンデッド」を追加)",
    "堕ちた黒龍(CL48)2匹",
    "スケルトン(CL3/オリジン)4匹(〔HP〕+500、あらゆる致傷力+200)"
  ],
  "643" => [
    "ポイズンリリー(CL7)1匹(【華劇:リリーオブザバレー】使用済み)、ファントム(CL5)2匹",
    "ポイズンリリー(CL7)1匹(【華劇:リリーオブザバレー】使用済み)、ゴースト(CL10)3匹",
    "グリーンアクトレス(CL22)1匹(【華劇:フォレストステップ】使用済み)、デュラハン(CL22)2匹",
    "グリーンアクトレス(CL22)1匹(【華劇:フォレストステップ】使用済み)、カラクリヒメショーグン(CL75)1匹",
    "ポイズンリリー(CL7/オリジン)1匹(【華劇:リリーオブザバレー】使用済み)、ファントム(CL5)2匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "644" => [
    "君たちの冒険はここで終了だ。",
    "君たちの冒険はここで終了だ。",
    "君たちの冒険はここで終了だ。",
    "第二魔将『葬送者』グレイヴディガー(CL200/魔将)1匹、『ディガー様親衛隊長』フュネライユ(CL66/ネームド)1匹、『トラップマスター』アンテルモン(CL65/ネームド)1匹",
    "[現在エネミー未実装の為振り直ししてください]",
  ],
  "645" => [
    "ゴースト(CL10)1匹(通常ドロップ「1000GP」)、ソルジャー(CL4)2匹",
    "ゴースト(CL10)1匹(通常ドロップ「2000GP」)、ハタモト(CL10)3匹",
    "リッチ(CL44)1匹(通常ドロップ「4000GP」)、ミスリルゴーレム(CL27)1匹",
    "エルダーリッチ(CL55)1匹(通常ドロップ「8000GP」)、アダマンゴーレム(CL45)1匹",
    "ゴースト(CL10/オリジン)1匹(通常ドロップ「1000GP」)、ソルジャー(CL4/オリジン)2匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "646" => [
    "ボーンスネーク(CL20)1匹",
    "ボーンスネーク(CL20)2匹",
    "ラダマンティスの蛇(CL50)1匹",
    "ラダマンティスの蛇(CL50)1匹(ネームド仕様[HP4倍、【ネームドエネミー】習得])",
    "ボーンスネーク(CL20/オリジン)1匹(〔HP〕+1500、あらゆる致傷力+200)"
  ],
  "256" => [
    "ボーンスネーク(CL50)1匹",
    "ラダマンティスの蛇(CL50)1匹",
    "銀河龍ラクテア/ドラゴン形態(CL90)1匹",
    "『三つ首の災厄』トライディザスター(CL100/ネームド)1匹",
    "ボーンスネーク(CL50/オリジン)1匹(〔HP〕+2000、あらゆる致傷力+200)"
  ],
  "265" => [
    "キャンディークラウン(CL40)「1D6」匹",
    "キャンディークラウン(CL40)「1D6+1」匹",
    "キャンディークラウン(CL40)「1D6」匹、ゴールデンクラウン(CL177)1匹",
    "キャンディークラウン(CL40)「1D6」匹、ゴールデンクラウン(CL177)2匹",
    "キャンディークラウン(CL40/オリジン)「1D6」匹",
  ],
  "465" => [
    "リビングデッド(CL5)3匹",
    "ゴースト(CL10)3匹",
    "デュラハン(CL22)3匹",
    "リッチ(CL44)3匹",
    "リビングデッド(CL5/オリジン)3匹(〔HP〕+500、あらゆる致傷力+100)"
  ],
  "665" => [
    "カロン(CL12)2匹",
    "カロンキャプテン(CL25)2匹",
    "リッチ(CL44)2匹",
    "エルダーリッチ(CL55)2匹(〔HP〕+10)",
    "カロンキャプテン(CL25/オリジン)2匹"
  ],
  "666" => [
    "『漆黒の戦鬼』ブラックナイト(CL10/ネームド)1匹",
    "『漆黒の戦鬼』ブラックナイト(CL10/ネームド)1匹(〔命中〕+4、あらゆる致傷力+20、〔HP〕+200)",
    "『白銀の猛将』ジェネラル(CL55/ネームド)1匹",
    "『白銀の猛将』ジェネラル(CL55/ネームド)1匹(〔命中〕+4、あらゆる致傷力+20、〔HP〕+500)",
    "[現在エネミー未実装の為振り直ししてください]"
  ],
}.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, prefixes_pattern, register_prefix, register_prefix_from_super_class, #sort_add_dice?, #sort_barabara_dice?

Methods included from Translate

#translate

Constructor Details

#initialize(command) ⇒ FilledWith



49
50
51
52
# File 'lib/bcdice/game_system/FilledWith.rb', line 49

def initialize(command)
  super(command)
  @d66_sort_type = D66SortType::NO_SORT; # d66の差し替え
end

Instance Method Details

#eval_game_system_specific_command(command) ⇒ Result?



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/bcdice/game_system/FilledWith.rb', line 56

def eval_game_system_specific_command(command)
  # ダイスロールコマンド
  result = FW.roll(command, @randomizer)
  return result if result

  # 各種コマンド
  case command
  when "LOTN"
    roll_jump_table("ナンバーワンノーマルくじ", LOT_NORMAL_TABLES[1])
  when "LOTP"
    roll_jump_table("ナンバーワンプレミアムくじ", LOT_PREMIUM_TABLES[1])
  when /COOK([1-8])/
    lv = Regexp.last_match(1).to_i
    roll_jump_table("マジカルクッキング", COOK_TABLES[lv])
  when /TRAP[ENHLX]/
    roll_trap_table(command)
  when /TRS.*/i
    getTresureResult(command)
  when /RAND.*/
    roll_random_event_table(command)
  when /RENC.*/
    roll_random_event_table(command)
  when /RED.*/i
    fetch_enemy_data(command)
  when /ROP[ENHLX]/
    roll_random_option_table(command)
  else
    roll_tables(command, TABLES)
  end
end

#fetch_enemy_data(command) ⇒ Object

夢幻の迷宮エネミーデータ表



7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/bcdice/game_system/filled_with/enemy_data_tables.rb', line 7

def fetch_enemy_data(command)
  m = /^RED([ENHLX])(256|265|465|665|666|[1-6]4[1-6])$/.match(command)
  unless m
    return nil
  end

  difficulty = Difficulty.new(m[1])
  key = m[2]
  area_name = AREA_LIST[key[0].to_i - 1]

  chosen = ENEMY_DATA[key][difficulty.index]

  return "エネミーデータ表(#{key}):#{area_name}<#{difficulty.name}>:#{chosen}"
end

#format_table_roll_result(table_name, number, result) ⇒ String

表を振った結果を独自の書式で整形する



92
93
94
# File 'lib/bcdice/game_system/FilledWith.rb', line 92

def format_table_roll_result(table_name, number, result)
  "#{table_name}(#{number}):#{result}"
end

#getTresureResult(command) ⇒ Object

夢幻の迷宮財宝表



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/bcdice/game_system/filled_with/tresure_tables.rb', line 7

def getTresureResult(command)
  m = /^TRS(\d+)([+\-]\d)?$/.match(command)
  unless m
    return nil
  end

  rank = m[1].to_i + m[2].to_i
  rank = rank.clamp(0, 12)

  return TRESURE_TABLES[rank].roll(@randomizer)
end

#roll_jump_table(table_name, table) ⇒ Result

ジャンプする項目を含む表を振る



100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/bcdice/game_system/FilledWith.rb', line 100

def roll_jump_table(table_name, table)
  # 出目の配列
  values = []

  loop do
    roll_result = table.roll(@randomizer)
    values.concat(roll_result.values)

    content = roll_result.content
    case content
    when String
      return Result.new(format_table_roll_result(table_name, values.join, content))
    when Proc
      # 次の繰り返しで指定された表を参照する
      table = content.call
    else
      raise TypeError
    end
  end
end

#roll_random_event_table(command) ⇒ Object

夢幻の迷宮ランダムイベント表



351
352
353
354
355
356
357
358
359
360
361
362
363
# File 'lib/bcdice/game_system/FilledWith.rb', line 351

def roll_random_event_table(command)
  m = /^(RAND|RENC)([ENHLX])([1-6])?$/.match(command)
  unless m
    return nil
  end

  type = m[1] == "RAND" ? nil : 4
  difficulty = Difficulty.new(m[2])
  area = m[3]&.to_i || @randomizer.roll_once(6)

  table = EVENT_TABLES[area - 1]
  return table.roll(@randomizer, difficulty, type: type)
end

#roll_random_option_table(command) ⇒ Object

夢幻の迷宮追加オプション表



340
341
342
343
344
345
346
347
348
# File 'lib/bcdice/game_system/FilledWith.rb', line 340

def roll_random_option_table(command)
  m = /^ROP([ENHLX])$/.match(command)
  unless m
    return nil
  end

  difficality = Difficulty.new(m[1])
  return OPTION_TABLE.roll(@randomizer, difficality)
end

#roll_trap_table(command) ⇒ Object

夢幻の迷宮トラップ表



270
271
272
273
274
275
276
277
278
279
280
281
# File 'lib/bcdice/game_system/FilledWith.rb', line 270

def roll_trap_table(command)
  m = /^TRAP([ENHLX])$/.match(command)
  unless m
    return nil
  end

  difficality = Difficulty.new(m[1])
  number = @randomizer.roll_sum(3, 6)
  chosen = TRAP_TABLE[number - 3]

  return "トラップ表<#{difficality.name}>(#{number}):#{chosen.format(difficality)}"
end