001package com.fs.starfarer.api.impl.campaign.rulecmd;
002
003import java.util.List;
004import java.util.Map;
005
006import com.fs.starfarer.api.campaign.InteractionDialogAPI;
007import com.fs.starfarer.api.campaign.CargoAPI.CargoItemType;
008import com.fs.starfarer.api.campaign.rules.MemKeys;
009import com.fs.starfarer.api.campaign.rules.MemoryAPI;
010import com.fs.starfarer.api.characters.CharacterCreationData;
011import com.fs.starfarer.api.util.Misc.Token;
012
013/**
014 *      NGCAddCargo <CargoItemType> <cargo id> <quantity>
015 */
016public class NGCAddCargo extends BaseCommandPlugin {
017
018        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
019                if (dialog == null) return false;
020                
021                CargoItemType type = CargoItemType.valueOf(params.get(0).getString(memoryMap));
022                String id = params.get(1).getString(memoryMap);
023                float qty = params.get(2).getFloat(memoryMap);
024                
025                CharacterCreationData data = (CharacterCreationData) memoryMap.get(MemKeys.LOCAL).get("$characterData");
026                
027                data.getStartingCargo().addItems(type, id, qty);
028                
029                if (type == CargoItemType.RESOURCES) {
030                        AddRemoveCommodity.addCommodityGainText(id, (int) qty, dialog.getTextPanel());
031                }
032                
033                return true;
034        }
035
036}