added map and nice travel sentences
This commit is contained in:
parent
455455dca7
commit
afa0b3f90f
@ -24,30 +24,76 @@ void RPGModule::playerLeave(User *user)
|
||||
}
|
||||
}
|
||||
|
||||
QString RPGModule::getTerrainName(int type)
|
||||
{
|
||||
switch(type)
|
||||
{
|
||||
case FOREST :
|
||||
return QString("the forest");
|
||||
case MOUNTAINS :
|
||||
return QString("the mountains");
|
||||
case PLAINS :
|
||||
return QString("the plains");
|
||||
case ROAD :
|
||||
return QString("a road");
|
||||
case VILLAGE :
|
||||
return QString("a village");
|
||||
default :
|
||||
return QString("Hell");
|
||||
}
|
||||
}
|
||||
|
||||
QString RPGModule::playerTravel(RPGCharacter *c, QString dir)
|
||||
{
|
||||
char terrainType = WORLDMAP[c->x][c->y];
|
||||
QString direction;
|
||||
QString currentArea = getTerrainName(terrainType);
|
||||
bool blocked = false;
|
||||
|
||||
if(dir.compare("north") == 0 || dir.compare("n") == 0)
|
||||
{
|
||||
c->y -= 1;
|
||||
return QString("%1 walks north and is still in the forest").arg(c->pseudo);
|
||||
if(c->y == 0)
|
||||
blocked = true;
|
||||
else
|
||||
c->y -= 1;
|
||||
direction = "north";
|
||||
}
|
||||
else if(dir.compare("south") == 0 || dir.compare("s") == 0)
|
||||
{
|
||||
c->y += 1;
|
||||
return QString("%1 walks south and is still in the forest").arg(c->pseudo);
|
||||
if(c->y == 24)
|
||||
blocked = true;
|
||||
else
|
||||
c->y += 1;
|
||||
direction = "south";
|
||||
}
|
||||
else if(dir.compare("west") == 0 || dir.compare("w") == 0)
|
||||
{
|
||||
c->x -= 1;
|
||||
return QString("%1 walks west and is still in the forest").arg(c->pseudo);
|
||||
if(c->x == 0)
|
||||
blocked = true;
|
||||
else
|
||||
c->x -= 1;
|
||||
direction = "west";
|
||||
}
|
||||
else if(dir.compare("east") == 0 || dir.compare("e") == 0)
|
||||
{
|
||||
c->x += 1;
|
||||
return QString("%1 walks east and is still in the forest").arg(c->pseudo);
|
||||
if(c->x == 24)
|
||||
blocked = true;
|
||||
else
|
||||
c->x += 1;
|
||||
direction = "east";
|
||||
}
|
||||
else
|
||||
return QString("%1 is not a valid direction, use : north, south, west, east");
|
||||
return QString("%1 is not a valid direction, use : north, south, west, east").arg(dir);
|
||||
|
||||
if(blocked)
|
||||
return QString("%1 cannot go %2, a hill is blocking his way").arg(c->pseudo).arg(direction);
|
||||
|
||||
char newTerrainType = WORLDMAP[c->x][c->y];
|
||||
if(terrainType == newTerrainType)
|
||||
return QString("%1 is traveling %2 and is still in %3").arg(c->pseudo).arg(direction).arg(currentArea);
|
||||
else
|
||||
return QString("%1 is traveling %2, leaving %3 and entering %4")
|
||||
.arg(c->pseudo).arg(direction).arg(currentArea).arg(getTerrainName(WORLDMAP[c->x][c->y]));
|
||||
}
|
||||
|
||||
bool RPGModule::messageHandler(Message msg)
|
||||
|
@ -6,32 +6,41 @@
|
||||
|
||||
class User;
|
||||
|
||||
enum
|
||||
{
|
||||
FOREST = 'X',
|
||||
MOUNTAINS = '^',
|
||||
PLAINS = ' ',
|
||||
ROAD = '#',
|
||||
VILLAGE = 'O'
|
||||
};
|
||||
|
||||
const char WORLDMAP[25][26] = {
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXXXXXXXXXXXXXXXXXXXX"};
|
||||
"^^^^^^^^^^^^^^^^^^^^^^^^^",
|
||||
"^^^^^^^^^^^^^^^^^^^^^^^^^",
|
||||
"^^^^^^^^^^XXXXXXX^^^^^^^^",
|
||||
"^^^^^XXXXXXXXXXXXXX^^^^^^",
|
||||
"^^^XXXXOXXXXXXXXXXXXXXXXX",
|
||||
"^^^XXXX#XXXXXXXXXXXXXXXXX",
|
||||
"^^XXXXX#XXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXX#XXXXXXXXXXXXXXXXX",
|
||||
"XXXXXXX##########OXXXXXXX",
|
||||
"XXXXXXX#XXXXXXX#XXXXXXXXX",
|
||||
"XXXXXXX#XXXXXXX#XXXXXXXXX",
|
||||
"XO######XXXXXXX#XXXXXXXXX",
|
||||
"XXXXXXX#XXXXXXX#XXXXXXXXX",
|
||||
"XXXXXXX# # XXXXXXXX",
|
||||
"XXXX # # XXXX",
|
||||
"XXXX #####O####### XX",
|
||||
"XXXX # # ",
|
||||
"XXXX # # ",
|
||||
"XXXO#### # ",
|
||||
"XXXX # ",
|
||||
"XXXX # ",
|
||||
"XXXXXXX ^^^#^^^ ",
|
||||
"XXXXXXXXX^^^^^^^^^^O^^^^^",
|
||||
"XXXXXX^^^^^^^^^^^^^^^^^^^",
|
||||
"XX^^^^^^^^^^^^^^^^^^^^^^^"};
|
||||
|
||||
|
||||
struct RPGCharacter
|
||||
@ -89,7 +98,8 @@ public:
|
||||
void playerJoin(User* user, RPGCharacter *c);
|
||||
void playerLeave(User* user);
|
||||
QString playerTravel(RPGCharacter *c, QString dir);
|
||||
|
||||
QString getTerrainName(int type);
|
||||
|
||||
virtual bool messageHandler(Message msg);
|
||||
virtual QString getName() {return QString("rpg");}
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user