X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=bs%2Ffleet.cpp;h=cd558a6ae5f2ceff39e69dfa7ef25a0813f908d0;hb=cb2fabf93c2f6ba8b57833309038adb972f58925;hp=4072788a4af0d142607e8302e2dffb89b4010d83;hpb=20b89dab5346f13dc17b368b92de89eebf00ac11;p=hbs.git diff --git a/bs/fleet.cpp b/bs/fleet.cpp index 4072788..cd558a6 100644 --- a/bs/fleet.cpp +++ b/bs/fleet.cpp @@ -119,28 +119,27 @@ 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].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; + 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; } - */ } ////////////////////////////////////////////////////////////////////////// @@ -450,6 +449,7 @@ void Fleet::takeShoot(std::string unittype, int number, std::mapfirst]++; //There is a chance that we're hitting a blocked ship. + /*Not anymore.. if (m_BlockedFleet[j->first].size() >= 1) { int test = rand() % m_BlockedFleet[j->first][0]; @@ -462,6 +462,7 @@ void Fleet::takeShoot(std::string unittype, int number, std::mapfirst][1]--; } } + */ } } @@ -478,7 +479,7 @@ void Fleet::takeShoot(std::string unittype, int number, std::map& hitunits) { int guns = s_Units[unittype].guns() * number; if (guns == 0) @@ -817,3 +818,53 @@ void Fleet::resetTicks() } resetResources(); } + +////////////////////////////////////////////////////////////////////////// +// +int Fleet::freePodGuns(int tick) +{ + int guns = 0; + for (FleetList::const_iterator i = m_Fleet.begin(); i != m_Fleet.end(); ++i) + { + if (s_Units[i->first].type() == "Pod") + { + guns += freeFleet(i->first, tick) * s_Units[i->first].guns(); + } + } + guns -= usedPodGuns(tick); + return guns; +} + +////////////////////////////////////////////////////////////////////////// +// +int Fleet::usedPodGuns(int tick) const +{ + int ticks = m_UsedPodGuns.size(); + + if (ticks == 0) + return 0; + + if (tick < 0) + return m_UsedPodGuns[0]; + + --ticks; + + if (ticks < tick) + return m_UsedPodGuns[ticks]; + + return m_UsedPodGuns[tick]; + +} + +////////////////////////////////////////////////////////////////////////// +// +void Fleet::usePodGuns(int tick, int guns) +{ + int ticks = m_UsedPodGuns.size(); + + for (int i = ticks; i <= tick; ++i) + { + m_UsedPodGuns.push_back(0); + } + m_UsedPodGuns[tick] += guns; +}