Starsector API
Loading...
Searching...
No Matches
RogueAICore.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.econ;
2
3import com.fs.starfarer.api.Global;
4import com.fs.starfarer.api.campaign.econ.MarketAPI;
5import com.fs.starfarer.api.campaign.econ.MarketConditionAPI;
6import com.fs.starfarer.api.campaign.econ.MarketImmigrationModifier;
7import com.fs.starfarer.api.impl.campaign.ids.Conditions;
8import com.fs.starfarer.api.impl.campaign.ids.Factions;
9import com.fs.starfarer.api.impl.campaign.population.PopulationComposition;
10import com.fs.starfarer.api.ui.TooltipMakerAPI;
11import com.fs.starfarer.api.util.Misc;
12
13
14
15public class RogueAICore extends BaseMarketConditionPlugin implements MarketImmigrationModifier {
16
17 public static final float STABILITY_PENALTY = 1f;
18
19 public static RogueAICore get(MarketAPI market) {
20 MarketConditionAPI mc = market.getCondition(Conditions.ROGUE_AI_CORE);
21 if (mc != null && mc.getPlugin() instanceof RogueAICore) {
22 return (RogueAICore) mc.getPlugin();
23 }
24 return null;
25 }
26
27 private float daysActive = 0f;
28 @Override
29 public void advance(float amount) {
30 super.advance(amount);
31 float days = Global.getSector().getClock().convertToDays(amount);
32 daysActive += days;
33 }
34
35 public float getDaysActive() {
36 return daysActive;
37 }
38
39 public void setDaysActive(float daysActive) {
40 this.daysActive = daysActive;
41 }
42
43 public void apply(String id) {
44 market.addTransientImmigrationModifier(this);
45
46 market.getStability().modifyFlat(id, -STABILITY_PENALTY, "Rogue AI core");
47 }
48
49 @Override
50 public boolean isTransient() {
51 return false;
52 }
53
54 public void unapply(String id) {
55 market.removeTransientImmigrationModifier(this);
56
57 market.getStability().unmodifyFlat(id);
58 }
59
60 public void modifyIncoming(MarketAPI market, PopulationComposition incoming) {
61 incoming.add(Factions.LUDDIC_PATH, 10f);
62 }
63
64 protected void createTooltipAfterDescription(TooltipMakerAPI tooltip, boolean expanded) {
65 super.createTooltipAfterDescription(tooltip, expanded);
66
67 tooltip.addPara("%s stability.",
68 10f, Misc.getHighlightColor(),
69 "-" + (int)STABILITY_PENALTY);
70 }
71}
72
73
74
75
76
static SectorAPI getSector()
Definition Global.java:59
void modifyIncoming(MarketAPI market, PopulationComposition incoming)
void createTooltipAfterDescription(TooltipMakerAPI tooltip, boolean expanded)