Starsector API
Loading...
Searching...
No Matches
DisruptHeavyIndustry.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.missions;
2
3import java.util.ArrayList;
4import java.util.List;
5
6import com.fs.starfarer.api.campaign.econ.MarketAPI;
7import com.fs.starfarer.api.impl.campaign.ids.Industries;
8import com.fs.starfarer.api.impl.campaign.ids.Ranks;
9import com.fs.starfarer.api.impl.campaign.ids.Tags;
10import com.fs.starfarer.api.util.Misc;
11
13
14 protected void createBarGiver(MarketAPI createdAt) {
15 List<String> posts = new ArrayList<String>();
16 posts.add(Ranks.POST_AGENT);
17 if (createdAt.getSize() >= 6) {
18 posts.add(Ranks.POST_ADMINISTRATOR);
19 }
20 if (Misc.isMilitary(createdAt)) {
21 posts.add(Ranks.POST_BASE_COMMANDER);
22 }
23 if (Misc.hasOrbitalStation(createdAt)) {
24 posts.add(Ranks.POST_STATION_COMMANDER);
25 }
26 String post = pickOne(posts);
27 if (post == null) return;
28
29 // rank used only when it's an agent, since the other posts mean the person already exists
30 // and doesn't need to be created
31 setGiverRank(pickOne(Ranks.GROUND_CAPTAIN, Ranks.GROUND_COLONEL, Ranks.GROUND_MAJOR,
32 Ranks.SPACE_COMMANDER, Ranks.SPACE_CAPTAIN, Ranks.SPACE_ADMIRAL));
33 setGiverTags(Tags.CONTACT_MILITARY);
34 setGiverPost(post);
35 setGiverImportance(pickHighImportance());
36 findOrCreateGiver(createdAt, false, false);
37 }
38
39 @Override
40 protected boolean availableAtMarket(MarketAPI createdAt) {
41 return Misc.isMilitary(createdAt);
42 }
43
44 protected String [] getTargetIndustries() {
45 return new String[] {Industries.HEAVYINDUSTRY, Industries.ORBITALWORKS};
46 }
47
48 protected CreditReward getRewardTier() {
49 return CreditReward.HIGH;
50 }
51
52 @Override
53 protected void addExtraTriggers(MarketAPI createdAt) {
54 if (market.getSize() <= 4) {
55 triggerCreateMediumPatrolAroundMarket(market, Stage.DISRUPT, 0f);
56 } else if (market.getSize() <= 6) {
57 triggerCreateLargePatrolAroundMarket(market, Stage.DISRUPT, 0f);
58 } else {
59 triggerCreateMediumPatrolAroundMarket(market, Stage.DISRUPT, 0f);
60 triggerCreateLargePatrolAroundMarket(market, Stage.DISRUPT, 0f);
61 }
62 }
63
64
65
66}
67
68
69
70
71