# frozen_string_literal: true

module BCDice
  module GameSystem
    class InvisibleLiar < Base
      # ゲームシステムの識別子
      ID = 'InvisibleLiar'

      # ゲームシステム名
      NAME = 'インビジブルライアー'

      # ゲームシステム名の読みがな
      SORT_KEY = 'いんひしふるらいああ'

      # ダイスボットの使い方
      HELP_MESSAGE = <<~HELP
        ■ 採取表
        WOODSn 森
        PRAIRIEn 草原
        LAKEn 湖
        RIVERn 川辺
        SWAMPn 沼地
        CAVEn 洞窟
        ROCKYn 岩場
        MOUNTAINn 山岳
          n: 採取時間（1〜5）
      HELP

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

      TABLES = {
        "WOODS1" => DiceTable::Table.new("森 1時間", "1D6", ["麗し草", "麗し草", "麗し草", "神秘のキノコ", "妖精の羽", "成果なし"]),
        "WOODS2" => DiceTable::Table.new("森 2時間", "1D6", ["麗し草", "麗し草", "神秘のキノコ", "神秘のキノコ", "妖精の羽", "成果なし"]),
        "WOODS3" => DiceTable::Table.new("森 3時間", "1D6", ["麗し草", "神秘のキノコ", "神秘のキノコ", "神秘のキノコ", "妖精の羽", "成果なし"]),
        "WOODS4" => DiceTable::Table.new("森 4時間", "1D6", ["麗し草", "神秘のキノコ", "神秘のキノコ", "妖精の羽", "妖精の羽", "成果なし"]),
        "WOODS5" => DiceTable::Table.new("森 5時間", "1D6", ["麗し草", "神秘のキノコ", "妖精の羽", "妖精の羽", "妖精の羽", "成果なし"]),
        "PRAIRIE1" => DiceTable::Table.new("草原 1時間", "1D6", ["太陽の花", "太陽の花", "太陽の花", "生命の虫", "妖精の羽", "成果なし"]),
        "PRAIRIE2" => DiceTable::Table.new("草原 2時間", "1D6", ["太陽の花", "太陽の花", "生命の虫", "生命の虫", "妖精の羽", "成果なし"]),
        "PRAIRIE3" => DiceTable::Table.new("草原 3時間", "1D6", ["太陽の花", "生命の虫", "生命の虫", "生命の虫", "妖精の羽", "成果なし"]),
        "PRAIRIE4" => DiceTable::Table.new("草原 4時間", "1D6", ["太陽の花", "生命の虫", "生命の虫", "妖精の羽", "妖精の羽", "成果なし"]),
        "PRAIRIE5" => DiceTable::Table.new("草原 5時間", "1D6", ["太陽の花", "生命の虫", "妖精の羽", "妖精の羽", "妖精の羽", "成果なし"]),
        "LAKE1" => DiceTable::Table.new("湖 1時間", "1D6", ["竜の鱗", "竜の鱗", "竜の鱗", "マンドレイク", "幻獣の涙", "成果なし"]),
        "LAKE2" => DiceTable::Table.new("湖 2時間", "1D6", ["竜の鱗", "竜の鱗", "マンドレイク", "マンドレイク", "幻獣の涙", "成果なし"]),
        "LAKE3" => DiceTable::Table.new("湖 3時間", "1D6", ["竜の鱗", "マンドレイク", "マンドレイク", "マンドレイク", "幻獣の涙", "成果なし"]),
        "LAKE4" => DiceTable::Table.new("湖 4時間", "1D6", ["竜の鱗", "マンドレイク", "マンドレイク", "幻獣の涙", "幻獣の涙", "成果なし"]),
        "LAKE5" => DiceTable::Table.new("湖 5時間", "1D6", ["竜の鱗", "マンドレイク", "幻獣の涙", "幻獣の涙", "幻獣の涙", "成果なし"]),
        "RIVER1" => DiceTable::Table.new("川辺 1時間", "1D6", ["魔魚", "魔魚", "魔魚", "麗し草", "幻獣の涙", "成果なし"]),
        "RIVER2" => DiceTable::Table.new("川辺 2時間", "1D6", ["魔魚", "魔魚", "麗し草", "麗し草", "幻獣の涙", "成果なし"]),
        "RIVER3" => DiceTable::Table.new("川辺 3時間", "1D6", ["魔魚", "麗し草", "麗し草", "麗し草", "幻獣の涙", "成果なし"]),
        "RIVER4" => DiceTable::Table.new("川辺 4時間", "1D6", ["魔魚", "麗し草", "麗し草", "幻獣の涙", "幻獣の涙", "成果なし"]),
        "RIVER5" => DiceTable::Table.new("川辺 5時間", "1D6", ["魔魚", "麗し草", "幻獣の涙", "幻獣の涙", "幻獣の涙", "成果なし"]),
        "SWAMP1" => DiceTable::Table.new("沼地 1時間", "1D6", ["マンドレイク", "マンドレイク", "マンドレイク", "魔魚", "畏怖の化石", "成果なし"]),
        "SWAMP2" => DiceTable::Table.new("沼地 2時間", "1D6", ["マンドレイク", "マンドレイク", "魔魚", "魔魚", "畏怖の化石", "成果なし"]),
        "SWAMP3" => DiceTable::Table.new("沼地 3時間", "1D6", ["マンドレイク", "魔魚", "魔魚", "魔魚", "畏怖の化石", "成果なし"]),
        "SWAMP4" => DiceTable::Table.new("沼地 4時間", "1D6", ["マンドレイク", "魔魚", "魔魚", "畏怖の化石", "畏怖の化石", "成果なし"]),
        "SWAMP5" => DiceTable::Table.new("沼地 5時間", "1D6", ["マンドレイク", "魔魚", "畏怖の化石", "畏怖の化石", "畏怖の化石", "成果なし"]),
        "CAVE1" => DiceTable::Table.new("洞窟 1時間", "1D6", ["神秘のキノコ", "神秘のキノコ", "神秘のキノコ", "魔素の結晶", "畏怖の化石", "成果なし"]),
        "CAVE2" => DiceTable::Table.new("洞窟 2時間", "1D6", ["神秘のキノコ", "神秘のキノコ", "魔素の結晶", "魔素の結晶", "畏怖の化石", "成果なし"]),
        "CAVE3" => DiceTable::Table.new("洞窟 3時間", "1D6", ["神秘のキノコ", "魔素の結晶", "魔素の結晶", "魔素の結晶", "畏怖の化石", "成果なし"]),
        "CAVE4" => DiceTable::Table.new("洞窟 4時間", "1D6", ["神秘のキノコ", "魔素の結晶", "魔素の結晶", "畏怖の化石", "畏怖の化石", "成果なし"]),
        "CAVE5" => DiceTable::Table.new("洞窟 5時間", "1D6", ["神秘のキノコ", "魔素の結晶", "畏怖の化石", "畏怖の化石", "畏怖の化石", "成果なし"]),
        "ROCKY1" => DiceTable::Table.new("岩場 1時間", "1D6", ["生命の虫", "生命の虫", "生命の虫", "竜の鱗", "星の欠片", "成果なし"]),
        "ROCKY2" => DiceTable::Table.new("岩場 2時間", "1D6", ["生命の虫", "生命の虫", "竜の鱗", "竜の鱗", "星の欠片", "成果なし"]),
        "ROCKY3" => DiceTable::Table.new("岩場 3時間", "1D6", ["生命の虫", "竜の鱗", "竜の鱗", "竜の鱗", "星の欠片", "成果なし"]),
        "ROCKY4" => DiceTable::Table.new("岩場 4時間", "1D6", ["生命の虫", "竜の鱗", "竜の鱗", "星の欠片", "星の欠片", "成果なし"]),
        "ROCKY5" => DiceTable::Table.new("岩場 5時間", "1D6", ["生命の虫", "竜の鱗", "星の欠片", "星の欠片", "星の欠片", "成果なし"]),
        "MOUNTAIN1" => DiceTable::Table.new("山岳 1時間", "1D6", ["魔素の結晶", "魔素の結晶", "魔素の結晶", "太陽の花", "星の欠片", "成果なし"]),
        "MOUNTAIN2" => DiceTable::Table.new("山岳 2時間", "1D6", ["魔素の結晶", "魔素の結晶", "太陽の花", "太陽の花", "星の欠片", "成果なし"]),
        "MOUNTAIN3" => DiceTable::Table.new("山岳 3時間", "1D6", ["魔素の結晶", "太陽の花", "太陽の花", "太陽の花", "星の欠片", "成果なし"]),
        "MOUNTAIN4" => DiceTable::Table.new("山岳 4時間", "1D6", ["魔素の結晶", "太陽の花", "太陽の花", "星の欠片", "星の欠片", "成果なし"]),
        "MOUNTAIN5" => DiceTable::Table.new("山岳 5時間", "1D6", ["魔素の結晶", "太陽の花", "星の欠片", "星の欠片", "星の欠片", "成果なし"]),
      }.freeze

      register_prefix(TABLES.keys)
    end
  end
end
