private float GetAIEnemyDamageRatio(LineUnitHolder line)
    {
        float dmgAISum    = 0f;
        float dmgEnemySum = 0f;

        foreach (var enemyUnit in line.enemyUnits)
        {
            dmgEnemySum += enemyUnit.GetHealth();
        }

        foreach (var myUnit in line.myUnits)
        {
            dmgAISum += myUnit.GetHealth();
        }

        if (dmgEnemySum == 0 && dmgAISum == 0)
        {
            // noone on the line
            return(1);
        }

        if (dmgEnemySum != 0 && dmgAISum == 0)
        {
            // only enemy on the line
            return(1);
        }

        if (dmgEnemySum == 0)
        {
            // only AI on the line
            dmgEnemySum = 1;
        }

        return(dmgAISum / dmgEnemySum);
    }
    private float GetAIEnemyHealthRatio(LineUnitHolder line)
    {
        float healthAISum    = 0f;
        float healthEnemySum = 0f;

        foreach (var enemyUnit in line.enemyUnits)
        {
            healthEnemySum += enemyUnit.GetHealth();
        }

        foreach (var myUnit in line.myUnits)
        {
            healthAISum += myUnit.GetHealth();
        }

        if (healthEnemySum == 0 && healthAISum == 0)
        {
            // noone on the line
            return(0);
        }

        if (healthEnemySum != 0 && healthAISum == 0)
        {
            // only enemy on the line
            return(-1);
        }

        if (healthEnemySum == 0)
        {
            // only AI on the line
            healthEnemySum = 1;
        }

        return(healthAISum / healthEnemySum);
    }