X-Git-Url: https://ruin.nu/git/?p=hbs.git;a=blobdiff_plain;f=bs%2Ffleet.cpp;h=2daa5cf052920866b68d158819a42e7a23c554d9;hp=f0fb8e1dee9d07d45c42c8d0784d65d6f8b5c907;hb=d1b57a078d3edb148f8b6ec61944a0b852a4bf94;hpb=2fd4fff0f5eef1d64527b202924f16f2242691dc diff --git a/bs/fleet.cpp b/bs/fleet.cpp index f0fb8e1..2daa5cf 100644 --- a/bs/fleet.cpp +++ b/bs/fleet.cpp @@ -118,7 +118,7 @@ void Fleet::setUnits(UnitList& units) s_Units = units; - +/* for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); i++) { cerr << s_Units[(*i).first].Name() << "\t\t" @@ -140,6 +140,7 @@ void Fleet::setUnits(UnitList& units) << s_Units[(*i).first].type() << endl; } + */ } ////////////////////////////////////////////////////////////////////////// @@ -235,16 +236,21 @@ void Fleet::distributeLossesGains(std::vector fleets, int tick = 0) for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); ++i) { string unittype = i->first; + + cerr << "Distributing type: " << unittype << endl; + if (m_Fleet[unittype].size() < 1) - break; - if (m_Fleet[unittype][0] == 0) - break; + continue; + if (m_Fleet[unittype][0] == 0) + continue; int totallost = m_Fleet[unittype][1] - m_Fleet[unittype][0]; + for (vector::iterator j = fleets.begin(); j != fleets.end(); ++j) { int lost = totallost * ( (*j)->fleet(unittype, tick - 1) / m_Fleet[unittype][0] ); + cerr << (*j)->name() << " gaining " << lost << " " << unittype << endl; (*j)->setFleet(unittype, (*j)->fleet(unittype, tick - 1) + lost, tick); } } @@ -258,7 +264,10 @@ std::vector Fleet::calculateSide(std::vector fleets, int stays = for (vector::iterator i = fleets.begin(); i != fleets.end(); ++i) { if (( tick - (*i)->ETA()) >= 0 && (tick - (*i)->ETA()) < stays) + { fl.push_back((*i)); + cerr << "Using fleet " << (*i)->name() << " for tick " << tick; + } else if ((*i)->name() == "Home Planet") fl.push_back((*i)); } @@ -442,3 +451,19 @@ int Fleet::resource(std::string type, int tick = 0) const return resource->at(tick); } +////////////////////////////////////////////////////////////////////////// +// +void Fleet::printFleet() +{ + for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); ++i) + { + for (int tick = 0; tick < 5 ;++tick) + { + int num = fleet(i->first, tick); + + if (num <= 0) + break; + cerr << num << " " << i->first << " during tick: " << tick << endl; + } + } +}