1package com.fs.starfarer.api.impl.campaign.rulecmd.salvage;
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.CampaignFleetAPI;
8import com.fs.starfarer.api.campaign.CargoAPI;
9import com.fs.starfarer.api.campaign.CargoPickerListener;
10import com.fs.starfarer.api.campaign.CargoStackAPI;
11import com.fs.starfarer.api.campaign.FactionAPI;
12import com.fs.starfarer.api.campaign.InteractionDialogAPI;
13import com.fs.starfarer.api.campaign.OptionPanelAPI;
14import com.fs.starfarer.api.campaign.SectorEntityToken;
15import com.fs.starfarer.api.campaign.TextPanelAPI;
16import com.fs.starfarer.api.campaign.rules.MemoryAPI;
17import com.fs.starfarer.api.characters.PersonAPI;
18import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.CustomRepImpact;
19import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActionEnvelope;
20import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActions;
21import com.fs.starfarer.api.impl.campaign.ids.Strings;
22import com.fs.starfarer.api.impl.campaign.ids.Tags;
23import com.fs.starfarer.api.impl.campaign.rulecmd.AddRemoveCommodity;
24import com.fs.starfarer.api.impl.campaign.rulecmd.BaseCommandPlugin;
25import com.fs.starfarer.api.impl.campaign.rulecmd.FireBest;
26import com.fs.starfarer.api.ui.TooltipMakerAPI;
27import com.fs.starfarer.api.util.Misc;
28import com.fs.starfarer.api.util.Misc.Token;
57 String command = params.get(0).getString(
memoryMap);
58 if (command ==
null)
return false;
75 if (command.equals(
"selectSellableItems")) {
77 }
else if (command.equals(
"playerHasSellableItems")) {
88 final float width = 310f;
90 public void pickedCargo(
CargoAPI cargo) {
92 cancelledCargoSelection();
98 float bountyThreat = 0;
99 float bountyMonster = 0;
104 int num = (int) stack.getSize();
107 bountyThreat += num * stack.getBaseValuePerUnit() *
VALUE_MULT;
109 bountyMonster += num * stack.getBaseValuePerUnit() *
VALUE_MULT;
115 int bounty = (int) (bountyThreat + bountyMonster);
120 String soldTotalKey =
"$itemValueSoldToZGRThreat";
121 int curr = mem.
getInt(soldTotalKey);
122 curr += bountyThreat;
123 mem.
set(soldTotalKey, curr);
125 soldTotalKey =
"$itemValueSoldToZGRMonster";
126 curr = mem.
getInt(soldTotalKey);
127 curr += bountyMonster;
128 mem.
set(soldTotalKey, curr);
130 soldTotalKey =
"$itemValueSoldToZGRTotal";
131 curr = mem.
getInt(soldTotalKey);
133 mem.
set(soldTotalKey, curr);
137 if (repChange >= 1f) {
138 CustomRepImpact impact =
new CustomRepImpact();
139 impact.delta = repChange * 0.01f;
141 new RepActionEnvelope(RepActions.CUSTOM, impact,
145 impact.delta *= 0.25f;
146 if (impact.delta >= 0.01f) {
148 new RepActionEnvelope(RepActions.CUSTOM, impact,
154 mem.
set(
"$itemValueSoldToZGRJustNowThreat", (
int)bountyThreat, 0);
155 mem.
set(
"$itemValueSoldToZGRJustNowMonster", (
int)bountyMonster, 0);
156 mem.
set(
"$itemValueSoldToZGRJustNowTotal", (
int)bounty, 0);
159 public void cancelledCargoSelection() {
165 int num = (int) stack.getSize();
166 bounty += num * stack.getBaseValuePerUnit() *
VALUE_MULT;
184 panel.
addPara(
"If you turn in the selected items, you will receive a %s bounty " +
188 "" + (
int) repChange);
205 case LARGE:
return 3f;
206 case MEDIUM:
return 2f;
207 case SMALL:
return 1f;
222 boolean match =
false;
228 boolean match =
false;
static FactoryAPI getFactory()
static SectorAPI getSector()
static void addStackLossText(CargoStackAPI stack, TextPanelAPI text)
static void addCreditsGainText(int credits, TextPanelAPI text)
static MemoryAPI getEntityMemory(Map< String, MemoryAPI > memoryMap)
static boolean fire(String ruleId, InteractionDialogAPI dialog, Map< String, MemoryAPI > memoryMap, String params)
static boolean isMonsterStack(CargoStackAPI stack)
CargoAPI getSellableItems()
void selectSellableItems()
static float getBaseRepValue(CargoStackAPI stack)
boolean playerHasSellableItems()
static boolean isThreatStack(CargoStackAPI stack)
CampaignFleetAPI playerFleet
float computeReputationValue(CargoAPI cargo)
Map< String, MemoryAPI > memoryMap
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
InteractionDialogAPI dialog
static String getWithDGS(float num)
static String ucFirst(String str)
static Color getHighlightColor()
CargoAPI createCargo(boolean unlimitedStacks)
void addFromStack(CargoStackAPI stack)
boolean removeItems(CargoAPI.CargoItemType itemType, Object data, float quantity)
MutableValue getCredits()
List< CargoStackAPI > getStacksCopy()
SpecialItemSpecAPI getSpecialItemSpecIfSpecial()
WeaponSpecAPI getWeaponSpecIfWeapon()
String getDisplayNameWithArticle()
TextPanelAPI getTextPanel()
SectorEntityToken getInteractionTarget()
void showCargoPickerDialog(String title, String okText, String cancelText, boolean small, float textPanelWidth, CargoAPI cargo, CargoPickerListener listener)
OptionPanelAPI getOptionPanel()
CampaignFleetAPI getPlayerFleet()
MemoryAPI getPlayerMemoryWithoutUpdate()
ReputationAdjustmentResult adjustPlayerReputation(Object action, String factionId)
FactionAPI getPlayerFaction()
PersonAPI getActivePerson()
boolean hasTag(String tag)
void set(String key, Object value)
boolean hasTag(String tag)