bool Scene_Battle_Rpg2k::CheckWin() { if (!Main_Data::game_enemyparty->IsAnyActive()) { Game_Temp::battle_result = Game_Temp::BattleVictory; SetState(State_Victory); int exp = Main_Data::game_enemyparty->GetExp(); int money = Main_Data::game_enemyparty->GetMoney(); std::vector<int> drops; Main_Data::game_enemyparty->GenerateDrops(drops); Game_Message::SetPositionFixed(true); Game_Message::SetPosition(2); Game_Message::SetTransparent(false); Game_Message::texts.push_back(Data::terms.victory); std::stringstream ss; ss << exp << Data::terms.exp_received; Game_Message::texts.push_back(ss.str()); ss.str(""); ss << Data::terms.gold_recieved_a << " " << money << Data::terms.gold << Data::terms.gold_recieved_b; Game_Message::texts.push_back(ss.str()); for (std::vector<int>::iterator it = drops.begin(); it != drops.end(); ++it) { ss.str(""); ss << Data::items[*it - 1].name << Data::terms.item_recieved; Game_Message::texts.push_back(ss.str()); } Game_System::BgmPlay(Game_System::GetSystemBGM(Game_System::BGM_Victory)); // Update attributes std::vector<Game_Battler*> ally_battlers; Main_Data::game_party->GetActiveBattlers(ally_battlers); for (std::vector<Game_Battler*>::iterator it = ally_battlers.begin(); it != ally_battlers.end(); ++it) { Game_Actor* actor = static_cast<Game_Actor*>(*it); actor->ChangeExp(actor->GetExp() + exp, true); } Main_Data::game_party->GainGold(money); for (std::vector<int>::iterator it = drops.begin(); it != drops.end(); ++it) { Main_Data::game_party->AddItem(*it, 1); } return true; } return false; }
bool Scene_Battle_Rpg2k3::CheckWin() { if (!Main_Data::game_enemyparty->IsAnyAlive()) { Game_Temp::battle_result = Game_Temp::BattleVictory; SetState(State_Victory); std::vector<Game_Battler*> battlers; Main_Data::game_party->GetAliveBattlers(battlers); for (std::vector<Game_Battler*>::const_iterator it = battlers.begin(); it != battlers.end(); ++it) { Sprite_Battler* sprite = Game_Battle::GetSpriteset().FindBattler(*it); if (sprite) { sprite->SetAnimationState(Sprite_Battler::AnimationState_Victory); } } int exp = Main_Data::game_enemyparty->GetExp(); int money = Main_Data::game_enemyparty->GetMoney(); Game_Message::texts.push_back(Data::terms.victory + "\f"); std::stringstream ss; ss << exp << Data::terms.exp_received << "\f"; Game_Message::texts.push_back(ss.str()); ss.str(""); ss << Data::terms.gold_recieved_a << " " << money << Data::terms.gold << Data::terms.gold_recieved_b << "\f"; Game_Message::texts.push_back(ss.str()); message_window->SetHeight(32); Game_Message::SetPositionFixed(true); Game_Message::SetPosition(0); Game_Message::message_waiting = true; Game_System::BgmPlay(Data::system.battle_end_music); // Update attributes std::vector<Game_Battler*> ally_battlers; Main_Data::game_party->GetAliveBattlers(ally_battlers); for (std::vector<Game_Battler*>::iterator it = ally_battlers.begin(); it != ally_battlers.end(); ++it) { Game_Actor* actor = static_cast<Game_Actor*>(*it); actor->ChangeExp(actor->GetExp() + exp, true); } Main_Data::game_party->GainGold(money); return true; } return false; }