forked from MagicBane/Server
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.8 KiB
54 lines
1.8 KiB
package engine.gameManager; |
|
|
|
import engine.objects.Guild; |
|
|
|
public class ZergManager { |
|
|
|
public static int getBaneCap(Guild guild) { |
|
int cityRank = guild.getOwnedCity().getTOL().getRank(); |
|
return (cityRank == 8) ? 20 : ((guild.getNation().getSubGuildList().size() + 1 <= 4) ? 10 : 20); |
|
} |
|
|
|
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); |
|
default: |
|
return getMultiplier40Man(count); |
|
} |
|
} |
|
public static float getMultiplier(int count, int maxCount, float[] thresholds) { |
|
if (count <= maxCount) return 1.0f; |
|
if (count > thresholds.length) return 0.0f; |
|
return 1.0f - thresholds[count - maxCount - 1]; |
|
} |
|
|
|
public static float getMultiplier3Man(int count) { |
|
float[] thresholds = {0.37f, 0.60f, 0.75f}; |
|
return getMultiplier(count, 3, thresholds); |
|
} |
|
|
|
public static float getMultiplier5Man(int count) { |
|
float[] thresholds = {0.25f, 0.43f, 0.56f, 0.67f, 0.75f}; |
|
return getMultiplier(count, 5, thresholds); |
|
} |
|
|
|
public static float getMultiplier10Man(int count) { |
|
float[] thresholds = {0.14f, 0.25f, 0.35f, 0.43f, 0.50f, 0.56f, 0.62f, 0.67f, 0.71f, 0.75f}; |
|
return getMultiplier(count, 10, thresholds); |
|
} |
|
|
|
public static float getMultiplier20Man(int count) { |
|
return getMultiplier10Man(count * 2); |
|
} |
|
|
|
public static float getMultiplier40Man(int count) { |
|
return getMultiplier10Man(count * 4); |
|
} |
|
} |