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