最終更新日 2024-09-25

HD.version.SDK ~家宝~

家宝の概念

家宝と一言で言っても3つの概念で構成されます。

ここでは、よく利用するパターンをピックアップして解説します。

使用例①

全ての家宝について所定の処理を施すいったシーンは少ないですが、
ここでは家宝のプロパティの使い方を知る、ということで、
その代表的な例を行ってみましょう。

家宝のプロパティの利用
void 天翔記クラス::On_戦略_軍団ターン変更時(int 軍団番号) {
  for each (auto k in 家宝->配列) {
    // 全ての家宝の画像を茶釜とする。
    k->画像 = 列挙::家宝::画像::茶釜;

    // 全ての家宝を陣羽織とする
    k->種類 = 列挙::家宝::種類::陣羽織;

    // 全ての家宝の等級を1とする。
    k->等級 = 1;

    // 全ての家宝を登場させ、
    k->登場 = true;

    // 消失していたものは元へと戻す
    k->消失 = false;
  }
}

なお、家宝の「等級」と「効果」は常に連動するため、
片方に値を設定すると、もう一方も連動して変化します。

使用例②

次によくあるのが「特定の家宝」を名指して何か処理を施すというものです。
天翔記の家宝はデフォルトでは、全て一意であるため、
列挙として定義しています。

家宝を名指しして誰かに持たせる
void 天翔記クラス::On_戦略_軍団ターン変更時(int 軍団番号) {

  int iBushouID = 武将->Find_武将番号(列挙::武将::列伝番号::織田信長);

  // 武将が問題のない番号であれば、
  if (0 <= iBushouID && iBushouID < 武将->配列->Count) {
    家宝->配列[列挙::家宝::家宝番号::孫子]->所有武将番号 = iBushouID; // 所有者を信長に変更
  }
}

又、名前から逆引きする手段も提供されています。
家宝名を変更している場合は、こちらの方が直感的かもしれません。

家宝を名指しして誰かに持たせる
void 天翔記クラス::On_戦略_軍団ターン変更時(int 軍団番号) {

  int iKahouID = 家宝->Find_家宝番号("孫子");
  int iBushouID = 武将->Find_武将番号(列挙::武将::列伝番号::織田信長);

  // 家宝も武将も問題のない番号であれば、
  if (0 <= iKahouID && iKahouID < 家宝->配列->Count &&
    0 <= iBushouID && iBushouID < 武将->配列->Count) {
    家宝->配列[iKahouID]->所有武将番号 = iBushouID; // 所有者を信長に変更
  }
}

その他

家宝について、主な解説は以上となります。
家宝関連には他にもプロパティやメソッドがあります。
「家宝.h」や「家宝列挙.h」を参照してみてください。