diff --git a/addons/escoria-core/game/core-scripts/esc/commands/teleport.gd b/addons/escoria-core/game/core-scripts/esc/commands/teleport.gd index 1f28018b..af276ea1 100644 --- a/addons/escoria-core/game/core-scripts/esc/commands/teleport.gd +++ b/addons/escoria-core/game/core-scripts/esc/commands/teleport.gd @@ -34,6 +34,15 @@ func validate(arguments: Array): % [get_command_name(), arguments[0]] ) return false + + if not (escoria.object_manager.get_object(arguments[0]).node as ESCItem): + escoria.logger.error( + self, + "[%s]: invalid first object. Object to teleport with global id %s must be of or derived from type ESCItem." + % [get_command_name(), arguments[0]] + ) + return false + if not escoria.object_manager.has(arguments[1]): escoria.logger.error( self, @@ -46,7 +55,7 @@ func validate(arguments: Array): # Run the command func run(command_params: Array) -> int: - (escoria.object_manager.get_object(command_params[0]).node as ESCPlayer)\ + (escoria.object_manager.get_object(command_params[0]).node as ESCItem) \ .teleport( escoria.object_manager.get_object(command_params[1]).node ) diff --git a/addons/escoria-core/game/core-scripts/esc/commands/teleport_pos.gd b/addons/escoria-core/game/core-scripts/esc/commands/teleport_pos.gd index 02976f64..e2a8bba5 100644 --- a/addons/escoria-core/game/core-scripts/esc/commands/teleport_pos.gd +++ b/addons/escoria-core/game/core-scripts/esc/commands/teleport_pos.gd @@ -34,13 +34,24 @@ func validate(arguments: Array): % [get_command_name(), arguments[0]] ) return false + + if not (escoria.object_manager.get_object(arguments[0]).node as ESCItem): + escoria.logger.error( + self, + "[%s]: invalid first object. Object to teleport with global id %s must be of or derived from type ESCItem." + % [get_command_name(), arguments[0]] + ) + return false + return true # Run the command func run(command_params: Array) -> int: - escoria.object_manager.get_object(command_params[0]).node.teleport_to( - Vector2(int(command_params[1]), int(command_params[2])) + (escoria.object_manager.get_object(command_params[0]).node as ESCItem) \ + .teleport_to( + Vector2(int(command_params[1]), int(command_params[2]) + ) ) return ESCExecution.RC_OK