001package com.fs.starfarer.api.impl.campaign.intel.bases;
002
003import java.awt.Color;
004import java.util.Map;
005
006import com.fs.starfarer.api.impl.campaign.econ.BaseMarketConditionPlugin;
007import com.fs.starfarer.api.ui.TooltipMakerAPI;
008import com.fs.starfarer.api.util.Misc;
009
010public class PirateActivity extends BaseMarketConditionPlugin {
011
012        protected PirateBaseIntel intel;
013        
014        public PirateActivity() {
015        }
016
017        @Override
018        public void setParam(Object param) {
019                intel = (PirateBaseIntel) param;
020        }
021
022
023        public void apply(String id) {
024                float accessibility = intel.getAccessibilityPenalty();
025                float stability = intel.getStabilityPenalty();
026                String name = "Pirate activity";
027                if (accessibility != 0) {
028                        market.getAccessibilityMod().modifyFlat(id, -accessibility, name);
029                }
030                if (stability != 0) {
031                        market.getStability().modifyFlat(id, -stability, name);
032                }
033        }
034
035        public void unapply(String id) {
036                market.getAccessibilityMod().unmodifyFlat(id);
037                market.getStability().unmodifyFlat(id);
038        }
039        
040        
041        @Override
042        public void advance(float amount) {
043                if (!intel.getMarket().isInEconomy()) {
044                        market.removeSpecificCondition(condition.getIdForPluginModifications());
045                }
046        }
047
048        public Map<String, String> getTokenReplacements() {
049                return super.getTokenReplacements();
050                //return event.getTokenReplacements();
051        }
052
053        @Override
054        public boolean isTransient() {
055                return false;
056        }
057
058        @Override
059        public void createTooltipAfterDescription(TooltipMakerAPI tooltip, boolean expanded) {
060                Color h = Misc.getHighlightColor();
061                Color n = Misc.getNegativeHighlightColor();
062                
063                float pad = 3f;
064                float small = 5f;
065                float opad = 10f;
066                
067                float accessibility = intel.getAccessibilityPenalty();
068                float stability = intel.getStabilityPenalty();
069                
070                if (stability != 0 && accessibility != 0) {
071                        tooltip.addPara("%s stability, %s accessibility.", 
072                                        opad, h,
073                                        "-" + (int)stability, "-" + (int)Math.round(accessibility * 100f) + "%");
074                } else if (stability != 0) {
075                        tooltip.addPara("%s stability.", 
076                                        opad, h,
077                                        "-" + (int)stability);
078                } else if (accessibility != 0) {
079                        tooltip.addPara("%s accessibility.", 
080                                        opad, h,
081                                        "-" + (int)Math.round(accessibility * 100f) + "%");
082                } else {
083                        tooltip.addPara("No perceptible impact on operations as of yet.", opad);
084                }
085        }
086
087        @Override
088        public float getTooltipWidth() {
089                return super.getTooltipWidth();
090        }
091
092        @Override
093        public boolean hasCustomTooltip() {
094                return true;
095        }
096
097        @Override
098        public boolean isTooltipExpandable() {
099                return super.isTooltipExpandable();
100        }
101
102        public PirateBaseIntel getIntel() {
103                return intel;
104        }
105        
106}
107
108
109
110
111