1package com.fs.starfarer.api.impl.campaign;
3import com.fs.starfarer.api.Global;
4import com.fs.starfarer.api.campaign.CampaignEngineLayers;
5import com.fs.starfarer.api.campaign.CustomCampaignEntityAPI;
6import com.fs.starfarer.api.campaign.SectorEntityToken;
7import com.fs.starfarer.api.campaign.SectorEntityToken.VisibilityLevel;
8import com.fs.starfarer.api.combat.ViewportAPI;
9import com.fs.starfarer.api.impl.campaign.ids.Entities;
10import com.fs.starfarer.api.util.Misc;
15 float range = 500f + radius * 20f;
16 if (range > 2000) range = 2000;
29 public void init(SectorEntityToken
entity, Object pluginParams) {
30 super.init(
entity, pluginParams);
31 entity.setDetectionRangeDetailsOverrideMult(0.5f);
40 Object readResolve() {
42 manager.category =
"misc";
43 manager.key =
"cargoPods";
44 manager.cellSize = 32;
56 float depth = Misc.getAbyssalDepth(
entity);
65 VisibilityLevel vis =
entity.getVisibilityLevelToPlayerFleet();
66 boolean playerCanSee =
entity.isInCurrentLocation() &&
67 (vis == VisibilityLevel.COMPOSITION_AND_FACTION_DETAILS ||
68 vis == VisibilityLevel.COMPOSITION_DETAILS);
71 Misc.fadeAndExpire(
entity);
77 if (
entity.isInCurrentLocation()) {
82 entity.getDetectedRangeMod().modifyFlat(
"gen", range);
91 float totalCapacity =
entity.getCargo().getSpaceUsed() +
92 entity.getCargo().getFuel() +
93 entity.getCargo().getTotalPersonnel();
96 int numPieces = (int) (Math.sqrt(totalCapacity) / 1);
97 if (numPieces < minPieces) numPieces = minPieces;
98 if (numPieces > 40) numPieces = 40;
100 boolean cryo =
entity.getCargo().getTotalPersonnel() >
entity.getCargo().getSpaceUsed() +
entity.getCargo().getFuel();
102 entity.setCustomDescriptionId(
"cryopods");
103 entity.setName(
"Cryo Pods");
105 entity.setCustomDescriptionId(Entities.CARGO_PODS);
106 entity.setName(
"Cargo Pods");
109 manager.numPieces = numPieces;
111 float radius = 10f + 10f * (float) Math.sqrt(
manager.
numPieces - (minPieces - 1));
112 ((CustomCampaignEntityAPI)
entity).setRadius(radius);
114 maxDays = 5f + (numPieces - minPieces);
118 return entity.getRadius() + 100f;
121 public void render(CampaignEngineLayers layer, ViewportAPI viewport) {
static SectorAPI getSector()
void render(CampaignEngineLayers layer, ViewportAPI viewport)
void advance(float amount)
void setElapsed(float elapsed)
transient GenericFieldItemManager manager
void init(SectorEntityToken entity, Object pluginParams)
void setNeverExpire(Boolean neverExpire)
static float computeDetectionRange(float radius)
void setExtraDays(float extraDays)
void render(CampaignEngineLayers layer, ViewportAPI viewport)
void advance(float amount)