SparrowBot/app/rpgmodule.h
2016-03-14 15:12:04 +01:00

69 lines
1.2 KiB
C++

#ifndef RPGMODULE_H
#define RPGMODULE_H
#include "module.h"
#include <unordered_map>
class User;
struct RPGCharacter
{
int level;
int xp;
QString password;
QString pseudo;
int x;
int y;
User *user;
RPGCharacter(QString myPseudo, QString myPass) :
level(1),
xp(0),
password(myPass),
pseudo(myPseudo),
x(0),
y(0),
user(NULL)
{}
};
class CharacterMap
{
public:
std::vector<std::string> names;
std::unordered_map<std::string, RPGCharacter*> data;
void add(const std::string &name, RPGCharacter* t)
{
data[name] = t;
names.push_back(name);
}
RPGCharacter* get(const std::string &name)
{
if(data.count(name))
return data[name];
else
return NULL;
}
// TODO serialization
};
class RPGModule : public Module
{
CharacterMap charList;
std::unordered_map<User*, RPGCharacter*> charOnline;
public:
RPGModule();
void playerJoin(User* user, RPGCharacter *c);
void playerLeave(User* user);
virtual bool messageHandler(Message msg);
virtual QString getName() {return QString("rpg");}
};
#endif // RPGMODULE_H