Starsector API
Loading...
Searching...
No Matches
SDFBase.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.fleets;
2
3import com.fs.starfarer.api.Global;
4import com.fs.starfarer.api.campaign.econ.MarketAPI;
5import com.fs.starfarer.api.characters.PersonAPI;
6import com.fs.starfarer.api.combat.ShipVariantAPI;
7import com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent;
8import com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent.SkillPickPreference;
9import com.fs.starfarer.api.impl.campaign.ids.Conditions;
10import com.fs.starfarer.api.impl.campaign.ids.Industries;
11import com.fs.starfarer.api.impl.campaign.ids.Personalities;
12import com.fs.starfarer.api.impl.campaign.ids.Ranks;
13
14public abstract class SDFBase extends PersonalFleetScript {
15
16 // list of all relevant fleet commander skills, for reference
17// m.triggerFleetAddCommanderSkill(Skills.COORDINATED_MANEUVERS, 1);
18// m.triggerFleetAddCommanderSkill(Skills.TACTICAL_DRILLS, 1);
19// m.triggerFleetAddCommanderSkill(Skills.CREW_TRAINING, 1);
20// m.triggerFleetAddCommanderSkill(Skills.CARRIER_GROUP, 1);
21// m.triggerFleetAddCommanderSkill(Skills.FIGHTER_UPLINK, 1);
22// m.triggerFleetAddCommanderSkill(Skills.WOLFPACK_TACTICS, 1);
23// m.triggerFleetAddCommanderSkill(Skills.OFFICER_TRAINING, 1);
24// m.triggerFleetAddCommanderSkill(Skills.SUPPORT_DOCTRINE, 1);
25// m.triggerFleetAddCommanderSkill(Skills.FLUX_REGULATION, 1);
26// m.triggerFleetAddCommanderSkill(Skills.PHASE_CORPS, 1);
27// m.triggerFleetAddCommanderSkill(Skills.ELECTRONIC_WARFARE, 1);
28// m.triggerFleetAddCommanderSkill(Skills.CYBERNETIC_AUGMENTATION, 1);
29// m.triggerFleetAddCommanderSkill(Skills.DERELICT_CONTINGENT, 1);
30
31 protected PersonAPI person;
32
33 public SDFBase() {
34 super(null); // when/if there's a specific person, comment out anything using "person" here
37
40 }
41
42 protected abstract String getFactionId();
43
44 protected String getDefeatTriggerToUse() {
45 return null;
46 }
47
48 protected SkillPickPreference getCommanderShipSkillPreference() {
49 return SkillPickPreference.ANY;
50 }
51
53 int commanderLevel = 7;
54 SkillPickPreference pref = getCommanderShipSkillPreference();
56 commanderLevel, pref, false, null, true, true, -1, random);
57 if (commander.getPersonalityAPI().getId().equals(Personalities.TIMID)) {
59 }
60 commander.setRankId(Ranks.SPACE_ADMIRAL);
62 return commander;
63 }
64
65 @Override
67 return person;
68 }
69
70 public ShipVariantAPI getVariant(String id) {
71 return Global.getSettings().getVariant(id);
72 }
73
74 @Override
75 public boolean canSpawnFleetNow() {
76 MarketAPI source = getSourceMarket();
77 if (source == null || source.hasCondition(Conditions.DECIVILIZED)) return false;
78 if (!source.hasIndustry(Industries.MILITARYBASE) &&
79 !source.hasIndustry(Industries.HIGHCOMMAND)) return false;
80 if (!source.getFactionId().equals(getFactionId())) return false;
81 return true;
82 }
83
84 @Override
85 public boolean shouldScriptBeRemoved() {
86 return false;
87 }
88
89}
90
91
92
93
static SettingsAPI getSettings()
Definition Global.java:57
static SectorAPI getSector()
Definition Global.java:65
AvailableOfficer createOfficer(boolean isMerc, MarketAPI market, Random random)
SkillPickPreference getCommanderShipSkillPreference()
Definition SDFBase.java:48
ShipVariantAPI getVariant(String variantId)
FactionAPI getFaction(String factionId)
void setPersonality(String personality)