X-Git-Url: https://ruin.nu/git/?p=hbs.git;a=blobdiff_plain;f=bs%2Ffleet.cpp;fp=bs%2Ffleet.cpp;h=01ceb2b930e0cc70c3c6e24077822b18f892bd00;hp=cd558a6ae5f2ceff39e69dfa7ef25a0813f908d0;hb=935b6de2d1428854d76acc20b1727eb4a30f9273;hpb=cb2fabf93c2f6ba8b57833309038adb972f58925 diff --git a/bs/fleet.cpp b/bs/fleet.cpp index cd558a6..01ceb2b 100644 --- a/bs/fleet.cpp +++ b/bs/fleet.cpp @@ -119,11 +119,11 @@ 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" -/* << s_Units[(*i).first].race() <<"\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" @@ -137,9 +137,10 @@ void Fleet::setUnits(UnitList& units) << 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].ETA() << "\t" << s_Units[(*i).first].type() << endl; } + */ } ////////////////////////////////////////////////////////////////////////// @@ -315,12 +316,12 @@ void Fleet::distributeLossesGains(std::vector fleets, int tick) { int fl1 = (*j)->fleet(unittype, tick - 1); float part = float(fl1) / fleet(unittype, 0) ; - int lost = totallost * part; + int lost = int(totallost * part); (*j)->setFleet(unittype, (*j)->fleet(unittype, tick - 1) + lost, tick); cerr << (*j)->name() << " gaining " << lost << " " << unittype << " since it's " << part * 100 << "% of the whole fleet, and it had : " << fl1 << " units last tick.." << endl; - lost = part * blockedFleet(unittype, 0); + lost = int(part * blockedFleet(unittype, 0)); cerr << (*j)->name() << " got " << lost << " blocked " << unittype << ", the total number of blocked ships was: " << blockedFleet(unittype, 0) << endl; @@ -331,7 +332,7 @@ void Fleet::distributeLossesGains(std::vector fleets, int tick) ////////////////////////////////////////////////////////////////////////// // -std::vector Fleet::calculateSide(std::vector fleets, int stays, int tick) +std::vector Fleet::calculateSide(std::vector fleets, int tick) { vector fl; for (vector::iterator i = fleets.begin(); i != fleets.end(); ++i) @@ -379,13 +380,13 @@ void Fleet::takeShoot(std::string unittype, int number, std::map::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) { @@ -467,7 +468,7 @@ void Fleet::takeShoot(std::string unittype, int number, std::mapfirst] << " units of type: " << j->first << "killed\n"; + //cerr << hitunits[j->first] << " units of type: " << j->first << "killed\n"; if (k <= 0) gunsleft -= maxguns; else @@ -485,13 +486,13 @@ void Fleet::takeEMP(std::string unittype, int number, std::map if (guns == 0) return; - cerr << unittype << ": with " << guns << " guns\n"; + //cerr << unittype << ": with " << guns << " guns\n"; float gunsleft = guns; for (int count = 0; count < 3; ++count)//vector::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) { @@ -532,7 +533,7 @@ void Fleet::takeEMP(std::string unittype, int number, std::map for (map::iterator j = targets.begin(); j != targets.end(); ++j) { float maxguns = float((*j->second))/total * guns; - cerr << "Now shooting at target: " << j->first << endl; + //cerr << "Now shooting at target: " << j->first << endl; double k = maxguns; @@ -548,10 +549,11 @@ void Fleet::takeEMP(std::string unittype, int number, std::map k -= float(100)/(100-eres); hits++; + hitunits[j->first]++; blockFleet(j->first, 1); } - cerr << hits << " units of type: " << j->first << " blocked\n"; + //cerr << hits << " units of type: " << j->first << " blocked\n"; if (k <= 0) gunsleft -= maxguns; else @@ -706,7 +708,7 @@ void Fleet::distributeCappedRoids(std::vector fleets, int tick) { unsigned fl1 = (*j)->score(tick - 1); float part = float(fl1) / score(0) ; - int lost = totcapped * part; + int lost = int(totcapped * part); cerr << (*j)->name() << " gaining " << lost << " " << res << " since it's " << part * 100 << "% of the whole score, and it had : " << fl1 << " score last tick.. compared to fleet total of: " << score(0) << endl; @@ -745,10 +747,10 @@ void Fleet::calculateLostStealships(string unittype, std::map int stealscore = 0; for (map::iterator i = stolen.begin(); i != stolen.end(); ++i) { - stealscore += stolen[i->first] * (s_Units[i->first].totRes() / 10.0); + stealscore += int(stolen[i->first] * (s_Units[i->first].totRes() / 10.0)); } - int lost = stealscore / (s_Units[unittype].totRes() / 10.0); + int lost = int(stealscore / (s_Units[unittype].totRes() / 10.0)); cerr << "Lost " << lost << " " << unittype << " due to stealing ships worth: " << stealscore << endl; killFleet(unittype, lost, tick); @@ -768,7 +770,7 @@ void Fleet::distributeStolenShips(std::map::iterator k = fleets.begin(); k != fleets.end(); ++k) { - int stolen = float ((*k)->fleet(i->first, tick - 1)) / totalstealers * j->second; + int stolen = int(float ((*k)->fleet(i->first, tick - 1)) / totalstealers * j->second); (*k)->addFleet(j->first, stolen, tick); } } @@ -796,7 +798,7 @@ void Fleet::calculateSalvage() continue; cerr << "(" << tick << ":" << fleet(i->first, tick) << ") "; for (map::iterator k = res.begin(); k != res.end(); ++k) - addResource(k->first, lostunits * k->second * 0.25, tick); + addResource(k->first, int(lostunits * k->second * 0.25), tick); } } }