package engine.gameManager;
import engine.objects.Guild;
public class ZergManager {

    public static float getCurrentMultiplier(int count, int maxCount){
        switch(maxCount) {
            case 3: return getMultiplier3Man(count);
            case 5: return getMultiplier5Man(count);
            case 10: return getMultiplier10Man(count);
            case 20: return getMultiplier20Man(count);
            case 30: return getMultiplier30Man(count);
            case 40: return getMultiplier40Man(count);
            default: return 1.0f; //unlimited
        }
    }
    public static float getMultiplier3Man(int count) {
        if(count < 4)
            return 1.0f;

        if(count > 6)
            return 0.0f;

        switch(count){
            case 4: return 0.63f;
            case 5: return 0.40f;
            case 6: return 0.25f;
            default: return 1.0f;
        }
    }
    public static float getMultiplier5Man(int count) {
        if(count < 6)
            return 1.0f;

        if(count > 10)
            return 0.0f;

        switch(count){
            case 6: return 0.75f;
            case 7: return 0.57f;
            case 8: return 0.44f;
            case 9: return 0.33f;
            case 10: return 0.25f;
            default: return 1.0f;
        }
    }
    public static float getMultiplier10Man(int count) {
        if(count < 11)
            return 1.0f;

        if(count > 20)
            return 0.0f;

        switch(count){
            case 11: return 0.86f;
            case 12: return 0.75f;
            case 13: return 0.65f;
            case 14: return 0.57f;
            case 15: return 0.50f;
            case 16: return 0.44f;
            case 17: return 0.38f;
            case 18: return 0.33f;
            case 19: return 0.29f;
            case 20: return 0.25f;
            default: return 1.0f;
        }
    }
    public static float getMultiplier20Man(int count) {
        if(count < 21)
            return 1.0f;

        if(count > 40)
            return 0.0f;

        switch (count)
        {
            case 21: return 0.93f;
            case 22: return 0.86f;
            case 23: return 0.80f;
            case 24: return 0.75f;
            case 25: return 0.70f;
            case 26: return 0.65f;
            case 27: return 0.61f;
            case 28: return 0.57f;
            case 29: return 0.53f;
            case 30: return 0.50f;
            case 31: return 0.47f;
            case 32: return 0.44f;
            case 33: return 0.41f;
            case 34: return 0.38f;
            case 35: return 0.36f;
            case 36: return 0.33f;
            case 37: return 0.31f;
            case 38: return 0.29f;
            case 39: return 0.27f;
            case 40: return 0.25f;
            default: return 1.0f;
        }

    }
    public static float getMultiplier30Man(int count) {
        if(count < 31)
            return 1.0f;

        if(count > 60)
            return 0.0f;

        switch (count)
        {
            case 31: return 0.95f;
            case 32: return 0.91f;
            case 33: return 0.86f;
            case 34: return 0.82f;
            case 35: return 0.79f;
            case 36: return 0.75f;
            case 37: return 0.72f;
            case 38: return 0.68f;
            case 39: return 0.65f;
            case 40: return 0.63f;
            case 41: return 0.60f;
            case 42: return 0.57f;
            case 43: return 0.55f;
            case 44: return 0.52f;
            case 45: return 0.50f;
            case 46: return 0.48f;
            case 47: return 0.46f;
            case 48: return 0.44f;
            case 49: return 0.42f;
            case 50: return 0.40f;
            case 51: return 0.38f;
            case 52: return 0.37f;
            case 53: return 0.35f;
            case 54: return 0.33f;
            case 55: return 0.32f;
            case 56: return 0.30f;
            case 57: return 0.29f;
            case 58: return 0.28f;
            case 59: return 0.26f;
            case 60: return 0.25f;
            default: return 1.0f;
        }

    }
    public static float getMultiplier40Man(int count) {
        if(count < 41)
            return 1.0f;

        if(count > 80)
            return 0.0f;

        switch (count)
        {
            case 41: return 0.96f;
            case 42: return 0.93f;
            case 43: return 0.90f;
            case 44: return 0.86f;
            case 45: return 0.83f;
            case 46: return 0.80f;
            case 47: return 0.78f;
            case 48: return 0.75f;
            case 49: return 0.72f;
            case 50: return 0.70f;
            case 51: return 0.68f;
            case 52: return 0.65f;
            case 53: return 0.63f;
            case 54: return 0.61f;
            case 55: return 0.59f;
            case 56: return 0.57f;
            case 57: return 0.55f;
            case 58: return 0.53f;
            case 59: return 0.52f;
            case 60: return 0.50f;
            case 61: return 0.48f;
            case 62: return 0.47f;
            case 63: return 0.45f;
            case 64: return 0.44f;
            case 65: return 0.42f;
            case 66: return 0.41f;
            case 67: return 0.40f;
            case 68: return 0.38f;
            case 69: return 0.37f;
            case 70: return 0.36f;
            case 71: return 0.35f;
            case 72: return 0.33f;
            case 73: return 0.32f;
            case 74: return 0.31f;
            case 75: return 0.30f;
            case 76: return 0.29f;
            case 77: return 0.28f;
            case 78: return 0.27f;
            case 79: return 0.26f;
            case 80: return 0.25f;
            default: return 1.0f;
        }
    }
}
