From 42b0403dc84f5a49bac6d7b2bd19e0eedb02ff08 Mon Sep 17 00:00:00 2001 From: Anselme Date: Fri, 18 Mar 2016 13:33:14 +0100 Subject: [PATCH] added inventory and gold --- app/rpgmodule.cpp | 48 +++++++++++++++++++++++++++++++++++++++++++++-- app/rpgmodule.h | 9 ++++++++- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/app/rpgmodule.cpp b/app/rpgmodule.cpp index 8210a66..ed986d9 100644 --- a/app/rpgmodule.cpp +++ b/app/rpgmodule.cpp @@ -14,7 +14,11 @@ QString RPGCharacter::toString() str.append(QString::number(level)).append(" "); str.append(QString::number(xp)).append(" "); str.append(QString::number(x)).append(" "); - str.append(QString::number(y)); + str.append(QString::number(y)).append(" "); + str.append(QString::number(gold)).append(" "); + str.append(QString::number(inventory.size())); + for(QString &item : inventory) + str.append(" ").append(item); return str; } @@ -74,7 +78,7 @@ void RPGModule::initVillages() bool RPGCharacter::fromString(QString str) { QStringList list = str.split(QChar(' ')); - if(list.size() == 6) + if(list.size() == 6) // retrocompatibilitry { bool ok; pseudo = list[0]; @@ -93,6 +97,34 @@ bool RPGCharacter::fromString(QString str) return false; return true; } + else if(list.size() > 7) + { + bool ok; + pseudo = list[0]; + password = list[1]; + level = list[2].toInt(&ok); + if(!ok) + return false; + xp = list[3].toInt(&ok); + if(!ok) + return false; + x = list[4].toInt(&ok); + if(!ok) + return false; + y = list[5].toInt(&ok); + if(!ok) + return false; + gold = list[6].toInt(&ok); + if(!ok) + return false; + weapon = list[7]; + int nbItems = list[8].toInt(&ok); + if(!ok) + return false; + for(int i=0; i 0) + { + RPGCharacter *c = charOnline[src]; + QString str = QString("%1 has %2 gold coins").arg(c->pseudo).arg(c->gold); + for(QString &s : c->inventory) + str.append(", ").append(s); + answer = say(str); + return true; + } + } else if(msg.args.compare("!rpg help") == 0) { answer = privateSay("Commands : register, join, delete, leave, save, stats, list", msg.nick); diff --git a/app/rpgmodule.h b/app/rpgmodule.h index eb113c2..d2db2ea 100644 --- a/app/rpgmodule.h +++ b/app/rpgmodule.h @@ -3,6 +3,7 @@ #include "module.h" #include +#include class User; @@ -113,6 +114,9 @@ struct RPGCharacter QString pseudo; int x; int y; + int gold; + QString weapon; + QStringList inventory; User *user; RPGCharacter(QString myPseudo, QString myPass) : @@ -125,7 +129,10 @@ struct RPGCharacter user(NULL) {} - RPGCharacter(QString serialisationStr) : user(NULL) + RPGCharacter(QString serialisationStr) : + gold(200), + inventory(), + user(NULL) { if(!fromString(serialisationStr)) {