Starsector API
Loading...
Searching...
No Matches
CargoManifestSpecial.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special;
2
3import com.fs.starfarer.api.Global;
4import com.fs.starfarer.api.campaign.CargoAPI;
5import com.fs.starfarer.api.campaign.InteractionDialogAPI;
6import com.fs.starfarer.api.campaign.PlanetAPI;
7import com.fs.starfarer.api.campaign.econ.CommoditySpecAPI;
8import com.fs.starfarer.api.impl.campaign.ids.Entities;
9import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.SalvageSpecialInteraction.SalvageSpecialData;
10import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.SalvageSpecialInteraction.SalvageSpecialPlugin;
11
13
14
15 public static class CargoManifestSpecialData implements SalvageSpecialData {
16 public String commodityId = null;
17 public float min;
18 public float max;
19 public CargoManifestSpecialData(String commodityId, float min, float max) {
20 this.commodityId = commodityId;
21 this.min = min;
22 this.max = max;
23 }
24
25 public SalvageSpecialPlugin createSpecialPlugin() {
26 return new CargoManifestSpecial();
27 }
28 }
29
30 private CargoManifestSpecialData data;
31
33 }
34
35
36 @Override
37 public void init(InteractionDialogAPI dialog, Object specialData) {
38 super.init(dialog, specialData);
39
40 data = (CargoManifestSpecialData) specialData;
41
42 initManifest();
43 }
44
45 private void initManifest() {
46
47 CommoditySpecAPI spec = Global.getSettings().getCommoditySpec(data.commodityId);
48
49 if (spec == null) {
51 return;
52 }
53
54 boolean debris = Entities.DEBRIS_FIELD_SHARED.equals(entity.getCustomEntityType());
55 String name = "sent to the $shortName";
56 if (debris) name = "searching through the debris";
57 if (entity instanceof PlanetAPI) {
58 name = "sent to the surface";
59 }
60
61 String text1 = "A cargo manifest found by the salvage crews " + name + " indicates " +
62 "the presence of a quantity of " + spec.getName().toLowerCase() + ", " +
63 "likely to be found if proper salvage operations are conducted.";
64 addText(text1);
65
66 CargoAPI extra = Global.getFactory().createCargo(true);
67 float quantity = data.min + (data.max - data.min) * random.nextFloat();
68 quantity = Math.round(quantity);
69 extra.addCommodity(data.commodityId, quantity);
71
72 setDone(true);
73 setShowAgain(true);
74 }
75
76
77}
78
79
80
static SettingsAPI getSettings()
Definition Global.java:51
static FactoryAPI getFactory()
Definition Global.java:35
CargoAPI createCargo(boolean unlimitedStacks)
CommoditySpecAPI getCommoditySpec(String commodityId)