fl->setETA(m_InfoView->eta());
fl->setName(m_sFleet.latin1());
fl->setRace(m_InfoView->race().latin1());
+ fl->setStays(m_InfoView->stays());
m_doc->newFleet(m_sBattle, m_sGroup, m_sFleet, fl);
}
fl->setETA(m_InfoView->eta());
fl->setName(m_sFleet.latin1());
fl->setRace(m_InfoView->race().latin1());
+ fl->setStays(m_InfoView->stays());
m_doc->newFleet(m_sBattle, m_sGroup, m_sFleet, fl);
m_InfoView->setEta(fl->ETA());
m_InfoView->setGroup(m_sGroup);
m_InfoView->setBattle(m_sBattle);
+ m_InfoView->setStays(fl->stays());
}
//////////////////////////////////////////////////////////////////////////
Fleet::Fleet()
{
m_iETA = 0;
+ m_iStays = 3;
m_sRace = "Cathaar";
}
vector<Fleet*> fl;
for (vector<Fleet*>::iterator i = fleets.begin(); i != fleets.end(); ++i)
{
- if (( tick - (*i)->ETA()) >= 0 && (tick - (*i)->ETA()) < stays)
+ if (( tick - (*i)->ETA()) >= 0 && (tick - (*i)->ETA()) < (*i)->stays())
{
fl.push_back((*i));
cerr << "Using fleet " << (*i)->name() << " for tick " << tick << endl;
}
- else if ((*i)->name() == "Home Planet")
+ else if ((*i)->stays() < 0)
fl.push_back((*i));
}
return fl;
//////////////////////////////////////////////////////////////////////////
//
-
void Fleet::addFleet(std::map<string, int> units, int tick = 0)
{
for (map<string, int>::iterator i = units.begin(); i != units.end(); ++i)
addFleet(i->first, i->second, tick);
}
+
+//////////////////////////////////////////////////////////////////////////
+//
+int Fleet::stays() const
+{
+ return m_iStays;
+}
+
+//////////////////////////////////////////////////////////////////////////
+//
+void Fleet::setStays(int ticks)
+{
+ m_iStays = ticks;
+}
+
+//////////////////////////////////////////////////////////////////////////
+//
+void Fleet::calculateLostStealships(string unittype, std::map<std::string, int> stolen, int tick = 1)
+{
+ int stealscore = 0;
+ for (map<string, int>::iterator i = stolen.begin(); i != stolen.end(); ++i)
+ {
+ stealscore += stolen[i->first] * (s_Units[i->first].totRes() / 10.0);
+ }
+
+ int lost = stealscore / (s_Units[unittype].totRes() / 10.0);
+
+ cerr << "Lost " << lost << " " << unittype << " due to stealing ships worth: " << stealscore << endl;
+ killFleet(unittype, lost, tick);
+}
Planet::Planet()
{
m_sRace = "Planet";
+ m_iStays = -1;
}
Planet::~Planet(){
map<string, int> pods;
+ //FIXME: Need to change this and allow multiple shiptypes with the same initiative.
map<int, string> unitsinit; // order units after their ininitiative
for (UnitList::iterator i = s_Units.begin(); i != s_Units.end(); ++i)
unitsinit[i->second.initiative()] = i->first;
{
hostiletemp->takeShoot(unittype, friendly->freeFleet(unittype, 1), stealfriendly[unittype]);
friendlytemp->takeShoot(unittype, hostile->freeFleet(unittype, 1), stealhostile[unittype]);
+
+ friendlytemp->calculateLostStealships(unittype, stealfriendly[unittype], 1);
+ hostiletemp->calculateLostStealships(unittype, stealhostile[unittype], 1);
}
else
{
if (s_Units[unittype].type() == "Pod")
{
+ //FIXME: Prolly need to recode the whole capping section for r7, due to multiple pods thingy
cerr << "Capping is: " << capping(tick) << endl;
if (capping(tick) > 0)
<property name="geometry">
<rect>
<x>0</x>
- <y>0</y>
+ <y>4</y>
<width>267</width>
- <height>198</height>
+ <height>221</height>
</rect>
</property>
<property name="sizePolicy">
<property name="maximumSize">
<size>
<width>32767</width>
- <height>200</height>
+ <height>221</height>
</size>
</property>
<property name="caption">
<cstring>unnamed</cstring>
</property>
<property name="margin">
- <number>3</number>
+ <number>0</number>
</property>
<property name="spacing">
- <number>2</number>
+ <number>0</number>
</property>
<widget class="QLabel" row="1" column="0">
<property name="name">
<enum>NoInsertion</enum>
</property>
</widget>
- <widget class="QLabel" row="5" column="0">
- <property name="name">
- <cstring>RaceLabel</cstring>
- </property>
- <property name="text">
- <string>&Race</string>
- </property>
- <property name="buddy" stdset="0">
- <cstring>RaceCombo</cstring>
- </property>
- </widget>
- <widget class="QLineEdit" row="3" column="1" rowspan="1" colspan="2">
- <property name="name">
- <cstring>NameLine</cstring>
- </property>
- </widget>
- <widget class="QLabel" row="3" column="0">
- <property name="name">
- <cstring>NameLabel</cstring>
- </property>
- <property name="text">
- <string>Na&me</string>
- </property>
- <property name="buddy" stdset="0">
- <cstring>NameLine</cstring>
- </property>
- </widget>
- <widget class="QComboBox" row="5" column="1" rowspan="1" colspan="2">
- <property name="name">
- <cstring>RaceCombo</cstring>
- </property>
- </widget>
- <widget class="QLabel" row="4" column="0">
- <property name="name">
- <cstring>EtaLabel</cstring>
- </property>
- <property name="text">
- <string>E&ta</string>
- </property>
- <property name="buddy" stdset="0">
- <cstring>EtaSpin</cstring>
- </property>
- </widget>
- <widget class="QSpinBox" row="4" column="1" rowspan="1" colspan="2">
- <property name="name">
- <cstring>EtaSpin</cstring>
- </property>
- </widget>
- <spacer row="2" column="2">
- <property name="name" stdset="0">
- <cstring>Spacer3</cstring>
- </property>
- <property name="orientation">
- <enum>Vertical</enum>
- </property>
- <property name="sizeType">
- <enum>Expanding</enum>
- </property>
- <property name="sizeHint">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- <widget class="QLayoutWidget" row="7" column="0" rowspan="1" colspan="3">
+ <widget class="QLayoutWidget" row="8" column="0" rowspan="1" colspan="3">
<property name="name">
<cstring>Layout13</cstring>
</property>
</property>
</widget>
<spacer>
- <property name="name" stdset="0">
+ <property name="name">
<cstring>Spacer1</cstring>
</property>
<property name="orientation">
<property name="sizeType">
<enum>Expanding</enum>
</property>
- <property name="sizeHint">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
- </property>
</spacer>
<widget class="QPushButton">
<property name="name">
</widget>
</hbox>
</widget>
- <spacer row="6" column="1">
- <property name="name" stdset="0">
+ <spacer row="7" column="1">
+ <property name="name">
<cstring>Spacer4</cstring>
</property>
<property name="orientation">
<property name="sizeType">
<enum>Expanding</enum>
</property>
- <property name="sizeHint">
- <size>
- <width>20</width>
- <height>20</height>
- </size>
+ </spacer>
+ <widget class="QLabel" row="6" column="0">
+ <property name="name">
+ <cstring>RaceLabel</cstring>
+ </property>
+ <property name="text">
+ <string>&Race</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>RaceCombo</cstring>
+ </property>
+ </widget>
+ <widget class="QComboBox" row="6" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>RaceCombo</cstring>
+ </property>
+ </widget>
+ <spacer row="2" column="2">
+ <property name="name">
+ <cstring>Spacer3</cstring>
+ </property>
+ <property name="orientation">
+ <enum>Vertical</enum>
+ </property>
+ <property name="sizeType">
+ <enum>Expanding</enum>
</property>
</spacer>
+ <widget class="QLabel" row="3" column="0">
+ <property name="name">
+ <cstring>NameLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Na&me</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>NameLine</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="4" column="0">
+ <property name="name">
+ <cstring>EtaLabel</cstring>
+ </property>
+ <property name="text">
+ <string>E&ta</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>EtaSpin</cstring>
+ </property>
+ </widget>
+ <widget class="QLineEdit" row="3" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>NameLine</cstring>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="4" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>EtaSpin</cstring>
+ </property>
+ </widget>
+ <widget class="QLabel" row="5" column="0">
+ <property name="name">
+ <cstring>StayLabel</cstring>
+ </property>
+ <property name="text">
+ <string>Stays</string>
+ </property>
+ <property name="buddy" stdset="0">
+ <cstring>StaySpin</cstring>
+ </property>
+ <property name="toolTip" stdset="0">
+ <string>Sets the number of ticks the fleet stays at the target, usually 3 for hostile and 6 for friendly. The fleet is disabled if stays is 0, and it stays the whole battle if it's -1</string>
+ </property>
+ </widget>
+ <widget class="QSpinBox" row="5" column="1" rowspan="1" colspan="2">
+ <property name="name">
+ <cstring>StaySpin</cstring>
+ </property>
+ <property name="minValue">
+ <number>-1</number>
+ </property>
+ </widget>
</grid>
</widget>
<connections>
<slot returnType="QString">group()</slot>
<slot returnType="QString">race()</slot>
<slot>slotNameChanged( const QString & s )</slot>
+ <slot returnType="int">stays()</slot>
+ <slot>setStays( int ticks )</slot>
</slots>
<layoutdefaults spacing="0" margin="0"/>
</UI>