示例#1
0
void Scene_Battle_Rpg2k::CreateEnemyActions() {
	std::vector<Game_Battler*> active_enemies;
	Main_Data::game_enemyparty->GetActiveBattlers(active_enemies);

	std::vector<Game_Battler*>::const_iterator it;
	for (it = active_enemies.begin(); it != active_enemies.end(); ++it) {
		const RPG::EnemyAction* action = static_cast<Game_Enemy*>(*it)->ChooseRandomAction();
		if (action) {
			CreateEnemyAction(static_cast<Game_Enemy*>(*it), action);
		}
	}
}
示例#2
0
void Scene_Battle_Rpg2k3::Update() {
	switch (state) {
		case State_SelectActor:
		case State_AutoBattle: {
			if (battle_actions.empty()) {
				Game_Battle::UpdateGauges();
			}

			SelectNextActor();

			std::vector<Game_Battler*> enemies;
			Main_Data::game_enemyparty->GetActiveBattlers(enemies);

			for (std::vector<Game_Battler*>::iterator it = enemies.begin();
				it != enemies.end(); ++it) {
				if ((*it)->IsGaugeFull() && !(*it)->GetBattleAlgorithm()) {
					Game_Enemy* enemy = static_cast<Game_Enemy*>(*it);
					const RPG::EnemyAction* action = enemy->ChooseRandomAction();
					if (action) {
						CreateEnemyAction(enemy, action);
					}
				}
			}

			break;
		}
		default:;
	}

	for (std::vector<FloatText>::iterator it = floating_texts.begin();
		it != floating_texts.end();) {
		(*it).second -= 1;
		if ((*it).second <= 0) {
			it = floating_texts.erase(it);
		}
		else {
			++it;
		}
	}

	Scene_Battle::Update();
	UpdateCursors();

	//enemy_status_window->Update();
}