Files
Server/src/engine/gameManager/ZergManager.java
T

274 lines
8.3 KiB
Java
Raw Normal View History

2024-02-17 19:40:26 -06:00
package engine.gameManager;
2024-03-02 14:54:17 -06:00
import engine.Enum;
import engine.objects.*;
2024-02-23 20:36:19 -06:00
2024-02-17 19:40:26 -06:00
public class ZergManager {
2024-02-29 19:11:35 -06:00
public static float getMultiplier5Man(int count, PlayerCharacter pc){
2024-02-17 19:40:26 -06:00
float multiplier = 1.0f;
switch(count){
case 1:
2024-03-01 19:39:03 -06:00
multiplier += 0.80f;
break;
2024-02-17 19:40:26 -06:00
case 2:
2024-03-01 19:39:03 -06:00
multiplier += 0.80f;
2024-02-17 19:40:26 -06:00
break;
case 3:
2024-03-01 19:39:03 -06:00
multiplier += 0.50f;
2024-02-17 19:40:26 -06:00
break;
case 4:
2024-03-01 19:39:03 -06:00
multiplier += 0.20f;
break;
case 5:
multiplier += 0.0f;
2024-02-17 19:40:26 -06:00
break;
case 6:
2024-03-01 19:39:03 -06:00
multiplier -= 0.20f;
2024-02-17 19:40:26 -06:00
break;
case 7:
2024-03-01 19:39:03 -06:00
multiplier -= 0.40f;
2024-02-17 19:40:26 -06:00
break;
case 8:
2024-03-01 19:39:03 -06:00
multiplier -= 0.60f;
2024-02-17 19:40:26 -06:00
break;
default:
2024-03-01 19:39:03 -06:00
multiplier -= 0.80f;
2024-02-17 19:40:26 -06:00
break;
}
2024-02-29 19:11:35 -06:00
if(multiplier == 0.0f)
return 1.0f;
else
return multiplier;
2024-02-17 19:40:26 -06:00
}
2024-02-29 19:11:35 -06:00
public static float getMultiplier10Man(int count, PlayerCharacter pc){
2024-02-17 19:40:26 -06:00
float multiplier = 1.0f;
2024-02-18 20:25:11 -06:00
if(count <=4)
return 0.0f;
2024-02-17 19:40:26 -06:00
switch(count){
case 5:
2024-02-18 20:25:11 -06:00
multiplier += 0.5f;
2024-02-17 19:40:26 -06:00
break;
case 6:
2024-02-18 20:25:11 -06:00
multiplier += 0.4f;
2024-02-17 19:40:26 -06:00
break;
case 7:
2024-02-18 20:25:11 -06:00
multiplier += 0.3f;
2024-02-17 19:40:26 -06:00
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:
2024-02-18 20:25:11 -06:00
multiplier -= 0.3f;
2024-02-17 19:40:26 -06:00
break;
case 14:
2024-02-18 20:25:11 -06:00
multiplier -= 0.4f;
2024-02-17 19:40:26 -06:00
break;
2024-02-18 20:25:11 -06:00
case 15:
multiplier -= 0.5f;
break;
case 16:
multiplier -= 0.65f;
break;
case 17:
2024-02-17 19:40:26 -06:00
multiplier -= 0.75f;
break;
2024-02-18 20:25:11 -06:00
case 18:
multiplier -= 0.85f;
break;
default:
multiplier -= 1.0f;
break;
2024-02-17 19:40:26 -06:00
}
2024-02-29 19:11:35 -06:00
ChatManager.chatSystemInfo(pc,"Zerg Multiplier Set: " + multiplier);
if(multiplier == 0.0f)
return 1.0f;
else
return multiplier;
2024-02-17 19:40:26 -06:00
}
2024-02-29 19:11:35 -06:00
public static float getMultiplier20Man(int count, PlayerCharacter pc){
2024-02-17 19:40:26 -06:00
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;
}
}
2024-02-29 19:11:35 -06:00
ChatManager.chatSystemInfo(pc,"Zerg Multiplier Set: " + multiplier);
if(multiplier == 0.0f)
return 1.0f;
else
return multiplier;
2024-02-17 19:40:26 -06:00
}
2024-02-23 20:47:46 -06:00
public static int getBaneCapSize(Guild defender){
2024-02-23 20:36:19 -06:00
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;
}
2024-02-29 19:11:35 -06:00
public static float getMultiplier30Man(int count, PlayerCharacter pc){
2024-02-23 20:41:31 -06:00
float multiplier = 1.0f;
2024-02-29 19:11:35 -06:00
ChatManager.chatSystemInfo(pc,"Zerg Multiplier Set: " + multiplier);
if(multiplier == 0.0f)
return 1.0f;
else
return multiplier;
2024-02-23 20:41:31 -06:00
}
2024-02-29 19:11:35 -06:00
public static float getMultiplier40Man(int count, PlayerCharacter pc){
2024-02-23 20:41:31 -06:00
float multiplier = 1.0f;
2024-02-29 19:11:35 -06:00
ChatManager.chatSystemInfo(pc,"Zerg Multiplier Set: " + multiplier);
if(multiplier == 0.0f)
return 1.0f;
else
return multiplier;
2024-02-23 20:41:31 -06:00
}
2024-02-29 19:11:35 -06:00
public static float getMultiplierUnlimited(int count, PlayerCharacter pc){
2024-02-23 20:41:31 -06:00
float multiplier = 1.0f;
2024-02-29 19:11:35 -06:00
ChatManager.chatSystemInfo(pc,"Zerg Multiplier Set: " + multiplier);
if(multiplier == 0.0f)
return 1.0f;
else
return multiplier;
2024-02-23 20:41:31 -06:00
}
2024-03-01 19:15:27 -06:00
2024-03-02 14:54:17 -06:00
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;
2024-03-01 19:39:03 -06:00
if(source.ZergMultiplier == 0.0f) {
2024-03-01 19:41:34 -06:00
if(Mine.getMine(source.mineAppliedID) != null && Mine.getMine(source.mineAppliedID)._playerMemory.contains(source.getObjectUUID()) == false ){
2024-03-01 19:39:03 -06:00
source.ZergMultiplier = 1.0f;
}
}
if(target.ZergMultiplier == 0.0f) {
2024-03-01 19:41:34 -06:00
if(Mine.getMine(target.mineAppliedID) != null && Mine.getMine(target.mineAppliedID)._playerMemory.contains(target.getObjectUUID()) == false){
2024-03-01 19:39:03 -06:00
target.ZergMultiplier = 1.0f;
}
}
if(source.ZergMultiplier == target.ZergMultiplier){
return 1.0f;
}
2024-03-02 14:54:17 -06:00
float returnMultiplier = 1.0f;
2024-03-01 19:15:27 -06:00
if(source.ZergMultiplier > 0 && target.ZergMultiplier > 0){
if(source.ZergMultiplier > target.ZergMultiplier) {
2024-03-08 22:09:25 -06:00
returnMultiplier = 1 + (source.ZergMultiplier - target.ZergMultiplier);
2024-03-01 19:15:27 -06:00
} else{
2024-03-02 14:54:17 -06:00
returnMultiplier = 1.0f;
2024-03-01 19:15:27 -06:00
}
}else if(source.ZergMultiplier < 0 && target.ZergMultiplier > 0){
2024-03-02 14:54:17 -06:00
returnMultiplier = source.ZergMultiplier;
2024-03-01 19:15:27 -06:00
} else if(source.ZergMultiplier < 0 && target.ZergMultiplier < 0){
2024-03-02 14:54:17 -06:00
returnMultiplier = source.ZergMultiplier;
2024-03-01 19:15:27 -06:00
} else if(source.ZergMultiplier > 0 && target.ZergMultiplier < 0){
2024-03-02 14:54:17 -06:00
returnMultiplier = source.ZergMultiplier;
}
if(returnMultiplier == 0.0f)
return 1.0f;
else{
return returnMultiplier;
2024-03-01 19:15:27 -06:00
}
}
2024-02-17 19:40:26 -06:00
}