Argentum Online - Servidor
bank.h
1 #ifndef BANK_H
2 #define BANK_H
3 
4 #include "items/item_container.h"
5 #include "../../include/nlohmann/json.hpp"
6 #include <unordered_map>
7 
8 #include "entities/player.h"
9 
10 
11 typedef ItemContainer Vault;
12 
13 class Bank {
14  private:
15  Bank();
16  std::unordered_map<std::string, Vault> bank_accounts;
24  Vault& get_vault(std::string player_name);
25  public:
26  ~Bank();
27  static Bank& get_instance();
36  nlohmann::json get_vault_persist_data(std::string player_name);
45  nlohmann::json get_vault_data(std::string player_name);
54  void add_account(std::string player_name, nlohmann::json vault_info);
63  nlohmann::json remove_account(std::string player_name);
64  bool account_exists(std::string player_name);
74  void deposit_gold(uint32_t amount, Player *player);
84  void withdraw_gold(uint32_t amount, Player *player);
95  void deposit_item(SlotId slot, uint32_t amount, Player *player);
106  void withdraw_item(SlotId slot, uint32_t amount, Player *player);
107 };
108 
109 #endif // BANK_H
Bank
Definition: bank.h:13
Bank::withdraw_item
void withdraw_item(SlotId slot, uint32_t amount, Player *player)
Se retira de la boveda del jugador amount cantidad del item que se encuentra en el slot del vault,...
Definition: bank.cpp:80
ItemContainer
Definition: item_container.h:50
Bank::get_vault_persist_data
nlohmann::json get_vault_persist_data(std::string player_name)
Devuelve un json que representa el vault, para luego convertirlo a inventory_t (de forma automatica) ...
Definition: bank.cpp:27
Bank::get_vault_data
nlohmann::json get_vault_data(std::string player_name)
Devuelve un json que representa el contenido actual del vault asociado al player. Lanza MyException e...
Definition: bank.cpp:31
Bank::deposit_item
void deposit_item(SlotId slot, uint32_t amount, Player *player)
Se deposita en la boveda del jugador amount cantidad del item que se encuentra en el slot del inventa...
Definition: bank.cpp:68
Bank::add_account
void add_account(std::string player_name, nlohmann::json vault_info)
Agrega una entrada en el diccionario de cuentas asociada a player_name, creando un vault a partir de ...
Definition: bank.cpp:35
Bank::remove_account
nlohmann::json remove_account(std::string player_name)
Remueve del diccionario a player_name, devolviendo un json que representa la informacion a persistir ...
Definition: bank.cpp:43
player.h
Bank::deposit_gold
void deposit_gold(uint32_t amount, Player *player)
Extrae de la billetera del jugador amount cantidad de oro, y la deposita en su boveda....
Definition: bank.cpp:49
Player
Definition: player.h:14
Bank::withdraw_gold
void withdraw_gold(uint32_t amount, Player *player)
Se extrae de la boveda del jugador amount cantidad de oro y se deposita en la billetera del mismo....
Definition: bank.cpp:56