001package com.fs.starfarer.api.impl.campaign.econ;
002
003import java.util.ArrayList;
004import java.util.List;
005
006import com.fs.starfarer.api.Global;
007import com.fs.starfarer.api.campaign.econ.Industry;
008import com.fs.starfarer.api.characters.MarketConditionSpecAPI;
009import com.fs.starfarer.api.impl.campaign.ids.Conditions;
010import com.fs.starfarer.api.impl.campaign.ids.Industries;
011import com.fs.starfarer.api.ui.TooltipMakerAPI;
012import com.fs.starfarer.api.util.Misc;
013
014
015public class SolarArray extends BaseMarketConditionPlugin {
016        
017        public static int FARMING_BONUS = 2;
018        
019        public static List<String> SUPPRESSED_CONDITIONS = new ArrayList<String>();
020        static {
021                SUPPRESSED_CONDITIONS.add(Conditions.HOT);
022                SUPPRESSED_CONDITIONS.add(Conditions.POOR_LIGHT);
023        }
024        
025        public void apply(String id) {
026                for (String cid : SUPPRESSED_CONDITIONS) {
027                        market.suppressCondition(cid);
028                }
029                
030                Industry industry = getIndustry();
031                if (industry != null) {
032                        industry.getSupplyBonusFromOther().modifyFlat(id, FARMING_BONUS, Misc.ucFirst(condition.getName().toLowerCase()));
033                }
034                //industry.supply(id + "_0", commodityId, base, BaseIndustry.BASE_VALUE_TEXT);
035        }
036
037        public void unapply(String id) {
038                for (String cid : SUPPRESSED_CONDITIONS) {
039                        market.unsuppressCondition(cid);
040                }
041                Industry industry = getIndustry();
042                if (industry != null) {
043                        industry.getSupplyBonusFromOther().unmodifyFlat(id);
044                }
045        }
046        
047        protected Industry getIndustry() {
048                Industry industry = market.getIndustry(Industries.FARMING);
049                if (industry == null) {
050                        industry = market.getIndustry(Industries.AQUACULTURE);
051                }
052                return industry;
053        }
054
055        protected void createTooltipAfterDescription(TooltipMakerAPI tooltip, boolean expanded) {
056                float opad = 10f;
057                
058                List<String> conds = new ArrayList<String>();
059                for (String id : SUPPRESSED_CONDITIONS) {
060                        MarketConditionSpecAPI mc = Global.getSettings().getMarketConditionSpec(id);
061                        conds.add(mc.getName());
062                }
063                
064                tooltip.addPara("Counters the effects of " + Misc.getAndJoined(conds) + ".\n\nIncreases food production by %s (Farming).",  
065                                opad, Misc.getHighlightColor(), 
066                                "" + FARMING_BONUS);
067        }
068}
069
070
071
072