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}