DragonNest/Server/DNGameServer/GrowingAreaStateHarvesting.cpp
Cussrro 47f7895977 Revert "修复编码问题"
This reverts commit 9e69c01767.
2024-12-21 10:04:04 +08:00

78 lines
2 KiB
C++

#include "Stdafx.h"
#include "GrowingAreaStateHarvesting.h"
#include "DNFarmGameRoom.h"
#include "GrowingArea.h"
#include "DNUserSession.h"
void CFarmAreaStateHarvesting::BeginProcess()
{
_ASSERT( m_biHarvestingCharacterDBID > 0 );
if( m_biHarvestingCharacterDBID > 0 )
{
CDNUserSession* pSession = m_pArea->GetUserSession( m_biHarvestingCharacterDBID );
if( pSession )
pSession->BroadcastingEffect( EffectType_Harvest, EffectState_Start );
}
SendBeginAreaState();
}
void CFarmAreaStateHarvesting::Process( float fDelta )
{
if( GetQueryFlag() == true )
return;
if( m_pArea->GetElapsedStateTick() >= Farm::Max::HARVESTING_TICK+Farm::Max::EXTRA_SERVER_TICK )
m_pArea->ChangeState( Farm::AreaState::COMPLETED );
}
void CFarmAreaStateHarvesting::EndProcess()
{
_ASSERT( m_biHarvestingCharacterDBID > 0 );
if( m_biHarvestingCharacterDBID > 0 )
{
int iRet = ERROR_NONE;
Farm::ActionType::eType ActionType = Farm::ActionType::CANCEL;
std::vector<int> vResultItem;
if( m_pArea->GetState() == Farm::AreaState::HARVESTED )
{
ActionType = Farm::ActionType::COMPLETE;
vResultItem = m_pArea->GetPlantSeed()->GetResultItems();
}
else if( m_pArea->GetState() == Farm::AreaState::COMPLETED )
{
if( GetQueryFlag() )
{
ActionType = Farm::ActionType::COMPLETE;
iRet = ERROR_FARM_CANT_COMPLETE_HARVESTSTATE;
}
}
CDNUserSession* pSession = m_pArea->GetUserSession( GetHarvestingCharacterDBID() );
if( pSession )
{
pSession->SendFarmHarvest( iRet, ActionType, m_pArea->GetIndex(), vResultItem );
pSession->BroadcastingEffect( EffectType_Harvest, EffectState_Cancel );
}
}
}
bool CFarmAreaStateHarvesting::CanCompleteHarvest()
{
// ½Ã°£ °Ë»ç
if( m_pArea->GetElapsedStateTick() < static_cast<DWORD>(Farm::Max::HARVESTING_TICK*Farm::ElapsedSyncPer) )
return false;
return true;
}
// HarvestInfo
void CFarmAreaStateHarvesting::SetHarvestInfo( CDNUserSession* pSession )
{
m_biHarvestingCharacterDBID = pSession->GetCharacterDBID();
m_wstrHarvestingCharacterName = pSession->GetCharacterName();
}