1package com.fs.starfarer.api.impl.campaign.graid;
3import java.util.ArrayList;
4import java.util.HashMap;
8import com.fs.starfarer.api.campaign.InteractionDialogAPI;
9import com.fs.starfarer.api.campaign.SectorEntityToken;
10import com.fs.starfarer.api.campaign.SpecialItemData;
11import com.fs.starfarer.api.campaign.econ.CommodityOnMarketAPI;
12import com.fs.starfarer.api.campaign.econ.Industry;
13import com.fs.starfarer.api.campaign.econ.MarketAPI;
14import com.fs.starfarer.api.campaign.listeners.GroundRaidObjectivesListener;
15import com.fs.starfarer.api.campaign.rules.MemoryAPI;
16import com.fs.starfarer.api.impl.campaign.econ.impl.BaseIndustry;
17import com.fs.starfarer.api.impl.campaign.ids.Commodities;
18import com.fs.starfarer.api.impl.campaign.ids.Conditions;
19import com.fs.starfarer.api.impl.campaign.ids.Industries;
20import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.MarketCMD.RaidType;
24 public void modifyRaidObjectives(MarketAPI market, SectorEntityToken entity, List<GroundRaidObjectivePlugin> objectives, RaidType type,
int marineTokens,
int priority) {
25 if (priority != 0)
return;
26 if (market ==
null)
return;
28 if (type == RaidType.VALUABLE) {
30 List<CommodityOnMarketAPI> commodities =
new ArrayList<CommodityOnMarketAPI>(raidValuables.keySet());
31 for (CommodityOnMarketAPI com : commodities) {
37 for (Industry ind : market.getIndustries()) {
38 String coreId = ind.getAICoreId();
43 SpecialItemData sid = ind.getSpecialItem();
46 sid.getId(),
null, ind);
47 objectives.add(special);
60 objectives.add(weapons);
65 objectives.add(blueprints);
68 if (market.hasCondition(Conditions.SOLAR_ARRAY)) {
72 }
else if (type == RaidType.DISRUPT) {
73 for (Industry ind : market.getIndustries()) {
74 if (ind.getSpec().hasTag(Industries.TAG_UNRAIDABLE))
continue;
84 Map<CommodityOnMarketAPI, Float> result =
new HashMap<CommodityOnMarketAPI, Float>();
85 for (CommodityOnMarketAPI com : market.getAllCommodities()) {
86 if (com.isPersonnel())
continue;
87 if (com.getCommodity().hasTag(Commodities.TAG_META))
continue;
88 if (com.getCommodity().hasTag(Commodities.TAG_NON_ECONOMIC))
continue;
90 int a = com.getAvailable();
92 float num = BaseIndustry.getSizeMult(a) * com.getCommodity().getEconUnit() * 0.5f;
float getQuantity(int marines)
float getQuantity(int marines)
float getBaseDisruptDuration(int marines)
float getQuantity(int marines)
Map< CommodityOnMarketAPI, Float > computeRaidValuables(MarketAPI market)
void modifyRaidObjectives(MarketAPI market, SectorEntityToken entity, List< GroundRaidObjectivePlugin > objectives, RaidType type, int marineTokens, int priority)
void reportRaidObjectivesAchieved(RaidResultData data, InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap)