#include "RemoveBNpcTask.h" #include #include #include #include #include #include using namespace Sapphire::World; RemoveBNpcTask::RemoveBNpcTask( uint64_t delayTime, Entity::BNpcPtr bnpc ) : Task( delayTime ), m_pBNpc( std::move( bnpc ) ) { } void RemoveBNpcTask::onQueue() { Logger::debug( { __FUNCTION__ } ); } void RemoveBNpcTask::execute() { auto teriMgr = Common::Service< World::Manager::TerritoryMgr >::ref(); auto pZone = teriMgr.getTerritoryByGuId( m_pBNpc->getTerritoryId() ); if( !pZone ) return; pZone->removeActor( m_pBNpc ); } std::string RemoveBNpcTask::toString() { return fmt::format( "RemoveBNpcTask: BNpc#{}, TerritoryId#{}, ElapsedTimeMs: {}", m_pBNpc->getId(), m_pBNpc->getTerritoryId(), getDelayTimeMs() ); }