@ -9,14 +9,14 @@
@@ -9,14 +9,14 @@
package engine.net.client.handlers ;
import engine.Enum ;
import engine.exception.MsgSendException ;
import engine.gameManager.BuildingManager ;
import engine.gameManager.MovementManager ;
import engine.net.client.ClientConnection ;
import engine.net.client.msg.ClientNetMsg ;
import engine.net.client.msg.MoveToPointMsg ;
import engine.objects.AbstractWorldObject ;
import engine.objects.Building ;
import engine.objects.PlayerCharacter ;
import engine.objects.* ;
public class MoveToPointHandler extends AbstractClientMsgHandler {
@ -32,22 +32,24 @@ public class MoveToPointHandler extends AbstractClientMsgHandler {
@@ -32,22 +32,24 @@ public class MoveToPointHandler extends AbstractClientMsgHandler {
PlayerCharacter pc = ( origin ! = null ) ? ( origin . getPlayerCharacter ( ) ) : null ;
if ( pc = = null )
return false ;
PlayerCharacter player = origin . getPlayerCharacter ( ) ;
if ( player = = null )
return false ;
AbstractWorldObject target = player . combatTarget ;
AbstractWorldObject target ;
Enum . GameObjectType targetType ;
if ( target ! = null ) {
switch ( target . getObjectType ( ) ) {
case NPC :
return false ;
targetType = Enum . GameObjectType . values ( ) [ msg . getTargetType ( ) ] ;
switch ( targetType ) {
case Building :
target = BuildingManager . getBuilding ( msg . getTargetID ( ) ) ;
if ( target = = null )
return true ; // early exit for no building pulled
Building targetBuilding = ( Building ) target ;
if ( ! targetBuilding . isVulnerable ( ) | | targetBuilding . getRank ( ) < 0 )
return false ;
}
return true ; // cannot attack destroyed building or protected building
break ;
case NPC :
return true ; //cannot attack anything other than the 3 above
}
MovementManager . movement ( msg , pc ) ;
return true ;
}