@ -11,22 +11,22 @@ package engine.powers.poweractions;
@@ -11,22 +11,22 @@ package engine.powers.poweractions;
import engine.Enum.GameObjectType ;
import engine.InterestManagement.WorldGrid ;
import engine.gameManager.DbManager ;
import engine.gameManager.MovementManager ;
import engine.gameManager.ZoneManager ;
import engine.math.Vector3fImmutable ;
import engine.net.Dispatch ;
import engine.net.DispatchMessage ;
import engine.net.client.ClientConnection ;
import engine.net.client.msg.PromptRecallMsg ;
import engine.objects.AbstractCharacter ;
import engine.objects.AbstractWorldObject ;
import engine.objects.Mob ;
import engine.objects.PlayerCharacter ;
import engine.objects.* ;
import engine.powers.ActionsBase ;
import engine.powers.PowersBase ;
import engine.server.MBServerStatics ;
import java.sql.ResultSet ;
import java.sql.SQLException ;
import java.util.concurrent.ThreadLocalRandom ;
public class RecallPowerAction extends AbstractPowerAction {
@ -48,8 +48,6 @@ public class RecallPowerAction extends AbstractPowerAction {
@@ -48,8 +48,6 @@ public class RecallPowerAction extends AbstractPowerAction {
if ( pc . hasBoon ( ) )
return ;
ClientConnection cc = pc . getClientConnection ( ) ;
if ( source . getObjectUUID ( ) ! = pc . getObjectUUID ( ) ) {
pc . setTimeStampNow ( "PromptRecall" ) ;
pc . setTimeStamp ( "LastRecallType" , 1 ) ; //recall to bind
@ -58,7 +56,28 @@ public class RecallPowerAction extends AbstractPowerAction {
@@ -58,7 +56,28 @@ public class RecallPowerAction extends AbstractPowerAction {
DispatchMessage . dispatchMsgDispatch ( dispatch , engine . Enum . DispatchChannel . SECONDARY ) ;
} else {
MovementManager . translocate ( awoac , awoac . getBindLoc ( ) , null ) ;
if ( pc . guild . equals ( Guild . getErrantGuild ( ) ) | | pc . guild . getNation ( ) . equals ( Guild . getErrantGuild ( ) ) ) {
Vector3fImmutable loc ;
for ( AbstractGameObject cityAgo : DbManager . getList ( GameObjectType . City ) ) {
City city = ( City ) cityAgo ;
if ( city = = null )
continue ;
if ( ! city . getCityName ( ) . equalsIgnoreCase ( "sea dog's rest" ) )
continue ;
Zone zone = city . getParent ( ) ;
if ( zone ! = null ) {
if ( zone . isNPCCity ( ) | | zone . isPlayerCity ( ) )
loc = Vector3fImmutable . getRandomPointOnCircle ( zone . getLoc ( ) , MBServerStatics . TREE_TELEPORT_RADIUS ) ;
else
loc = zone . getLoc ( ) ;
MovementManager . translocate ( awoac , loc , null ) ;
break ;
}
}
} else {
MovementManager . translocate ( awoac , awoac . getBindLoc ( ) , null ) ;
}
}
} else {
Vector3fImmutable bindloc = awoac . getBindLoc ( ) ;