Arena System

This commit is contained in:
2025-01-01 19:18:31 -06:00
parent 85514987e7
commit 2ac3ce5bc8
4 changed files with 49 additions and 21 deletions
+8
View File
@@ -2,6 +2,7 @@ package engine.objects;
import engine.InterestManagement.WorldGrid;
import engine.gameManager.ArenaManager;
import engine.gameManager.ChatManager;
import engine.gameManager.MovementManager;
import engine.math.Vector3fImmutable;
import engine.server.MBServerStatics;
@@ -19,7 +20,14 @@ public class Arena {
}
public Boolean disqualify() {
HashSet<AbstractWorldObject> inRange = WorldGrid.getObjectsInRangePartial(this.loc, 250f, MBServerStatics.MASK_PLAYER);
HashSet<AbstractWorldObject> warningRange = WorldGrid.getObjectsInRangePartial(this.loc, 500f, MBServerStatics.MASK_PLAYER);
for(AbstractWorldObject obj : warningRange){
PlayerCharacter pc = (PlayerCharacter)obj;
if(pc.equals(this.player1) || pc.equals(this.player2))
continue;
ChatManager.chatSystemInfo(pc, "WARNING!! You are entering an arena zone!");
}
//boot out all non competitors
for(AbstractWorldObject obj : inRange){
if(obj.equals(this.player1))
+19 -11
View File
@@ -202,23 +202,31 @@ public class Contract extends AbstractGameObject {
vd.getOptions().clear();
switch(optionId){
default:
MenuOption option1 = new MenuOption(15020431, "Join Arena Que", 15020431);
vd.getOptions().add(option1);
MenuOption option2 = new MenuOption(15020432, "Leave Arena Que", 15020432);
vd.getOptions().add(option2);
break;
case 15020431:
ArenaManager.joinQueue(pc);
ChatManager.chatSystemInfo(pc, "You Have Joined The Arena Que");
if(pc.isBoxed){
ChatManager.chatSystemInfo(pc, "You Cannot Join The Que, You Are Boxed");
}else {
if (ArenaManager.playerQueue.contains(pc)) {
ChatManager.chatSystemInfo(pc, "You Are Already In The Arena Que");
} else {
ArenaManager.joinQueue(pc);
ChatManager.chatSystemInfo(pc, "You Have Joined The Arena Que");
}
}
break;
case 15020432:
if(ArenaManager.playerQueue.contains(pc))
if(ArenaManager.playerQueue.contains(pc)) {
ArenaManager.leaveQueue(pc);
ChatManager.chatSystemInfo(pc, "You Have Left The Arena Que");
ChatManager.chatSystemInfo(pc, "You Have Left The Arena Que");
}else{
ChatManager.chatSystemInfo(pc, "You Are Not In The Arena Que");
}
break;
}
MenuOption option1 = new MenuOption(15020431, "Join Arena Que", 15020431);
vd.getOptions().add(option1);
MenuOption option2 = new MenuOption(15020432, "Leave Arena Que", 15020432);
vd.getOptions().add(option2);
return vd;
}
public static VendorDialog HandleEnrollmentOfficer(int optionId, NPC npc, PlayerCharacter pc){