1package com.fs.starfarer.api.impl.campaign.rulecmd.salvage;
3import java.util.ArrayList;
6import java.util.Random;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.CampaignFleetAPI;
10import com.fs.starfarer.api.campaign.CargoAPI;
11import com.fs.starfarer.api.campaign.CargoStackAPI;
12import com.fs.starfarer.api.campaign.FactionAPI;
13import com.fs.starfarer.api.campaign.InteractionDialogAPI;
14import com.fs.starfarer.api.campaign.OptionPanelAPI;
15import com.fs.starfarer.api.campaign.SectorEntityToken;
16import com.fs.starfarer.api.campaign.TextPanelAPI;
17import com.fs.starfarer.api.campaign.econ.CommoditySpecAPI;
18import com.fs.starfarer.api.campaign.rules.MemoryAPI;
19import com.fs.starfarer.api.characters.PersonAPI;
20import com.fs.starfarer.api.fleet.FleetMemberAPI;
21import com.fs.starfarer.api.impl.campaign.ids.Commodities;
22import com.fs.starfarer.api.impl.campaign.rulecmd.BaseCommandPlugin;
23import com.fs.starfarer.api.util.Misc;
24import com.fs.starfarer.api.util.Misc.Token;
30 public static class DemandData {
32 public List<FleetMemberAPI> ships =
new ArrayList<FleetMemberAPI>();
33 public int credits = 0;
34 public boolean hasAnythingWorthwhile =
true;
57 protected DemandData
data =
new DemandData();
80 String command = params.get(0).getString(
memoryMap);
81 if (command ==
null)
return false;
104 String key =
"$DemandCargo_temp";
107 data = (DemandData) mem.
get(key);
109 data =
new DemandData();
114 if (command.equals(
"selectCargo")) {
116 }
else if (command.equals(
"playerHasValuableCargo")) {
124 String key =
"$DemandCargo_random";
126 Random random =
null;
128 random = (Random) mem.
get(key);
134 random =
new Random(seed);
136 mem.
set(key, random, 30f);
145 fleetValue += member.getHullSpec().getBaseValue();
149 fleetValue += stack.getBaseValuePerUnit() * stack.getSize();
152 float demandFraction = 0.2f;
157 demandFraction *= (0.2f + 0.8f * rel);
160 int demandValue = (int) (fleetValue * demandFraction);
static FactoryAPI getFactory()
static SectorAPI getSector()
static final String AI_CORES
static MemoryAPI getEntityMemory(Map< String, MemoryAPI > memoryMap)
Map< String, MemoryAPI > memoryMap
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
CampaignFleetAPI playerFleet
CampaignFleetAPI otherFleet
InteractionDialogAPI dialog
void computeAndPrintDemands()
static long getSalvageSeed(SectorEntityToken entity)
CargoAPI createCargo(boolean unlimitedStacks)
FleetDataAPI getFleetData()
void addFromStack(CargoStackAPI stack)
List< CargoStackAPI > getStacksCopy()
RelationshipAPI getRelToPlayer()
List< FleetMemberAPI > getMembersListCopy()
TextPanelAPI getTextPanel()
SectorEntityToken getInteractionTarget()
OptionPanelAPI getOptionPanel()
CampaignFleetAPI getPlayerFleet()
FactionAPI getPlayerFaction()
PersonAPI getActivePerson()
MemoryAPI getMemoryWithoutUpdate()
boolean contains(String key)
void set(String key, Object value)