diff --git a/GameList.txt b/GameList.txt index d6cc52e..f260def 100644 --- a/GameList.txt +++ b/GameList.txt @@ -15,6 +15,7 @@ Cleft of Dimensions Clessidra DarkMists Dragonfire MUD +DreamLand Federation 2 Community Edition Fierymud God Wars II diff --git a/TGameDetails.h b/TGameDetails.h index 8f4319a..7d56622 100644 --- a/TGameDetails.h +++ b/TGameDetails.h @@ -34,9 +34,16 @@ struct GameDetail QString websiteInfo; QString icon; QString description; - // the game's bundled loader installs the game's own full interface, so - // the generic starter UI is not preinstalled for it: - bool providesOwnUi = false; + // how the game installs its own full interface, if it does - the generic + // starter UI is then not preinstalled for it: + enum class OwnUi { + None, + // a loader bundled with Mudlet fetches the interface itself + BundledLoader, + // the game sends a Client.GUI package, often only after login + ClientGui + }; + OwnUi ownUi = OwnUi::None; // other hostnames the game is reachable under: QStringList alternateHostUrls; }; @@ -65,14 +72,14 @@ class TGameDetails return result; } - inline static bool gameProvidesOwnUi(const QString& hostUrl) + inline static GameDetail::OwnUi gameOwnUi(const QString& hostUrl) { for (const auto& game : scmDefaultGames) { - if (game.providesOwnUi && (!game.hostUrl.compare(hostUrl, Qt::CaseInsensitive) || game.alternateHostUrls.contains(hostUrl, Qt::CaseInsensitive))) { - return true; + if (game.ownUi != GameDetail::OwnUi::None && (!game.hostUrl.compare(hostUrl, Qt::CaseInsensitive) || game.alternateHostUrls.contains(hostUrl, Qt::CaseInsensitive))) { + return game.ownUi; } } - return false; + return GameDetail::OwnUi::None; } // clang-format off @@ -117,8 +124,8 @@ qsl("Website
" "If you are interested in a completely free, immersive RP/PK experience, in a vibrant land filled " "with lore/intrigue, where you can forge long-lasting friendships and bitter rivalries, and have an " "opportunity to leave your lasting mark and be remembered forever, then welcome ye to the " - "Abandoned Realms.") - }, + "Abandoned Realms."), + GameDetail::OwnUi::ClientGui}, {qsl("Avalon.de"), // Name qsl("avalon.mud.de"), // address to connect to 23, // port to connect on @@ -217,7 +224,34 @@ qsl("Website
" "playerkilling is an integral part of character growth, rewarding " "wit, courage, and ambition. The world continues to evolve with " "new discoveries and challenges. Come carve out your legacy in " - "Dark Mists.")}, + "Dark Mists."), + GameDetail::OwnUi::ClientGui}, + + {qsl("DreamLand"), + qsl("dreamland.rocks"), + 9000, + false, + qsl("Website
" + "Discord"), + qsl(":/icons/banner_dreamland.png"), + qsl("Two gods built Thera as a mirror copy of someone else's world. Several " + "epochs and a great many funerals later, the copy has stopped taking notes " + "and started taking lives." + "\n\n" + "23 races, 13 classes, alignment, ethos and 44 gods and cults add up to " + "over 30,000 builds, and each one plays differently. Every random drop, " + "quest reward and crafted piece sits on one power scale. Forge your own " + "blades, cut gems, ink tattoos. Endless personal quests, 56 area quests, " + "tiered mobs that call their friends and cast at you from the next room, " + "remort, and ten clans, most with skills nobody else gets." + "\n\n" + "The whole game is in English, Ukrainian and Russian: one world, and every " + "player sees it in their own language. Many of our regulars are blind, so " + "everything works with a screen reader. Mudlet gets our own interface on " + "connect: bars, chat tabs and the panels from our web client." + "\n\n" + "Dying is part of the tutorial."), + GameDetail::OwnUi::ClientGui}, {qsl("God Wars II"), qsl("godwars2.org"), @@ -279,7 +313,8 @@ qsl("Website
" "提剑跨骑挥鬼雨,白骨如山鸟惊飞。\n" "尘事如潮人如水,只叹江湖几人回。" "\n\n" - "中文开源武侠MUD炎黄群侠传,游戏包括25大门派和5大世家,正邪只在一念间;近千门武学等你学习,上百种任务随你体验;让自己成为一代宗师,江湖笑,恩怨了。")}, + "中文开源武侠MUD炎黄群侠传,游戏包括25大门派和5大世家,正邪只在一念间;近千门武学等你学习,上百种任务随你体验;让自己成为一代宗师,江湖笑,恩怨了。"), + GameDetail::OwnUi::ClientGui}, {qsl("Petria"), qsl("game.petriamud.com"), @@ -348,8 +383,7 @@ qsl("Website
" "- it's encouraged. Killing enemies earns warpoints, experience, and their " "gear. Climb the ranks. Make the topten list. Build your reputation through " "conquest. If you want the risk of PvP combined with challenging " - "environment combat, you've found your home."), - true}, // ROP loader installs its own custom interface + "environment combat, you've found your home.")}, {qsl("ZombieMUD"), qsl("zombiemud.org"), @@ -454,7 +488,8 @@ qsl("Website
" qsl(":/icons/midnightsun2.png"), qsl("Midnight Sun is a medieval fantasy LPmud that has been around since 1991. We are a " "non-PK, hack-and-slash game, cooperative rather than competitive in nature, and " - "with a strong sense of community.")}, + "with a strong sense of community."), + GameDetail::OwnUi::ClientGui}, {qsl("Luminari"), qsl("luminarimud.com"), @@ -505,7 +540,8 @@ qsl("Website
" "combat is allowed in much of the game. StickMUD was born in Finland in June 1991 " "and is now hosted in Canada. Our diverse community of players and active game " "engineers are ready to welcome new players like you to one of the best text-based " - "multi-player games ever!")}, + "multi-player games ever!"), + GameDetail::OwnUi::ClientGui}, {qsl("Clessidra"), qsl("mud.clessidra.it"), @@ -534,7 +570,8 @@ qsl("Website
" "avanzatissimo sistema di Clan che permettera' guerre e conquiste. Disponibilità di " "mercenari in caso di poca utenza, sistema di produzione/mercato per ottenere " "esclusivi oggetti, un interfaccia grafica per aiutarti a giocare, sia per i novizi " - "che gli esperti. Un MUD che si evolve di continuo.")}, + "che gli esperti. Un MUD che si evolve di continuo."), + GameDetail::OwnUi::ClientGui}, {qsl("Reinos de Leyenda"), qsl("reinosdeleyenda.es"), @@ -583,7 +620,8 @@ qsl("Website
" "completamente de los dioses- y unirte a uno de los reinos que los jugadores se " "encargan de gobernar para explorar un mundo viviente, sumergirte en los misterios " "del océano, dar forma a tu legado, forjar maravillas olvidadas para ti -o tus " - "aliados- y luchar por fe, gloria o dinero.")}, + "aliados- y luchar por fe, gloria o dinero."), + GameDetail::OwnUi::ClientGui}, {qsl("Fierymud"), qsl("fierymud.org"), @@ -595,14 +633,20 @@ qsl("Website
" "players. This new reborne Fiery is a hope to bring back the goals of the past by " "inflicting certain death on unsuspecting players. FieryMUD will continue to grow " "and change through the coming years and those players who seek challenge and " - "possess imagination will come in search of what the 3D world fails to offer them.")}, - + "possess imagination will come in search of what the 3D world fails to offer them."), + GameDetail::OwnUi::ClientGui}, + + // Deliberately without artwork: the connection dialog draws an entry only as its artwork, so this + // testing aid (it needs Busted, which players lack) is listed and selectable yet invisible, while a + // developer can reach it with --profile="Mudlet self-test" or from "My games" in a debug build. + // An icon or a generated name plate would show it to everybody. + // See https://github.com/Mudlet/Mudlet/issues/6443 {qsl("Mudlet self-test"), qsl("mudlet.org"), 23, false, qsl("www.mudlet.org"), - QString(), // TODO: https://github.com/Mudlet/Mudlet/issues/6443 + QString(), // empty on purpose - see the note above qsl("This isn't a game profile, but a special one for testing Mudlet itself using " "Busted. You can also use it as a starting point to create automated tests for your " "own profiles!")}, @@ -654,7 +698,7 @@ qsl("Website
" qsl(":/icons/carrionfields.png"), qsl("Carrion Fields is a unique blend of high-caliber roleplay and complex, hardcore " "player-versus-player combat that has been running continuously, and 100% free, " - "for over 25 years." + "for over 30 years." "\n\n" "Choose from among 21 races, 17 highly customizable classes, and several cabals " "and religions to suit your playstyle and the story you want to tell. Our " @@ -663,10 +707,10 @@ qsl("Website
" "\n\n" "We like to think of ourselves as the Dark Souls of MUDs, with a community that " "is supportive of new players - unforgiving though our world may be. Join us for a " - "real challenge and real rewards: adrenalin-pumping battles, memorable quests run " + "real challenge and real rewards: adrenaline-pumping battles, memorable quests run " "by our volunteer immortal staff, and stories that will stick with you for a " "lifetime."), - true}, // CF-loader installs CFGUI + GameDetail::OwnUi::BundledLoader}, // CF-loader installs CFGUI {qsl("Cleft of Dimensions"), qsl("cleftofdimensions.net"), @@ -691,7 +735,8 @@ qsl("Website
" "\n\n" "The Cleft opened in July 2000 and has been in active development ever since. We're " "always innovating. Recent features include Discord integration " - "and areas written with artificial intelligence. Check us out!")}, + "and areas written with artificial intelligence. Check us out!"), + GameDetail::OwnUi::ClientGui}, {qsl("Legends of the Jedi"), qsl("legendsofthejedi.com"), @@ -717,7 +762,8 @@ qsl("Website
" "LOTJ offers full PVP in both ground and space combat, governed by a set of rules to " "minimize griefing and ensure that all kills have sufficient in-character cause." "\n\n" - "What role will you play? The legend awaits!")}, + "What role will you play? The legend awaits!"), + GameDetail::OwnUi::ClientGui}, {qsl("Multi-Users in Middle-earth"), qsl("mume.org"), @@ -733,7 +779,8 @@ qsl("Website
" "challenging locations across Middle-earth such as Lothlórien, the Shire, Bree, " "Rivendell, Goblin-town, Mirkwood, Dol Guldur, and the Mines of Moria. The game is " "completely at no cost to play and has been continually enhanced since its " - "inception in the fall of 1991.")}, + "inception in the fall of 1991."), + GameDetail::OwnUi::ClientGui}, {qsl("MorgenGrauen"), qsl("mud.morgengrauen.info"), @@ -765,7 +812,7 @@ qsl("Website
" "Unsere freundliche Spielerschaft hilft Dir gerne bei Deinen ersten Schritten." "\n\n" "Spiel jetzt oder nie!"), - true, // mg-loader installs MorgenGrauen's own interface + GameDetail::OwnUi::BundledLoader, // mg-loader installs MorgenGrauen's own interface {qsl("mg.mud.de"), qsl("mg.morgengrauen.info"), qsl("morgengrauen.info")}}, {qsl("Infinity"), @@ -779,7 +826,8 @@ qsl("Website
" "Infinity LPMud provides willing adventurers and questseekers with a " "venue of original ideas, mind boggling quests, and bloodcurdling " "beasts, spinning into realms of power, magic, and technology, " - "and many players with which to share your adventures.")}, + "and many players with which to share your adventures."), + GameDetail::OwnUi::ClientGui}, {qsl("Medievia"), qsl("medievia.com"), @@ -810,7 +858,7 @@ qsl("Website
" "but it is the most dynamic game ever attempted. The wind affects the ships, where " "fire spreads, and even how some critters smell you if you are upwind from them.\n\n" "Do you dare enter?"), - true}, // MedBootstrap installs MedUI + GameDetail::OwnUi::BundledLoader}, // MedBootstrap installs MedUI {qsl("Dragonfire MUD"), qsl("dragonfiremud.com"), @@ -825,7 +873,8 @@ qsl("Website
" "\n\n" "Explore realms spanning fantasy, modern, future, and shadowy secrets, hunt dragons " "for experience and loot, and discover hidden areas and guilds. Optional player " - "killing is allowed, and the community welcomes new adventurers and builders alike.")}, + "killing is allowed, and the community welcomes new adventurers and builders alike."), + GameDetail::OwnUi::ClientGui}, {qsl("Beyond the Void MUD"), qsl("voidmud.com"), @@ -841,7 +890,8 @@ qsl("Website
" "Free to play and ready for adventurers, the game emphasizes classic EverQuest " "combat in a modern text-only experience. Build a character with up to three " "classes, pursue epic quests and rebirth bonuses, and enjoy quality-of-life " - "features like a custom Mudlet UI and real-time maps.")}, + "features like a custom Mudlet UI and real-time maps."), + GameDetail::OwnUi::ClientGui}, {qsl("Pku XKX MUD"), qsl("pkuxkx.net"), @@ -876,7 +926,7 @@ qsl("Website
" "player-driven provinces." "\n\n" "Old-school depth. Modern access. New players welcome."), - true}, // icesus-loader installs Icesus' own interface + GameDetail::OwnUi::BundledLoader}, // icesus-loader installs Icesus' own interface {qsl("PhoenixMUD"), qsl("phoenixmud.net"), 4000, @@ -894,7 +944,8 @@ qsl("Website
" "fog-of-war and route-finding." "\n\n" "No payment of any kind, and character creation is open. Actively developed, with " - "a friendly community that makes room for newcomers. New players welcome.")}, + "a friendly community that makes room for newcomers. New players welcome."), + GameDetail::OwnUi::ClientGui}, }; // clang-format on };