最終更新日 2024-06-19

User.version.SDK ~国~

国の概念

国とは、日本国の意味ではなく、「大和、丹波、北信濃、備中」などといった、地域のことです。
天翔記上では、「国」という言葉で統一されているため、SDK上でも国としています。

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

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

使用例①

国オブジェクトの使い方は主に2つしかありません。
ひとつは、国に含まれている城のリストを求める方法です。
国→城を求めるものとなります。

国に所属する城を求める
    public static void My_シナリオ選択直後(string シナリオファイル名)
    {
        // 全ての国の名前や、その国に所属している城名を出す
        foreach (var k in 国.配列)
        {
            デバッグ出力("---------------------------------");
            デバッグ出力(k.国名);
            var clist = k.所属城番号リスト;
            foreach (int iCastleID in clist)
            {
                デバッグ出力(城.配列[iCastleID].城名称);
            }
        }
    }

使用例②

SDKでは、全ての国番号が列挙として定義済みです。

指定の国に所属する城を求める
    public static void My_シナリオ選択直後(string シナリオファイル名)
    {
        int iKuniID = 列挙.国.国番号.越後;
        デバッグ出力("---------------------------------");
        デバッグ出力(国.配列[iKuniID].国名);
        var clist = 国.配列[iKuniID].所属城番号リスト;
        foreach (int iCastleID in clist)
        {
            デバッグ出力(城.配列[iCastleID].城名称);
        }
    }

使用例③

もう一つは、逆の流れで城→国を求めるものです。

城が所属する国を求める
    public static void My_シナリオ選択直後(string シナリオファイル名)
    {
        // 今天翔記に信長がいるか、居るなら武将番号を得る
        int iBushouID = 武将.Find_武将番号(列挙.武将.列伝番号.織田信長);

        if (武将.配列.Exists(iBushouID))
        {
            // 信長が居る城の番号
            int iCastleID = 武将.配列[iBushouID].所属城番号;

            if (城.配列.Exists(iCastleID))
            {
                int iKuniID = 城.配列[iCastleID].所属国番号;
                デバッグ出力("信長は" + 国.配列[iKuniID].国名 + "に居る");
            }
        }
    }

その他

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