戦争 - 武将ユニットの状態

PICTURE

武将ユニットの混乱・大混乱・挑発状態

int Get_武将混乱状態(int 武将番号【配列用】)
bool Set_武将混乱状態(int 武将番号【配列用】, int 混乱状態)
void 武将ユニット状態描画更新《戦争画面》(int 武将番号【配列用】)

混乱状態::無し、混乱状態::混乱、混乱状態::大混乱、混乱状態::挑発混乱 を比較や設定に利用できる

PICTURE

void カスタム::On_残りターン変更《戦争画面》(int 残りターン数) {
	番号リスト型 list = Get_出陣中の武将番号リスト【配列用】《表示中マップ》();

	for (int iBushouID : list) {
		if (Get_武将混乱状態(iBushouID) == 混乱状態::無し) {
			Set_武将混乱状態(iBushouID, 混乱状態::大混乱);
			武将ユニット状態描画更新《戦争画面》(iBushouID);
		}
		else if (Get_武将混乱状態(iBushouID) == 混乱状態::混乱) {
			Set_武将混乱状態(iBushouID, 混乱状態::大混乱);
			武将ユニット状態描画更新《戦争画面》(iBushouID);
		}
		else if (Get_武将混乱状態(iBushouID) == 混乱状態::大混乱) {
			Set_武将混乱状態(iBushouID, 混乱状態::挑発混乱);
			武将ユニット状態描画更新《戦争画面》(iBushouID);
		}
		else if (Get_武将混乱状態(iBushouID) == 混乱状態::挑発混乱) {
			Set_武将混乱状態(iBushouID, 混乱状態::無し);
			武将ユニット状態描画更新《戦争画面》(iBushouID);
		}
	}
}

PICTURE

武将ユニットが行動済みかどうかの判定

該当の野戦ターン(あるいは攻城戦ターン)ですでに対象の武将ユニットが行動済みかどうかを判定します。

bool Is_武将行動済《戦争画面》(int 武将番号【配列用】)

PICTURE

void カスタム::On_残りターン変更《戦争画面》(int 残りターン数) {
	// 表示中マップと、表示されてないマップも含めて出陣中の武将のリストを得る
	番号リスト型 list = Get_出陣中の武将番号リスト【配列用】();

	for (int iBushouID : list) {
		if (Is_武将行動済《戦争画面》(iBushouID)) {
			デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << "は行動済みであり、次のターンまで行動できません" << endl;
		}
	}
}

void カスタム::On_戦闘コマンド表示直前《戦争画面》(int 武将番号) {
	// 表示中マップでの出陣中の武将のリストを得る
	番号リスト型 list = Get_出陣中の武将番号リスト【配列用】《表示中マップ》();

	for (int iBushouID : list) {
		if (Is_武将行動済《戦争画面》(iBushouID)) {
			デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << "は行動済みであり、次のターンまで行動できません" << endl;
		}
	}
}

より詳細を知るには...

「戦争 - 武将ユニットの状態」に関する主な所は以上となります。 詳しくは「戦場情報型.h」「武将情報型.h」などを参照してください。