Starsector API
Loading...
Searching...
No Matches
SpecialItemRaidObjectivePluginImpl.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.graid;
2
3import java.awt.Color;
4import java.util.Random;
5
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.CargoAPI;
8import com.fs.starfarer.api.campaign.CargoStackAPI;
9import com.fs.starfarer.api.campaign.SpecialItemData;
10import com.fs.starfarer.api.campaign.SpecialItemSpecAPI;
11import com.fs.starfarer.api.campaign.TextPanelAPI;
12import com.fs.starfarer.api.campaign.CargoAPI.CargoItemType;
13import com.fs.starfarer.api.campaign.econ.Industry;
14import com.fs.starfarer.api.campaign.econ.MarketAPI;
15import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.MarketCMD.RaidDangerLevel;
16import com.fs.starfarer.api.ui.TooltipMakerAPI;
17import com.fs.starfarer.api.util.Misc;
18
20
21 protected String data;
22
24 super(market, id);
25 this.data = data;
27 }
28
29 @Override
30 public void setSource(Industry source) {
31 super.setSource(source);
32 RaidDangerLevel level = getDangerLevel();
33 int marines = level.marineTokens;
34 if (source != null) {
35 marines = source.adjustMarineTokensToRaidItem(id, data, marines);
36 }
37 setMarinesRequired(marines);
38 }
39
40 public String getData() {
41 return data;
42 }
43
44 public void setData(String data) {
45 this.data = data;
46 }
47
48 public float getQuantity(int marines) {
49 return 1;
50 }
51
52 public int getValue(int marines) {
53 return (int) (getQuantity(marines) * getItemSpec().getBasePrice());
54 }
55
56 public int getCargoSpaceNeeded() {
57 return (int) getItemSpec().getCargoSpace();
58 }
59
60 public int getFuelSpaceNeeded() {
61 return 0;
62 }
63
65 return (int) getItemSpec().getBasePrice();
66 }
67
68 public int getDeficitCaused() {
69 return 0;
70 }
71
75
76 public RaidDangerLevel getDangerLevel() {
77 RaidDangerLevel level = getItemSpec().getBaseDanger();
78 if (source != null) {
79 level = source.adjustItemDangerLevel(id, null, level);
80 }
81 return level;
82 }
83
84 public float getQuantitySortValue() {
86 float add = 0;
87 if (spec != null) {
88 add = spec.getOrder();
89 }
90 return QUANTITY_SORT_TIER_2 + add + 1000;
91 }
92
93 public String getName() {
94 return getItemSpec().getName();
95 }
96
98 CargoStackAPI stack = Global.getFactory().createCargoStack(CargoItemType.SPECIAL,
99 new SpecialItemData(getId(), getData()), null);
100 return stack;
101 }
102
103 public int performRaid(CargoAPI loot, Random random, float lootMult, TextPanelAPI text) {
104 if (marinesAssigned <= 0) return 0;
105
106 if (source != null) {
108 if ((getId() == null || getId().equals(sid.getId())) &&
109 (getData() == null || getData().equals(sid.getData()))) {
111 }
112 }
113 loot.addSpecial(new SpecialItemData(getId(), getData()), 1);
114
115 int xpGained = (int) (1 * getItemSpec().getBasePrice() * XP_GAIN_VALUE_MULT);
116 return xpGained;
117 }
118
119 @Override
120 public boolean hasTooltip() {
121 return true;
122 }
123
124 @Override
125 public void createTooltip(TooltipMakerAPI t, boolean expanded) {
126 float opad = 10f;
127 float pad = 3f;
128 Color h = Misc.getHighlightColor();
129 Color bad = Misc.getNegativeHighlightColor();
130 Color good = Misc.getPositiveHighlightColor();
131
132 //Description desc = Global.getSettings().getDescription(id, Type.RESOURCE);
133
134 t.addPara(getItemSpec().getDescFirstPara(), 0f);
135
136 t.addPara("Base value: %s per unit", opad, h, Misc.getDGSCredits(getItemSpec().getBasePrice()));
137 }
138}
139
140
141
142
static SettingsAPI getSettings()
Definition Global.java:57
static FactoryAPI getFactory()
Definition Global.java:41
int performRaid(CargoAPI loot, Random random, float lootMult, TextPanelAPI text)
SpecialItemRaidObjectivePluginImpl(MarketAPI market, String id, String data, Industry source)
static String getDGSCredits(float num)
Definition Misc.java:1390
static Color getNegativeHighlightColor()
Definition Misc.java:802
static Color getHighlightColor()
Definition Misc.java:792
static Color getPositiveHighlightColor()
Definition Misc.java:822
CargoStackAPI createCargoStack(CargoItemType type, Object data, CargoAPI cargo)
SpecialItemSpecAPI getSpecialItemSpec(String itemId)
void addSpecial(SpecialItemData data, float quantity)
RaidDangerLevel adjustItemDangerLevel(String itemId, String data, RaidDangerLevel level)
int adjustMarineTokensToRaidItem(String itemId, String data, int marineTokens)
void setSpecialItem(SpecialItemData special)
LabelAPI addPara(String format, float pad, Color hl, String... highlights)