void カスタム::On_攻撃方法決定時《戦争画面》(int 主体武将番号, int 客体武将番号, 攻撃方法決定時パラメタ型 パラメタ)

void カスタム::On_攻撃方法決定時《戦争画面》(int 主体武将番号, int 客体武将番号, 攻撃方法決定時パラメタ型 パラメタ) {
}

タイミング

  • 各ユニットが、自らの意思(プレイヤの意思も含む)で、「攻撃方法を決定した際」に、呼び出される。
    PC/NPC、無関係に実行される。
    ただし、自らの意思ではない攻撃(混乱による攻撃等)では呼び出されない。(将来呼び出されるようにするかもしれない)

一般的用途

  • 特定の攻撃方法の際に、何か処理を行いたい場合に利用する。

例①

void カスタム::On_攻撃方法決定時《戦争画面》(int 主体武将番号, int 客体武将番号, 攻撃方法決定時パラメタ型 パラメタ) {
  int iBushouID = 主体武将番号-1;
  int iTargetID = 客体武将番号-1;

  int 攻撃方法番号 = パラメタ.攻撃方法番号;
  int 移動前 = パラメタ.移動前;

  // 武将番号範囲チェック
  if ( (0 <= iBushouID && iBushouID < 最大数::武将情報::配列数) &&
     (0 <= iTargetID && iTargetID < 最大数::武将情報::配列数) ) {


       デバッグ出力 << "誰が:" << Get_名前(iBushouID) << endl;
       デバッグ出力 << "誰に:" << Get_名前(iTargetID) << endl;

       if ( 移動前 ) {
        デバッグ出力("移動前");
       } else {
        デバッグ出力("移動後");
       }

       if ( 攻撃方法番号 == 攻撃方法::攻撃 ) {
         デバッグ出力("⇒攻撃" );
       }
       else if ( 攻撃方法番号 == 攻撃方法::突撃 ) {
         デバッグ出力("⇒突撃" );
       }
       else if ( 攻撃方法番号 == 攻撃方法::鉄砲 ) {
         デバッグ出力("⇒鉄砲" );
       }
       else if ( 攻撃方法番号 == 攻撃方法::弓 ) {
         デバッグ出力("⇒弓" );
       }
       else if ( 攻撃方法番号 == 攻撃方法::大砲 ) {
         デバッグ出力("⇒大砲" );
       }
       else if ( 攻撃方法番号 == 攻撃方法::一斉攻撃 ) {
         デバッグ出力("⇒一斉攻撃" );
       }

  }
}