package engine.gameManager;

import engine.objects.Bane;
import engine.objects.Guild;
import engine.objects.PlayerCharacter;

public class ZergManager {
    public static float getMultiplier5Man(int count, PlayerCharacter pc){
        float multiplier = 1.0f;
        switch(count){
            case 1:
            case 2:
            case 5:
                multiplier += 0.0f;
                break;
            case 3:
                multiplier += 0.55f;
                break;
            case 4:
                multiplier += 0.2f;
                break;
            case 6:
                multiplier -= 0.2f;
                break;
            case 7:
                multiplier -= 0.35f;
                break;
            case 8:
                multiplier -= 0.50f;
                break;
            case 9:
                multiplier -= 0.750f;
                break;
            default:
                multiplier -= 1.0f;
                break;
        }
        ChatManager.chatSystemInfo(pc,"Zerg Multiplier Set: " + multiplier);
        if(multiplier == 0.0f)
            return 1.0f;
        else
            return multiplier;
    }

    public static float getMultiplier10Man(int count, PlayerCharacter pc){
        float multiplier = 1.0f;
        if(count <=4)
            return 0.0f;
        switch(count){
            case 5:
                multiplier += 0.5f;
                break;
            case 6:
                multiplier += 0.4f;
                break;
            case 7:
                multiplier += 0.3f;
                break;
            case 8:
                multiplier += 0.2f;
                break;
            case 9:
                multiplier += 0.1f;
                break;
            case 10:
                multiplier += 0.0f;
                break;
            case 11:
                multiplier -= 0.1f;
                break;
            case 12:
                multiplier -= 0.2f;
                break;
            case 13:
                multiplier -= 0.3f;
                break;
            case 14:
                multiplier -= 0.4f;
                break;
            case 15:
                multiplier -= 0.5f;
                break;
            case 16:
                multiplier -= 0.65f;
                break;
            case 17:
                multiplier -= 0.75f;
                break;
            case 18:
                multiplier -= 0.85f;
                break;
            default:
                multiplier -= 1.0f;
                break;
        }
        ChatManager.chatSystemInfo(pc,"Zerg Multiplier Set: " + multiplier);
        if(multiplier == 0.0f)
            return 1.0f;
        else
            return multiplier;
    }

    public static float getMultiplier20Man(int count, PlayerCharacter pc){
        float multiplier = 1.0f;
        if(count < 10){
            multiplier += 1.25f;
        }else {
            switch (count) {
                case 10:
                    multiplier += 0.8f;
                    break;
                case 11:
                    multiplier += 0.65f;
                    break;
                case 12:
                    multiplier += 0.54f;
                    break;
                case 13:
                    multiplier += 0.46f;
                    break;
                case 14:
                    multiplier += 0.36f;
                    break;
                case 15:
                    multiplier += 0.28f;
                    break;
                case 16:
                    multiplier += 0.21f;
                    break;
                case 17:
                    multiplier += 0.15f;
                    break;
                case 18:
                    multiplier += 0.09f;
                    break;
                case 19:
                    multiplier += 0.04f;
                    break;
                case 20:
                    multiplier += 0.00f;
                    break;
                case 21:
                    multiplier -= 0.04f;
                    break;
                case 22:
                    multiplier -= 0.09f;
                    break;
                case 23:
                    multiplier -= 0.15f;
                    break;
                case 24:
                    multiplier -= 0.21f;
                    break;
                case 25:
                    multiplier -= 0.28f;
                    break;
                case 26:
                    multiplier -= 0.36f;
                    break;
                case 27:
                    multiplier -= 0.46f;
                    break;
                case 28:
                    multiplier -= 0.54f;
                    break;
                case 29:
                    multiplier -= 0.65f;
                    break;
                default:
                    multiplier -= 0.75f;
                    break;
            }
        }
        ChatManager.chatSystemInfo(pc,"Zerg Multiplier Set: " + multiplier);
        if(multiplier == 0.0f)
            return 1.0f;
        else
            return multiplier;
    }

    public static int getBaneCapSize(Guild defender){
        int treesInNation = defender.getNation().getSubGuildList().size() + 1;
        int capSize;
        switch(treesInNation){
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
            case 6:
                capSize = 20;
                break;
            case 7:
            case 8:
            case 9:
            case 10:
                capSize = 30;
                break;
            case 11:
            case 12:
            case 13:
            case 14:
                capSize = 40;
                break;
            default: capSize = 9999999;
        }
        return capSize;
    }
    public static float getMultiplier30Man(int count, PlayerCharacter pc){
        float multiplier = 1.0f;

        ChatManager.chatSystemInfo(pc,"Zerg Multiplier Set: " + multiplier);
        if(multiplier == 0.0f)
            return 1.0f;
        else
            return multiplier;
    }
    public static float getMultiplier40Man(int count, PlayerCharacter pc){
        float multiplier = 1.0f;

        ChatManager.chatSystemInfo(pc,"Zerg Multiplier Set: " + multiplier);
        if(multiplier == 0.0f)
            return 1.0f;
        else
            return multiplier;
    }
    public static float getMultiplierUnlimited(int count, PlayerCharacter pc){
        float multiplier = 1.0f;

        ChatManager.chatSystemInfo(pc,"Zerg Multiplier Set: " + multiplier);
        if(multiplier == 0.0f)
            return 1.0f;
        else
            return multiplier;
    }
}
