/***************************************************************************
- fleet.cpp - description
- -------------------
- begin : Tue Jan 22 2002
- copyright : (C) 2002 by Michael Andreen
- email : whale@linux.nu
+ fleet.cpp - description
+ -------------------
+begin : Tue Jan 22 2002
+copyright : (C) 2002 by Michael Andreen
+email : whale@linux.nu
***************************************************************************/
/***************************************************************************
{
s_Units = units;
-
-/*
- for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); i++)
- {
- cerr << s_Units[(*i).first].Name() << "\t\t"
- << s_Units[(*i).first].race() <<"\t"
- << s_Units[(*i).first].unitClass() << "\t"
- << s_Units[(*i).first].target(0) << "\t"
- << s_Units[(*i).first].target(1) << "\t"
- << s_Units[(*i).first].target(2) << "\t"
- << s_Units[(*i).first].initiative() << "\t"
- << s_Units[(*i).first].agility() << "\t"
- << s_Units[(*i).first].weaponSpeed() << "\t"
- << s_Units[(*i).first].guns() << "\t"
- << s_Units[(*i).first].power() << "\t"
- << s_Units[(*i).first].armor() << "\t"
- << s_Units[(*i).first].EMP() << "\t"
- << s_Units[(*i).first].totRes() << "\t"
- << s_Units[(*i).first].fuel() << "\t"
- << s_Units[(*i).first].ETA() << "\t"
- << s_Units[(*i).first].type() << endl;
- }
-*/
+
+ /*
+ for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); i++)
+ {
+ cerr << s_Units[(*i).first].Name() << "\t\t"
+ << s_Units[(*i).first].race() <<"\t"
+ << s_Units[(*i).first].unitClass() << "\t"
+ << s_Units[(*i).first].target(0) << "\t"
+ << s_Units[(*i).first].target(1) << "\t"
+ << s_Units[(*i).first].target(2) << "\t"
+ << s_Units[(*i).first].initiative() << "\t"
+ << s_Units[(*i).first].agility() << "\t"
+ << s_Units[(*i).first].weaponSpeed() << "\t"
+ << s_Units[(*i).first].guns() << "\t"
+ << s_Units[(*i).first].power() << "\t"
+ << s_Units[(*i).first].armor() << "\t"
+ << s_Units[(*i).first].EMP() << "\t"
+ << s_Units[(*i).first].totRes() << "\t"
+ << s_Units[(*i).first].fuel() << "\t"
+ << s_Units[(*i).first].ETA() << "\t"
+ << s_Units[(*i).first].type() << endl;
+ }
+ */
}
//////////////////////////////////////////////////////////////////////////
}
//////////////////////////////////////////////////////////////////////////
-//FIXME
+//
void Fleet::addToThis(std::vector<Fleet*> fleets, int tick = 0)
{
for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); ++i)
{
if (m_Fleet[i->first].size() == 0)
- m_Fleet[i->first].push_back(0);
+ m_Fleet[i->first].push_back(0);
for (vector<Fleet*>::iterator j = fleets.begin(); j != fleets.end(); ++j)
{
if (m_Fleet[unittype].size() < 1)
continue;
- if (m_Fleet[unittype][0] == 0)
+ if (m_Fleet[unittype][0] == 0)
continue;
-
+
int totallost = fleet(unittype,1) - fleet(unittype, 0);
cerr << "Distributing type: " << unittype << " with a total loss of " << totallost << " units" << endl;
cerr << "Total number of units before: " << fleet(unittype, 0) << " and after : " << fleet(unittype, 1) << endl;
-
+
for (vector<Fleet*>::iterator j = fleets.begin(); j != fleets.end(); ++j)
{
int fl1 = (*j)->fleet(unittype, tick - 1);
float guns = s_Units[unittype].guns() * number;
-
+
if (guns == 0)
return;
for (int count = 0; count < 3; ++count)//vector<string>::iterator i = s_Units[unittype].target().begin(); i != s_Units[unittype].target().end(); ++i)
{
string ta = s_Units[unittype].target(count);
- cerr << "Shooting at target class: " << ta << endl;
+ cerr << "Shooting at target class: " << ta << endl;
while (gunsleft > 0)
{
-
+
map<string, int*> targets;
for (UnitList::iterator j = s_Units.begin(); j != s_Units.end(); ++j)
{
-
if (m_Fleet[j->first].size() == 0)
continue;
if (m_Fleet[j->first][1] > 0 && ( ta == j->second.unitClass() || ta == "All"))
{
- // cerr << "Looking at target: " << j->first << endl;
+ // cerr << "Looking at target: " << j->first << endl;
targets[j->first] = &m_Fleet[j->first][1];
}
-
}
if (targets.size() == 0)
m_Armor[j->first] = s_Units[j->first].armor();
(*j->second)--;
hitunits[j->first]++;
-
+
//There is a chance that we're hitting a blocked ship.
if (m_BlockedFleet[j->first].size() >= 1)
{
int test = rand() % m_BlockedFleet[j->first][0];
if (test == 1
- && m_BlockedFleet[j->first][0] > 0)
+ && m_BlockedFleet[j->first][0] > 0)
{
if (m_BlockedFleet[j->first].size() == 1)
m_BlockedFleet[j->first].push_back(m_BlockedFleet[j->first][0] - 1);
for (int count = 0; count < 3; ++count)//vector<string>::iterator i = s_Units[unittype].target().begin(); i != s_Units[unittype].target().end(); ++i)
{
string ta = s_Units[unittype].target(count);
- cerr << "Shooting at target class: " << ta << endl;
+ cerr << "Shooting at target class: " << ta << endl;
while (gunsleft > 0)
{
-
+
map<string, int*> targets;
for (UnitList::iterator j = s_Units.begin(); j != s_Units.end(); ++j)
if (m_Fleet[j->first][1] > 0 && ( ta == j->second.unitClass() || ta == "All"))
{
- // cerr << "Looking at target: " << j->first << endl;
+ // cerr << "Looking at target: " << j->first << endl;
targets[j->first] = &m_Fleet[j->first][1];
}
if (m_Resources[res].size() < 2)
continue;
- if (m_Resources[res][1] == 0)
+ if (m_Resources[res][1] == 0)
continue;
-
+
int totcapped = resource(res,1) - resource(res, 0);
cerr << "Distributing type: " << res << " with a total gain of " << totcapped << " roids" << endl;
cerr << "Total number of roids before: " << resource(res, 0) << " and after : " << resource(res, 1) << endl;
-
+
for (vector<Fleet*>::iterator j = fleets.begin(); j != fleets.end(); ++j)
{
unsigned fl1 = (*j)->score(tick - 1);
{
for (FleetList::iterator i = m_Fleet.begin(); i != m_Fleet.end(); ++i)
{
-
+
map<string, int> res = s_Units[i->first].resources();
if (i->second.size() > 0)