Skip to content

Commit

Permalink
Implemented Metagames attached to Generations
Browse files Browse the repository at this point in the history
  • Loading branch information
Carlos Fernandez committed Nov 11, 2010
1 parent 3703fda commit 6bfcc12
Show file tree
Hide file tree
Showing 14 changed files with 556 additions and 320 deletions.
37 changes: 22 additions & 15 deletions nbproject/project.xml
Original file line number Diff line number Diff line change
@@ -1,15 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.cnd.makeproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/make-project/1">
<name>ShoddyBattle2</name>
<make-project-type>0</make-project-type>
<c-extensions>c</c-extensions>
<cpp-extensions>cpp</cpp-extensions>
<header-extensions>h</header-extensions>
<sourceEncoding>UTF-8</sourceEncoding>
<make-dep-projects/>
</data>
</configuration>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
<type>org.netbeans.modules.cnd.makeproject</type>
<configuration>
<data xmlns="http://www.netbeans.org/ns/make-project/1">
<name>ShoddyBattle2</name>
<make-project-type>0</make-project-type>
<c-extensions>c</c-extensions>
<cpp-extensions>cpp</cpp-extensions>
<header-extensions>h</header-extensions>
<sourceEncoding>UTF-8</sourceEncoding>
<make-dep-projects/>
<sourceRootList>
<sourceRootElem>src</sourceRootElem>
</sourceRootList>
<confList>
<confElem>Debug</confElem>
<confElem>Release</confElem>
</confList>
</data>
</configuration>
</project>
232 changes: 126 additions & 106 deletions resources/metagames.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,111 +2,131 @@
This file specifies the definitions for the various metagames that can be
played using the matchmaking facility on the server.
-->
<generations>

<generation id="gen4">
<name>Generation 4</name>
<metagames>
<metagame id="standard">
<name>Standard</name>
<description>Standard OU metagame.</description>
<party-size>1</party-size>
<team-length>6</team-length>
<ban-list>
<pokemon>Arceus</pokemon>
<pokemon>Darkrai</pokemon>
<pokemon>Deoxys</pokemon>
<pokemon>Deoxys-e</pokemon>
<pokemon>Deoxys-l</pokemon>
<pokemon>Deoxys-f</pokemon>
<pokemon>Dialga</pokemon>
<pokemon>Garchomp</pokemon>
<pokemon>Giratina</pokemon>
<pokemon>Giratina-o</pokemon>
<pokemon>Groudon</pokemon>
<pokemon>Ho-oh</pokemon>
<pokemon>Kyogre</pokemon>
<pokemon>Latios</pokemon>
<pokemon>Lugia</pokemon>
<pokemon>Manaphy</pokemon>
<pokemon>Mew</pokemon>
<pokemon>Mewtwo</pokemon>
<pokemon>Palkia</pokemon>
<pokemon>Rayquaza</pokemon>
<pokemon>Shaymin-s</pokemon>
<pokemon>Wobbuffet</pokemon>
<pokemon>Wynaut</pokemon>
</ban-list>
<clauses>
<clause>Classic Sleep Clause</clause>
<clause>OHKO Clause</clause>
<clause>Classic Freeze Clause</clause>
<clause>Strict Damage Clause</clause>
<clause>Evasion Clause</clause>
<clause>Griseous Orb Limitation</clause>
</clauses>
<timer>
<pool>300</pool>
<periods>3</periods>
<periodLength>30</periodLength>
</timer>
</metagame>

<metagames>
<metagame id="uber">
<name>Uber</name>
<description>Uber metagame.</description>
<party-size>1</party-size>
<team-length>6</team-length>
<ban-list>
</ban-list>
<clauses>
<clause>Classic Sleep Clause</clause>
<clause>OHKO Clause</clause>
<clause>Classic Freeze Clause</clause>
<clause>Strict Damage Clause</clause>
<clause>Evasion Clause</clause>
<clause>Griseous Orb Limitation</clause>
</clauses>
<timer>
<pool>300</pool>
<periods>3</periods>
<periodLength>30</periodLength>
</timer>
</metagame>

<metagame>
<name>Standard</name>
<id>standard</id> <!-- used for table names -->
<description>Standard OU metagame with Uber pokemon banned.</description>
<party-size>1</party-size>
<team-length>6</team-length>
<ban-list>
<pokemon>Arceus</pokemon>
<pokemon>Darkrai</pokemon>
<pokemon>Deoxys</pokemon>
<pokemon>Deoxys-e</pokemon>
<pokemon>Deoxys-l</pokemon>
<pokemon>Deoxys-f</pokemon>
<pokemon>Dialga</pokemon>
<pokemon>Garchomp</pokemon>
<pokemon>Giratina</pokemon>
<pokemon>Giratina-o</pokemon>
<pokemon>Groudon</pokemon>
<pokemon>Ho-oh</pokemon>
<pokemon>Kyogre</pokemon>
<pokemon>Latios</pokemon>
<pokemon>Lugia</pokemon>
<pokemon>Manaphy</pokemon>
<pokemon>Mew</pokemon>
<pokemon>Mewtwo</pokemon>
<pokemon>Palkia</pokemon>
<pokemon>Rayquaza</pokemon>
<pokemon>Shaymin-s</pokemon>
<pokemon>Wobbuffet</pokemon>
<pokemon>Wynaut</pokemon>
</ban-list>
<clauses>
<clause>Classic Sleep Clause</clause>
<clause>OHKO Clause</clause>
<clause>Classic Freeze Clause</clause>
<clause>Strict Damage Clause</clause>
<clause>Evasion Clause</clause>
<clause>Griseous Orb Limitation</clause>
</clauses>
<timer>
<pool>300</pool>
<periods>3</periods>
<periodLength>30</periodLength>
</timer>
</metagame>

<metagame>
<name>Uber</name>
<id>uber</id>
<description>Uber metagame.</description>
<party-size>1</party-size>
<team-length>6</team-length>
<ban-list>
</ban-list>
<clauses>
<clause>Classic Sleep Clause</clause>
<clause>OHKO Clause</clause>
<clause>Classic Freeze Clause</clause>
<clause>Strict Damage Clause</clause>
<clause>Evasion Clause</clause>
<clause>Griseous Orb Limitation</clause>
</clauses>
<timer>
<pool>300</pool>
<periods>3</periods>
<periodLength>30</periodLength>
</timer>
</metagame>

<!-- This was added to test the challenge options better. Keep it or don't -->
<metagame>
<name>VGC</name>
<id>vgc</id>
<description>Basic VGC rules</description>
<party-size>2</party-size>
<team-length>4</team-length>
<ban-list>
<pokemon>Arceus</pokemon>
<pokemon>Celebi</pokemon>
<pokemon>Darkrai</pokemon>
<pokemon>Deoxys</pokemon>
<pokemon>Deoxys-e</pokemon>
<pokemon>Deoxys-l</pokemon>
<pokemon>Deoxys-f</pokemon>
<pokemon>Jirachi</pokemon>
<pokemon>Manaphy</pokemon>
<pokemon>Phione</pokemon>
<pokemon>Shaymin</pokemon>
<pokemon>Mew</pokemon>
</ban-list>
<clauses>
<clause>Species Clause</clause>
<clause>Item Clause</clause>
<clause>Soul Dew Clause</clause>
<clause>Strict Damage Clause</clause>
<clause>Griseous Orb Limitation</clause>
</clauses>
<timer>
<pool>300</pool>
<periods>3</periods>
<periodLength>30</periodLength>
</timer>
</metagame>

</metagames>
<metagame id="vgc">
<name>VGC</name>
<description>Basic VGC rules</description>
<party-size>2</party-size>
<team-length>4</team-length>
<ban-list>
<pokemon>Arceus</pokemon>
<pokemon>Celebi</pokemon>
<pokemon>Darkrai</pokemon>
<pokemon>Deoxys</pokemon>
<pokemon>Deoxys-e</pokemon>
<pokemon>Deoxys-l</pokemon>
<pokemon>Deoxys-f</pokemon>
<pokemon>Jirachi</pokemon>
<pokemon>Manaphy</pokemon>
<pokemon>Phione</pokemon>
<pokemon>Shaymin</pokemon>
<pokemon>Mew</pokemon>
</ban-list>
<clauses>
<clause>Species Clause</clause>
<clause>Item Clause</clause>
<clause>Soul Dew Clause</clause>
<clause>Strict Damage Clause</clause>
<clause>Griseous Orb Limitation</clause>
</clauses>
<timer>
<pool>300</pool>
<periods>3</periods>
<periodLength>30</periodLength>
</timer>
</metagame>
</metagames>
</generation>
<generation id="testGen">
<name>Super Test</name>
<metagames>
<metagame id="best">
<name>Best Uber</name>
<description>BEST Uber metagame.</description>
<party-size>1</party-size>
<team-length>6</team-length>
<ban-list>
</ban-list>
<clauses>
<clause>OHKO Clause</clause>
</clauses>
<timer>
<pool>300</pool>
<periods>3</periods>
<periodLength>30</periodLength>
</timer>
</metagame>
</metagames>
</generation>
</generations>
9 changes: 2 additions & 7 deletions src/database/DatabaseRegistry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -377,14 +377,9 @@ double DatabaseRegistry::getRatingEstimate(const int id, const std::string &ladd
}

DatabaseRegistry::ESTIMATE_LIST DatabaseRegistry::getEstimates(const int id,
const std::vector<MetagamePtr> &metagames) {
const std::vector<GenerationPtr> &metagames) {
ESTIMATE_LIST list;
vector<MetagamePtr>::const_iterator i = metagames.begin();
for(; i != metagames.end(); ++i) {
MetagamePtr p = *i;
double estimate = getRatingEstimate(id, p->getId());
list.push_back(ESTIMATE_ELEMENT(p->getIdx(), estimate));
}
// TODO: Think on the format of ladder stats. Until then, return blank
return list;
}

Expand Down
2 changes: 1 addition & 1 deletion src/database/DatabaseRegistry.h
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ class DatabaseRegistry {
* Get a user's ladder estimates
*/
ESTIMATE_LIST getEstimates(const int id,
const std::vector<MetagamePtr> &metagames);
const std::vector<GenerationPtr> &metagames);

/**
* Initialise the tables required for a ladder.
Expand Down
6 changes: 4 additions & 2 deletions src/main/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,7 @@ int initialise(int argc, char **argv, bool &daemon) {

network::Server server(port, userLimit);
server.installSignalHandlers();
server.readMetagames("resources/metagames.xml");

ScriptMachine *machine = server.getMachine();
machine->acquireContext()->runFile("resources/main.js");
Expand All @@ -306,10 +307,11 @@ int initialise(int argc, char **argv, bool &daemon) {
}

registry->createDefaultDatabase();

server.initialiseWelcomeMessage(serverName, welcomeMessage);
server.initialiseChannels();
server.initialiseMatchmaking("resources/metagames.xml");
server.initialiseMetagames();
server.initialiseMatchmaking();
server.initialiseClauses();

network::NetworkBattle::startTimerThread();
Expand Down
Loading

0 comments on commit 6bfcc12

Please sign in to comment.