void IsleOfConquest::EventRefineryCaptured(){ ControlPointTypes state = controlpoint[ IOC_CONTROL_POINT_REFINERY ].state; uint32 newteam = 0; uint32 oldteam = 0; switch( state ){ case IOC_SPAWN_TYPE_ALLIANCE_CONTROLLED: newteam = TEAM_ALLIANCE; oldteam = TEAM_HORDE; break; case IOC_SPAWN_TYPE_HORDE_CONTROLLED: newteam = TEAM_HORDE; oldteam = TEAM_ALLIANCE; break; } RemoveAuraFromTeam( oldteam, IOC_REFINERY_BONUS ); CastSpellOnTeam( newteam, IOC_REFINERY_BONUS ); }
void StrandOfTheAncient::StartRound(){ roundprogress = SOTA_ROUND_STARTED; m_mainLock.Acquire(); for( std::set< Player* >::iterator itr = m_players[ Attackers ].begin(); itr != m_players[ Attackers ].end(); itr++ ){ Player *p = *itr; p->SafeTeleport( p->GetMapId(), p->GetInstanceID(), sotaAttackerStartingPosition[ SOTA_ROUND_STARTED ] ); p->RemoveAura( BG_PREPARATION ); } m_mainLock.Release(); RemoveAuraFromTeam( Defenders, BG_PREPARATION ); SetWorldState( WORLDSTATE_SOTA_TIMER_1, 10 ); SetTime( ROUND_LENGTH ); sEventMgr.AddEvent( this, &StrandOfTheAncient::TimeTick, EVENT_SOTA_TIMER, MSTIME_SECOND * 5, 0, EVENT_FLAG_DO_NOT_EXECUTE_IN_WORLD_CONTEXT ); UpdatePvPData(); }