void BattleGroundSA::ResetBattle(uint32 winner, Team teamDefending) { Phase = SA_ROUND_TWO; shipsTimer = BG_SA_BOAT_START; shipsStarted = false; for (int32 i = 0; i < BG_SA_GATE_MAX; ++i) GateStatus[i] = BG_SA_GO_GATES_NORMAL; SetStartTime(0); defender = (teamDefending == ALLIANCE) ? HORDE : ALLIANCE; relicGateDestroyed = false; ToggleTimer(); SetupShips(); for (BattleGroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr) { Player *plr = sObjectMgr.GetPlayer(itr->first); if (!plr) continue; TeleportPlayerToCorrectLoc(plr, true); if (plr->GetBGTeam() == defender && plr->GetItemByEntry(39213) != NULL) plr->DestroyItemCount(39213, 1, true); } UpdatePhase(); ResetWorldStates(); }
void Player::Reset() { for (auto ship : m_Ships) { ship->Reset(); } SetupShips(); attackedPoints.clear(); }
//플레이어 초기화 함수 한 게임이 시작될때마다 게임 초기화를 위해 호출된다. void Player::InitPlayer() { m_MyBoard->InitBoard(); m_EnemyBoard->InitBoard(); SetupShips(); //네트워크를 위한 데이터 생성 MakeShipData(); //AI를 위한 정보들을 초기화 InitEnemyShips(); m_AImode = HUNT; m_LastHit = Position(); m_Origin = Position(); m_FindDir = UP; m_DestroyPosList.clear(); m_HitPosList.clear(); }
void BattleGroundSA::ResetBattle(uint32 winner, Team teamDefending) { Phase = SA_ROUND_TWO; shipsTimer = 60000; shipsStarted = false; for (int32 i = 0; i <= BG_SA_GATE_MAX; ++i) GateStatus[i] = 1; SetStartTime(0); defender = (teamDefending == ALLIANCE) ? HORDE : ALLIANCE; relicGateDestroyed = false; ToggleTimer(); SetupShips(); for (BattleGroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr) { if (Player *plr = sObjectMgr.GetPlayer(itr->first)) TeleportPlayerToCorrectLoc(plr, true); } UpdatePhase(); }
bool BattleGroundSA::SetupBattleGround() { return SetupShips(); }