|
|
|
@ -7,10 +7,12 @@ import engine.net.DispatchMessage;
@@ -7,10 +7,12 @@ import engine.net.DispatchMessage;
|
|
|
|
|
import engine.net.client.msg.HotzoneChangeMsg; |
|
|
|
|
import engine.net.client.msg.chat.ChatSystemMsg; |
|
|
|
|
import engine.objects.*; |
|
|
|
|
import engine.server.MBServerStatics; |
|
|
|
|
import org.pmw.tinylog.Logger; |
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.HashMap; |
|
|
|
|
import java.util.HashSet; |
|
|
|
|
import java.util.Random; |
|
|
|
|
import java.util.concurrent.ThreadLocalRandom; |
|
|
|
|
|
|
|
|
@ -169,8 +171,33 @@ public class HotzoneManager {
@@ -169,8 +171,33 @@ public class HotzoneManager {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public static void pulse(){ |
|
|
|
|
if(HotzoneManager.playersPresent == null){ |
|
|
|
|
if(HotzoneManager.playersPresent == null) |
|
|
|
|
HotzoneManager.playersPresent = new HashMap<>(); |
|
|
|
|
|
|
|
|
|
if(ZoneManager.hotZone == null) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
HashSet<AbstractWorldObject> inRange = WorldGrid.getObjectsInRangePartial(ZoneManager.hotZone.getLoc(),ZoneManager.hotZone.getBounds().getHalfExtents().x * 2, MBServerStatics.MASK_PLAYER); |
|
|
|
|
for(AbstractWorldObject awo : inRange){ |
|
|
|
|
PlayerCharacter pc = (PlayerCharacter)awo; |
|
|
|
|
Guild nation = pc.guild.getNation(); |
|
|
|
|
if(HotzoneManager.playersPresent.containsKey(nation)){ |
|
|
|
|
//nation already here, add to list
|
|
|
|
|
if(HotzoneManager.playersPresent.get(nation).contains(pc)){ |
|
|
|
|
if(HotzoneManager.playersPresent.get(nation).size() >= 5){ |
|
|
|
|
//more than 5, boot player out
|
|
|
|
|
pc.setLoc(pc.bindLoc); |
|
|
|
|
pc.teleport(pc.bindLoc); |
|
|
|
|
}else { |
|
|
|
|
//less than 5, allow player in
|
|
|
|
|
HotzoneManager.playersPresent.get(nation).add(pc); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
ArrayList<PlayerCharacter> newList = new ArrayList<>(); |
|
|
|
|
newList.add(pc); |
|
|
|
|
HotzoneManager.playersPresent.put(nation,newList); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|