Exemplo n.º 1
0
void GargoyleEnemy::handleAttackInput() {
	if (m_enemyState != EnemyState::Chasing) return;
	if (getCurrentTarget() == nullptr) return;
	
	if (m_attackWaitTime == sf::Time::Zero) {
		m_attackWaitTime = sf::seconds(2.f);
		if (m_maxSpell > 0) m_spellManager->setCurrentSpell(rand() % m_maxSpell); // random
		m_spellManager->executeCurrentSpell(getCurrentTarget()->getCenter());
	}
}
Exemplo n.º 2
0
void FireRatEnemy::handleAttackInput() {
	if (m_enemyState != EnemyState::Chasing) return;
	if (getCurrentTarget() == nullptr) return;
	if (m_enemyAttackingBehavior->distToTarget() < m_enemyAttackingBehavior->getAggroRange()) {
		m_spellManager->setCurrentSpell(1); // fire ball
		if (m_enemyAttackingBehavior->distToTarget() < 50.f) {
			m_spellManager->setCurrentSpell(0); // chop
		}

		m_spellManager->executeCurrentSpell(getCurrentTarget()->getCenter());
	}
}
Exemplo n.º 3
0
///Pops off a target - use caution, may or may not be dead
Unit* Unit::popTarget()
{
    Unit* t = getCurrentTarget();
    if(t != NULL)
        targets.pop();
    return t;
}
Exemplo n.º 4
0
void SkeletonEnemy::handleAttackInput() {
	if (m_enemyAttackingBehavior->distToTarget() < 180.f) {
		m_spellManager->executeCurrentSpell(getCurrentTarget()->getCenter());
	}
}