@ -1,61 +1,52 @@
@@ -1,61 +1,52 @@
package engine.objects ;
import engine.Enum.RunegateType ;
import engine.gameManager.BuildingManager ;
import engine.Enum ;
import engine.Enum.PortalType ;
import engine.gameManager.DbManager ;
import engine.net.ByteBufferWriter ;
import java.util.ArrayList ;
import java.util.HashMap ;
/ * Runegates are tied to particular buildings at
* bootstrap . They aren ' t tighly coupled , with
* the Runegate merely toggling effect bits on it ' s
* parent building .
* bootstrap derived from the Portal creation .
* This is only to enable the toggling of effect
* bits when traveler is used .
* /
public class Runegate {
// Runegate class Instance variables
private static final Runegate [ ] _runegates = new Runegate [ 9 ] ;
public static HashMap < Integer , Runegate > _runegates = new HashMap < > ( ) ;
private final Portal [ ] _portals ;
private final RunegateType gateType ;
public Portal [ ] _portals ;
public Building gateBuilding ;
private Runegate ( RunegateType gateType ) {
private Runegate ( Building gateBuilding ) {
this . _portals = new Portal [ 8 ] ;
this . gateType = gateType ;
// Each Runegate has a different destination
// for each portal opened.
configureGatePortals ( ) ;
this . gateBuilding = gateBuilding ;
// Chaos, Khar and Oblivion are on by default
_portals [ Runegate Type. CHAOS . ordinal ( ) ] . activate ( false ) ;
_portals [ Runegate Type. OBLIV . ordinal ( ) ] . activate ( false ) ;
_portals [ Runegate Type. MERCHANT . ordinal ( ) ] . activate ( false ) ;
_portals [ Enum . PortalType . CHAOS . ordinal ( ) ] . activate ( false ) ;
_portals [ Enum . Portal Type. OBLIV . ordinal ( ) ] . activate ( false ) ;
_portals [ Enum . Portal Type. MERCHANT . ordinal ( ) ] . activate ( false ) ;
}
public void activatePortal ( RunegateType gate Type) {
public void activatePortal ( Enum . PortalType portal Type) {
this . _portals [ gate Type. ordinal ( ) ] . activate ( true ) ;
this . _portals [ portal Type. ordinal ( ) ] . activate ( true ) ;
}
public void deactivatePortal ( RunegateType gateType ) {
this . _portals [ gateType . ordinal ( ) ] . deactivate ( ) ;
public void deactivatePortal ( Enum . PortalType portalType ) {
}
this . _portals [ portalType . ordinal ( ) ] . deactivate ( ) ;
public RunegateType getGateType ( ) {
return this . gateType ;
}
public static Runegate [ ] getRunegates ( ) {
return Runegate . _runegates ;
}
public Portal [ ] getPortals ( ) {
@ -74,18 +65,22 @@ public class Runegate {
@@ -74,18 +65,22 @@ public class Runegate {
public static void loadAllRunegates ( ) {
for ( RunegateType runegateType : RunegateType . values ( ) ) {
_runegates [ runegateType . ordinal ( ) ] = new Runegate ( runegateType ) ;
ArrayList < Integer > gateList ;
gateList = DbManager . RunegateQueries . GET_RUNEGATE_LIST ( ) ;
for ( int gateID : gateList ) {
Building gateBuilding = ( Building ) DbManager . getObject ( Enum . GameObjectType . Building , gateID ) ;
Runegate runegate = new Runegate ( gateBuilding ) ;
_runegates . put ( gateID , runegate ) ;
}
}
public void _serializeForEnterWorld ( ByteBufferWriter writer ) {
Building gateBuilding ;
gateBuilding = BuildingManager . getBuilding ( this . gateType . getGateUUID ( ) ) ;
writer . putInt ( gateBuilding . getObjectType ( ) . ordinal ( ) ) ;
writer . putInt ( gateBuilding . getObjectUUID ( ) ) ;
writer . putString ( gateBuilding . getParentZone ( ) . getName ( ) ) ;
@ -94,114 +89,6 @@ public class Runegate {
@@ -94,114 +89,6 @@ public class Runegate {
writer . putFloat ( gateBuilding . getLoc ( ) . getLong ( ) ) ;
}
private void configureGatePortals ( ) {
// Source gate type, portal type and destination gate type;
switch ( this . gateType ) {
case EARTH :
_portals [ RunegateType . EARTH . ordinal ( ) ] = new Portal ( RunegateType . EARTH , RunegateType . EARTH , RunegateType . EARTH ) ;
_portals [ RunegateType . AIR . ordinal ( ) ] = new Portal ( RunegateType . EARTH , RunegateType . AIR , RunegateType . AIR ) ;
_portals [ RunegateType . FIRE . ordinal ( ) ] = new Portal ( RunegateType . EARTH , RunegateType . FIRE , RunegateType . FORBID ) ;
_portals [ RunegateType . WATER . ordinal ( ) ] = new Portal ( RunegateType . EARTH , RunegateType . WATER , RunegateType . WATER ) ;
_portals [ RunegateType . SPIRIT . ordinal ( ) ] = new Portal ( RunegateType . EARTH , RunegateType . SPIRIT , RunegateType . SPIRIT ) ;
_portals [ RunegateType . CHAOS . ordinal ( ) ] = new Portal ( RunegateType . EARTH , RunegateType . CHAOS , RunegateType . CHAOS ) ;
_portals [ RunegateType . OBLIV . ordinal ( ) ] = new Portal ( RunegateType . EARTH , RunegateType . OBLIV , RunegateType . OBLIV ) ;
_portals [ RunegateType . MERCHANT . ordinal ( ) ] = new Portal ( RunegateType . EARTH , RunegateType . MERCHANT , RunegateType . MERCHANT ) ;
break ;
case AIR :
_portals [ RunegateType . EARTH . ordinal ( ) ] = new Portal ( RunegateType . AIR , RunegateType . EARTH , RunegateType . EARTH ) ;
_portals [ RunegateType . AIR . ordinal ( ) ] = new Portal ( RunegateType . AIR , RunegateType . AIR , RunegateType . FORBID ) ;
_portals [ RunegateType . FIRE . ordinal ( ) ] = new Portal ( RunegateType . AIR , RunegateType . FIRE , RunegateType . FIRE ) ;
_portals [ RunegateType . WATER . ordinal ( ) ] = new Portal ( RunegateType . AIR , RunegateType . WATER , RunegateType . WATER ) ;
_portals [ RunegateType . SPIRIT . ordinal ( ) ] = new Portal ( RunegateType . AIR , RunegateType . SPIRIT , RunegateType . SPIRIT ) ;
_portals [ RunegateType . CHAOS . ordinal ( ) ] = new Portal ( RunegateType . AIR , RunegateType . CHAOS , RunegateType . CHAOS ) ;
_portals [ RunegateType . OBLIV . ordinal ( ) ] = new Portal ( RunegateType . AIR , RunegateType . OBLIV , RunegateType . OBLIV ) ;
_portals [ RunegateType . MERCHANT . ordinal ( ) ] = new Portal ( RunegateType . AIR , RunegateType . MERCHANT , RunegateType . MERCHANT ) ;
break ;
case FIRE :
_portals [ RunegateType . EARTH . ordinal ( ) ] = new Portal ( RunegateType . FIRE , RunegateType . EARTH , RunegateType . EARTH ) ;
_portals [ RunegateType . AIR . ordinal ( ) ] = new Portal ( RunegateType . FIRE , RunegateType . AIR , RunegateType . AIR ) ;
_portals [ RunegateType . FIRE . ordinal ( ) ] = new Portal ( RunegateType . FIRE , RunegateType . FIRE , RunegateType . FORBID ) ;
_portals [ RunegateType . WATER . ordinal ( ) ] = new Portal ( RunegateType . FIRE , RunegateType . WATER , RunegateType . WATER ) ;
_portals [ RunegateType . SPIRIT . ordinal ( ) ] = new Portal ( RunegateType . FIRE , RunegateType . SPIRIT , RunegateType . SPIRIT ) ;
_portals [ RunegateType . CHAOS . ordinal ( ) ] = new Portal ( RunegateType . FIRE , RunegateType . CHAOS , RunegateType . CHAOS ) ;
_portals [ RunegateType . OBLIV . ordinal ( ) ] = new Portal ( RunegateType . FIRE , RunegateType . OBLIV , RunegateType . OBLIV ) ;
_portals [ RunegateType . MERCHANT . ordinal ( ) ] = new Portal ( RunegateType . FIRE , RunegateType . MERCHANT , RunegateType . MERCHANT ) ;
break ;
case WATER :
_portals [ RunegateType . EARTH . ordinal ( ) ] = new Portal ( RunegateType . WATER , RunegateType . EARTH , RunegateType . EARTH ) ;
_portals [ RunegateType . AIR . ordinal ( ) ] = new Portal ( RunegateType . WATER , RunegateType . AIR , RunegateType . AIR ) ;
_portals [ RunegateType . FIRE . ordinal ( ) ] = new Portal ( RunegateType . WATER , RunegateType . FIRE , RunegateType . FIRE ) ;
_portals [ RunegateType . WATER . ordinal ( ) ] = new Portal ( RunegateType . WATER , RunegateType . WATER , RunegateType . FORBID ) ;
_portals [ RunegateType . SPIRIT . ordinal ( ) ] = new Portal ( RunegateType . WATER , RunegateType . SPIRIT , RunegateType . SPIRIT ) ;
_portals [ RunegateType . CHAOS . ordinal ( ) ] = new Portal ( RunegateType . WATER , RunegateType . CHAOS , RunegateType . CHAOS ) ;
_portals [ RunegateType . OBLIV . ordinal ( ) ] = new Portal ( RunegateType . WATER , RunegateType . OBLIV , RunegateType . OBLIV ) ;
_portals [ RunegateType . MERCHANT . ordinal ( ) ] = new Portal ( RunegateType . WATER , RunegateType . MERCHANT , RunegateType . MERCHANT ) ;
break ;
case SPIRIT :
_portals [ RunegateType . EARTH . ordinal ( ) ] = new Portal ( RunegateType . SPIRIT , RunegateType . EARTH , RunegateType . EARTH ) ;
_portals [ RunegateType . AIR . ordinal ( ) ] = new Portal ( RunegateType . SPIRIT , RunegateType . AIR , RunegateType . AIR ) ;
_portals [ RunegateType . FIRE . ordinal ( ) ] = new Portal ( RunegateType . SPIRIT , RunegateType . FIRE , RunegateType . FIRE ) ;
_portals [ RunegateType . WATER . ordinal ( ) ] = new Portal ( RunegateType . SPIRIT , RunegateType . WATER , RunegateType . WATER ) ;
_portals [ RunegateType . SPIRIT . ordinal ( ) ] = new Portal ( RunegateType . SPIRIT , RunegateType . SPIRIT , RunegateType . FORBID ) ;
_portals [ RunegateType . CHAOS . ordinal ( ) ] = new Portal ( RunegateType . SPIRIT , RunegateType . CHAOS , RunegateType . CHAOS ) ;
_portals [ RunegateType . OBLIV . ordinal ( ) ] = new Portal ( RunegateType . SPIRIT , RunegateType . OBLIV , RunegateType . OBLIV ) ;
_portals [ RunegateType . MERCHANT . ordinal ( ) ] = new Portal ( RunegateType . SPIRIT , RunegateType . MERCHANT , RunegateType . MERCHANT ) ;
break ;
case CHAOS :
_portals [ RunegateType . EARTH . ordinal ( ) ] = new Portal ( RunegateType . CHAOS , RunegateType . EARTH , RunegateType . EARTH ) ;
_portals [ RunegateType . AIR . ordinal ( ) ] = new Portal ( RunegateType . CHAOS , RunegateType . AIR , RunegateType . AIR ) ;
_portals [ RunegateType . FIRE . ordinal ( ) ] = new Portal ( RunegateType . CHAOS , RunegateType . FIRE , RunegateType . FIRE ) ;
_portals [ RunegateType . WATER . ordinal ( ) ] = new Portal ( RunegateType . CHAOS , RunegateType . WATER , RunegateType . WATER ) ;
_portals [ RunegateType . SPIRIT . ordinal ( ) ] = new Portal ( RunegateType . CHAOS , RunegateType . SPIRIT , RunegateType . SPIRIT ) ;
_portals [ RunegateType . CHAOS . ordinal ( ) ] = new Portal ( RunegateType . CHAOS , RunegateType . CHAOS , RunegateType . MERCHANT ) ;
_portals [ RunegateType . OBLIV . ordinal ( ) ] = new Portal ( RunegateType . CHAOS , RunegateType . OBLIV , RunegateType . OBLIV ) ;
_portals [ RunegateType . MERCHANT . ordinal ( ) ] = new Portal ( RunegateType . CHAOS , RunegateType . MERCHANT , RunegateType . MERCHANT ) ;
break ;
case OBLIV :
_portals [ RunegateType . EARTH . ordinal ( ) ] = new Portal ( RunegateType . OBLIV , RunegateType . EARTH , RunegateType . EARTH ) ;
_portals [ RunegateType . AIR . ordinal ( ) ] = new Portal ( RunegateType . OBLIV , RunegateType . AIR , RunegateType . AIR ) ;
_portals [ RunegateType . FIRE . ordinal ( ) ] = new Portal ( RunegateType . OBLIV , RunegateType . FIRE , RunegateType . FIRE ) ;
_portals [ RunegateType . WATER . ordinal ( ) ] = new Portal ( RunegateType . OBLIV , RunegateType . WATER , RunegateType . WATER ) ;
_portals [ RunegateType . SPIRIT . ordinal ( ) ] = new Portal ( RunegateType . OBLIV , RunegateType . SPIRIT , RunegateType . SPIRIT ) ;
_portals [ RunegateType . CHAOS . ordinal ( ) ] = new Portal ( RunegateType . OBLIV , RunegateType . CHAOS , RunegateType . CHAOS ) ;
_portals [ RunegateType . OBLIV . ordinal ( ) ] = new Portal ( RunegateType . OBLIV , RunegateType . OBLIV , RunegateType . MERCHANT ) ;
_portals [ RunegateType . MERCHANT . ordinal ( ) ] = new Portal ( RunegateType . OBLIV , RunegateType . MERCHANT , RunegateType . MERCHANT ) ;
break ;
case MERCHANT :
_portals [ RunegateType . EARTH . ordinal ( ) ] = new Portal ( RunegateType . MERCHANT , RunegateType . EARTH , RunegateType . EARTH ) ;
_portals [ RunegateType . AIR . ordinal ( ) ] = new Portal ( RunegateType . MERCHANT , RunegateType . AIR , RunegateType . AIR ) ;
_portals [ RunegateType . FIRE . ordinal ( ) ] = new Portal ( RunegateType . MERCHANT , RunegateType . FIRE , RunegateType . FIRE ) ;
_portals [ RunegateType . WATER . ordinal ( ) ] = new Portal ( RunegateType . MERCHANT , RunegateType . WATER , RunegateType . WATER ) ;
_portals [ RunegateType . SPIRIT . ordinal ( ) ] = new Portal ( RunegateType . MERCHANT , RunegateType . SPIRIT , RunegateType . SPIRIT ) ;
_portals [ RunegateType . CHAOS . ordinal ( ) ] = new Portal ( RunegateType . MERCHANT , RunegateType . CHAOS , RunegateType . CHAOS ) ;
_portals [ RunegateType . OBLIV . ordinal ( ) ] = new Portal ( RunegateType . MERCHANT , RunegateType . OBLIV , RunegateType . OBLIV ) ;
_portals [ RunegateType . MERCHANT . ordinal ( ) ] = new Portal ( RunegateType . MERCHANT , RunegateType . MERCHANT , RunegateType . FORBID ) ;
break ;
case FORBID :
_portals [ RunegateType . EARTH . ordinal ( ) ] = new Portal ( RunegateType . FORBID , RunegateType . EARTH , RunegateType . EARTH ) ;
_portals [ RunegateType . AIR . ordinal ( ) ] = new Portal ( RunegateType . FORBID , RunegateType . AIR , RunegateType . AIR ) ;
_portals [ RunegateType . FIRE . ordinal ( ) ] = new Portal ( RunegateType . FORBID , RunegateType . FIRE , RunegateType . FIRE ) ;
_portals [ RunegateType . WATER . ordinal ( ) ] = new Portal ( RunegateType . FORBID , RunegateType . WATER , RunegateType . WATER ) ;
_portals [ RunegateType . SPIRIT . ordinal ( ) ] = new Portal ( RunegateType . FORBID , RunegateType . SPIRIT , RunegateType . SPIRIT ) ;
_portals [ RunegateType . CHAOS . ordinal ( ) ] = new Portal ( RunegateType . FORBID , RunegateType . CHAOS , RunegateType . CHAOS ) ;
_portals [ RunegateType . OBLIV . ordinal ( ) ] = new Portal ( RunegateType . FORBID , RunegateType . OBLIV , RunegateType . OBLIV ) ;
_portals [ RunegateType . MERCHANT . ordinal ( ) ] = new Portal ( RunegateType . FORBID , RunegateType . MERCHANT , RunegateType . MERCHANT ) ;
break ;
}
}
public static ArrayList < String > GetAllOpenGateIDStrings ( ) {
ArrayList < String > openGateIDStrings = new ArrayList < > ( ) ;