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()); } }
void Enemy::getDamaged(int damage) { _currentHp -= damage; if (_currentHp <= 0) { getRemoved(); } }
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(); }
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); }