最終更新日 2024-09-25

User.version.SDK ~家宝~

家宝の概念

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

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

使用例①

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

家宝のプロパティの利用
    public static void My_戦略_軍団ターン変更時(int 軍団番号)
    {
        foreach (var k in 家宝.配列)
        {
            // 全ての家宝の画像を茶釜とする。
            k.画像 = 列挙.家宝.画像.茶釜;

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

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

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

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

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

使用例②

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

家宝を名指しして誰かに持たせる
    public static void My_戦略_軍団ターン変更時(int 軍団番号)
    {
        int iBushouID = 武将.Find_武将番号(列挙.武将.列伝番号.織田信長);

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

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

家宝を名指しして誰かに持たせる
    public static void My_戦略_軍団ターン変更時(int 軍団番号)
    {
        int iKahouID = 家宝.Find_家宝番号("孫子");
        int iBushouID = 武将.Find_武将番号(列挙.武将.列伝番号.織田信長);

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

その他

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