示例#1
0
    public static float DefineAscension(ColonyController c)
    {
        if (c == null)
        {
            return(0f);
        }
        float maxVal = GameConstants.ASCENSION_VERYLOW;
        var   lvl    = c.hq?.level ?? 0;

        if (lvl > 1)
        {
            switch (lvl)
            {
            case 2:
            case 3:
                maxVal = GameConstants.ASCENSION_LOW; break;

            case 4: maxVal = GameConstants.ASCENSION_MEDIUM; break;

            case 5:
            case 6:
                maxVal = GameConstants.ASCENSION_HIGH;
                break;
            }
        }
        if (c.HaveBuilding(Structure.MONUMENT_ID))
        {
            maxVal += 10f;
        }
        if (c.HaveBuilding(Structure.QUANTUM_ENERGY_TRANSMITTER_5_ID))
        {
            maxVal += 10f;
        }
        //if (HaveBuilding(Structure.ASCENSION_ENGINE)) maxVal += 10f;

        var a = Knowledge.GetCurrent()?.GetCompleteness() ?? 0f;

        if (a > maxVal)
        {
            a = maxVal;
        }
        return(a);
    }