Пример #1
0
bool MoveResult::_isRemovedSet(const mgen::FieldSetDepth depth) const {
	if (depth == mgen::SHALLOW) {
		return _m_removed_isSet;
	} else {
		return _m_removed_isSet && mgen::validation::validateFieldDeep(getRemoved());
	}
}
Пример #2
0
void Enemy::getDamaged(int damage)
{
	_currentHp -= damage;
	if (_currentHp <= 0)
	{
		getRemoved();
	}
}
Пример #3
0
bool MoveResult::operator==(const MoveResult& other) const {
	return true
		 && _isPlayerSet(mgen::SHALLOW) == other._isPlayerSet(mgen::SHALLOW)
		 && _isPointSet(mgen::SHALLOW) == other._isPointSet(mgen::SHALLOW)
		 && _isRemovedSet(mgen::SHALLOW) == other._isRemovedSet(mgen::SHALLOW)
		 && getPlayer() == other.getPlayer()
		 && getPoint() == other.getPoint()
		 && getRemoved() == other.getRemoved();
}
Пример #4
0
void Enemy::update(float dt)
{
	Node::update(dt);

	if (!_active)
		return;

	MainGame* layer = static_cast<MainGame*>(_gameLayer);

	if (layer->circle(_spritePosition, 1.0f, _destinationWayPoint->getWayPosition(), 1.0f))
	{
		if (_destinationWayPoint->getNextWayPoint())
		{
			_destinationWayPoint = _destinationWayPoint->getNextWayPoint();
		}
		else
		{
			layer->getHpDamage();
			getRemoved();
			return;
		}
	}

	Point targetPoint = _destinationWayPoint->getWayPosition();
	float movementSpeed = _walkingspeed;

	
	Point normalized = ccpNormalize(Point(targetPoint.x - _spritePosition.x, targetPoint.y - _spritePosition.y));
	_ptrSprite->setRotation(CC_RADIANS_TO_DEGREES(atan2(normalized.y, -normalized.x)));

	_spritePosition = Point(_spritePosition.x+normalized.x*movementSpeed,
		_spritePosition.y+normalized.y*movementSpeed);

	_ptrSprite->setPosition(_spritePosition);

	
}