bane zerg mechanics enabled
This commit is contained in:
@@ -204,6 +204,12 @@ public enum SimulationManager {
|
|||||||
if(mine != null && mine.isActive)
|
if(mine != null && mine.isActive)
|
||||||
mine.onEnter();
|
mine.onEnter();
|
||||||
}
|
}
|
||||||
|
for(int baneId : Bane.banes.keySet()){
|
||||||
|
Bane bane = Bane.banes.get(baneId);
|
||||||
|
if(bane.getSiegePhase().equals(Enum.SiegePhase.WAR)){
|
||||||
|
bane.applyZergBuffs();
|
||||||
|
}
|
||||||
|
}
|
||||||
_cityPulseTime = System.currentTimeMillis() + CITY_PULSE;
|
_cityPulseTime = System.currentTimeMillis() + CITY_PULSE;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -683,4 +683,41 @@ public final class Bane {
|
|||||||
return cityUUID;
|
return cityUUID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void applyZergBuffs(){
|
||||||
|
City city = this.getCity();
|
||||||
|
if(city == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
ArrayList<Integer> attackers = new ArrayList<>();
|
||||||
|
ArrayList<Integer> defenders = new ArrayList<>();
|
||||||
|
ArrayList<Integer> crashers = new ArrayList<>();
|
||||||
|
for(int uuid : city.baneAttendees.keySet()){
|
||||||
|
PlayerCharacter player = PlayerCharacter.getPlayerCharacter(uuid);
|
||||||
|
if(player == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
//separate the players into categories
|
||||||
|
if(player.guild.getNation().equals(city.getGuild().getNation()))
|
||||||
|
defenders.add(uuid);
|
||||||
|
else if(player.guild.getNation().equals(this.getOwner().getGuild().getNation()))
|
||||||
|
attackers.add(uuid);
|
||||||
|
else
|
||||||
|
player.teleport(player.bindLoc);
|
||||||
|
}
|
||||||
|
|
||||||
|
//apply zerg mechanic for attackers
|
||||||
|
float attackerMultiplier = ZergManager.getCurrentMultiplier(attackers.size(),this.capSize);
|
||||||
|
float defenderMultiplier = ZergManager.getCurrentMultiplier(defenders.size(),this.capSize);
|
||||||
|
for(int uuid : attackers){
|
||||||
|
if(city._playerMemory.contains(uuid)) //player is still physically here, needs updated multiplier
|
||||||
|
PlayerCharacter.getPlayerCharacter(uuid).ZergMultiplier = attackerMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
for(int uuid : defenders){
|
||||||
|
if(city._playerMemory.contains(uuid)) //player is still physically here, needs updated multiplier
|
||||||
|
PlayerCharacter.getPlayerCharacter(uuid).ZergMultiplier = defenderMultiplier;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1055,7 +1055,6 @@ public class City extends AbstractWorldObject {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Logger.error(e.getMessage());
|
Logger.error(e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onExitBane(){
|
private void onExitBane(){
|
||||||
|
|||||||
Reference in New Issue
Block a user