001package com.fs.starfarer.api.campaign.impl.items;
002
003import java.awt.Color;
004
005import com.fs.starfarer.api.Global;
006import com.fs.starfarer.api.campaign.CargoAPI;
007import com.fs.starfarer.api.campaign.CargoAPI.CargoItemType;
008import com.fs.starfarer.api.campaign.CargoTransferHandlerAPI;
009import com.fs.starfarer.api.campaign.SpecialItemData;
010import com.fs.starfarer.api.impl.campaign.ids.Items;
011import com.fs.starfarer.api.ui.TooltipMakerAPI;
012import com.fs.starfarer.api.util.Misc;
013
014public class WormholeScannerPlugin extends BaseSpecialItemPlugin {
015        
016        public static String PLAYER_CAN_USE_WORMHOLES = "$playerCanUseWormholes"; // in global memory
017
018        @Override
019        public void createTooltip(TooltipMakerAPI tooltip, boolean expanded, CargoTransferHandlerAPI transferHandler, Object stackSource) {
020                float pad = 3f;
021                float opad = 10f;
022                float small = 5f;
023                Color h = Misc.getHighlightColor();
024                Color g = Misc.getGrayColor();
025                Color b = Misc.getButtonTextColor();
026                b = Misc.getPositiveHighlightColor();
027
028                if (!Global.CODEX_TOOLTIP_MODE) {
029                        tooltip.addTitle(getName());
030                } else {
031                        tooltip.addSpacer(-opad);
032                }
033                
034                String design = getDesignType();
035                if (design != null) {
036                        Misc.addDesignTypePara(tooltip, design, 10f);
037                }
038                
039                if (!spec.getDesc().isEmpty()) {
040                        if (Global.CODEX_TOOLTIP_MODE) {
041                                tooltip.setParaSmallInsignia();
042                        }
043                        tooltip.addPara(spec.getDesc(), Misc.getTextColor(), opad);
044                }
045                
046                addCostLabel(tooltip, opad, transferHandler, stackSource);
047                
048                if (!Global.CODEX_TOOLTIP_MODE) {
049                        tooltip.addPara("Right-click to integrate the " + getName() + " with your fleet", b, opad);
050                }
051        }
052
053        @Override
054        public float getTooltipWidth() {
055                return super.getTooltipWidth();
056        }
057        
058        @Override
059        public boolean isTooltipExpandable() {
060                return false;
061        }
062        
063        @Override
064        public boolean hasRightClickAction() {
065                return true;
066        }
067
068        @Override
069        public boolean shouldRemoveOnRightClickAction() {
070                return true;
071        }
072
073        @Override
074        public void performRightClickAction() {
075                Global.getSector().getMemoryWithoutUpdate().set(PLAYER_CAN_USE_WORMHOLES, true);
076                Global.getSoundPlayer().playUISound(getSpec().getSoundId(), 1f, 1f);
077                Global.getSector().getCampaignUI().getMessageDisplay().addMessage(
078                                getName() + " integrated - can transit wormholes");
079        }
080        
081        
082        public static boolean canPlayerUseWormholes() {
083                if (Global.getSector().getMemoryWithoutUpdate().getBoolean(PLAYER_CAN_USE_WORMHOLES)) {
084                        return true;
085                }
086                
087                CargoAPI cargo = Global.getSector().getPlayerFleet().getCargo();
088                String id = Items.WORMHOLE_SCANNER;
089                if (cargo.getQuantity(CargoItemType.SPECIAL, new SpecialItemData(id, null)) >= 1) {
090                        return true;
091                }
092                
093                return false;
094        }
095}
096
097
098