void LeapOfFaithSpell::update(const sf::Time& frameTime) { if (m_isFacingRight != m_mob->isFacingRight()) { m_isFacingRight = m_mob->isFacingRight(); setCurrentAnimation(getAnimation(GameObjectState::Idle), !m_isFacingRight); } sf::Vector2f nextPosition; calculatePositionAccordingToMob(nextPosition); setPosition(nextPosition); MovableGameObject::update(frameTime); updateTime(m_data.activeDuration, frameTime); if (m_data.activeDuration == sf::Time::Zero) { setDisposed(); } m_ps->update(frameTime); }
void GhostFormSpell::update(const sf::Time& frameTime) { sf::Vector2f nextPosition; calculatePositionAccordingToMob(nextPosition); setPosition(nextPosition); m_mob->setSpriteColor(GHOST_COLOR, sf::milliseconds(100)); MovableGameObject::update(frameTime); m_ps->update(frameTime); updateParticleSystemPosition(); WorldCollisionQueryRecord rec; rec.boundingBox = *m_mob->getBoundingBox(); if (!(m_level->collides(rec))) { m_lastSafePosition = m_mob->getPosition(); } GameObject::updateTime(m_data.activeDuration, frameTime); if (m_data.activeDuration <= sf::Time::Zero) { setDisposed(); } }