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