001package com.fs.starfarer.api.impl.campaign.terrain;
002
003import com.fs.starfarer.api.Global;
004import com.fs.starfarer.api.campaign.CampaignEngineLayers;
005import com.fs.starfarer.api.campaign.TerrainAIFlags;
006import com.fs.starfarer.api.combat.ViewportAPI;
007import com.fs.starfarer.api.loading.Description.Type;
008import com.fs.starfarer.api.ui.Alignment;
009import com.fs.starfarer.api.ui.TooltipMakerAPI;
010
011public class EventHorizonPlugin extends StarCoronaTerrainPlugin {
012
013        @Override
014        public String getTerrainName() {
015                return "Event Horizon";
016        }
017
018        @Override
019        public void createTooltip(TooltipMakerAPI tooltip, boolean expanded) {
020                float pad = 10f;
021                float small = 5f;
022                tooltip.addTitle("Event Horizon");
023                float nextPad = pad;
024                
025                tooltip.addPara(Global.getSettings().getDescription(getTerrainId(), Type.TERRAIN).getText1(), pad);
026                
027                if (expanded) {
028                        tooltip.addSectionHeading("Travel", Alignment.MID, pad);
029                        nextPad = small;
030                }
031                tooltip.addPara("Reduces the combat readiness of " +
032                                "all ships near the event horizon at a steady pace.", nextPad);
033                tooltip.addPara("The drive field is also disrupted, making getting away from the event horizon more difficult.", pad);
034                
035                if (expanded) {
036                        tooltip.addSectionHeading("Combat", Alignment.MID, pad);
037                        tooltip.addPara("Reduces the peak performance time of ships and increases the rate of combat readiness degradation in protracted engagements.", small);
038                }
039        }
040
041        @Override
042        public void render(CampaignEngineLayers layer, ViewportAPI viewport) {
043                float alpha = viewport.getAlphaMult();
044                viewport.setAlphaMult(alpha * 0.33f);
045                super.render(layer, viewport);
046                viewport.setAlphaMult(alpha);
047        }
048
049        
050        public boolean hasAIFlag(Object flag) {
051                return super.hasAIFlag(flag) || flag == TerrainAIFlags.AVOID_VERY_CAREFULLY;
052        }
053        
054        
055        
056}