|
|
@ -11,22 +11,22 @@ package engine.powers.poweractions; |
|
|
|
|
|
|
|
|
|
|
|
import engine.Enum.GameObjectType; |
|
|
|
import engine.Enum.GameObjectType; |
|
|
|
import engine.InterestManagement.WorldGrid; |
|
|
|
import engine.InterestManagement.WorldGrid; |
|
|
|
|
|
|
|
import engine.gameManager.DbManager; |
|
|
|
import engine.gameManager.MovementManager; |
|
|
|
import engine.gameManager.MovementManager; |
|
|
|
|
|
|
|
import engine.gameManager.ZoneManager; |
|
|
|
import engine.math.Vector3fImmutable; |
|
|
|
import engine.math.Vector3fImmutable; |
|
|
|
import engine.net.Dispatch; |
|
|
|
import engine.net.Dispatch; |
|
|
|
import engine.net.DispatchMessage; |
|
|
|
import engine.net.DispatchMessage; |
|
|
|
import engine.net.client.ClientConnection; |
|
|
|
import engine.net.client.ClientConnection; |
|
|
|
import engine.net.client.msg.PromptRecallMsg; |
|
|
|
import engine.net.client.msg.PromptRecallMsg; |
|
|
|
import engine.objects.AbstractCharacter; |
|
|
|
import engine.objects.*; |
|
|
|
import engine.objects.AbstractWorldObject; |
|
|
|
|
|
|
|
import engine.objects.Mob; |
|
|
|
|
|
|
|
import engine.objects.PlayerCharacter; |
|
|
|
|
|
|
|
import engine.powers.ActionsBase; |
|
|
|
import engine.powers.ActionsBase; |
|
|
|
import engine.powers.PowersBase; |
|
|
|
import engine.powers.PowersBase; |
|
|
|
import engine.server.MBServerStatics; |
|
|
|
import engine.server.MBServerStatics; |
|
|
|
|
|
|
|
|
|
|
|
import java.sql.ResultSet; |
|
|
|
import java.sql.ResultSet; |
|
|
|
import java.sql.SQLException; |
|
|
|
import java.sql.SQLException; |
|
|
|
|
|
|
|
import java.util.concurrent.ThreadLocalRandom; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class RecallPowerAction extends AbstractPowerAction { |
|
|
|
public class RecallPowerAction extends AbstractPowerAction { |
|
|
@ -48,8 +48,6 @@ public class RecallPowerAction extends AbstractPowerAction { |
|
|
|
if (pc.hasBoon()) |
|
|
|
if (pc.hasBoon()) |
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
ClientConnection cc = pc.getClientConnection(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (source.getObjectUUID() != pc.getObjectUUID()) { |
|
|
|
if (source.getObjectUUID() != pc.getObjectUUID()) { |
|
|
|
pc.setTimeStampNow("PromptRecall"); |
|
|
|
pc.setTimeStampNow("PromptRecall"); |
|
|
|
pc.setTimeStamp("LastRecallType", 1); //recall to bind
|
|
|
|
pc.setTimeStamp("LastRecallType", 1); //recall to bind
|
|
|
@ -57,9 +55,30 @@ public class RecallPowerAction extends AbstractPowerAction { |
|
|
|
Dispatch dispatch = Dispatch.borrow(pc, promptRecallMsgmsg); |
|
|
|
Dispatch dispatch = Dispatch.borrow(pc, promptRecallMsgmsg); |
|
|
|
DispatchMessage.dispatchMsgDispatch(dispatch, engine.Enum.DispatchChannel.SECONDARY); |
|
|
|
DispatchMessage.dispatchMsgDispatch(dispatch, engine.Enum.DispatchChannel.SECONDARY); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
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 { |
|
|
|
} else { |
|
|
|
MovementManager.translocate(awoac, awoac.getBindLoc(), null); |
|
|
|
MovementManager.translocate(awoac, awoac.getBindLoc(), null); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
Vector3fImmutable bindloc = awoac.getBindLoc(); |
|
|
|
Vector3fImmutable bindloc = awoac.getBindLoc(); |
|
|
|
if (bindloc.x == 0.0f || bindloc.y == 0.0f) |
|
|
|
if (bindloc.x == 0.0f || bindloc.y == 0.0f) |
|
|
|