ロール - yukieiji/ExtremeRoles GitHub Wiki

追加役職とオプション

追加役職一覧(Extreme Roles v8.2.4.0時点、今後も追加予定)

クラシックモード

ホスト役職

  • シオン

通常役職

クルー インポスター ニュートラル
スペシャルクルー スペシャルインポスター アリス
シェリフ エボルバー ジャッカル
メンテナー キャリアー サイドキック
ニート サイコキラー タスクマスター
ウォッチドッグ バウンティハンター ミッショナリー
スーパーバイザー ペインター ジェスター
ボディーガード フェイカー ヤンデレ
ウィスパー オーバーローダー 妖狐
タイムマスター クラッカー マイナー
エージェンシー ボマー イーター
パン屋 メリー クイーン
カースメーカー スレイヴドライバー サーヴァント
フェンサー サンドワーム トトカルチョ
オープナー スマッシャー マッドメイト
カーペンター アサルトマスター アンブレイヤー
サバイバー シューター ドール
キャプテン ラストウルフ ヴィジランテ
フォトグラファー コマンダー ワルガキ
デリュージョナー ヒプノティスト トレイター
リザレクター アンダーワーパー
ギャンブラー マジシャン
テレポーター ゾンビ
モデレーター スライム
マーリン シーフ
ヒーロー アサシン
探偵 ヴィラン
助手 シェアーズ
見習い探偵
バディーズ
ラバーズ
サポーター
ゲッサー
ムーバー

幽霊役職

クルー インポスター ニュートラル
ファウヌス サボり魔 フォラス
ポルターガイスト ベントガイスト ウィスプ
シャッター イグナイター
  • 「ニート」と「ラバーズ」はオプション設定によりニュートラルにもなります。(デフォルトはクルー)
  • 「ラバーズ」、「サポーター」、「ゲッサー」と「ムーバー」はオプション設定によりインポスターにもなります。(デフォルトはクルー)
  • 「サイドキック」と「見習い探偵」、「サーヴァント」、「ドール」はゲーム開始時にはアサインされず、条件を満たした時にアサインされます
  • 「マーリン」と「アサシン」、「ヒーロー」と「ヴィラン」と「ヴィジランテ」、「探偵」と「助手」、「ワルガキ」と「ウィスプ」は一対の関係です
  • 「トレイター」はニュートラルですが、役職決定時時クルーの役職枠を消費します

役職の区分け

このMODは一人で完結しているソロ役職と複数人一組のコンビネーション役職が存在している

  • ソロ役職:能力やバランス的に1人で完結している役職(メンテナー、シェリフなど)
  • コンビネーション役職:能力やバランスの関係で複数人一組になっている役職(マーリンとアサシン、ラバーなど)と確率で陣営が変化する役職もここに含まれる

役職のオプションの仕様

共通設定事項として以下のオプションがあります。

  • 役職のアサイン数
  • 視界設定

キル能力を持つ役職の共通設定事項として以下のオプションがあります。

  • キルクール
  • キルレンジ

ボタンによって能力を発動させる役職の共通設定事項として以下のオプションがあります。

  • 能力のクールタイム
  • 能力の発動時間(発動時間があるもののみ)
  • 能力が使える回数(上限があるもののみ)

これらのオプションは各役職ごとそれぞれコード上に記載されているわけではなく、自動生成されるオプションです ~~そのため、これらのオプションはデフォルト値が必ずしもその役職の正常なバランスの設定になっている訳ではありません(どんな能力を持つ役職でも妥当だと思うデフォルトの値が自動で代入されています)~~ v1.14.0.0より、能力のクールタイムのデフォルト設定値はすべての通常役職で30秒、幽霊役職で60秒ですが、能力の発動時間に関しては開発者的にバランスが取れているであろう値がデフォルトの設定値になっています。

各役職に存在する範囲のオプションの数値について

  • 距離:1.0:キルレンジショートと同じ
  • 距離:1.8:キルレンジミドルと同じ
  • 距離:2.5:キルレンジロングと同じ

役職の割り当てについて

ロジック

ExRの役職の割り当ては電子ガチャと似たような方式で行われています、詳細は以下のとおりです(v7.1.2.0更新、「ロールアサインフィルター」と「アサインウェイト」の詳細についてはこの下のセクションを確認して下さい)

  1. Among Usバニラの役職の割り当てが行われる
  2. MOD役職の陣営の割り当て人数を決定
  3. MOD役職の中から使われる役職を決定
    • ここで各陣営とコンビネーション役職のアサインプール(抽選箱)が作成される
    • 作成方法は以下の通り
      • アサイン数分スポーン確率の抽選を行い当たったものをプールに入れる
  4. アサインプールを「アサインウェイト」に基づいたシャッフルを行う
    • このときアサインプールのから一つのランダムな配列へ変更します
      • これにより、アサインプールの最初を取ったとしてもランダムな役職になります
        • また「アサインウェイト」を用いることで大きいウェイトを持つ役職が先頭に並びやすくなるため割り当てされやすくなります
      • シャッフルのアルゴリズムは以下の通り
        1. 「アサインウェイト」で降順のソート(並び替え)
        2. 同じ「アサインウェイト」同士でランダムソート
  5. コンビネーション役職の割り当てを行う
    • コンビネーション役職の割り当ては以下の通り
      1. アサインプールの最初の役職から順番に割り当てられる(陣営的、割り当て人数、「ロールアサインフィルター」等のチェック)かを確認
      2. 割り当てられたら「ロールアサインフィルター」や残りの割り当て人数を更新
  6. バニラの役職にアサインされている人をバニラの役職をラップする役職にアサインする
  7. インポスター役職の割り当てを行う
    • インポスター役職の割り当ては以下の通り
      1. インポスターのプレイヤーを取得
      2. アサインプールの最初の役職から順番に割り当てられる(陣営的、割り当て人数、「ロールアサインフィルター」等のチェック)かを確認
      3. 割り当てられたら「ロールアサインフィルター」や残りの割り当て人数を更新
  8. ニュートラル役職の割り当てを行う
    • ニュートラル役職の割り当ては以下の通り
      1. バニラのクルーのプレイヤーからランダムにニュートラルになるプレイヤーを陣営の割り当て人数分を取得
      2. アサインプールの最初の役職から順番に割り当てられる(陣営的、割り当て人数、「ロールアサインフィルター」等のチェック)かを確認
      3. 割り当てられたら「ロールアサインフィルター」や残りの割り当て人数を更新
  9. クルー役職の割り当てを行う
    • クルー役職の割り当ては以下の通り
      1. 残りのクループレイヤーに対してアサインプールの最初の役職から順番に割り当てられる(陣営的、割り当て人数、「ロールアサインフィルター」等のチェック)かを確認
      2. 割り当てられたら「ロールアサインフィルター」や残りの割り当て人数を更新
  10. アサインされていない人をバニラの役職をラップする役職にアサインする

バニラの役職(エンジニアやシェイプシフター等)にアサインされているプレイヤーはMOD役職にアサインされません ただし、コンビネーション役職の「別役職の能力を持つ」が有効になっている場合のみコンビネーション役職にアサインされる可能性があります。

ロールアサインフィルター

v7.1.2.0以降、ロールアサインフィルターを使用することで全ての役職の組み合わせセットや特定の役職がアサインされていると他の役職がアサインされない等のルールを作ることが可能になります

  • 例1:以下の設定の場合、「ジャッカルとサイドキック」と「クイーン」は片方ずつ、「リザレクター」と「ゾンビ」は片方ずつアサインされます。
    • フィルター 1
      • アサイン数1 : ジャッカルとサイドキック、クイーン 
    • フィルター2
      • アサイン数1 : リザレクター、ゾンビ
  • 例2:以下の設定の場合、「シェリフ」と「スペシャルクルー」、「リザレクター」のうち2役職がアサインされます
    • フィルター 1
      • アサイン数2 : シェリフ、スペシャルクルー、リザレクター

アサインウェイト

v7.1.2.0以降、すべての役職に「アサインウェイト」というオプションが追加され、その値によって役職のアサインに対してウェイトを設定することが出来ます(値が大きいほど優先的にアサインされます) このアサインウェイトの値に基づきアサインプールからのランダム抽出が行われます

  • 例1:以下の設定の場合、「キャプテン」が優先的にアサインされます
    • シェリフ:100% アサインウェイト:500、キャプテン:100% ウェイト:1000
  • 例2:以下の設定の場合、オバロが抽選された場合は優先的にアサインされ、メリーが最低保証役職になります(オバロではない場合、メリーになる)
    • オバロ 10% ウェイト1000、メリー 100% ウェイト1

開発者向け情報

開発者向けのオプションの仕様

役職のアサイン数、視界及びキル関連の設定は役職を作った際に継承するクラスがもつ非仮想関数のインターフェースメソッドで作成(NVIパターン)を行っているため、継承したクラスで特に何もせずとも生成されます。 能力ボタン関連のオプションはインターフェースの拡張メソッドを呼び出すことで実装を完全に隠蔽化しています。(隠蔽することができる) 能力ボタンに関しては引数で設定できるようにしても良かったかもしれません