bcdice/BCDice

View on GitHub
lib/bcdice/game_system/meikyu_kingdom_basic/name_table.rb

Summary

Maintainability
C
1 day
Test Coverage
B
84%
# frozen_string_literal: true

module BCDice
  module GameSystem
    class MeikyuKingdomBasic
      # エキゾチック名前表(D66)
      # override
      def mk_name_ex_table(num)
        table = [
          [11, "モアイ/スイショウドクロ"],
          [12, "チュパカブラ/ムベンベ"],
          [13, "カンフー/インヤン"],
          [14, "ブシドー/ミヤコ"],
          [15, "チャンピオン/バービー"],
          [16, "ウパニシャッド/ゾルゲ"],
          [22, "デスマーチ/インテル"],
          [23, "ゴッホ/ヴィクトリア"],
          [24, "ゾンビ/オニャンコポン"],
          [25, "ケロッパ/カルメン"],
          [26, "オーバーキル/サシミ"],
          [33, "ブッチャー/デヴィ"],
          [34, "ブロンソン/マドンナ"],
          [35, "ガイギャックス/エロイカ"],
          [36, "好きな星の名前(スピカ,オリオン)"],
          [44, "好きな武器の名前(エペ,フランベルジュ)"],
          [45, "好きな動物の名前(イタチ,パグ)"],
          [46, "好きな鉱物の名前(ルビィ,ヒスイ)"],
          [55, "好きな言葉+ドラゴン"],
          [56, "好きな単語表で決定する"],
          [66, "プレイヤーと同じ名前"],
        ]
        return get_table_by_number(num, table)
      end

      # 新名前決定表
      def mk_new_name_table
        nick_table = "1"
        name_table = "1"
        # 新名前表
        nick_n = @randomizer.roll_once(6)
        name_n = @randomizer.roll_once(6)
        d1 = @randomizer.roll_d66(D66SortType::ASC)
        d2 = @randomizer.roll_d66(D66SortType::ASC)

        # 二つ名分岐
        if nick_n <= 1
          nick_table = mk_nick_pr_table(d1)
        elsif name_n <= 2
          nick_table = mk_nick_fo_table(d1)
        elsif name_n <= 3
          nick_table = mk_nick_ou_table(d1)
        elsif name_n <= 4
          nick_table = mk_nick_ti_table(d1)
        elsif name_n <= 5
          nick_table = mk_nick_ph_table(d1)
        else
          nick_table = mk_nick_co_table(d1)
        end

        # 名前分岐
        if name_n <= 1
          name_table = mk_name_ar_table(d2)
        elsif name_n <= 2
          name_table = mk_name_fo_table(d2)
        elsif name_n <= 3
          name_table = mk_name_dn_table(d2)
        elsif name_n <= 4
          name_table = mk_name_pl_table(d2)
        elsif name_n <= 5
          name_table = mk_name_ma_table(d2)
        else
          name_table = mk_name_go_table(d2)
        end

        output = nick_table + name_table
        debug("output", output)
        dice = "#{nick_n},#{name_n},#{d1},#{d2}"

        return output, dice
      end

      # ことわざ系二つ名表
      def mk_nick_pr_table(num)
        table = [
          [11, "“九死に一生を得る”"],
          [12, "“風前の灯火の”"],
          [13, "“類は友を呼ぶ”"],
          [14, "“性格がいい方の”"],
          [15, "“三階に家なき”"],
          [16, "“五分の理はある”"],
          [22, "“危ない橋を渡る”"],
          [23, "“バカって言った方がバカの”"],
          [24, "“長いものに巻かれる”"],
          [25, "“火の無いところの”"],
          [26, "“あばたもえくぼの”"],
          [33, "“将を射んとせばまず”"],
          [34, "“氷山の一角の”"],
          [35, "“木乃伊取りが木乃伊になる”"],
          [36, "“一見の価値ありの”"],
          [44, "“一日の長ある”"],
          [45, "“遠くの親類より近くの”"],
          [46, "“笑う門には福来る”"],
          [55, "“花は桜木、人は”"],
          [56, "“猫に小判の”"],
          [66, "“(クラス名/ジョブ名)による(クラス名/ジョブ名)のための”"],
        ]
        return get_table_by_number(num, table)
      end

      # 四字熟語系二つ名表
      def mk_nick_fo_table(num)
        table = [
          [11, "“自画自賛(の)”"],
          [12, "“人畜無害(の)”"],
          [13, "“不言実行(の)”"],
          [14, "“痛快無比(の)”"],
          [15, "“外柔内剛(の)”"],
          [16, "“百戦錬磨(の)”"],
          [22, "“前代未聞(の)”"],
          [23, "“粉骨砕身(の)”"],
          [24, "“天真爛漫(の)”"],
          [25, "“暴飲暴食(の)”"],
          [26, "“意志薄弱(の)”"],
          [33, "“慇懃無礼(の)”"],
          [34, "“沈魚落雁(の)”"],
          [35, "“波乱万丈(の)”"],
          [36, "“二束三文(の)”"],
          [44, "“行雲流水(の)”"],
          [45, "“驚天動地(の)”"],
          [46, "“破邪顕正(の)”"],
          [55, "“以心伝心(の)”"],
          [56, "“博覧強記(の)”"],
          [66, "“殺人事件(の)”"],
        ]
        return get_table_by_number(num, table)
      end

      # 外見系二つ名表
      def mk_nick_ou_table(num)
        table = [
          [11, "“もふもふの”"],
          [12, "“裸の”"],
          [13, "“猫耳の”"],
          [14, "“歩くと音がする”"],
          [15, "“緑髪の”"],
          [16, "“黄金(の)”"],
          [22, "“羽根つき(の)”"],
          [23, "“小さな”"],
          [24, "“蛇手の”"],
          [25, "“鉤シッポの”"],
          [26, "“ぎざぎざの”"],
          [33, "“輝ける”"],
          [34, "“角持ち(の)”"],
          [35, "“とんがり帽子の”"],
          [36, "“青ざめた”"],
          [44, "“赤目の”"],
          [45, "“黒衣の”"],
          [46, "“ねじれ声の”"],
          [55, "“銀の腕”"],
          [56, "“長靴下の”"],
          [66, "“ぬるぬるの”"],
        ]
        return get_table_by_number(num, table)
      end

      # 称号系二つ名表
      def mk_nick_ti_table(num)
        table = [
          [11, "“(王国名)の星”"],
          [12, "“(王国名)の独眼竜”"],
          [13, "“(王国名)の麒麟児”"],
          [14, "“(王国名)の虎”"],
          [15, "“(王国名)のマムシ”"],
          [16, "“(王国名)1D6天王”"],
          [22, "“(王国名)1D6傑”"],
          [23, "“(王国名)1D6銃士”"],
          [24, "“(王国名)10+1D6神将”"],
          [25, "“(王国名)2D6(兄弟/姉妹)”"],
          [26, "“(王国名)2D6賢人”"],
          [33, "“あの(クラス名/ジョブ名)”"],
          [34, "“最後の(クラス名/ジョブ名)”"],
          [35, "“メカ(クラス名/ジョブ名)”"],
          [36, "“殺人(クラス名/ジョブ名)”"],
          [44, "“カリスマ(クラス名/ジョブ名)”"],
          [45, "“超級(クラス名/ジョブ名)”"],
          [46, "“攻め(クラス名/ジョブ名)”"],
          [55, "“スタイリッシュ(クラス名/ジョブ名)”"],
          [56, "“大(クラス名/ジョブ名)”"],
          [66, "“鬼(クラス名/ジョブ名)”"],
        ]
        return get_table_by_number(num, table)
      end

      # 名文句系二つ名表
      def mk_nick_ph_table(num)
        table = [
          [11, "“世界が嫉妬する”"],
          [12, "“うまい、うますぎる”"],
          [13, "“24時間戦える”"],
          [14, "“脱いでもすごい”"],
          [15, "“ピカピカの1年生”"],
          [16, "“どうあがいても絶望の”"],
          [22, "“ダメ絶対の”"],
          [23, "“すべての王国を過去にする”"],
          [24, "“100人乗っても大丈夫な”"],
          [25, "“綺麗なおねえさんが好きな”"],
          [26, "“食う寝る遊ぶの”"],
          [33, "“かわいいは正義の”"],
          [34, "“それにつけても”"],
          [35, "“お口の恋人”"],
          [36, "“やめられない止まらない”"],
          [44, "“半分はやさしさの”"],
          [45, "“国民的美少女”"],
          [46, "“プライスレスの”"],
          [55, "“驚きの白さの”"],
          [56, "“楽器のマークの”"],
          [66, "“パンツじゃないから恥ずかしくない”"],
        ]
        return get_table_by_number(num, table)
      end

      # かっこいい系二つ名表
      def mk_nick_co_table(num)
        table = [
          [11, "“(王国名/氷)の牙”"],
          [12, "“(王国名/不可視)の猟犬”"],
          [13, "“(王国名/暴虐)の女神”"],
          [14, "“(王国名/無限)の境界”"],
          [15, "“(王国名/偽り)の救世主”"],
          [16, "“(王国名/闇)の扉”"],
          [22, "“(王国名/暁)の凶星”"],
          [23, "“(王国名/災禍)の中心”"],
          [24, "“(王国名/始まり)の記憶”"],
          [25, "“(王国名/絶対)の歌声”"],
          [26, "“(王国名/星霜)の死神”"],
          [33, "“(王国名/不確定)の隠者”"],
          [34, "“(王国名/冥府)の番人”"],
          [35, "“(王国名/深淵)の使途”"],
          [36, "“(王国名/罪)の華”"],
          [44, "“(王国名/終末)の翼”"],
          [45, "“(王国名/絶望)の匠”"],
          [46, "“(王国名/鮮血)の芸術家”"],
          [55, "“(王国名/流星)の魔剣”"],
          [56, "“(王国名/漆黒)の堕天使”"],
          [66, "“(王国名/無貌)の悪夢”"],
        ]
        return get_table_by_number(num, table)
      end

      # 芸術系名前表(D66)
      def mk_name_ar_table(num)
        table = [
          [11, "コーラス/メロディ"],
          [12, "シタール/コト"],
          [13, "トロンボーン/ティンパニ"],
          [14, "マーチ/セレナーデ"],
          [15, "ソロ/オーケストラ"],
          [16, "パッソ/プリマ"],
          [22, "モノローグ/アポローズ"],
          [23, "スクリプト/カメリーノ"],
          [24, "アール/エピカ"],
          [25, "ラインズ/ムジカ"],
          [26, "トルバドール/リリカ"],
          [33, "ノベル/ラマーン"],
          [34, "クリーミ/ストーリア"],
          [35, "エッセイ/メモワール"],
          [36, "ジャケット/コロフォン"],
          [44, "デビュー/セーヌ"],
          [45, "タンゴ/バル"],
          [46, "イーゼル/パレット"],
          [55, "カンバス/タトゥー"],
          [56, "ウッドカット/キラーミカ"],
          [66, "ポートレイト/パノラマ"],
        ]
        return get_table_by_number(num, table)
      end

      # 食べ物系名前表(D66)
      def mk_name_fo_table(num)
        table = [
          [11, "ダージリン/マンデリン"],
          [12, "コニャック/ピーノ"],
          [13, "グラス/テキーラ"],
          [14, "ハングオーバー/リキュール"],
          [15, "ブレッド/プレッツェル"],
          [16, "バケット/コロネ"],
          [22, "クロワッサン/ヤムチャ"],
          [23, "ヤキソバ/パッタイ"],
          [24, "ニョッキ/ペンネ"],
          [25, "ハニー/メイプル"],
          [26, "ガトー/フラン"],
          [33, "ジュレ/ソルベ"],
          [34, "リゾット/チマキ"],
          [35, "フリット/テンプラ"],
          [36, "カルビ/ハラミ"],
          [44, "ポージョ/ユーリンチー"],
          [45, "アイスバイン/イベリコ"],
          [46, "ブルスト/キシュカ"],
          [55, "ドリアン/キウィ"],
          [56, "ココ/プラム"],
          [66, "ガリガリ/ポテチ"],
        ]
        return get_table_by_number(num, table)
      end

      # 日用品系名前表(D66)
      def mk_name_dn_table(num)
        table = [
          [11, "ファイバー/シルク"],
          [12, "ジーンズ/キュロット"],
          [13, "ガーター/ソックス"],
          [14, "クラヴァッテ/スカーフ"],
          [15, "サンダル/ハイヒール"],
          [16, "リング/ブローチ"],
          [22, "ボタン/リカーモ"],
          [23, "シュピーゲル/ルージュ"],
          [24, "オーデコロン/マニキュア"],
          [25, "シルクハット/サリー"],
          [26, "ソープ/コーム"],
          [33, "スツール/ソファー"],
          [34, "ブランケット/マクラ"],
          [35, "ケトル/ポット"],
          [36, "ゲイト/ポーチ"],
          [44, "ギムレット/レンチ"],
          [45, "シェイヴァー/シャンプー"],
          [46, "タオル/マスカラ"],
          [55, "クローゼット/クッション"],
          [56, "カウチ/クリップ"],
          [66, "スタンプ/カレンダー"],
        ]
        return get_table_by_number(num, table)
      end

      # 地名系名前表(D66)
      def mk_name_pl_table(num)
        table = [
          [11, "シアトル/ヴァージニア"],
          [12, "デーン/ヴァーサ"],
          [13, "タイガ/ユルガ"],
          [14, "クルスク/トゥール"],
          [15, "アラド/モルダヴィア"],
          [16, "キエフ/ユークレイン"],
          [22, "ウガンダ/ガーナ"],
          [23, "ギザ/アレクサンドリア"],
          [24, "キリマンジャロ/ソマリ"],
          [25, "ガイアナ/リオ"],
          [26, "イグアス/アマゾン"],
          [33, "サンティアゴ/ナスカ"],
          [34, "クーロン/シャンハイ"],
          [35, "ベナレス/デリー"],
          [36, "バリ/セイロン"],
          [44, "ティモール/スマトラ"],
          [45, "トリノ/シチリア"],
          [46, "バスク/グラナダ"],
          [55, "キプロス/クレタ"],
          [56, "ザクセン/ケルン"],
          [66, "リヨン/ニース"],
        ]
        return get_table_by_number(num, table)
      end

      # 機械系名前表(D66)
      def mk_name_ma_table(num)
        table = [
          [11, "ウォッチ/シーナ"],
          [12, "アンテナ/テレ"],
          [13, "グリル/バティドーラ"],
          [14, "ステレオ/カリヨン"],
          [15, "マキナ/アルマ"],
          [16, "ロケット/ヴィルタリオート"],
          [22, "ルー/フラン"],
          [23, "モーター/モトーレ"],
          [24, "ドライラート/コーチェ"],
          [25, "クロック/セニャーレ"],
          [26, "ポンプ/アントリア"],
          [33, "スケイルズ/プランチャ"],
          [34, "ランプ/シャンデリア"],
          [35, "ガジエラ/カノン"],
          [36, "リフト/エクレール"],
          [44, "ナルキ/プランタ"],
          [45, "サカプンタス/アーラ"],
          [46, "シュレッダー/ナウス"],
          [55, "ファブリーク/ユジーヌ"],
          [56, "ボイラー/カルダイヤ"],
          [66, "エンジン/トリシクル"],
        ]
        return get_table_by_number(num, table)
      end

      # 神様系名前表(D66)
      def mk_name_go_table(num)
        table = [
          [11, "ケルヌンノス/アリアンロッド"],
          [12, "ジーザス/マリア"],
          [13, "ブッダ/スジャータ"],
          [14, "ゼウス/ヘラ"],
          [15, "シヴァ/パールヴァティ"],
          [16, "マルス/ミネルヴァ"],
          [22, "スサノオ/ウズメ"],
          [23, "バンコ/ジョカ"],
          [24, "インティ/パチャママ"],
          [25, "ダグザ/モリガン"],
          [26, "バロン/ランダ"],
          [33, "アヌビス/バステト"],
          [34, "ジャンゴ/アナンシ"],
          [35, "トラロック/コアトリクエ"],
          [36, "バアル/アシュタルテ"],
          [44, "アフラマズダ/アムルタート"],
          [45, "ベロボーグ/モコシ"],
          [46, "エンキ/イナンナ"],
          [55, "オーディン/フレイヤ"],
          [56, "ココペリ/ココペルマナ"],
          [66, "クトゥルフ/ハイドラ"],
        ]
        return get_table_by_number(num, table)
      end
    end
  end
end