1package com.fs.starfarer.api.impl.campaign.rulecmd;
6import com.fs.starfarer.api.GameState;
7import com.fs.starfarer.api.Global;
8import com.fs.starfarer.api.campaign.CampaignFleetAPI;
9import com.fs.starfarer.api.campaign.CargoAPI;
10import com.fs.starfarer.api.campaign.CargoStackAPI;
11import com.fs.starfarer.api.campaign.InteractionDialogAPI;
12import com.fs.starfarer.api.campaign.SpecialItemData;
13import com.fs.starfarer.api.campaign.TextPanelAPI;
14import com.fs.starfarer.api.campaign.econ.CommoditySpecAPI;
15import com.fs.starfarer.api.campaign.rules.MemoryAPI;
16import com.fs.starfarer.api.characters.PersonAPI;
17import com.fs.starfarer.api.combat.ShipVariantAPI;
18import com.fs.starfarer.api.fleet.FleetMemberAPI;
19import com.fs.starfarer.api.impl.campaign.ids.Strings;
20import com.fs.starfarer.api.loading.AbilitySpecAPI;
21import com.fs.starfarer.api.loading.FighterWingSpecAPI;
22import com.fs.starfarer.api.loading.WeaponSpecAPI;
23import com.fs.starfarer.api.ui.LabelAPI;
24import com.fs.starfarer.api.util.Misc;
25import com.fs.starfarer.api.util.Misc.Token;
26import com.fs.starfarer.api.util.MutableValue;
34 if (dialog ==
null)
return false;
36 String commodityId = params.get(0).getString(memoryMap);
39 if (params.get(1).isOperator()) {
40 quantity = -1 * params.get(2).getFloat(memoryMap);
43 quantity = params.get(1).getFloat(memoryMap);
45 boolean withText = Math.abs(quantity) >= 1;
46 if (dialog !=
null && params.size() >= next + 1) {
47 withText = params.get(next).getBoolean(memoryMap) && withText;
50 if (commodityId.equals(
"credits")) {
53 credits.
add(quantity);
58 credits.
subtract(Math.abs(quantity));
59 if (credits.
get() < 0) credits.
set(0);
79 if (!
"credits".equals(commodityId)) {
88 if (
"credits".equals(commodityId)) {
98 String key =
"$" + commodityId;
100 if (memory.
get(key) instanceof Integer || memory.
get(key) instanceof Float) {
111 if (stack.
getSize() < 1)
return;
115 name = name.toLowerCase();
117 int quantity = (int) stack.
getSize();
127 if (stack.
getSize() < 1)
return;
131 name = name.toLowerCase();
133 int quantity = (int) stack.
getSize();
141 if (spec ==
null)
return;
151 if (spec ==
null)
return;
162 if (spec ==
null)
return;
172 if (spec ==
null)
return;
276 String str =
"\"" + ability.
getName() +
"\"";
285 String rank = officer.
getRank();
290 if (rank !=
null) str = rank +
" " + str;
300 String rank = officer.
getRank();
305 if (rank !=
null) str = rank +
" " + str;
317 String rank =
"Administrator";
319 if (rank !=
null) str = rank +
" " + str;
353 String cr = Math.round(crLoss * 100f) +
"%";
static SettingsAPI getSettings()
static FactoryAPI getFactory()
static GameState getCurrentState()
static SectorAPI getSector()
static void addAdminGainText(PersonAPI admin, TextPanelAPI text)
static void addStackLossText(CargoStackAPI stack, TextPanelAPI text)
static void addWeaponLossText(String weaponId, int quantity, TextPanelAPI text)
static void addFleetMemberGainText(ShipVariantAPI variant, TextPanelAPI text)
static void addCommodityLossText(String commodityId, int quantity, TextPanelAPI text)
static void addFighterLossText(String wingId, int quantity, TextPanelAPI text)
static void addCreditsGainText(int credits, TextPanelAPI text)
static void updatePlayerMemoryQuantity(String commodityId)
static void addFleetMemberLossText(FleetMemberAPI member, TextPanelAPI text)
static void addAbilityGainText(String abilityId, TextPanelAPI text)
static void addStackGainText(CargoStackAPI stack, TextPanelAPI text, boolean lowerCase)
static void addOfficerGainText(PersonAPI officer, TextPanelAPI text)
static void addStackGainText(CargoStackAPI stack, TextPanelAPI text)
static void addItemGainText(SpecialItemData data, int quantity, TextPanelAPI text)
static void addCommodityGainText(String commodityId, int quantity, TextPanelAPI text)
static void addItemLossText(SpecialItemData data, int quantity, TextPanelAPI text)
static void addWeaponGainText(String weaponId, int quantity, TextPanelAPI text)
static void addOfficerLossText(PersonAPI officer, TextPanelAPI text)
static void addCreditsLossText(int credits, TextPanelAPI text)
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
static void addStackLossText(CargoStackAPI stack, TextPanelAPI text, boolean lowerCase)
static void addFleetMemberGainText(FleetMemberAPI member, TextPanelAPI text)
static void addCRLossText(FleetMemberAPI member, TextPanelAPI text, float crLoss)
static void addFighterGainText(String wingId, int quantity, TextPanelAPI text)
static String getWithDGS(float num)
static String ucFirst(String str)
static Color getNegativeHighlightColor()
static Color getHighlightColor()
static Color getPositiveHighlightColor()
CargoAPI createCargo(boolean unlimitedStacks)
AbilitySpecAPI getAbilitySpec(String abilityId)
CommoditySpecAPI getCommoditySpec(String commodityId)
FighterWingSpecAPI getFighterWingSpec(String wingId)
WeaponSpecAPI getWeaponSpec(String weaponId)
float getCommodityQuantity(String id)
void addSpecial(SpecialItemData data, float quantity)
void removeCommodity(String id, float quantity)
MutableValue getCredits()
List< CargoStackAPI > getStacksCopy()
void addCommodity(String commodityId, float quantity)
MemoryAPI getMemoryWithoutUpdate()
TextPanelAPI getTextPanel()
CampaignFleetAPI getPlayerFleet()
CharacterDataAPI getCharacterData()
LabelAPI addPara(String text)
void setFontSmallInsignia()
LabelAPI addParagraph(String text)
void highlightInLastPara(Color color, String ...strings)
String getLowerCaseName()
boolean contains(String key)
void set(String key, Object value)
MutableCharacterStatsAPI getStats()
String getHullNameWithDashClass()
ShipHullSpecAPI getHullSpec()
ShipVariantAPI getVariant()
void setHighlight(int start, int end)
void setHighlightColors(Color ... colors)