Exemplo n.º 1
0
void BattleGroundSA::StartingEventOpenDoors()
{
    // runs just in 1st phase
    SpawnEvent(SA_EVENT_ADD_NPC, 0, true);
    SpawnEvent(SA_EVENT_ADD_BOMB_B, (GetDefender() == ALLIANCE ? BG_SA_GRAVE_STATUS_HORDE_OCCUPIED : BG_SA_GRAVE_STATUS_ALLY_OCCUPIED), true);
    ToggleTimer();
    HandleInteractivity();
}
Exemplo n.º 2
0
void BattleGroundSA::StartingEventOpenDoors()
{
    // runs just in 1st round
    SpawnEvent(SA_EVENT_ADD_NPC, 0, true);
    SpawnEvent(SA_EVENT_ADD_BOMB_B, (GetDefender() == ALLIANCE ? BG_SA_GRAVE_STATUS_HORDE_OCCUPIED : BG_SA_GRAVE_STATUS_ALLY_OCCUPIED), true);
    ToggleTimer();
    HandleInteractivity();
    StartTimedAchievement(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, BG_SA_EVENT_START_BATTLE_1);
}
Exemplo n.º 3
0
void BattleGroundSA::UpdatePhase()
{
    if (Phase == SA_ROUND_TWO)
    {
        // despawn everything
        for (uint8 i = 0; i <= SA_EVENT_ADD_YELLOW_SIGIL; ++i)
            for (uint8 j = 0; j < 5; ++j)
                SpawnEvent(i, j, false);

        Round_timer = (BG_SA_ROUNDLENGTH - RoundScores[0].time);
        SetStatus(STATUS_WAIT_JOIN);
        SendMessageToAll(LANG_BG_SA_START_TWO_MINUTE, CHAT_MSG_BG_SYSTEM_NEUTRAL, NULL);

        // adding Preparation buff for the 2nd round, has to be added in status STATUS_WAIT_JOIN
        for (BattleGroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)
        {
            Player* plr = sObjectMgr.GetPlayer(itr->first);
            if (plr)
                plr->CastSpell(plr, SPELL_PREPARATION, true);
        }
        HandleInteractivity();
    }

    // Spawn banners and graveyards
    for (uint8 i = 0; i < BG_SA_GRY_MAX; ++i)
    {
        m_BannerTimers[i].timer = 0;
        SpawnEvent(i, (GetDefender() == ALLIANCE) ? BG_SA_GRAVE_STATUS_ALLY_CONTESTED : BG_SA_GRAVE_STATUS_HORDE_CONTESTED, true);
        m_Gyd[i] = ((GetDefender() == ALLIANCE) ? BG_SA_GRAVE_STATUS_ALLY_CONTESTED : BG_SA_GRAVE_STATUS_HORDE_CONTESTED);
    }

    // spirit healers at the relic
    SpawnEvent(SA_EVENT_ADD_GRAVE_A, (GetDefender() == ALLIANCE ? BG_SA_GRAVE_STATUS_ALLY_OCCUPIED : BG_SA_GRAVE_STATUS_HORDE_OCCUPIED), true);
    /*TODO: fix next line, because now the array is out of bounds */
    m_Gyd[SA_EVENT_ADD_GRAVE_A] = ((GetDefender() == ALLIANCE) ? BG_SA_GRAVE_STATUS_ALLY_CONTESTED : BG_SA_GRAVE_STATUS_HORDE_CONTESTED);

    // (Re)spawn graveyard at the beach.
    SpawnEvent(SA_EVENT_ADD_GRAVE_B, (GetDefender() == ALLIANCE ? BG_SA_GRAVE_STATUS_HORDE_OCCUPIED : BG_SA_GRAVE_STATUS_ALLY_OCCUPIED), true);

    SpawnEvent(SA_EVENT_ADD_GO, 0, true);
    SpawnEvent(SA_EVENT_ADD_CANNON, 0, true);
    SpawnEvent(SA_EVENT_ADD_RELIC, (GetDefender() == ALLIANCE) ? 2 : 1, true);
    MakeInteractive(SA_EVENT_ADD_RELIC, (GetDefender() == ALLIANCE) ? 2 : 1, false);

    // spawn gate sigils
    for (uint8 i = SA_EVENT_ADD_GREEN_SIGIL; i <= SA_EVENT_ADD_YELLOW_SIGIL; ++i)
        SpawnEvent(i, 0, true);
}
Exemplo n.º 4
0
void BattleGroundSA::StartingEventOpenDoors()
{
   for (BattleGroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)
    {
        if (Player* plr = sObjectMgr.GetPlayer(itr->first))
        {
            if(plr->GetTeam()!=GetDefender())
            {
                plr->GetAchievementMgr().StartTimedAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET,BG_SA_STORM_THE_BEACH_TIMER1);
                plr->GetAchievementMgr().StartTimedAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET,BG_SA_STORM_THE_BEACH_TIMER2);
            }
         }
    }

    // runs just in 1st round
    SpawnEvent(SA_EVENT_ADD_NPC, 0, true);
    SpawnEvent(SA_EVENT_ADD_BOMB_B, (GetDefender() == ALLIANCE ? BG_SA_GRAVE_STATUS_HORDE_OCCUPIED : BG_SA_GRAVE_STATUS_ALLY_OCCUPIED), true);
    ToggleTimer();
    HandleInteractivity();
}