Herramientas de usuario

Herramientas del sitio


lista_de_metodos_invocables_de_habitacion_clase_room

Lista de métodos invocables de habitación (clase Room)

A continuación se muestra una lista alfabética de métodos que se pueden invocar sobre instancias de la clase Room, para servir como referencia.

Nota para quien mire el código fuente de AGE: si bien la clase Room tiene en realidad más métodos, los métodos que no se listen aquí deben considerarse métodos internos de AGE que no están pensados para que los llame el creador de aventuras. Esto quiere decir que no se deben usar, puesto que potencialmente podrían cambiar en versiones posteriores de AGE, ser eliminados, cambiar de nombre, etc. y por lo tanto los mundos que los utilicen podrían dejar de funcionar. Sólo se garantiza la compatibilidad hacia adelante de los métodos que aparecen descritos en la documentación.

public boolean addItem ( Item nuevo ) throws WeightLimitExceededException, VolumeLimitExceededException

Añade la cosa dada (nuevo) a esta habitación. Devuelve true si se ha añadido con éxito, y false de lo contrario (por ejemplo, si lo que le queremos añadir ya estaba dentro anteriormente).
Nótese que una cosa puede estar situada en más de una habitación a la vez. Este método añade una cosa a una habitación, pero no lo quita de las habitaciones donde ya pueda estar. Para hacer esto último, véase el método moveTo de la clase Item.

public boolean addMob ( Mobile nuevo ) throws WeightLimitExceededException, VolumeLimitExceededException

Añade la criatura dada (nuevo) a esta habitación. Devuelve true si se ha añadido con éxito, y false de lo contrario (por ejemplo, si lo que le queremos añadir ya estaba dentro anteriormente).

public boolean contains ( Item it )

Comprueba si esta habitación tiene la cosa it dentro, devolviendo true en ese caso, y false de lo contrario.

public boolean contains ( Mobile mob )

Comprueba si la criatura mob está en esta habitación, devolviendo true en ese caso, y false de lo contrario.

public Inventory getContents() ( )

Devuelve un objeto de la clase Inventory con el contenido de esta habitación. Dicho inventario se debe utilizar sólo para lectura, y no modificar su contenido, lo cual podría provocar errores o comportamientos no deseados. Para modificar el contenido de una habitación, se deben utilizar los métodos que se invocan directamente sobre la misma como addItem(), removeItem(); o bien el método de cosa moveTo(), por las razones detalladas en la sección sobre inventarios.

public String getDescription ( Entity viewer )

Devuelve la descripción de esta habitación para la entidad viewer. Dicha entidad puede ser referenciada en las condiciones de las descripciones, mediante el identificador viewer, que sirve para parametrizarlas para diferentes criaturas observadoras. Es posible pasar como parámetro null si se quiere una descripción genérica; pero esto sólo funcionará si las condiciones de descripción de la entidad no utilizan la variable especial viewer (o están preparadas para el caso de que viewer sea null).

public Path getExitMatchingArguments ( String arguments )

Devuelve la salida (Path) de esta habitación que responde al nombre (arguments) dado, es decir, la que el sistema entendería si un jugador que está en la habitación teclease “ir <arguments>”. Esto funciona con todas las salidas, tanto las que tienen nombres estándar (norte, sur, etc.) como las que responden a nombres personalizados.

public String getExitName ( Path p )

Devuelve el nombre de la salida dada (Path p) de esta habitación. Si dicha salida tiene varios nombres, se devolverá el primero. A este método sólo se le debe pasar como parámetro una salida que sea de esta habitación, si se pasa cualquier otra salida u objeto, el comportamiento es indefinido.

public List getExitNames ( Path p )

Devuelve una lista con los nombres de la salida dada (Path p) de esta habitación. A este método sólo se le debe pasar como parámetro una salida que sea de esta habitación, si se pasa cualquier otra salida u objeto, el comportamiento es indefinido.

public Spell getExtraDescription ( String name , Entity viewer )

Devuelve la descripción de componente para el componente de esta habitación llamado name, para que la vea la entidad observadora viewer. El funcionamiento del parámetro viewer es igual que en el método getDescription().

public List getExtraDescriptionNames ( )

Devuelve una lista con todos los nombres descriptibles de componente de esta habitación. Cada llamada a este método construye internamente la lista para devolverla, así que para una programación eficiente debería evitarse llamarlo muchas veces seguidas si se sabe que el resultado no va a cambiar.

public Inventory getFlattenedInventory ( )

Devuelve un objeto de la clase Inventory que contiene tanto el contenido de esta habitación como el contenido del contenido, el contenido del contenido del contenido, etc. El método construye internamente dicha lista en cada llamada, así que para una programación eficiente debería evitarse llamarlo muchas veces seguidas si se sabe que el resultado no va a cambiar.

public Inventory getInventory() ( )

Sinónimo de getContents().

public MobileList getMobiles() ( )

Devuelve un objeto de la clase MobileList con las criaturas (Mobile) que hay en esta habitación. Dicha lista se debe utilizar sólo para lectura, y no modificar su contenido, lo cual podría provocar errores o comportamientos no deseados. Para modificar las criaturas que hay en una habitación, se deben utilizar los métodos que se invocan directamente sobre la misma como addMob(), removeMob(); o bien el método de criatura moveTo(), por las razones detalladas en la sección sobre inventarios.

public Path getRandomValidExit() ( )

Devuelve una salida aleatoria de esta habitación, o null si la habitación no tiene ninguna salida.

public String getUniqueName ( )

Devuelve el nombre único de esta habitación, que el programador puede utilizar para identificarla.

public Path[] getValidExits ( )

Devuelve un array con todas las salidas de esta habitación.

public boolean hasItem ( Item it )

Devuelve true si la cosa it está en esta habitación, y false de lo contrario. Nótese que no busca en contenedores que pueda haber dentro de la habitación.

public boolean hasMobile ( Mobile m )

Devuelve true si la criatura m está en esta habitación, y false de lo contrario.

public boolean removeItem ( Item it )

Quita la cosa it del contenido de esta habitación. Devuelve true si se ha quitado con éxito, y false si no se ha hecho porque la cosa pasada como parámetro no estaba realmente en esta habitación.

public boolean removeMob ( Mobile mob )

Quita la criatura mob de esta habitación. Devuelve true si se ha quitado con éxito, y false si no se ha hecho porque la criatura pasada como parámetro no estaba realmente en esta habitación.

public void reportAction ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , String sufferDes , String execDes , boolean selfIncluded )

Informa de algo que haya sucedido en esta habitación, para lo cual utiliza los parámetros como sigue:

  • source: la entidad que es el sujeto de la acción o suceso. Puede ser null si se está informando de algo que no tiene sujeto.
  • target: la entidad objetivo, que recibe la acción o suceso. Puede ser null si se está informando de algo que no tiene objetivo.
  • object: array de entidades adicionales que sean relevantes para el evento. Por ejemplo, si estamos informando de que Paco ha atacado a Pepe con una espada, en esta lista podría aparecer la espada.
  • thirdPersonDes: descripción que se mostrará a cualquiera que no sea ni el sujeto ni el objetivo. Esta descripción puede tener “comodines” de la forma $1, $2, $3, …, $n que se sustituirán por los nombres para mostrar (a cada entidad a la que se le muestre) del sujeto, objetivo y objetos adicionales pasados anteriormente.
  • sufferDes: descripción que se mostrará al objetivo. Esta descripción puede tener “comodines” de la forma $1, $2, $3, …, $n que se sustituirán por los nombres para mostrar (al objetivo) del sujeto, objetivo y objetos adicionales pasados anteriormente.
  • execDes: descripción que se mostrará al sujeto. Esta descripción puede tener “comodines” de la forma $1, $2, $3, …, $n que se sustituirán por los nombres para mostrar (al sujeto) del sujeto, objetivo y objetos adicionales pasados anteriormente.
  • selfIncluded: si esto se pone a false, no se mostrará el evento al sujeto (y, por lo tanto, execDes es irrelevante). Si se pone a true, el evento sí que se le muestra al sujeto.


Un ejemplo de cómo se podría usar este método sería algo como: habitacion.reportAction( paco , pepe , arma , “$1 ataca a $2 con $3”, “$1 te ataca con $3”, “Atacas a $2 con $3”, true );

Lo cual sería para informar a todo el mundo de la habitación de que una criatura ha atacado a otra. Nótese que este ejemplo concreto no le hace falta para nada al programador de aventuras, porque el propio AGE informa por defecto de todos los ataques. Pero el programador tendrá que hacer algo similar si define nuevas acciones y eventos en su aventura, que no sean necesariamente ataques, y quiere que se visualicen correctamente en aventuras multijugador.

En juegos monojugador, este método normalmente no es necesario, porque las descripciones de eventos siempre se le meustran a la misma persona (el jugador) y por lo tanto no hace falta tener descripciones separadas en primera, segunda y tercera persona para cada evento. Basta con tener una sola descripción de los eventos y mostrarla con write o similar.

public void reportAction ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , String sufferDes , String execDes , String style , boolean selfIncluded )

Idéntico al método anterior, pero permite especificar además una cadena de estilo (String style) para que los mensajes asociados al evento se muestren con un determinado color.

public void reportActionAuto ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , boolean self_included )

Este método funciona igual que el correspondiente reportAction(), pero no se le pasan los parámetros de descripción en primera y segunda persona (sufferDes y execDes en la descripción de reportAction()). En su lugar, AGE intenta deducir automáticamente estas descripciones.

Sin embargo, es preciso advertir que esta deducción automática sólo funcionará en una serie de casos limitada (dependiendo del idioma), en los cuales AGE conoce las conjugaciones, y además podría no dar el resultado deseado en casos en los que pasar una oración de tercera persona a segunda o primera no sea trivial (requiriendo cambiar más palabras que el sujeto y el verbo). Por lo tanto, se recomienda usar este método sólo probando que funcione en el caso en cuestión, y en caso de duda, utilizar siempre reportAction().

Este método también se puede usar sin problemas en casos en los que se produce un evento donde no hay ninguna entidad concreta que sea el sujeto o el objetivo, en cuyo caso las descripciones en primera y segunda persona son innecesarias.

public void reportActionAuto ( Entity source /*$1*/ , Entity target /*$2*/ , Entity[] objects /*$3..$n*/ , String thirdPersonDes , String style , boolean self_included )

Idéntico al método anterior, pero permite especificar además una cadena de estilo (String style) para que los mensajes asociados al evento se muestren con un determinado color.

lista_de_metodos_invocables_de_habitacion_clase_room.txt · Última modificación: 2014/10/22 19:02 por al-khwarizmi