Starsector API
Loading...
Searching...
No Matches
CBDerelict.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 CBDerelict extends BaseCustomBountyCreator {
18
19 @Override
20 public float getFrequency(HubMissionWithBarEvent mission, int difficulty) {
21 return super.getFrequency(mission, difficulty) * CBStats.DERELICT_FREQ;
22 }
23
24 public String getBountyNamePostfix(HubMissionWithBarEvent mission, CustomBountyData data) {
25 return " - Derelict Fleet";
26 }
27
28 @Override
29 public String getIconName() {
30 return Global.getSettings().getSpriteName("campaignMissions", "derelict_bounty");
31 }
32
33
34 @Override
35 public CustomBountyData createBounty(MarketAPI createdAt, HubMissionWithBarEvent mission, int difficulty, Object bountyStage) {
37 data.difficulty = difficulty;
38
39 //mission.setIconName("campaignMissions", "derelict_bounty");
40
41 //mission.requireSystem(this);
42 mission.requireSystemTags(ReqMode.NOT_ANY, Tags.THEME_CORE);
43 mission.requireSystemNotHasPulsar();
44 mission.preferSystemBlackHoleOrNebula();
45 mission.preferSystemOnFringeOfSector();
46
47 StarSystemAPI system = mission.pickSystem();
48 data.system = system;
49
50 FleetSize size = FleetSize.MEDIUM;
51 FleetQuality quality = FleetQuality.DEFAULT;
52 OfficerQuality oQuality = OfficerQuality.AI_GAMMA;
53 OfficerNum oNum = OfficerNum.ALL_SHIPS;
54
55 if (difficulty <= 5) {
56 size = FleetSize.MEDIUM;
57 } else if (difficulty == 6) {
58 size = FleetSize.LARGE;
59 } else if (difficulty == 7) {
60 size = FleetSize.LARGE;
61 } else if (difficulty == 8) {
62 size = FleetSize.VERY_LARGE;
63 } else if (difficulty == 9) {
64 size = FleetSize.HUGE;
65 } else if (difficulty >= 10) {
66 size = FleetSize.MAXIMUM;
67 }
68
69 beginFleet(mission, data);
70 mission.triggerCreateFleet(size, quality, Factions.DERELICT, FleetTypes.PATROL_MEDIUM, data.system);
71 mission.triggerSetFleetOfficers(oNum, oQuality);
72 mission.triggerAutoAdjustFleetSize(size, size.next());
73 mission.triggerSetRemnantConfigActive();
74 mission.triggerSetFleetFaction(Factions.DERELICT);
75 mission.triggerFleetSetName("Derelict Fleet");
76 mission.triggerFleetAddTags(Tags.NEUTRINO_HIGH);
77 mission.triggerFleetAddCommanderSkill(Skills.DERELICT_CONTINGENT, 1);
78 mission.triggerMakeHostileAndAggressive();
79 mission.triggerMakeNoRepImpact();
80 //mission.triggerSetFleetMemoryValue("$shownFleetDescAlready", true);
81 mission.triggerDoNotShowFleetDesc();
82 mission.triggerFleetForceAutofitOnAllShips();
83 mission.triggerFleetSetAllWeapons();
84 mission.triggerPickLocationAtInSystemJumpPoint(data.system);
85 mission.triggerSpawnFleetAtPickedLocation(null, null);
86 mission.triggerFleetSetPatrolActionText("taking scientific readings");
87 mission.triggerOrderFleetPatrol(data.system, true, Tags.JUMP_POINT, Tags.NEUTRINO, Tags.NEUTRINO_HIGH, Tags.GAS_GIANT);
88
89 data.fleet = createFleet(mission, data);
90 if (data.fleet == null) return null;
91
92 setRepChangesBasedOnDifficulty(data, difficulty);
93 data.baseReward = CBStats.getBaseBounty(difficulty, CBStats.DERELICT_MULT, mission);
94
95 return data;
96 }
97
98
99 @Override
100 public int getMaxDifficulty() {
101 return super.getMaxDifficulty();
102 }
103
104 @Override
105 public int getMinDifficulty() {
106 return 5;
107 }
108
109}
110
111
112
113
114
115
static SettingsAPI getSettings()
Definition Global.java:51
void beginFleet(HubMissionWithBarEvent mission, CustomBountyData data)
CampaignFleetAPI createFleet(HubMissionWithBarEvent mission, CustomBountyData data)
float getFrequency(HubMissionWithBarEvent mission, int difficulty)
CustomBountyData createBounty(MarketAPI createdAt, HubMissionWithBarEvent mission, int difficulty, Object bountyStage)
String getBountyNamePostfix(HubMissionWithBarEvent mission, CustomBountyData data)
static int getBaseBounty(int difficulty, float mult, BaseHubMission mission)
Definition CBStats.java:83
String getSpriteName(String category, String id)