001package com.fs.starfarer.api.impl.campaign.intel.misc;
002
003import java.util.Set;
004
005import java.awt.Color;
006
007import com.fs.starfarer.api.Global;
008import com.fs.starfarer.api.campaign.PlanetAPI;
009import com.fs.starfarer.api.campaign.SectorEntityToken;
010import com.fs.starfarer.api.campaign.TextPanelAPI;
011import com.fs.starfarer.api.campaign.listeners.CoreDiscoverEntityPlugin;
012import com.fs.starfarer.api.impl.campaign.ids.Tags;
013import com.fs.starfarer.api.ui.SectorMapAPI;
014import com.fs.starfarer.api.ui.TooltipMakerAPI;
015import com.fs.starfarer.api.ui.TooltipMakerAPI.PlanetInfoParams;
016import com.fs.starfarer.api.util.Misc;
017
018public class SurveyDataForPlanetIntel extends FleetLogIntel {
019
020        protected String longText;
021        protected PlanetAPI planet;
022        
023        public SurveyDataForPlanetIntel(PlanetAPI planet, String longText, TextPanelAPI textPanel) {
024                this.planet = planet;
025                this.longText = longText;
026                
027                setSound("ui_discovered_entity");
028                setIconId("found_planet_data");
029                
030                setRemoveTrigger(planet);
031                
032                setListInfoParam(DISCOVERED_PARAM);
033                Global.getSector().getIntelManager().addIntel(this, false, textPanel);
034                setListInfoParam(null);
035                
036                if (planet.getStarSystem() != null && Misc.hasUnexploredRuins(planet.getMarket())) {
037                        CoreDiscoverEntityPlugin.addSalvorsTallyIfNeeded(planet.getStarSystem());
038                }
039        }
040        
041        @Override
042        protected String getName() {
043                //String name = "Survey Data: " + planet.getName() + ", " + planet.getTypeNameWithWorld();
044                String classStr = Misc.getPlanetSurveyClass(planet);
045                String name = "Survey Data: " + classStr + " " + planet.getTypeNameWithWorld(); 
046                //name = "Survey Data: Class IV Cryovolcanic World";
047                return name;
048        }
049
050
051        @Override
052        public void createIntelInfo(TooltipMakerAPI info, ListInfoMode mode) {
053                Color c = getTitleColor(mode);
054                info.addPara(getName(), c, 0f);
055                addBulletPoints(info, mode);
056        }
057        
058        protected void addBulletPoints(TooltipMakerAPI info, ListInfoMode mode) {
059                Color h = Misc.getHighlightColor();
060                Color g = Misc.getGrayColor();
061                float pad = 3f;
062                float opad = 10f;
063                
064                float initPad = pad;
065                if (mode == ListInfoMode.IN_DESC) initPad = opad;
066                
067                Color tc = getBulletColorForMode(mode);
068                //boolean isUpdate = getListInfoParam() != null;
069                
070                bullet(info);
071                //info.addPara(str, tc, initPad);
072                initPad = 0f;
073                unindent(info);
074        }       
075        
076        @Override
077        public void createSmallDescription(TooltipMakerAPI info, float width, float height) {
078                Color h = Misc.getHighlightColor();
079                Color g = Misc.getGrayColor();
080                Color tc = Misc.getTextColor();
081                float pad = 3f;
082                float opad = 10f;
083                
084                PlanetInfoParams params = new PlanetInfoParams();
085                params.showConditions = true;
086                params.showName = true;
087                params.withClass = true;
088                params.scaleEvenWhenShowingName = true;
089                params.conditionsYOffset = 32f;
090                params.showHazardRating = true;
091                info.showPlanetInfo(planet, width, width / 1.62f, params, opad + params.conditionsYOffset);
092                info.addPara(longText, opad + 18f);
093
094                addBulletPoints(info, ListInfoMode.IN_DESC);
095                
096                addLogTimestamp(info, tc, opad);
097                addDeleteButton(info, width);
098        }
099
100        @Override
101        public Set<String> getIntelTags(SectorMapAPI map) {
102                Set<String> tags = super.getIntelTags(map);
103                tags.remove(Tags.INTEL_FLEET_LOG);
104                tags.add(Tags.INTEL_EXPLORATION);
105                return tags;
106        }
107
108        @Override
109        public SectorEntityToken getMapLocation(SectorMapAPI map) {
110                return planet;
111        }
112        
113        
114        
115}
116
117
118
119