1package com.fs.starfarer.api.impl.campaign.rulecmd;
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.campaign.CargoAPI;
8import com.fs.starfarer.api.campaign.CargoAPI.CargoItemType;
9import com.fs.starfarer.api.campaign.InteractionDialogAPI;
10import com.fs.starfarer.api.campaign.SpecialItemData;
11import com.fs.starfarer.api.campaign.TextPanelAPI;
12import com.fs.starfarer.api.campaign.rules.MemoryAPI;
13import com.fs.starfarer.api.util.Misc.Token;
31 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
32 if (dialog ==
null)
return false;
34 String typeStr = params.get(0).getString(memoryMap);
35 CargoItemType type = Enum.valueOf(CargoItemType.class, typeStr);
37 String
id = params.get(1).getString(memoryMap);
40 if (type != CargoItemType.SPECIAL) {
41 q = params.get(2).getInt(memoryMap);
43 if (params.size() <= 3) {
44 q = params.get(2).getInt(memoryMap);
45 }
else if (params.size() >= 4) {
46 param = params.get(2).getString(memoryMap);
47 q = params.get(3).getInt(memoryMap);
51 TextPanelAPI text = dialog.getTextPanel();
54 if (type == CargoItemType.RESOURCES) {
56 cargo.addCommodity(
id, q);
60 cargo.removeCommodity(
id, -q);
65 if (type == CargoItemType.FIGHTER_CHIP) {
67 cargo.addFighters(
id, q);
71 cargo.removeFighters(
id, -q);
76 if (type == CargoItemType.WEAPONS) {
78 cargo.addWeapons(
id, q);
82 cargo.removeWeapons(
id, -q);
87 if (type == CargoItemType.SPECIAL) {
88 SpecialItemData data =
new SpecialItemData(
id, param);
90 cargo.addSpecial(data, q);
94 cargo.removeItems(CargoItemType.SPECIAL, data, -q);
static SectorAPI getSector()
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)
static void addWeaponLossText(String weaponId, int quantity, TextPanelAPI text)
static void addCommodityLossText(String commodityId, int quantity, TextPanelAPI text)
static void addFighterLossText(String wingId, int quantity, 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 addFighterGainText(String wingId, int quantity, TextPanelAPI text)