return;
int skipped = 0;
+
+ for (vector<Fleet*>::iterator i = friendly.begin(); i != friendly.end(); ++i)
+ (*i)->resetResources();
+
+ for (vector<Fleet*>::iterator i = hostile.begin(); i != hostile.end(); ++i)
+ (*i)->resetResources();
+
for(int tick = 1; skipped < 20; ++tick)
{
//See who's in the battle at the current tick
//Reset roids
for (RoidList::iterator roid = m_Roids.begin(); roid != m_Roids.end(); ++roid)
+ {
setRoids(roid->first, roids(roid->first, tick-1), tick);
+ }
setPlanetScore(planetScore(tick - 1), tick);
allFriends.distributeLossesGains(friends, tick);
- allHostiles.addPodsForLostRoids();
allHostiles.distributeLossesGains(hostiles, tick);
allHostiles.distributeCappedRoids(hostiles, tick);
//
void Planet::calcOneTick(Planet* friendly, Fleet* hostile, std::map<std::string, std::map<std::string, int> >& stealfriendly, std::map<std::string, std::map<std::string, int> >& stealhostile, int tick = 1)
{
+ if (planetScore(tick - 1) > 0)
+ setCapping(float(planetScore(tick - 1)) / hostile->score() / 10, tick);
+ else
+ setCapping(0, tick);
+
+ map<string, int> pods;
+
+
map<int, string> unitsinit; // order units after their ininitiative
for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); ++i)
unitsinit[i->second.initiative()] = i->first;
if (s_Units[unittype].type() == "Pod")
{
- if (planetScore(tick - 1) > 0)
- {
- setCapping(float(planetScore(tick - 1)) / hostile->score() / 10, tick);
-
- cerr << "Capping is: " << capping(tick) << endl;
+ cerr << "Capping is: " << capping(tick) << endl;
- if (capping(tick) > 0)
+ if (capping(tick) > 0)
+ {
+ for (RoidList::iterator roid = m_Roids.begin(); roid != m_Roids.end(); ++roid)
{
- for (RoidList::iterator roid = m_Roids.begin(); roid != m_Roids.end(); ++roid)
- {
- int caproids = capping(tick) * roids(roid->first, tick - 1);
- int freepods = hostiletemp->freeFleet(unittype, 1);
+ int caproids = capping(tick) * roids(roid->first, tick - 1);
+ int freepods = hostiletemp->freeFleet(unittype, 1);
- cerr << "Possible to steal " << caproids << " " << roid->first << " roids\n";
- cerr << freepods << " free pods available\n";
-
- if (freepods <= 0)
- break;
- if (freepods < caproids)
- caproids = freepods;
+ cerr << "Possible to steal " << caproids << " " << roid->first << " roids\n";
+ cerr << freepods << " free pods available\n";
+
+ if (freepods <= 0)
+ break;
+ if (freepods < caproids)
+ caproids = freepods;
- cerr << caproids << " roids stolen\n";
+ cerr << caproids << " roids stolen\n";
- takeRoids(roid->first, caproids, tick);
+ takeRoids(roid->first, caproids, tick);
- //FIXME: Going to move this to the distribute roids section instead.. Not really move, I'll keep this, but "regenerate" the pods in the distribute ships function.
- hostiletemp->killFleet(unittype, caproids, 1);
- //int totroids = caproids + hostiletemp->resource(roid->first, 0);
- hostiletemp->addResource(roid->first, caproids, 1);
+ //FIXME: Going to move this to the distribute roids section instead.. Not really move, I'll keep this, but "regenerate" the pods in the distribute ships function.
+ hostiletemp->killFleet(unittype, caproids, 1);
+ pods[unittype] += caproids;
+ //int totroids = caproids + hostiletemp->resource(roid->first, 0);
+ hostiletemp->addResource(roid->first, caproids, 1);
- cerr << caproids << " stolen " << roid->first << " roids\n";
- }
+ cerr << caproids << " stolen " << roid->first << " roids\n";
}
}
}
*hostile = *hostiletemp;
delete hostiletemp;
}
+ hostile->addFleet(pods, 1);
+
}
//////////////////////////////////////////////////////////////////////////