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