CObjectPropertyEvaluatorFull::_value_type CObjectPropertyEvaluatorFull::evaluate	()
{
	if (!m_ammo_type)
		return		(_value_type(m_item->GetAmmoElapsed() == m_item->GetAmmoMagSize()));
	else
		return		(_value_type(false));
}
CObjectPropertyEvaluatorEmpty::_value_type CObjectPropertyEvaluatorEmpty::evaluate	()
{
	if (!m_ammo_type)
		return		(_value_type(!m_item->GetAmmoElapsed()));
	else
		return		(_value_type(false));
}
CObjectPropertyEvaluatorAmmo::_value_type CObjectPropertyEvaluatorAmmo::evaluate	()
{
	if (!m_ammo_type)
		return		(_value_type(!!m_item->GetSuitableAmmoTotal()));
	else
		return		(_value_type(false));
}
CObjectPropertyEvaluatorAmmo::_value_type CObjectPropertyEvaluatorAmmo::evaluate	()
{
	if (!m_ammo_type)
		return		(_value_type(!!(m_item->GetAmmoCurrent() - m_item->GetAmmoElapsed())));
	else
		return		(_value_type(false));
}
CObjectPropertyEvaluatorReady::_value_type CObjectPropertyEvaluatorReady::evaluate	()
{
	if (!m_ammo_type)
//		return		(_value_type(!m_item->IsMisfire() && m_item->GetAmmoElapsed()));
		return		(_value_type(!m_item->IsMisfire() && (m_item->GetAmmoElapsed() && (m_item->GetState() != CWeapon::eReload))));
	else
		return		(_value_type(false));
}
CObjectPropertyEvaluatorState::_value_type CObjectPropertyEvaluatorState::evaluate	()
{
	VERIFY			(m_item);
	return			(_value_type((m_item->GetState() == m_state) == m_equality));
}