Starsector API
Loading...
Searching...
No Matches
CBRemnant.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.missions.cb;
2
3import com.fs.starfarer.api.Global;
4import com.fs.starfarer.api.campaign.StarSystemAPI;
5import com.fs.starfarer.api.campaign.econ.MarketAPI;
6import com.fs.starfarer.api.impl.campaign.ids.Factions;
7import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
8import com.fs.starfarer.api.impl.campaign.ids.Skills;
9import com.fs.starfarer.api.impl.campaign.ids.Tags;
10import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithBarEvent;
11import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetQuality;
12import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetSize;
13import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerNum;
14import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerQuality;
15import com.fs.starfarer.api.impl.campaign.missions.hub.ReqMode;
16
17public class CBRemnant extends BaseCustomBountyCreator {
18
19 public static float PROB_IN_SYSTEM_WITH_BASE = 0.5f;
20 public static float PROB_IN_SYSTEM_WITH_TAP = 0.25f;
21
22 @Override
23 public float getFrequency(HubMissionWithBarEvent mission, int difficulty) {
24 return super.getFrequency(mission, difficulty) * CBStats.REMNANT_FREQ;
25 }
26
28 return " - Remnant Fleet";
29 }
30
31 @Override
32 public String getIconName() {
33 return Global.getSettings().getSpriteName("campaignMissions", "remnant_bounty");
34 }
35
36 @Override
37 public CustomBountyData createBounty(MarketAPI createdAt, HubMissionWithBarEvent mission, int difficulty, Object bountyStage) {
39 data.difficulty = difficulty;
40
41 //mission.requireSystem(this);
43// mission.requireSystemTags(ReqMode.ANY, Tags.THEME_RUINS, Tags.THEME_MISC, Tags.THEME_REMNANT,
44// Tags.THEME_DERELICT, Tags.THEME_REMNANT_DESTROYED);
46 mission.preferSystemUnexplored();
48 if (difficulty >= 9 && mission.rollProbability(PROB_IN_SYSTEM_WITH_BASE)) {
51 } else if (mission.rollProbability(PROB_IN_SYSTEM_WITH_TAP)) {
53 } else {
56 }
57
58 StarSystemAPI system = mission.pickSystem();
59 data.system = system;
60
61 FleetSize size = FleetSize.MEDIUM;
62 FleetQuality quality = FleetQuality.VERY_HIGH;
63 OfficerQuality oQuality = OfficerQuality.AI_MIXED;
64 OfficerNum oNum = OfficerNum.ALL_SHIPS;
65 String type = FleetTypes.PATROL_SMALL;
66
67 if (difficulty == 7) {
68 size = FleetSize.LARGE;
70 oQuality = OfficerQuality.AI_BETA_OR_GAMMA;
71 } else if (difficulty == 8) {
72 size = FleetSize.VERY_LARGE;
74 oQuality = OfficerQuality.AI_MIXED;
75 } else if (difficulty == 9) {
76 size = FleetSize.HUGE;
78 oQuality = OfficerQuality.AI_ALPHA;
79 } else if (difficulty >= 10) {
80 size = FleetSize.MAXIMUM;
82 oQuality = OfficerQuality.AI_ALPHA;
83 }
84
85 //setIconName("campaignMissions", "station_bounty");
86
87 beginFleet(mission, data);
88 if (false) {
89 mission.triggerCreateFleet(FleetSize.LARGE, FleetQuality.SMOD_2, Factions.MERCENARY, FleetTypes.MERC_BOUNTY_HUNTER, data.system);
90 mission.triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER);
94 mission.triggerSetFleetDoctrineComp(0, 0, 5);
95 mission.triggerFleetMakeFaster(true, 1, true);
96 } else {
97 mission.triggerCreateFleet(size, quality, Factions.REMNANTS, type, data.system);
98 mission.triggerSetFleetDoctrineQuality(5, 3, 5);
99 mission.triggerSetFleetOfficers(oNum, oQuality);
100 mission.triggerAutoAdjustFleetSize(size, size.next());
104 //mission.triggerFleetAddCommanderSkill(Skills.ELECTRONIC_WARFARE, 1);
106
108 }
109// if (difficulty >= 9) {
110// mission.triggerSetFleetDoctrineOther(5, -1);
111// }
112 //mission.triggerSetFleetDoctrineRandomize(1f);
113 //mission.triggerSetFleetDoctrineRandomize(0f);
114
116 mission.triggerSpawnFleetAtPickedLocation(null, null);
117 //mission.triggerFleetSetPatrolActionText("patrolling");
120
121 data.fleet = createFleet(mission, data);
122 if (data.fleet == null) return null;
123
124 setRepChangesBasedOnDifficulty(data, difficulty);
125 data.baseReward = CBStats.getBaseBounty(difficulty, CBStats.REMNANT_MULT, mission);
126
127 return data;
128 }
129
130
131 @Override
132 public int getMaxDifficulty() {
133 return super.getMaxDifficulty();
134 }
135
136 @Override
137 public int getMinDifficulty() {
138 return 7;
139 }
140
141}
142
143
144
static SettingsAPI getSettings()
Definition Global.java:57
static final String THEME_REMNANT_DESTROYED
Definition Tags.java:186
void beginFleet(HubMissionWithBarEvent mission, CustomBountyData data)
CampaignFleetAPI createFleet(HubMissionWithBarEvent mission, CustomBountyData data)
CustomBountyData createBounty(MarketAPI createdAt, HubMissionWithBarEvent mission, int difficulty, Object bountyStage)
String getBountyNamePostfix(HubMissionWithBarEvent mission, CustomBountyData data)
float getFrequency(HubMissionWithBarEvent mission, int difficulty)
static int getBaseBounty(int difficulty, float mult, BaseHubMission mission)
Definition CBStats.java:83
void triggerFleetMakeFaster(boolean navigationSkill, int numTugs, boolean allowLongPursuit)
void triggerSetFleetDoctrineComp(int warships, int carriers, int phaseShips)
void triggerSetFleetDoctrineQuality(int officerQuality, int shipQuality, int numShips)
void triggerCreateFleet(FleetSize size, FleetQuality quality, String factionId, String type, StarSystemAPI roughlyWhere)
String getSpriteName(String category, String id)