forked from MagicBane/Server
				
			
				 8 changed files with 122 additions and 379 deletions
			
			
		@ -1,273 +1,108 @@
				@@ -1,273 +1,108 @@
					 | 
				
			||||
package engine.gameManager; | 
				
			||||
 | 
				
			||||
import engine.Enum; | 
				
			||||
import engine.objects.*; | 
				
			||||
 | 
				
			||||
public class ZergManager { | 
				
			||||
    public static float getMultiplier5Man(int count, PlayerCharacter pc){ | 
				
			||||
 | 
				
			||||
    public static float getMultiplier3Man(int count){ | 
				
			||||
        float multiplier = 1.0f; | 
				
			||||
 | 
				
			||||
        if(count <= 3) | 
				
			||||
            return 1.0f; | 
				
			||||
 | 
				
			||||
        if(count > 6) | 
				
			||||
            return 0.2f; | 
				
			||||
 | 
				
			||||
        switch(count){ | 
				
			||||
            case 1: | 
				
			||||
                multiplier += 0.80f; | 
				
			||||
                break; | 
				
			||||
            case 2: | 
				
			||||
                multiplier += 0.80f; | 
				
			||||
                break; | 
				
			||||
            case 3: | 
				
			||||
                multiplier += 0.50f; | 
				
			||||
                break; | 
				
			||||
            case 4: | 
				
			||||
                multiplier += 0.20f; | 
				
			||||
                multiplier -= 0.37f; | 
				
			||||
                break; | 
				
			||||
            case 5: | 
				
			||||
                multiplier += 0.0f; | 
				
			||||
                break; | 
				
			||||
            case 6: | 
				
			||||
                multiplier -= 0.20f; | 
				
			||||
                break; | 
				
			||||
            case 7: | 
				
			||||
                multiplier -= 0.40f; | 
				
			||||
                break; | 
				
			||||
            case 8: | 
				
			||||
                multiplier -= 0.60f; | 
				
			||||
                break; | 
				
			||||
            default: | 
				
			||||
                multiplier -= 0.80f; | 
				
			||||
            case 6: | 
				
			||||
                multiplier -= 0.75f; | 
				
			||||
                break; | 
				
			||||
        } | 
				
			||||
        if(multiplier == 0.0f) | 
				
			||||
            return 1.0f; | 
				
			||||
        else | 
				
			||||
            return multiplier; | 
				
			||||
        return multiplier; | 
				
			||||
    } | 
				
			||||
    public static float getMultiplier10Man(int count, PlayerCharacter pc){ | 
				
			||||
 | 
				
			||||
    public static float getMultiplier5Man(int count){ | 
				
			||||
        float multiplier = 1.0f; | 
				
			||||
        if(count <=4) | 
				
			||||
            return 0.0f; | 
				
			||||
 | 
				
			||||
        if(count <= 5) | 
				
			||||
            return 1.0f; | 
				
			||||
 | 
				
			||||
        if(count > 10) | 
				
			||||
            return 0.2f; | 
				
			||||
 | 
				
			||||
        switch(count){ | 
				
			||||
            case 5: | 
				
			||||
                multiplier += 0.5f; | 
				
			||||
                break; | 
				
			||||
            case 6: | 
				
			||||
                multiplier += 0.4f; | 
				
			||||
                multiplier -= 0.25f; | 
				
			||||
                break; | 
				
			||||
            case 7: | 
				
			||||
                multiplier += 0.3f; | 
				
			||||
                multiplier -= 0.43f; | 
				
			||||
                break; | 
				
			||||
            case 8: | 
				
			||||
                multiplier += 0.2f; | 
				
			||||
                multiplier -= 0.56f; | 
				
			||||
                break; | 
				
			||||
            case 9: | 
				
			||||
                multiplier += 0.1f; | 
				
			||||
                multiplier -= 0.67f; | 
				
			||||
                break; | 
				
			||||
            case 10: | 
				
			||||
                multiplier += 0.0f; | 
				
			||||
                multiplier -= 0.75f; | 
				
			||||
                break; | 
				
			||||
        } | 
				
			||||
        return multiplier; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public static float getMultiplier10Man(int count){ | 
				
			||||
        float multiplier = 1.0f; | 
				
			||||
 | 
				
			||||
        if(count <= 10) | 
				
			||||
            return 1.0f; | 
				
			||||
 | 
				
			||||
        if(count > 20) | 
				
			||||
            return 0.2f; | 
				
			||||
 | 
				
			||||
        switch(count){ | 
				
			||||
            case 11: | 
				
			||||
                multiplier -= 0.1f; | 
				
			||||
                multiplier -= 0.14f; | 
				
			||||
                break; | 
				
			||||
            case 12: | 
				
			||||
                multiplier -= 0.2f; | 
				
			||||
                multiplier -= 0.25f; | 
				
			||||
                break; | 
				
			||||
            case 13: | 
				
			||||
                multiplier -= 0.3f; | 
				
			||||
                multiplier -= 0.35f; | 
				
			||||
                break; | 
				
			||||
            case 14: | 
				
			||||
                multiplier -= 0.4f; | 
				
			||||
                multiplier -= 0.43f; | 
				
			||||
                break; | 
				
			||||
            case 15: | 
				
			||||
                multiplier -= 0.5f; | 
				
			||||
                multiplier -= 0.50f; | 
				
			||||
                break; | 
				
			||||
            case 16: | 
				
			||||
                multiplier -= 0.65f; | 
				
			||||
                multiplier -= 0.56f; | 
				
			||||
                break; | 
				
			||||
            case 17: | 
				
			||||
                multiplier -= 0.75f; | 
				
			||||
                multiplier -= 0.62f; | 
				
			||||
                break; | 
				
			||||
            case 18: | 
				
			||||
                multiplier -= 0.85f; | 
				
			||||
                multiplier -= 0.67f; | 
				
			||||
                break; | 
				
			||||
            default: | 
				
			||||
                multiplier -= 1.0f; | 
				
			||||
            case 19: | 
				
			||||
                multiplier -= 0.71f; | 
				
			||||
                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; | 
				
			||||
            case 20: | 
				
			||||
                multiplier -= 0.75f; | 
				
			||||
                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; | 
				
			||||
        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; | 
				
			||||
    public static float getMultiplier20Man(int count){ | 
				
			||||
        return getMultiplier10Man(((int)(count * 0.5f))); | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    public static float getReducedZergMultiplier(AbstractCharacter sourceABS, AbstractCharacter targetABS){ | 
				
			||||
        if(sourceABS.getObjectType().equals(Enum.GameObjectType.PlayerCharacter) == false || targetABS.getObjectType().equals(Enum.GameObjectType.PlayerCharacter) == false) | 
				
			||||
            return 1.0f; | 
				
			||||
 | 
				
			||||
        PlayerCharacter source = (PlayerCharacter) sourceABS; | 
				
			||||
        PlayerCharacter target = (PlayerCharacter) targetABS; | 
				
			||||
 | 
				
			||||
        if(source.ZergMultiplier == 0.0f) { | 
				
			||||
            if(Mine.getMine(source.mineAppliedID) != null && Mine.getMine(source.mineAppliedID)._playerMemory.contains(source.getObjectUUID()) == false ){ | 
				
			||||
                source.ZergMultiplier = 1.0f; | 
				
			||||
            } | 
				
			||||
        } | 
				
			||||
        if(target.ZergMultiplier == 0.0f) { | 
				
			||||
            if(Mine.getMine(target.mineAppliedID) != null && Mine.getMine(target.mineAppliedID)._playerMemory.contains(target.getObjectUUID()) == false){ | 
				
			||||
                target.ZergMultiplier = 1.0f; | 
				
			||||
            } | 
				
			||||
        } | 
				
			||||
        if(source.ZergMultiplier == target.ZergMultiplier){ | 
				
			||||
            return 1.0f; | 
				
			||||
        } | 
				
			||||
        float returnMultiplier = 1.0f; | 
				
			||||
        if(source.ZergMultiplier > 0 && target.ZergMultiplier > 0){ | 
				
			||||
            if(source.ZergMultiplier > target.ZergMultiplier) { | 
				
			||||
                returnMultiplier =  1 + (source.ZergMultiplier - target.ZergMultiplier); | 
				
			||||
            } else{ | 
				
			||||
                returnMultiplier =  1.0f; | 
				
			||||
            } | 
				
			||||
        }else if(source.ZergMultiplier < 0 && target.ZergMultiplier > 0){ | 
				
			||||
            returnMultiplier =  source.ZergMultiplier; | 
				
			||||
        } else if(source.ZergMultiplier < 0 && target.ZergMultiplier < 0){ | 
				
			||||
            returnMultiplier =  source.ZergMultiplier; | 
				
			||||
        } else if(source.ZergMultiplier > 0 && target.ZergMultiplier < 0){ | 
				
			||||
            returnMultiplier =  source.ZergMultiplier; | 
				
			||||
        } | 
				
			||||
        if(returnMultiplier == 0.0f) | 
				
			||||
            return 1.0f; | 
				
			||||
        else{ | 
				
			||||
            return returnMultiplier; | 
				
			||||
        } | 
				
			||||
    public static float getMultiplier40Man(int count){ | 
				
			||||
        return getMultiplier10Man(((int)(count * 0.25f))); | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
				 
					 | 
				
			||||
					Loading…
					
					
				
		Reference in new issue