Exemplo n.º 1
0
Result ResourceCoordinator::ProcessNotificationInternal(Notification &notification)
{
	Result retVal = Result::Failure;
	if(notification.GetAction() == Action::ResourceUpdate)
	{
		_totalResources = notification.GetResourceValue();
		std::stringstream ss;
		ss << "Total Resources: M:" << _totalResources.Minerals << " V:" << _totalResources.Vespene << " S:" << _totalResources.Supply;
		Logger::GetInstance().Log(ResourceCoord, ss.str());
		retVal = Result::Success;
	}
	if(notification.GetAction() == Action::ResourceRequest)
	{
		retVal = RequestResources(notification.GetResourceValue());
	}
	if(notification.GetAction() == Action::ResourceRelease)
	{
		retVal = ReleaseResources(notification.GetResourceValue());
	}
	if(notification.GetAction() == Action::CurrentResources)
	{
		notification.SetResourceValue(GetCurrentResources());
		retVal = Result::Success;
	}
	return retVal;
}