summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorFWoltermann@gmail.com <FWoltermann@gmail.com@076cb2c4-205e-83fd-5cf3-1be9aa105544>2012-06-17 06:38:09 +0000
committerFWoltermann@gmail.com <FWoltermann@gmail.com@076cb2c4-205e-83fd-5cf3-1be9aa105544>2012-06-17 06:38:09 +0000
commit05f1b225a03adeab4cda01a6c96595359464ac0e (patch)
treebe9beaaee8116ed81ef9c2aa07d0e16864b4b84b
parent89fce9332d6a40fe82acea1c235129b3c823bddc (diff)
downloadstarshatter-05f1b225a03adeab4cda01a6c96595359464ac0e.zip
starshatter-05f1b225a03adeab4cda01a6c96595359464ac0e.tar.gz
starshatter-05f1b225a03adeab4cda01a6c96595359464ac0e.tar.bz2
(Hopefully) Allows SWACS ships to do more than sit around. Needs testing.
-rw-r--r--Stars45/CampaignMissionStarship.cpp1
-rw-r--r--Stars45/CampaignSituationReport.cpp2
-rw-r--r--Stars45/CombatUnit.cpp23
-rw-r--r--Stars45/CombatUnit.h1
-rw-r--r--Stars45/MsnElemDlg.cpp2
-rw-r--r--Stars45/Ship.cpp2
-rw-r--r--Stars45/StarshipTacticalAI.cpp2
-rw-r--r--Stars45/TacticalAI.cpp4
8 files changed, 10 insertions, 27 deletions
diff --git a/Stars45/CampaignMissionStarship.cpp b/Stars45/CampaignMissionStarship.cpp
index 176aaed..654b045 100644
--- a/Stars45/CampaignMissionStarship.cpp
+++ b/Stars45/CampaignMissionStarship.cpp
@@ -811,6 +811,7 @@ CampaignMissionStarship::CreateTargetsAssault()
case Ship::CRUISER: extra = 50e3; break;
case Ship::BATTLESHIP: extra = 70e3; break;
case Ship::DREADNAUGHT: extra = 80e3; break;
+ case Ship::SWACS: extra = 30e3; break;
case Ship::CARRIER: extra = 90e3; break;
}
}
diff --git a/Stars45/CampaignSituationReport.cpp b/Stars45/CampaignSituationReport.cpp
index 2c85a70..123fd63 100644
--- a/Stars45/CampaignSituationReport.cpp
+++ b/Stars45/CampaignSituationReport.cpp
@@ -371,7 +371,7 @@ CampaignSituationReport::GetThreatInfo()
mission_role == Mission::TRANSPORT)
continue;
- if (elem->GetDesign()->type >= Ship::MINE && elem->GetDesign()->type <= Ship::SWACS)
+ if (elem->GetDesign()->type >= Ship::MINE && elem->GetDesign()->type <= Ship::DEFSAT)
enemy_sites += elem->Count();
else if (elem->IsDropship())
diff --git a/Stars45/CombatUnit.cpp b/Stars45/CombatUnit.cpp
index 951cb87..f03b349 100644
--- a/Stars45/CombatUnit.cpp
+++ b/Stars45/CombatUnit.cpp
@@ -114,26 +114,6 @@ CombatUnit::GetDescription() const
// +----------------------------------------------------------------------+
bool
-CombatUnit::CanAssign() const
-{
- bool result = false;
-
- switch (type) {
- case Ship::FIGHTER:
- case Ship::ATTACK:
- case Ship::CORVETTE:
- case Ship::FRIGATE:
- case Ship::DESTROYER:
- case Ship::CRUISER:
- case Ship::CARRIER: result = true; break;
- }
-
- return result;
-}
-
-// +----------------------------------------------------------------------+
-
-bool
CombatUnit::CanLaunch() const
{
bool result = false;
@@ -262,6 +242,9 @@ double CombatUnit::PowerVersus(CombatUnit* tgt) const
else if (type == Ship::CARRIER) {
return 0;
}
+ else if (type == Ship::SWACS) {
+ return 0;
+ }
else if (type == Ship::CRUISER) {
if (tgt->type <= Ship::ATTACK)
return type * effectiveness;
diff --git a/Stars45/CombatUnit.h b/Stars45/CombatUnit.h
index 5d60772..71d8e8f 100644
--- a/Stars45/CombatUnit.h
+++ b/Stars45/CombatUnit.h
@@ -43,7 +43,6 @@ public:
int GetValue() const;
int GetSingleValue() const;
bool CanDefend(CombatUnit* unit) const;
- bool CanAssign() const;
bool CanLaunch() const;
double PowerVersus(CombatUnit* tgt) const;
int AssignMission();
diff --git a/Stars45/MsnElemDlg.cpp b/Stars45/MsnElemDlg.cpp
index 3677b0e..a792b74 100644
--- a/Stars45/MsnElemDlg.cpp
+++ b/Stars45/MsnElemDlg.cpp
@@ -145,6 +145,7 @@ MsnElemDlg::Show()
cmb_class->AddItem(Ship::ClassName(Ship::CRUISER));
cmb_class->AddItem(Ship::ClassName(Ship::BATTLESHIP));
cmb_class->AddItem(Ship::ClassName(Ship::CARRIER));
+ cmb_class->AddItem(Ship::ClassName(Ship::SWACS));
cmb_class->AddItem(Ship::ClassName(Ship::DREADNAUGHT));
cmb_class->AddItem(Ship::ClassName(Ship::STATION));
cmb_class->AddItem(Ship::ClassName(Ship::FARCASTER));
@@ -152,7 +153,6 @@ MsnElemDlg::Show()
cmb_class->AddItem(Ship::ClassName(Ship::MINE));
cmb_class->AddItem(Ship::ClassName(Ship::COMSAT));
cmb_class->AddItem(Ship::ClassName(Ship::DEFSAT));
- cmb_class->AddItem(Ship::ClassName(Ship::SWACS));
cmb_class->AddItem(Ship::ClassName(Ship::BUILDING));
cmb_class->AddItem(Ship::ClassName(Ship::FACTORY));
diff --git a/Stars45/Ship.cpp b/Stars45/Ship.cpp
index 9063d01..c90038c 100644
--- a/Stars45/Ship.cpp
+++ b/Stars45/Ship.cpp
@@ -5261,6 +5261,7 @@ Ship::Value(int type)
case CRUISER: value = 800; break;
case BATTLESHIP: value = 1000; break;
case CARRIER: value = 1500; break;
+ case SWACS: value = 500; break;
case DREADNAUGHT: value = 1500; break;
case STATION: value = 2500; break;
@@ -5269,7 +5270,6 @@ Ship::Value(int type)
case MINE: value = 20; break;
case COMSAT: value = 200; break;
case DEFSAT: value = 300; break;
- case SWACS: value = 500; break;
case BUILDING: value = 100; break;
case FACTORY: value = 250; break;
diff --git a/Stars45/StarshipTacticalAI.cpp b/Stars45/StarshipTacticalAI.cpp
index 09d57e2..61c126d 100644
--- a/Stars45/StarshipTacticalAI.cpp
+++ b/Stars45/StarshipTacticalAI.cpp
@@ -202,7 +202,7 @@ void
StarshipTacticalAI::CheckBugOut(Ship* c_ship, double rng)
{
// see if carrier should bug out...
- if (!ship || !c_ship || ship->Class() != Ship::CARRIER)
+ if (!ship || !c_ship || ship->Class() != Ship::CARRIER || ship->Class() != Ship::SWACS)
return;
if (bugout)
diff --git a/Stars45/TacticalAI.cpp b/Stars45/TacticalAI.cpp
index 32d364a..f020298 100644
--- a/Stars45/TacticalAI.cpp
+++ b/Stars45/TacticalAI.cpp
@@ -630,7 +630,7 @@ TacticalAI::SelectTargetOpportunity()
if (rogue || tgt_ok) {
if (c_ship && c_ship != ship && !c_ship->InTransition()) {
if (c_ship->Class() < Ship::DESTROYER ||
- (c_ship->Class() >= Ship::MINE && c_ship->Class() <= Ship::SWACS)) {
+ (c_ship->Class() >= Ship::MINE && c_ship->Class() <= Ship::DEFSAT)) {
// found an enemy, check distance:
double dist = (ship->Location() - c_ship->Location()).length();
@@ -736,7 +736,7 @@ TacticalAI::SelectTargetOpportunity()
}
}
- if (ship->Class() != Ship::CARRIER)
+ if (ship->Class() != Ship::CARRIER || ship->Class() != Ship::SWACS)
ship_ai->SetTarget(potential_target);
}