void カスタム::On_基本コマンド表示直前《戦争画面》(int 武将番号)

void カスタム::On_基本コマンド表示直前《戦争画面》(int 武将番号) {
}

タイミング

  • 戦争中、プレイヤ操作により、ユニットの「基本コマンド」の一覧が出る際に、このメソッドが実行される。
    「技能コマンド」もこの「基本コマンド」に含まれている。

    PICTURE PICTURE

一般的用途

  • 自作のオリジナルな武将や思い入れの強い武将などに対して、
    その時々の状況を判断しつつコマンド名を変更したい目的で利用する。

例①

void カスタム::On_基本コマンド表示直前《戦争画面》(int 武将番号) {

  int iBushouID = 武将番号-1; // 武将番号→武将番号【配列用】に

  if ( 0 <= iBushouID && iBushouID < 最大数::武将情報::配列数 ) {
    if ( p武将戸籍情報[iBushouID].顔番号 == 顔番号::武田晴信 ) { // 武田信玄の顔&列伝番号
        Set_コマンド名(戦争画面::基本コマンド名::鼓舞, "虎の怒号");
    }
    else if ( p武将戸籍情報[iBushouID].顔番号 == 顔番号::長尾景虎 ) { // 上杉謙信の顔&列伝番号
        Set_コマンド名(戦争画面::基本コマンド名::鼓舞, "龍の咆哮");
    }
  }
}

例②

void カスタム::On_基本コマンド表示直前《戦争画面》(int 武将番号) {

  /*
  * もしも上杉謙信と武田信玄が、接しているならば、
  * 互いに一喝の命令が変化する。
  */

  int iBushouID = 武将番号-1; // 武将番号→武将番号【配列用】に

  if ( 0 <= iBushouID && iBushouID < 最大数::武将情報::配列数 ) {

    番号リスト型 list = Get_出陣中の武将番号リスト【配列用】《表示中マップ》(); // 出陣中の

    int BothOfExist = 0;

    ヘックス位置型 Kn, Sn; // 謙信、信玄の位置
    for each ( int iBushouID in list ) {
      if ( p武将戸籍情報[iBushouID].顔番号 == 顔番号::武田晴信 ) { // 信玄が出陣している。
        BothOfExist++;
        // どのヘックスに居るのか覚えておく
        if ( Is_野戦中() ) {
          Sn = Get_武将の野戦ヘックス位置(iBushouID);
        } else if ( Is_攻城戦中() ) {
          Sn = Get_武将の攻城戦ヘックス位置(iBushouID);
        }

      }

      else if ( p武将戸籍情報[iBushouID].顔番号 == 顔番号::長尾景虎 ) { // 謙信が出陣している。
        BothOfExist++;
        // どのヘックスに居るのか覚えておく
        if ( Is_野戦中() ) {
          Kn = Get_武将の野戦ヘックス位置(iBushouID);
        } else if ( Is_攻城戦中() ) {
          Kn = Get_武将の攻城戦ヘックス位置(iBushouID);
        }

      }
    }

    // 2人とも存在し、その距離はヘックス升で1つ。即ち隣接している。
    if ( BothOfExist == 2 && Get_ヘックス間隔(Kn, Sn)==1 ) {
      // 信玄なら
      if ( p武将戸籍情報[iBushouID].顔番号 == 顔番号::武田晴信 ) {
        Set_コマンド名(戦争画面::基本コマンド名::一喝, "龍撃虎");
        Set_コマンド名(戦争画面::基本コマンド名::一喝, "龍撃虎");
      // 謙信なら
      } else if ( p武将戸籍情報[iBushouID].顔番号 == 顔番号::長尾景虎 ) {
        Set_コマンド名(戦争画面::基本コマンド名::一喝, "虎破龍");
        Set_コマンド名(戦争画面::基本コマンド名::一喝, "虎破龍");
      }
    }
  }
}