Argentum Online - Servidor
player.h
Ir a la documentación de este archivo.
1 #ifndef PLAYER_H
2 #define PLAYER_H
3 #include <string>
4 
6 
7 #include "../attribute_manager.h"
8 #include "../items/item.h"
9 #include "../items/item_container.h"
10 #include "../map.h"
11 #include "../position.h"
12 #include "entity.h"
13 
14 class Player : public Entity {
15  private:
16  bool alive;
17  const int head_id;
18  const int body_id;
19  position_t teleport_pos;
20  int teleport_accumulator;
21 
23 
24  class_type_t class_type;
25  race_type_t race_type;
26 
27  void _teleport();
28 
29  public:
37  Player(EntityId entity_id, nlohmann::json player_info, Map& map);
38 
44  entity_type_t get_type() const override;
45 
51  class_type_t get_class_type() const;
52 
58  race_type_t get_race_type() const;
64  void immobilize(int delta_t);
70  void resuscitate(int delta_t);
75  void regen_max();
76 
77  void teleport(position_t dest, int delta_t);
78 
79  void die() override;
80  bool is_alive() const override;
81 
87  void use(SlotId slot);
88 
94  void use_ability(Entity* target, position_t target_pos);
95 
103  void add_item(Item* item);
104 
113  Item* remove_item(SlotId slot, uint32_t amount);
120  Gold* remove_gold(uint32_t amount);
126  uint32_t get_gold_stack() const;
127 
132  void unequip(SlotId slot);
133 
139  Map& get_map();
140 
147  void set_movement(mov_action_t action, direction_t direction);
148 
153  void meditate(bool meditating);
154 
160  void update(uint64_t delta_t) override;
161 
173  bool can_attack(Entity* attacked) const override;
174 
175  void set_alive(bool alive);
176 
207  nlohmann::json get_data() const override;
208 
240  nlohmann::json get_inventory_data() const;
241 
297  nlohmann::json get_persist_data() const;
298 };
299 
300 #endif // PLAYER_H
inventory
Definition: item_container.h:32
Player::can_attack
bool can_attack(Entity *attacked) const override
Define si un jugador podrá o no atacar a otra entidad.
Definition: player.cpp:316
Item
Definition: item.h:45
Player::unequip
void unequip(SlotId slot)
Desequipa de todo su armamento al jugador.
Definition: player.cpp:196
Player::set_movement
void set_movement(mov_action_t action, direction_t direction)
Setea el movimiento del jugador.
Definition: player.cpp:248
Player::remove_gold
Gold * remove_gold(uint32_t amount)
Remueve amount del Gold actual.
Definition: player.cpp:186
Player::update
void update(uint64_t delta_t) override
Player update.
Definition: player.cpp:45
Player::regen_max
void regen_max()
Regenera al maximo la vida y mana actuales.
Definition: player.cpp:266
Player::immobilize
void immobilize(int delta_t)
Tiempo a inmovilizar al personaje en milisegundos.
Definition: player.cpp:257
Player::use_ability
void use_ability(Entity *target, position_t target_pos)
Usar la habilidad del arma equipada actualmente.
Definition: player.cpp:137
ItemContainer
Definition: item_container.h:50
Player::get_inventory_data
nlohmann::json get_inventory_data() const
Obtiene la información del inventario del jugador.
Definition: player.cpp:102
Player::get_persist_data
nlohmann::json get_persist_data() const
Obtener la información para persistir a un jugador.
Definition: player.cpp:227
Player::meditate
void meditate(bool meditating)
Empieza o detiene la regeneracion de mana al meditar.
Definition: player.cpp:331
Player::get_gold_stack
uint32_t get_gold_stack() const
Devuelve la cantidad de oro que tiene actualmente.
Definition: player.cpp:192
Player::get_data
nlohmann::json get_data() const override
Obtiene los datos de la entidad para enviar al cliente. (caso PLAYER)
Definition: player.cpp:75
Player::get_type
entity_type_t get_type() const override
Obtiene el tipo de la entidad: PLAYER.
Definition: player.cpp:63
Player::remove_item
Item * remove_item(SlotId slot, uint32_t amount)
Quita un item del inventario del jugador.
Definition: player.cpp:175
Entity
Definition: entity.h:15
Player::add_item
void add_item(Item *item)
Agrega un item al inventario del jugador. En caso de que el item no entrase en el inventario,...
Definition: player.cpp:146
Player::Player
Player(EntityId entity_id, nlohmann::json player_info, Map &map)
Construye a un jugador.
Definition: player.cpp:21
Gold
Definition: gold.h:6
Player::resuscitate
void resuscitate(int delta_t)
Tiempo a esperar para ser resucitado en milisegundos.
Definition: player.cpp:262
Player::get_class_type
class_type_t get_class_type() const
Obtiene la clase del jugador.
Definition: player.cpp:67
Map
Definition: map.h:47
Player::get_map
Map & get_map()
Devuelve el mapa actual del player.
Definition: player.cpp:253
Player
Definition: player.h:14
position
Definition: position.h:8
Player::get_race_type
race_type_t get_race_type() const
Obtiene la raza del jugador.
Definition: player.cpp:71
Player::use
void use(SlotId slot)
Utilizar un item del inventario.
Definition: player.cpp:106