void InGameState::checkAndResolveDynamicCollision()
{
	Circle avatarBC(m_avatar->getPostion(), m_avatar->getRadius() / 4);

	for(unsigned int index = 0; index < m_monsters.size(); index++)
	{
		Monster* monster = m_monsters.at(index);
		if (!monster->isDead())
		{
			Circle monsterBC(monster->getPostion(),monster->getRadius() / 4);

			if(avatarBC.collidesWith(monsterBC))
			{
				if (m_stats->isSuperMode())
				{
					monster->kill();
					m_stats->addScore(MONSTER_KILLED);
				}
				else
					m_avatar->kill();
			}
		}
		for (unsigned int bomb = 0; bomb < m_bombs.size(); bomb++)
		{
			if (m_bombs[bomb]->isColliding(monster) && !monster->isDead())
			{
				monster->kill();
				m_stats->addScore(MONSTER_KILLED);
			}
		}
	}

	for (unsigned int bomb = 0; bomb < m_bombs.size(); bomb++)
	{
		if (m_bombs[bomb]->isColliding(m_avatar))
		{
			m_avatar->kill();
		}
	}

	if (!m_avatar->inAir())
	{
		for(unsigned int index = 0; index < m_traps.size(); index++)
		{
			Trap* trap = m_traps.at(index);
			Circle trapBC(trap->getPostion(),trap->getRadius() / 8);

			if(avatarBC.collidesWith(trapBC))
			{
				m_avatar->kill();
			}
		}
	}
}