]> ruin.nu Git - hbs.git/blobdiff - bs/fleet.cpp
started to work on the battle report.. almost there =)
[hbs.git] / bs / fleet.cpp
index 4072788a4af0d142607e8302e2dffb89b4010d83..cd558a6ae5f2ceff39e69dfa7ef25a0813f908d0 100644 (file)
@@ -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::map<std::string, in
                                                hitunits[j->first]++;
 
                                                //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::map<std::string, in
                                                                        m_BlockedFleet[j->first][1]--;
                                                        }
                                                }
+                                               */
                                        }
 
                                }
@@ -478,7 +479,7 @@ void Fleet::takeShoot(std::string unittype, int number, std::map<std::string, in
 
 //////////////////////////////////////////////////////////////////////////
 //
-void Fleet::takeEMP(std::string unittype, int number)
+void Fleet::takeEMP(std::string unittype, int number, std::map<std::string, int>& 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;
+}