001package com.fs.starfarer.api.impl.campaign.rulecmd;
002
003import java.util.List;
004import java.util.Map;
005
006import com.fs.starfarer.api.Global;
007import com.fs.starfarer.api.campaign.CampaignFleetAPI;
008import com.fs.starfarer.api.campaign.CargoStackAPI;
009import com.fs.starfarer.api.campaign.InteractionDialogAPI;
010import com.fs.starfarer.api.campaign.rules.MemKeys;
011import com.fs.starfarer.api.campaign.rules.MemoryAPI;
012import com.fs.starfarer.api.impl.campaign.rulecmd.CustomsInspectionGenerateResult.CargoInspectionResult;
013import com.fs.starfarer.api.util.Misc.Token;
014
015public class CustomsInspectionApplyResult extends BaseCommandPlugin {
016
017        
018        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
019                if (dialog == null) return false;
020                if (!(dialog.getInteractionTarget() instanceof CampaignFleetAPI)) return false;
021                
022                CampaignFleetAPI playerFleet = Global.getSector().getPlayerFleet();
023                CampaignFleetAPI other = (CampaignFleetAPI) dialog.getInteractionTarget();
024                
025                //FactionAPI faction = other.getFaction();
026                MemoryAPI memory = memoryMap.get(MemKeys.ENTITY);
027                
028                CargoInspectionResult result = (CargoInspectionResult) memory.get("$cargoInspectionResult");
029                
030                for (CargoStackAPI stack : result.getIllegalFound().getStacksCopy()) {
031                        playerFleet.getCargo().removeItems(stack.getType(), stack.getData(), stack.getSize());
032                }
033                
034                if (playerFleet.getCargo().getCredits().get() >= result.getTollAmount()) {
035                        playerFleet.getCargo().getCredits().subtract(result.getTollAmount());
036                }
037                
038                return true;
039        }
040
041}
042
043
044
045
046
047
048