Browse Source

use target from message in move to point

feature-workorder
FatBoy-DOTC 1 year ago
parent
commit
1ec76ae3fc
  1. 34
      src/engine/net/client/handlers/MoveToPointHandler.java

34
src/engine/net/client/handlers/MoveToPointHandler.java

@ -33,20 +33,48 @@ public class MoveToPointHandler extends AbstractClientMsgHandler {
if (pc == null) if (pc == null)
return false; return false;
AbstractWorldObject target = pc.combatTarget; AbstractWorldObject target;
Enum.GameObjectType targetType; Enum.GameObjectType targetType;
targetType = Enum.GameObjectType.values()[msg.getTargetType()];
switch(targetType){
case Mob:
target = Mob.getMob(msg.getTargetID());
break;
case PlayerCharacter:
target = PlayerCharacter.getPlayerCharacter(msg.getTargetID());
break;
case Building:
target = BuildingManager.getBuilding(msg.getTargetID());
break;
default:
target = null;
break;
}
if(target != null) { if(target != null) {
switch (target.getObjectType()) { switch (target.getObjectType()) {
case Building: case Building:
target = BuildingManager.getBuilding(msg.getTargetID()); target = BuildingManager.getBuilding(msg.getTargetID());
if (target == null) if (target == null) {
pc.teleport(pc.loc);
msg.setEndCoord(pc.loc);
origin.sendMsg(msg);
return true;// early exit for no building pulled return true;// early exit for no building pulled
}
Building targetBuilding = (Building) target; Building targetBuilding = (Building) target;
if (!targetBuilding.isVulnerable() || targetBuilding.getRank() < 0) if (!targetBuilding.isVulnerable() || targetBuilding.getRank() < 0) {
pc.teleport(pc.loc);
msg.setEndCoord(pc.loc);
origin.sendMsg(msg);
return true;// cannot attack destroyed building or protected building return true;// cannot attack destroyed building or protected building
}
break; break;
case NPC: case NPC:
pc.teleport(pc.loc);
msg.setEndCoord(pc.loc);
origin.sendMsg(msg);
return true;//cannot attack anything other than the 3 above return true;//cannot attack anything other than the 3 above
} }
} }

Loading…
Cancel
Save