Starsector API
Loading...
Searching...
No Matches
AICoreGroundRaidObjectivePluginImpl.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.TextPanelAPI;
10import com.fs.starfarer.api.campaign.CargoAPI.CargoItemType;
11import com.fs.starfarer.api.campaign.econ.CommoditySpecAPI;
12import com.fs.starfarer.api.campaign.econ.Industry;
13import com.fs.starfarer.api.campaign.econ.MarketAPI;
14import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.MarketCMD.RaidDangerLevel;
15import com.fs.starfarer.api.loading.Description;
16import com.fs.starfarer.api.loading.Description.Type;
17import com.fs.starfarer.api.ui.TooltipMakerAPI;
18import com.fs.starfarer.api.util.Misc;
19
21
26
27 @Override
28 public void setSource(Industry source) {
29 super.setSource(source);
30 RaidDangerLevel level = getDangerLevel();
31 int marines = level.marineTokens;
32 if (source != null) {
33 marines = source.adjustMarineTokensToRaidItem(id, null, marines);
34 }
35 setMarinesRequired(marines);
36 }
37
38 public float getQuantity(int marines) {
39 return 1;
40 }
41
42 public int getValue(int marines) {
43 return (int) (getQuantity(marines) * getCommoditySpec().getBasePrice());
44 }
45
46 public int getCargoSpaceNeeded() {
47 return (int) getCommoditySpec().getCargoSpace();
48 }
49
50 public int getFuelSpaceNeeded() {
51 return 0;
52 }
53
55 return (int) getCommoditySpec().getBasePrice();
56 }
57
61
62 public RaidDangerLevel getDangerLevel() {
63 RaidDangerLevel level = getCommoditySpec().getBaseDanger();
64 if (source != null) {
65 level = source.adjustItemDangerLevel(id, null, level);
66 }
67 return level;
68 }
69
70 public float getQuantitySortValue() {
72 float add = 0;
73 if (spec != null) {
74 add = spec.getOrder();
75 }
76 return QUANTITY_SORT_TIER_2 + add;
77 }
78
79 public String getName() {
80 return getCommoditySpec().getName();
81 }
82
84 CargoStackAPI stack = Global.getFactory().createCargoStack(CargoItemType.RESOURCES, getId(), null);
85 return stack;
86 }
87
88 public int performRaid(CargoAPI loot, Random random, float lootMult, TextPanelAPI text) {
89 if (marinesAssigned <= 0) return 0;
90
91 if (source != null) {
92 if (getId() == null || getId().equals(source.getAICoreId())) {
93 source.setAICoreId(null);
94 }
95 }
96 loot.addCommodity(getId(), 1f);
97
98 int xpGained = (int) (1 * getCommoditySpec().getBasePrice() * XP_GAIN_VALUE_MULT);
99 return xpGained;
100 }
101
102 @Override
103 public boolean hasTooltip() {
104 return true;
105 }
106
107 @Override
108 public void createTooltip(TooltipMakerAPI t, boolean expanded) {
109 float opad = 10f;
110 float pad = 3f;
111 Color h = Misc.getHighlightColor();
112 Color bad = Misc.getNegativeHighlightColor();
113 Color good = Misc.getPositiveHighlightColor();
114
115 Description desc = Global.getSettings().getDescription(id, Type.RESOURCE);
116
117 t.addPara(desc.getText1FirstPara(), 0f);
118
119 t.addPara("Base value: %s per unit", opad, h, Misc.getDGSCredits(getCommoditySpec().getBasePrice()));
120 }
121
122}
123
124
static SettingsAPI getSettings()
Definition Global.java:57
static FactoryAPI getFactory()
Definition Global.java:41
int performRaid(CargoAPI loot, Random random, float lootMult, TextPanelAPI text)
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)
Description getDescription(String id, Type type)
CommoditySpecAPI getCommoditySpec(String commodityId)
void addCommodity(String commodityId, float quantity)
RaidDangerLevel adjustItemDangerLevel(String itemId, String data, RaidDangerLevel level)
int adjustMarineTokensToRaidItem(String itemId, String data, int marineTokens)
LabelAPI addPara(String format, float pad, Color hl, String... highlights)