1package com.fs.starfarer.api.impl.campaign.terrain;
5import com.fs.starfarer.api.Global;
6import com.fs.starfarer.api.campaign.CampaignEngineLayers;
7import com.fs.starfarer.api.campaign.CampaignFleetAPI;
8import com.fs.starfarer.api.campaign.PlanetAPI;
9import com.fs.starfarer.api.campaign.SectorEntityToken;
10import com.fs.starfarer.api.campaign.TerrainAIFlags;
11import com.fs.starfarer.api.combat.ViewportAPI;
12import com.fs.starfarer.api.loading.Description.Type;
13import com.fs.starfarer.api.ui.Alignment;
14import com.fs.starfarer.api.ui.TooltipMakerAPI;
15import com.fs.starfarer.api.util.Misc;
18 private static float VISIBLITY_MULT = 0.25f;
19 private static float VISIBLITY_MULT_NPC = 0.5f;
22 if (fleet !=
null && fleet.isPlayerFleet()) {
23 return VISIBLITY_MULT;
25 return VISIBLITY_MULT_NPC;
38 if (
params ==
null)
return;
44 if (
entity.getOrbitFocus() instanceof PlanetAPI) {
45 PlanetAPI planet = (PlanetAPI)
entity.getOrbitFocus();
48 boolean spiral = params.bandWidthInEngine / 2f + 10f >=
params.middleRadius;
50 params.middleRadius - params.bandWidthInEngine * 0.5f,
51 params.middleRadius + params.bandWidthInEngine * 0.5f,
53 spiral, factor, alphaMult);
59 super.advance(amount);
63 public void render(CampaignEngineLayers layer, ViewportAPI viewport) {
64 super.render(layer, viewport);
69 if (
entity instanceof CampaignFleetAPI) {
70 CampaignFleetAPI fleet = (CampaignFleetAPI)
entity;
72 if (Misc.isSlowMoving(fleet)) {
73 fleet.getStats().addTemporaryModMult(0.1f,
getModId() +
"_1",
75 fleet.getStats().getDetectedRangeMod());
84 private String nameForTooltip =
null;
86 if (nameForTooltip ==
null)
return "Ring System";
87 return nameForTooltip;
91 this.nameForTooltip = nameForTooltip;
97 Color gray = Misc.getGrayColor();
98 Color highlight = Misc.getHighlightColor();
100 Color bad = Misc.getNegativeHighlightColor();
106 tooltip.addSectionHeading(
"Travel", Alignment.MID, pad);
114 tooltip.addPara(
"Reduces the range at which stationary or slow-moving* fleets inside it can be detected by %s.", nextPad,
116 "" + (
int) ((1f - VISIBLITY_MULT) * 100) +
"%"
118 tooltip.addPara(
"*Press and hold %s to stop; combine with holding the left mouse button down to move slowly.", nextPad,
119 Misc.getGrayColor(), highlight,
124 tooltip.addSectionHeading(
"Combat", Alignment.MID, pad);
125 tooltip.addPara(
"Numerous small bodies that make up the ring system present on the battlefield. Not large enough to be an in-combat navigational hazard.", small);
139 return "ringsystem-like";
143 return flag == TerrainAIFlags.HIDING_STATIONARY;
static SettingsAPI getSettings()
void render(Vector2f loc, float minR, float maxR, Color color, boolean spiral, float factor, float alphaMult)
void advance(float amount)
String getEffectCategory()
boolean hasAIFlag(Object flag)
void createTooltip(TooltipMakerAPI tooltip, boolean expanded)
boolean isTooltipExpandable()
void setNameForTooltip(String nameForTooltip)
static float getVisibilityMult(CampaignFleetAPI fleet)
void applyEffect(SectorEntityToken entity, float days)
void render(CampaignEngineLayers layer, ViewportAPI viewport)
String getNameForTooltip()
void init(String terrainId, SectorEntityToken entity, Object param)
void renderOnMap(float factor, float alphaMult)
Description getDescription(String id, Type type)
String getControlStringForEnumName(String name)
Color getColor(String id)