Métodos públicos | |
| Map (MapId map_id, const std::string &map_name, bool is_safe, const nlohmann::json &map_description, const nlohmann::json &map_mobs, const nlohmann::json &map_transitions) | |
| Map (const Map &other)=delete | |
| const std::string & | get_name () |
| void | move (EntityId entity_id, position_t steps) |
| Mueve la entidad asociada al entity_id hacia la posicion relativa steps. Más... | |
| std::queue< map_change_t > & | get_transitions () |
| Obtiene la cola de transiciones del mapa. Más... | |
| void | teleport (EntityId player_id, position_t dest) |
| Teletransporta a un jugador a través de una transición. Más... | |
| nlohmann::json | add_player (nlohmann::json player_info) |
| Agrega un jugador al mapa a partir de su información. Más... | |
| nlohmann::json | rm_player (EntityId entity_id) |
| Eliminar a un jugador identificado por su id del mapa. Más... | |
| position_t | get_position (EntityId entity_id) |
| position_t | get_healer_pos () const |
| bool | is_safe () const |
| position_t | get_nearest_entity_pos (position_t entity_pos, unsigned int distance, entity_type_t entity_type) |
| Obtener la posición de la entidad de un tipo más cercana. Más... | |
| bool | entity_exists (EntityId entity_id) |
| Verificar si una entidad existe o no. Más... | |
| void | update (uint64_t delta_t) |
| Actualiza todas las entidades que contiene segun el delta_t transcurrido. Más... | |
| void | push_log (const map_log_t &log) |
| Agrega un log al mapa. Más... | |
| void | push_action (EntityId entity_id, Action *action) |
| Ejecuta sobre la entidad asociada al id la accion. Más... | |
| void | drop_loot (EntityId entity_id, Item *item) |
| Deja el item pasado por parámetro en la posición de la entidad. Más... | |
| void | drop_loot (EntityId entity_id, const std::vector< Item * > &items) |
| Deja caer la lista de items en el mapa. Más... | |
| Item * | pickup_loot (EntityId entity_id) |
| Intenta obtener de la posición donde se encuentra la entidad el item que haya allí. Más... | |
| const PositionMap | get_position_map () const |
| Obtiene una copia del mapa de posiciones de las entidades. Más... | |
| bool | dirty_entities () const |
| Verificar si hubo un cambio en las entidades del mapa desde la última vez que se utilizó este método. Más... | |
| nlohmann::json | get_entity_data () |
| Obtiene la información de las entidades del mapa. Más... | |
| bool | dirty_loot () const |
| Verificar si hubo un cambio en los items caidos en el mapa desde la última vez que se utilizó este método. Más... | |
| nlohmann::json | get_loot_data () |
| Obtiene la información de los items del mapa. Más... | |
| std::queue< map_log_t > & | get_update_logs () |
| Obtiene la cola de "logs" del mapa. Más... | |
| nlohmann::json | get_map_data () |
Obtiene la información gráfica del mapa en forma de json. Más... | |
Métodos públicos estáticos | |
| static nlohmann::json | get_position_data (const PositionMap &position_map) |
Realizar una copia en forma de json de un mapa de posiciones. Más... | |
Amigas | |
| class | Action |
| class | MonsterSpawner |
| nlohmann::json Map::add_player | ( | nlohmann::json | player_info | ) |
Agrega un jugador al mapa a partir de su información.
| player_info | Información del jugador para agregarlo al mapa. |
| bool Map::dirty_entities | ( | ) | const |
Verificar si hubo un cambio en las entidades del mapa desde la última vez que se utilizó este método.
| bool Map::dirty_loot | ( | ) | const |
Verificar si hubo un cambio en los items caidos en el mapa desde la última vez que se utilizó este método.
| void Map::drop_loot | ( | EntityId | entity_id, |
| const std::vector< Item * > & | items | ||
| ) |
Deja caer la lista de items en el mapa.
| entity_id | Id de entidad que deja caer los items. |
| items | Lista de items transferidos al mapa. |
| void Map::drop_loot | ( | EntityId | entity_id, |
| Item * | item | ||
| ) |
Deja el item pasado por parámetro en la posición de la entidad.
| entity_id | Id de entidad que deja caer el item. |
| item | Item transferido al mapa. |
| bool Map::entity_exists | ( | EntityId | entity_id | ) |
Verificar si una entidad existe o no.
| entity_id | Id de entidad a verificar si existe. |
| nlohmann::json Map::get_entity_data | ( | ) |
Obtiene la información de las entidades del mapa.
| nlohmann::json Map::get_loot_data | ( | ) |
Obtiene la información de los items del mapa.
| nlohmann::json Map::get_map_data | ( | ) |
Obtiene la información gráfica del mapa en forma de json.
| position_t Map::get_nearest_entity_pos | ( | position_t | entity_pos, |
| unsigned int | distance, | ||
| entity_type_t | entity_type | ||
| ) |
Obtener la posición de la entidad de un tipo más cercana.
| entity_pos | Posición orígen desde donde buscar. |
| distance | Distancia máxima (Manhattan) a buscar la entidad. |
| entity_type | Tipo de entidad buscada. |
|
static |
Realizar una copia en forma de json de un mapa de posiciones.
| position_map | Mapa de posiciones. |
json. | const PositionMap Map::get_position_map | ( | ) | const |
Obtiene una copia del mapa de posiciones de las entidades.
| std::queue< map_change_t > & Map::get_transitions | ( | ) |
Obtiene la cola de transiciones del mapa.
| std::queue< map_log_t > & Map::get_update_logs | ( | ) |
Obtiene la cola de "logs" del mapa.
| void Map::move | ( | EntityId | entity_id, |
| position_t | steps | ||
| ) |
Mueve la entidad asociada al entity_id hacia la posicion relativa steps.
| entity_id | Id de entidad a mover. |
| steps | Posición relativa a la entidad a donde se va a mover. |
| Item * Map::pickup_loot | ( | EntityId | entity_id | ) |
Intenta obtener de la posición donde se encuentra la entidad el item que haya allí.
| entity_id | Id de entidad que intenta obtener el item. |
NULL si no había nada en esa posición. | void Map::push_action | ( | EntityId | entity_id, |
| Action * | action | ||
| ) |
Ejecuta sobre la entidad asociada al id la accion.
El mapa se encargará de liberar la memoria ocupada por la acción a través de un delete.
| entity_id | Id de entidad. |
| action | Puntero a clase de tipo Accion alocada en el Heap. |
| void Map::push_log | ( | const map_log_t & | log | ) |
Agrega un log al mapa.
Los logs son ulitizados para enviar a los jugadores correspondientes información específica según sus acciones recientes.
| log | Log del mapa. |
| nlohmann::json Map::rm_player | ( | EntityId | entity_id | ) |
Eliminar a un jugador identificado por su id del mapa.
| entity_id | Id de entidad del jugador a eliminar. |
| void Map::teleport | ( | EntityId | player_id, |
| position_t | dest | ||
| ) |
Teletransporta a un jugador a través de una transición.
| player_id | Id de entidad del jugador a teletransportar. |
| dest | Posición destino. |
| void Map::update | ( | uint64_t | delta_t | ) |
Actualiza todas las entidades que contiene segun el delta_t transcurrido.
| delta_t | Tiempo transcurrido (en microsegundos). |