001package com.fs.starfarer.api.impl.campaign.rulecmd;
002
003import java.awt.Color;
004import java.util.List;
005import java.util.Map;
006
007import com.fs.starfarer.api.Global;
008import com.fs.starfarer.api.campaign.CampaignFleetAPI;
009import com.fs.starfarer.api.campaign.InteractionDialogAPI;
010import com.fs.starfarer.api.campaign.RepLevel;
011import com.fs.starfarer.api.campaign.SectorEntityToken;
012import com.fs.starfarer.api.campaign.rules.MemKeys;
013import com.fs.starfarer.api.campaign.rules.MemoryAPI;
014import com.fs.starfarer.api.impl.campaign.ids.Factions;
015import com.fs.starfarer.api.util.Misc.Token;
016
017public class RepairAvailable extends BaseCommandPlugin {
018
019        private static final Color HIGHLIGHT_COLOR = Global.getSettings().getColor("buttonShortcut");
020        
021        public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
022                CampaignFleetAPI playerFleet = Global.getSector().getPlayerFleet();
023                
024                float needed = playerFleet.getLogistics().getTotalRepairAndRecoverySupplyCost();
025                if (needed > 0) needed = Math.max(1, Math.round(needed));
026                memoryMap.get(MemKeys.GLOBAL).set("$repairSupplyCost", (int) needed, 0);
027                
028                SectorEntityToken entity = dialog.getInteractionTarget();
029                if (entity.getMarket() != null && !entity.getMarket().hasSpaceport()) {
030                        return false;
031                }
032                        
033                RepLevel level = entity.getFaction().getRelationshipLevel(Factions.PLAYER);
034                if (level.isAtWorst(RepLevel.SUSPICIOUS)) {
035                        return true;
036                }
037                
038                
039                return false;
040        }
041}