最終更新日 2024-06-19

HD.version.SDK ~官位~

官位の概念

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

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

使用例①

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

官位のプロパティの利用
void 天翔記クラス::On_戦略_軍団ターン変更時(int 軍団番号) {
  for each (auto k in 官位->配列) {
    // 全ての官位を従一位
    k->位階 = 列挙::官位::位階::従一位;

    k->効果 = rand() % 20 + 1; // 適当な乱数
  }
}

なお、官位の「位階」と「効果」は家宝とは異なり、連動していません
このため、同じ位階であっても異なる効果の官位を設定することも可能です。

使用例②

次によくあるのが「特定の官位」を名指して何か処理を施すというものです。
天翔記の官位は全て一意、というわけではないので、
細かな処理をするためには、for文などで逐次判定処理が必要ですが、
名前から官位番号を手軽に引けた方が記述が簡単になるシーンも多いため、
名前から簡単に逆引きする手段が提供されています。

官位を名指しして誰かに持たせる
void 天翔記クラス::On_戦略_軍団ターン変更時(int 軍団番号) {
  int iKaniID = 官位->Find_官位番号("関白");
  int iBushouID = 武将->Find_武将番号(列挙::武将::列伝番号::今川義元);

  if (0 <= iKaniID && iKaniID < 官位->配列->Count &&
    0 <= iBushouID && iBushouID < 武将->配列->Count) {
    官位->配列[iKaniID]->所有武将番号 = iBushouID;
  }
}

その他

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