1package com.fs.starfarer.api.impl.campaign.intel.bar.events.historian;
6import org.lwjgl.util.vector.Vector2f;
8import com.fs.starfarer.api.Global;
9import com.fs.starfarer.api.campaign.CargoAPI;
10import com.fs.starfarer.api.campaign.InteractionDialogAPI;
11import com.fs.starfarer.api.campaign.PlanetAPI;
12import com.fs.starfarer.api.campaign.SectorEntityToken;
13import com.fs.starfarer.api.campaign.listeners.ExtraSalvageShownListener;
14import com.fs.starfarer.api.combat.ShipHullSpecAPI;
15import com.fs.starfarer.api.impl.campaign.ids.Factions;
16import com.fs.starfarer.api.impl.campaign.ids.FleetTypes;
17import com.fs.starfarer.api.impl.campaign.ids.Tags;
18import com.fs.starfarer.api.impl.campaign.missions.DelayedFleetEncounter;
19import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetQuality;
20import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetSize;
21import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.BaseSalvageSpecial;
22import com.fs.starfarer.api.impl.campaign.rulecmd.salvage.special.BreadcrumbSpecial;
23import com.fs.starfarer.api.ui.Alignment;
24import com.fs.starfarer.api.ui.SectorMapAPI;
25import com.fs.starfarer.api.ui.TooltipMakerAPI;
26import com.fs.starfarer.api.util.Misc;
30 private SectorEntityToken entity;
48 Misc.makeImportant(entity, getClass().getSimpleName());
52 BaseSalvageSpecial.addExtraSalvage(cargo, entity.getMemoryWithoutUpdate(), -1);
57 if (this.entity != entity)
return;
59 Misc.makeUnimportant(entity, getClass().getSimpleName());
67 if (Misc.random.nextFloat() < 0.5f)
return;
71 DelayedFleetEncounter e =
new DelayedFleetEncounter(
null,
"hist");
74 e.setLocationAnywhere(
true, Factions.LUDDIC_PATH);
76 e.triggerCreateFleet(FleetSize.LARGE, FleetQuality.DEFAULT, Factions.LUDDIC_PATH, FleetTypes.PATROL_LARGE,
new Vector2f());
82 q = Math.min(1f, (
float)spec.getFleetPoints() / 20f);
99 e.triggerSetAdjustStrengthBasedOnQuality(
true, q);
100 e.triggerSetStandardAggroInterceptFlags();
101 e.triggerSetFleetGenericHailPermanent(
"HistorianPatherHail");
102 e.triggerFleetPatherNoDefaultTithe();
117 if (!entity.isAlive()) {
122 info.addPara(
getName(), c, 0f);
135 Color h = Misc.getHighlightColor();
136 Color g = Misc.getGrayColor();
138 Color tc = Misc.getTextColor();
144 info.addPara(
"The historian, " + hd.
getPerson().getNameString() +
", has given you information about " +
145 "the location of a valuable item.", opad);
147 info.addSectionHeading(
"Item", Alignment.MID, opad);
151 info.showCargo(cargo, 10,
true, opad);
153 info.addSectionHeading(
"Location", Alignment.MID, opad);
155 info.addPara(
"You have recovered this item.", opad);
157 String located = BreadcrumbSpecial.getLocatedString(entity,
true);
158 if (entity instanceof PlanetAPI) {
159 PlanetAPI planet = (PlanetAPI) entity;
160 info.addPara(
"The item is in the ruins found on a " +
161 planet.getTypeNameWithLowerCaseWorld().toLowerCase() +
" " + located +
".", opad);
163 info.addPara(
"A full survey will need to be run before the ruins can be explored.", opad);
165 info.showFullSurveyReqs(planet,
true, opad);
167 }
else if (entity.getCustomEntitySpec() !=
null) {
168 info.addPara(
"The item is inside " + entity.getCustomEntitySpec().getAOrAn() +
" " +
169 entity.getCustomEntitySpec().getNameInText() +
" " + located +
".", opad);
171 info.addPara(
"The item inside a " + entity.getName() +
" " + located +
".", opad);
180 Set<String> tags = super.getIntelTags(map);
181 tags.add(Tags.INTEL_EXPLORATION);
182 tags.add(Tags.INTEL_ACCEPTED);
188 if (entity !=
null && entity.isDiscoverable() && entity.getStarSystem() !=
null) {
189 return entity.getStarSystem().getCenter();
static SettingsAPI getSettings()
static FactoryAPI getFactory()
static SectorAPI getSector()
Color getTitleColor(ListInfoMode mode)
void createSmallDescription(TooltipMakerAPI info, float width, float height)
SectorEntityToken getMapLocation(SectorMapAPI map)
Set< String > getIntelTags(SectorMapAPI map)
abstract String getName()
void createIntelInfo(TooltipMakerAPI info, ListInfoMode mode)
void addBulletPoints(TooltipMakerAPI info, ListInfoMode mode)
void init(InteractionDialogAPI dialog)
BaseHistorianOfferWithLocation(SectorEntityToken entity)
String getSmallDescriptionTitle()
abstract void addItemToCargo(CargoAPI loot)
void reportExtraSalvageShown(SectorEntityToken entity)
void setRemove(boolean remove)
transient InteractionDialogAPI dialog
transient TextPanelAPI text
void setEndConversationOnReturning(boolean endConversationOnReturning)
void setDone(boolean done)
static HistorianData getInstance()
CargoAPI createCargo(boolean unlimitedStacks)
ShipHullSpecAPI getHullSpec(String hullId)