最終更新日 2024-09-25

On_戦争参加勢力決定直後

On_戦争参加勢力決定直後

戦争において、全ての参加勢力(戦争に参加する軍団等)が決定した直後のタイミング、かつ
そして、まだ各武将ユニットは出陣していないタイミングで、
一度だけ呼びだされるイベントハンドラとなります。

注意点

「On_戦争開始時」のタイミングでは、まだ戦争に参加する勢力は決定していません。
直接の当事者間で戦争が始まったという情報しかありません。

この「On_戦争参加勢力決定直後」が呼ばれるタイミングでは、全ての参加勢力が決定しているため、
各種、参加勢力や参戦立場の情報を得ることができます。

使い処

戦争の参加勢力や参戦立場の情報を拾って、変数などに格納しておく。

使用例①

戦争の参加は、大名という大きな勢力の視点、軍団という視点、武将という視点の3つがありますが、
このメソッドでは、「大名視点」「軍団視点」の情報を拾ってくることとなります。
大名視点の情報を拾ってきましょう。

戦争に参加している大名勢力の一覧の情報を得る。
void 天翔記クラス::On_戦争参加勢力決定直後() {

  auto dlist = 大名->戦争->参戦大名番号リスト;
  for each (int iDaimyoID in dlist) {
    int iDaiBushouID = 大名->配列[iDaimyoID]->大名_武将番号;
    if (0 <= iDaiBushouID && iDaiBushouID < 武将->配列->Count) {
      デバッグ出力 << 武将->配列[iDaiBushouID]->名字 << "家参戦" << endl;
    }
  }
}

使用例②

天翔記において、戦争とは事実上、大名同士ではなく、軍団同士の戦いであるため、
軍団視点の情報では、より詳細な情報を得ることが出来ます。

戦争に参加している軍団勢力、今回での戦争内での軍団を率いる総大将、参戦立場などの情報を得る。
void 天翔記クラス::On_戦争参加勢力決定直後() {

  auto glist = 軍団->戦争->参戦軍団番号リスト;
  for each (int iGundanID in glist) {
    auto g = 軍団->配列[iGundanID];
    int iGdcBushouID = g->軍団長_武将番号;
    if (0 <= iGdcBushouID && iGdcBushouID < 武将->配列->Count) {
      デバッグ出力 << 武将->配列[iGdcBushouID]->姓名 << "の軍団参戦" << endl;

      int iSdsBushouID = g->戦争->総大将_武将番号;
      if (0 <= iSdsBushouID && iSdsBushouID < 武将->配列->Count) {
        デバッグ出力 << "今回の戦の" << 武将->配列[iSdsBushouID]->姓名 << "軍団の指揮官は" << 武将->配列[iSdsBushouID]->姓名 << "です" << endl;
      }

      int stand = g->戦争->参戦立場;
      switch (stand) {
      case 列挙::軍団::戦争::参戦立場::攻撃軍: {
        デバッグ出力 << "攻撃軍です" << endl;
        break;
      }
      case 列挙::軍団::戦争::参戦立場::守備軍: {
        デバッグ出力 << "守備軍です" << endl;
        break;
      }
      case 列挙::軍団::戦争::参戦立場::攻撃の援軍: {
        デバッグ出力 << "攻撃の援軍です" << endl;
        break;
      }
      case 列挙::軍団::戦争::参戦立場::守備の援軍: {
        デバッグ出力 << "守備の援軍です" << endl;
        break;
      }
      case 列挙::軍団::戦争::参戦立場::中立軍: {
        デバッグ出力 << "中立軍です" << endl;
        break;
      }
      default: {
        デバッグ出力 << "不明な軍です" << endl;
        break;
      }
      }
    }
  }

}

その他

「On_戦争参加勢力決定直後」イベントハンドラについて、主な解説は以上となります。