大名と一言で言っても3つの概念で構成されます。
大名勢力という抽象的なカテゴリの概念。
全ての大名勢力リスト。最大で72存在する。
特定の大名勢力1つの概念
ここでは、よく利用するパターンをピックアップして解説します。
大名の代表的なプロパティの制御は以下のようなものでしょう。
void 天翔記クラス::On_戦略_軍団ターン変更時(int 軍団番号) { if (0 <= 軍団番号 && 軍団番号 < 軍団->配列->Count) { if ( 軍団->配列[軍団番号]->Is_プレイヤ担当軍団 ) { for each (auto d in 大名->配列) { if (d->Is_プレイヤ担当大名) { d->御用商人 = 列挙::大名::御用商人::小西隆佐; d->商人不在 = false; int iBushouID = d->大名_武将番号; デバッグ出力 << "プレイヤが担当している大名の武将名:" << 武将->配列[iBushouID]->姓名 << endl; int iCastleID = d->居城番号; デバッグ出力 << "大名の居城" << 城->配列[iCastleID]->城名称 << endl; // 役職を管領に d->役職 = 列挙::大名::役職::管領; } } } } }
大名勢力と大名勢力の間では、「同盟」や「婚姻」といったものが存在します。 姫が居るか居ないかに関わらず、婚姻なども結ぶことが可能です。
void 天翔記クラス::On_戦略_軍団ターン変更時(int 軍団番号) { if (0 <= 軍団番号 && 軍団番号 < 軍団->配列->Count) { if ( 軍団->配列[軍団番号]->Is_プレイヤ担当軍団 ) { int 信長 = 武将->Find_武将番号(列挙::武将::列伝番号::織田信長); int 義輝 = 武将->Find_武将番号(列挙::武将::列伝番号::足利義輝); // 両者ともに登場している。 if (0 <= 信長 && 信長 < 武将->配列->Count && 0 <= 義輝 && 義輝 < 武将->配列->Count) { // 両者ともに大名である。 if (武将->配列[信長]->状態 == 列挙::武将::状態::大名 && 武将->配列[義輝]->状態 == 列挙::武将::状態::大名) { int 信長大名勢力ID = 武将->配列[信長]->所属大名番号; int 義輝大名勢力ID = 武将->配列[義輝]->所属大名番号; // 両大名勢力を同盟関係にする。 大名->配列[信長大名勢力ID]->Set_同盟関係(義輝大名勢力ID); // 両大名勢力を婚姻関係にする。 大名->配列[信長大名勢力ID]->Set_婚姻関係(義輝大名勢力ID); // 友好関係は実際には設定した通りの値とはならない。 // 天翔記の仕様では、友好値は「0, 10, 20, 30, 40, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100」のいずれかであるため。 // 自由に値を設定した場合、小さい側の規定値(例えば98と指定したら95)が採用される。 大名->配列[信長大名勢力ID]->Set_友好関係(義輝大名勢力ID, 90); if (大名->配列[信長大名勢力ID]->Is_婚姻関係(義輝大名勢力ID)) { デバッグ出力 << "信長と義輝は婚姻関係です。" << endl; } } } } } }
大名に所属する麾下の軍団の一覧や、同じく大名支配下にある城の一覧などを 得たい場合もあることでしょう。
void 天翔記クラス::On_戦略_軍団ターン変更時(int 軍団番号) { if (0 <= 軍団番号 && 軍団番号 < 軍団->配列->Count) { if (軍団->配列[軍団番号]->Is_プレイヤ担当軍団) { int iDaimyoID = 軍団->配列[軍団番号]->所属大名番号; デバッグ出力 << "配下軍団長名" << endl; auto 麾下glist = 大名->配列[iDaimyoID]->麾下軍団番号リスト; for each (auto g in 麾下glist) { int iGLeaderBushouID = 軍団->配列[g]->軍団長_武将番号; デバッグ出力 << 武将->配列[iGLeaderBushouID]->姓名 << endl; } デバッグ出力 << "麾下の城" << endl; auto 麾下clist = 大名->配列[iDaimyoID]->麾下城番号リスト; for each (auto c in 麾下clist) { デバッグ出力 << 城->配列[c]->城名称 << endl; } } } }
大名について、主な解説は以上となります。 大名関連には他にも多くのプロパティやメソッドがあります。 「大名.h」や「大名列挙.h」を参照してみてください。