Esempio n. 1
0
    public static DefaultEnemy createRandomEnemy(float sizeMin = 3f, float sizeMax = 5f, float speedMin = 2f, float speedMax = 20f, float rotationSpeedMin = -1.3f, float rotationSpeedMax = 1.3f, float minCooldown = 0.5f, float maxCooldown = 1.0f)
    {
        float widthHeight = Random.Range(sizeMin, sizeMax);

        if (!findNewFreePosition(widthHeight, widthHeight, out Vector2 position))
        {
            return(null);
        }

        float speed   = Random.Range(speedMin, speedMax);
        float targetX = Random.Range(-10f, 10f);
        float targetY = Random.Range(-10f, 10f);

        float rotationSpeed = Random.Range(rotationSpeedMin, rotationSpeedMax);

        if (rotationSpeed < 0.05f && rotationSpeed > -0.05f)
        {
            if (rotationSpeed > 0)
            {
                rotationSpeed += 0.1f;
            }
            else
            {
                rotationSpeed -= 0.1f;
            }
        }
        float startDegrees = Random.Range(0.0f, 360.0f);

        SeekingEnemy enemy = (SeekingEnemy)createNewEnemy(position.x, position.y, widthHeight, widthHeight, targetX, targetY, speed, rotationSpeed, startDegrees, "Prefabs/Enemies/SeekingEnemy");

        enemy.m_cooldown = Random.Range(minCooldown, maxCooldown);
        enemy.m_speedMin = speedMin;
        enemy.m_speedMax = speedMax;
        return(enemy);
    }
Esempio n. 2
0
        override protected void spawn()
        {
            SeekingEnemy.createRandomEnemy(m_sizeMin, m_sizeMax, m_speedMin, m_speedMax, m_rotationSpeedMin, m_rotationSpeedMax, m_cooldownMin, m_cooldownMax);
            if (m_spawnInterval > 2f)
            {
                m_spawnInterval *= 0.9f;
            }

            if (m_speedMax < 40.0f)
            {
                m_speedMin *= 1.1f;
                m_speedMax *= 1.1f;
            }

            if (m_cooldownMax > 0.2f)
            {
                m_cooldownMin *= 0.9f;
                m_cooldownMax *= 0.9f;
            }
        }