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