AS条件::戦争::弓受動者死亡可否

int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) {
  if ( 条件名 == "AS条件::戦争::弓受動者死亡可否" ) {
  }

  // 変更しない場合-1
  return -1;
}
  • 引数の補足

    • パラメタ.整数1:

      整数1は弓を撃った武将の武将番号
    • パラメタ.整数2:

      整数2は弓を撃たれた武将の武将番号
    • パラメタ.整数3:

      現在予定されている死亡結果
  • タイミング

    • このカスタム条件は、戦闘中いずれかの武将が弓を打った際の死亡判定時に呼び出される。
      兵科の種類は問わない。

  • 一般的用途

    • 弓攻撃の死亡確率や死亡結果の制御・変更を目的として使用する。
  • 例①

    int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) {
    
      if ( 条件名=="AS条件::戦争::弓受動者死亡可否" ) {
    
        デバッグ出力("AS条件::戦争::弓受動者死亡可否");
    
        int i武番A【配】 = パラメタ.整数1 -1; // 整数1は弓を撃った武将の武将番号
        int i武番B【配】 = パラメタ.整数2 -1; // 整数2は弓を撃たれた武将の武将番号
        int 死亡結果 = パラメタ.整数3; // 現在予定されている死亡結果
    
        // 武将1をチェックする。範囲外であれば、処理しない。-1。
        if ( (0 <= i武番A【配】 && i武番A【配】< 最大数::武将情報::配列数) &&
          (0 <= i武番B【配】 && i武番B【配】< 最大数::武将情報::配列数) ) {
    
            デバッグ出力 << "能動武将番号:" << (int)i武番A【配】 << "," << "受動武将番号:" << (int)i武番B【配】 << endl;
            デバッグ出力 << "予定死亡結果:" << (int)死亡結果 << endl;
    
            // 弓Sが撃つと、受動者側が戦才80以上(天翔記の表示上で160以上)無いと、死亡確定
            // 攻撃側の鉄砲適性がS
            if ( Get_弓適性(i武番A【配】) == 弓適性::S )
            {
              // 防御側戦才 80 未満(天翔記表示で160未満)
              if ( p武将情報[i武番B【配】].最大戦才 < 80 ) {
    
                // 結果を受動側死亡とする。
                return true;
              }
            }
        }
    
        // 条件に見合わなかった場合は、「AS条件::戦争::弓受動者死亡可否」は元々の判定結果に委ねる。
      }
    
      // それ以外は条件を変えない。
      return -1;
    }