最終更新日 2024-09-25

AS条件::戦争::捕虜処遇登用可否

int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) {
  if ( 条件名 == "AS条件::戦争::捕虜処遇登用可否" ) {
  }

  // 変更しない場合-1
  return -1;
}

引数の補足

タイミング

一般的用途

(例① 登用が必ず失敗するの例)
int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) {

  if ( 条件名 == "AS条件::戦争::捕虜処遇登用可否" ) {

    int i処断される側BushouID = パラメタ.整数1 -1;
    int i処断する側BushouID   = パラメタ.整数2 -1;
    int i予定成否結果   = パラメタ.整数3;

    if ( 0 <= i処断される側BushouID && i処断される側BushouID < 最大数::武将情報::配列数 &&
         0 <= i処断する側BushouID && i処断する側BushouID < 最大数::武将情報::配列数 ) {

        デバッグ出力 << "処断される側:" << Get_名字(i処断される側BushouID) << Get_名前(i処断される側BushouID) << endl;
        デバッグ出力 << "処断する側:"   << Get_名字(i処断する側BushouID)   << Get_名前(i処断する側BushouID)   << endl;
        デバッグ出力 << "予定されてる結果:" <<  i予定成否結果  << endl;

        // (何も条件で絞っていないため)登用は必ず失敗する。
        return false;
    }
  }

  // 変更しない場合-1
  return -1;
}

例② 特定の条件を満たす時、登用結果をコントロールする例

int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) {

  if ( 条件名 == "AS条件::戦争::捕虜処遇登用可否" ) {
    int i処断される側BushouID = パラメタ.整数1 -1;
    int i処断する側BushouID   = パラメタ.整数2 -1;
    int i予定成否結果   = パラメタ.整数3;

    if ( 0 <= i処断される側BushouID && i処断される側BushouID < 最大数::武将情報::配列数 &&
         0 <= i処断する側BushouID && i処断する側BushouID < 最大数::武将情報::配列数 ) {

      // 相性がかなり悪ければ、必ず失敗する。
      if ( Get_武将相性差( i処断される側BushouID, i処断する側BushouID ) >= 7 ) {
        return false;
      }

      // 処断される側が僧侶だと必ず失敗する。
      if ( p武将情報[i処断される側BushouID].職業 == 職業::僧侶 ) {
        return false;
      }
      // 処断される側が茶人だと必ず成功する。
      else if  ( p武将情報[i処断される側BushouID].職業 == 職業::茶人 ) {
        return true;
      }
    }
  }

  // 変更しない場合-1
  return -1;
}