1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-04-02 22:05:43 +02:00

Add random map description and display it in RMG menu

This commit is contained in:
Tomasz Zieliński 2024-02-03 16:23:56 +01:00
parent cb841e2e02
commit b7df6064cd
17 changed files with 45 additions and 11 deletions

@ -1,9 +1,9 @@
{
"Blockbuster M" :
//(ban fly/DD, 2 player, 15-Jun-03, midnight design)
{
"minSize" : "m", "maxSize" : "m",
"players" : "2",
"description" : "Ban fly/DD, 2 player, 15-Jun-03, Midnight design",
"zones" :
{
"1" :
@ -119,6 +119,7 @@
{
"minSize" : "l", "maxSize" : "l",
"players" : "2",
"description" : "Ban fly/DD, 2 player, 15-Jun-03, Midnight design",
"zones" :
{
"1" :
@ -246,6 +247,7 @@
{
"minSize" : "xl", "maxSize" : "xl",
"players" : "2",
"description" : "Ban fly/DD, 2 player, 15-Jun-03, Midnight design",
"zones" :
{
"1" :

@ -1,9 +1,9 @@
{
"Extreme L" :
//(ban fly/DD/orb inhibition/Castle-Necro-Conflux towns, 2 player, 3-Aug-03, midnight design)
{
"minSize" : "l", "maxSize" : "l",
"players" : "2",
"description" : "Ban fly/DD/Orb of Inhibition/Castle-Necro-Conflux towns, 2 player, 3-Aug-03, Midnight design",
"zones" :
{
"1" :
@ -180,10 +180,10 @@
]
},
"Extreme XL" :
//(ban fly/DD/orb inhibition/Castle-Necro-Conflux towns, 2 player, 3-Aug-03, midnight design)
{
"minSize" : "xl", "maxSize" : "xh",
"players" : "2",
"description" : "Ban fly/DD/Orb of Inhibition/Castle-Necro-Conflux towns, 2 player, 3-Aug-03, Midnight design",
"zones" :
{
"1" :

@ -1,9 +1,9 @@
{
"Extreme II L":
//(ban fly/DD/orb inhibition/Castle-Necro-Conflux towns, 2 player, 3-Aug-03, midnight design)"
{
"minSize" : "l", "maxSize" : "l",
"players" : "2",
"description": "Ban fly/DD/orb inhibition/Castle-Necro-Conflux towns, 2 player, 3-Aug-03, Midnight design",
"zones" :
{
"1" :
@ -154,10 +154,10 @@
]
},
"Extreme II XL":
//(ban fly/DD/orb inhibition/Castle-Necro-Conflux towns, 2 player, 3-Aug-03, midnight design)
{
"minSize" : "xl", "maxSize" : "xh",
"players" : "2",
"description": "Ban fly/DD/orb inhibition/Castle-Necro-Conflux towns, 2 player, 3-Aug-03, Midnight design",
"zones" :
{
"1" :

@ -3,6 +3,7 @@
{
"minSize" : "xl", "maxSize" : "xl",
"players" : "2",
"description" : "Ban Fly/DD, 2 player, 31-May-03, Midnight design",
"zones" :
{
"1" :
@ -322,6 +323,7 @@
{
"minSize" : "xl+u", "maxSize" : "g+u",
"players" : "2",
"description" : "Ban Fly/DD, 2 player, 31-May-03, Midnight design",
"zones" :
{
"1" :

@ -3,6 +3,7 @@
{
"minSize" : "m+u", "maxSize" : "l+u",
"players" : "2",
"description" : "Ban Fly/DD, 2 player, 3-Aug-03, Midnight design",
"zones" :
{
"1" :

@ -1,9 +1,9 @@
{
"Poor Jebus" :
//(made by Bjorn190, modified by Maretti and Angelito)
{
"minSize" : "m", "maxSize" : "xl+u",
"players" : "2-4",
"description" : "Made by Bjorn190, modified by Maretti and Angelito",
"zones" :
{
"1" :

@ -1,9 +1,9 @@
{
"Reckless" :
//(2 player, 6-Jan-03, midnight design)
{
"minSize" : "l", "maxSize" : "xl+u",
"players" : "2",
"description" : "2 players, 6-Jan-03, Midnight design",
"zones" :
{
"1" :

@ -1,9 +1,9 @@
{
"Roadrunner" :
//(ban fly/DD, 2 player, 31-May-03, midnight design)
{
"minSize" : "xl", "maxSize" : "xl",
"players" : "2",
"description" : "Ban fly/DD, 2 players, 31-May-03, Midnight design",
"zones" :
{
"1" :

@ -3,6 +3,7 @@
{
"minSize" : "m", "maxSize" : "m",
"players" : "2",
"description" : "Ban fly/DD, 2 players, 3-Aug-03, Midnight design",
"zones" :
{
"1" :
@ -119,6 +120,7 @@
{
"minSize" : "m+u", "maxSize" : "l",
"players" : "2",
"description" : "Ban fly/DD, 2 players, 3-Aug-03, Midnight design",
"zones" :
{
"1" :

@ -1,9 +1,9 @@
{
"SuperSlam" :
//(2 player, Large or XL no under) For powermonger players, meet by SLAMMING thru super zones. Your chances are not over until the fat lady sings! Should ban spec log along with normal random rules
{
"minSize" : "l", "maxSize" : "xl",
"players" : "2",
"description" : "2 players, Large or XL, no under) For powermonger players, meet by SLAMMING thru super zones. Your chances are not over until the fat lady sings! Should ban spec log along with normal random rules",
"zones" :
{
"1" :

@ -1,9 +1,9 @@
{
"Triad L" :
//(ban fly/DD, 3 players, 9-Jan-03, midnight design)
{
"minSize" : "l", "maxSize" : "l",
"players" : "2-3",
"description" : "Ban fly/DD, 3 players, 9-Jan-03, Midnight design",
"zones" :
{
"1" :
@ -182,6 +182,7 @@
{
"minSize" : "xl", "maxSize" : "xl",
"players" : "3",
"description" : "Ban fly/DD, 3 players, 9-Jan-03, Midnight design",
"zones" :
{
"1" :

@ -1,9 +1,9 @@
{
"Vortex" :
//(ban fly/DD, 3-4 player, 31-May-03, midnight design)
{
"minSize" : "xl", "maxSize" : "xl",
"players" : "2-4",
"description" : "Ban fly/DD, 3-4 players, 31-May-03, Midnight design",
"zones" :
{
"1" :

@ -177,6 +177,18 @@ void RandomMapTab::updateMapInfoByHost()
mapInfo->mapHeader->version = EMapFormat::VCMI;
mapInfo->mapHeader->name.appendLocalString(EMetaText::GENERAL_TXT, 740);
mapInfo->mapHeader->description.appendLocalString(EMetaText::GENERAL_TXT, 741);
const auto * temp = mapGenOptions->getMapTemplate();
if (temp)
{
auto randomTemplateDescription = temp->getDescription();
if (!randomTemplateDescription.empty())
{
auto description = std::string("\n\n") + randomTemplateDescription;
mapInfo->mapHeader->description.appendRawString(description);
}
}
mapInfo->mapHeader->difficulty = 1; // Normal
mapInfo->mapHeader->height = mapGenOptions->getHeight();
mapInfo->mapHeader->width = mapGenOptions->getWidth();

@ -135,6 +135,10 @@
"description" : "Optional name - useful to have several template variations with same name",
"type": "string"
},
"description" : {
"description" : "Optional info about template, author or special rules",
"type": "string"
},
"zones" : {
"description" : "List of named zones",
"type" : "object",

@ -8,6 +8,8 @@
{
//Optional name - useful to have several template variations with same name
"name" : "Custom template name",
//Any info you want to be displayed in random map menu
"description" : "Detailed info and recommended rules",
/// Minimal and maximal size of the map. Possible formats:
/// Size code: s, m, l or xl for size with optional suffix "+u" for underground

@ -541,6 +541,11 @@ const std::string & CRmgTemplate::getName() const
return name;
}
const std::string & CRmgTemplate::getDescription() const
{
return description;
}
const std::string & CRmgTemplate::getId() const
{
return id;
@ -682,6 +687,7 @@ int CRmgTemplate::CPlayerCountRange::minValue() const
void CRmgTemplate::serializeJson(JsonSerializeFormat & handler)
{
handler.serializeString("name", name);
handler.serializeString("description", description);
serializeSize(handler, minSize, "minSize");
serializeSize(handler, maxSize, "maxSize");
serializePlayers(handler, players, "players");

@ -248,6 +248,7 @@ public:
void setName(const std::string & value);
const std::string & getId() const;
const std::string & getName() const;
const std::string & getDescription() const;
const CPlayerCountRange & getPlayers() const;
const CPlayerCountRange & getHumanPlayers() const;
@ -263,6 +264,7 @@ public:
private:
std::string id;
std::string name;
std::string description;
int3 minSize;
int3 maxSize;
CPlayerCountRange players;