]> ruin.nu Git - hbs.git/blobdiff - bs/bsdoc.cpp
added code so you lose ships if you steal..
[hbs.git] / bs / bsdoc.cpp
index d7e04ce336f0e3253c04af305ae94952b0942d1b..462dc75e89177eef3aed62488869e6f1da80a9c3 100644 (file)
@@ -64,9 +64,15 @@ int BSDoc::newBattle(QString name)
 {
        m_Battles[name]["Friendly"]["Home Planet"] = new Planet();;
        m_Battles[name]["Friendly"]["Home Fleet"] = new Fleet();
-       m_Battles[name]["Hostile"];
+       m_Battles[name]["Hostile"]["Evil guy"] = new Fleet();
+
+       m_Battles[name]["Friendly"]["Home Planet"]->setName("Home Planet");
+       m_Battles[name]["Friendly"]["Home Fleet"]->setName("Home Fleet");
+       m_Battles[name]["Friendly"]["Home Fleet"]->setRace("Terran");
+       m_Battles[name]["Friendly"]["Home Fleet"]->setStays(-1);
+       m_Battles[name]["Hostile"]["Evil guy"]->setName("Evil guy");
+       m_Battles[name]["Hostile"]["Evil guy"]->setETA(1);
 
-       //Planet* pl = dynamic_cast<Planet*>(m_Battles[name]["Friendly"]["Home Planet"]);
        modified = true;
        emit documentChanged();
        return 0;
@@ -146,6 +152,22 @@ void BSDoc::removeFleet(QString battle, QString group, QString fleet)
 //
 void BSDoc::runBattleSimulation()
 {
+       for(BattleList::iterator i = m_Battles.begin(); i != m_Battles.end(); ++i)
+       {
+               map<QString, vector<Fleet*> > battle;
+               for (map<QString, map<QString, Fleet*> >::iterator j = i->second.begin(); j != i->second.end(); ++j)
+               {
+                       for (map<QString, Fleet*>::iterator k = j->second.begin(); k != j->second.end(); ++k)
+                               battle[j->first].push_back(k->second);
+               }
+
+               Planet* pl = dynamic_cast<Planet*>(i->second["Friendly"]["Home Planet"]);
+
+               if (pl)
+               {
+                       pl->runBattle(battle["Friendly"], battle["Hostile"]);
+               }
+       }
 
        emit documentChanged();
 }