AS条件::戦争::非戦死攻撃受動者兵士消失時死亡可否

int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) {
  if ( 条件名 == "AS条件::戦争::非戦死攻撃受動者兵士消失時死亡可否" ) {
  }

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

引数の補足

  • パラメタ.整数1:

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

    整数2は攻撃されて兵数が0となった武将の武将番号
  • パラメタ.整数3:

    現在予定されている死亡結果
  • パラメタ.浮動小数1:

    その時の、攻撃者の「攻撃方法番号」。
    「攻撃方法::攻撃」もしくは「攻撃方法::一斉攻撃」が入っている。

タイミング

  • このカスタム条件は、戦闘中いずれかの武将が「本来天翔記の仕様では死亡することがない攻撃方法」で、
    兵数が0になった際に呼び出される。
    「本来天翔記の仕様では死亡することがない攻撃方法」とは、
    「通常攻撃」「一斉攻撃」と、その跳ね返りダメージである。

一般的用途

  • 特定の武将の、通常攻撃・一斉攻撃などの死亡確率を変更を目的として使用する。
  • 武将全体の、通常攻撃・一斉攻撃などの死亡確率を、
    「武将同士」「戦況全体」「対象武将達の隣接状況」を総合的に判断し、変更することを目的として使用する。

例①

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

    if (条件名 == "AS条件::戦争::非戦死攻撃受動者兵士消失時死亡可否") {
        int iBushouID = パラメタ.整数1 -1;
        int iDefendID = パラメタ.整数2 -1;
        BOOL b死亡予定 = パラメタ.整数3;
        int n攻撃方法 = (int)パラメタ.浮動小数1;
        if (n攻撃方法 == 攻撃方法::攻撃) {
            デバッグ出力 << "通常攻撃によって" << Get_名前(iDefendID) << "の兵は消失" << endl;
            if (rand() % 2 == 0) {
                デバッグ出力 << "TSMod処理をさらに上書き、この武将を死亡へ" << endl;
                return true;
            }
            else {
                デバッグ出力 << "元のTSMod死亡判定に委譲" << endl;
                return b死亡予定;
            }
        }
        else if (n攻撃方法 == 攻撃方法::一斉攻撃) {
            デバッグ出力 << "一斉攻撃によって" << Get_名前(iDefendID) << "の兵は消失" << endl;
            if (rand() % 2 == 0) {
                デバッグ出力 << "TSMod処理をさらに上書き、この武将を死亡へ" << endl;
                return true;
            }
            else {
                デバッグ出力 << "元のTSMod死亡判定に委譲" << endl;
                return b死亡予定;
            }
        }
    }

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